Firewall Iptables Desktop

Publicado por Daniel 13/06/2009

[ Hits: 9.497 ]

Homepage: https://d4n1.org

Download rc.firewall




Firewall iptables para desktop.

Autor: Daniel - d4n1h4ck3r@gmail.com
Licença: GPL
Sistema ultilizado: Slackware 12.2

Usabilidade: qualquer distribuição linux.

Uso: adicionar permissão de execução (chmod +x) ao arquivo como root (Ex.: # chmod +x
rc.firewall). Mover o arquivo para o diretório /etc/rc.d/ para o Slackware e distribuições
derivadas, para outra distribuições mover para o local adequado (Ex.: /etc/init.d/).

  



Esconder código-fonte

#!/bin/sh
#
# /etc/rc.d/rc.firewall
#
# Start/stop/restart the Firewall.
#
# To make Firewall start automatically at boot, make this
# file executable:  chmod 755 /etc/rc.d/rc.firewall
# Author: Daniel - d4n1h4ck3r@gmail.com
# Criation: 04/04/2009
# Atualization: 13/06/2009

# Modules
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ipt_owner
/sbin/modprobe ipt_REJECT
/sbin/modprobe ip_conntrack_ftp

# Firewall Start
firewall_start() {
    # Clean 
    iptables -X
    iptables -Z
    iptables -F 
    iptables -t nat -F

    # Politics default
    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT ACCEPT

    # Loopback Access
    iptables -A INPUT -i lo -j ACCEPT

    # Conections enabled
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

   # Security
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies
    iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
    iptables -A FORWARD -p tcp -m limit --limit 1\s -j ACCEPT
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
    iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP

    echo "Firewall Start."
}

# Firewall Stop 
firewall_stop() {
    # Clean 
    iptables -X
    iptables -Z
    iptables -F 
    iptables -t nat -F

    # Politics default
    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT

    # Loopback access 
    iptables -A INPUT -i lo -j ACCEPT

    # Conections enabled
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    echo "Firewall Stop (without security)."
}

# Firewall Restart 
firewall_restart() {
    firewall_stop
    sleep 3
    firewall_start
}

# Options
case "$1" in
'start')
    firewall_start
    ;;
'stop')
    firewall_stop
    ;;
'restart')
    firewall_restart
    ;;
*)
    echo "rc.firewall start"
    echo "rc.firewall stop"
    echo "rc.firewall restart"
esac


Scripts recomendados

"desmontar" partiçao fat

GETPLAMIGA - Baixe a Palavra Amiga do Bispo Macedo

Script que automatiza o treinamento do SpamAssassin

Instalar Unreal Tourment no Linux

Cadastrando usuários no Squid através de Shell Script


  

Comentários
[1] Comentário enviado por akelon em 14/06/2009 - 13:37h

Vc não descreveu as portas que deseja abrir ?

[2] Comentário enviado por d4n1 em 14/06/2009 - 14:11h

Somente serão abertas as portas requisitadas pelo desktop. A política padrão é negar INPUT e FORWARD, aceitando somente o OUTPUT, ou seja saida, se preciso abrir algumas portas adicionais é só inclementar de acordo com a necessidade do usuário.

Obs.: Firewall básico, se puderem inclementar ou corrigir algo, agradeço!

[3] Comentário enviado por akelon em 14/06/2009 - 14:51h

Ficou xique o seu script, eu li rapidamente o guia do morimoto e fiz com pressa o no meu arch ta assim:

#!/bin/bash
iniciar(){
#interface loopback
iptables -A INPUT -i lo -j ACCEPT

#abre as portas DNS
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT

#abre as portas HTTP e HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

#garante que o firewall permitira pacotes de conexões ja iniciadas
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#ignora pings
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

#protege contra IP spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

#descarta pacotes mal formados protegendo contra ataques diversos
iptables -A INPUT -m state --state INVALID -j DROP

#bloqueia as portas UDP de 0 a 1023 (com exceção das abertas acima)
iptables -A INPUT -p udp --dport 0:1023 -j DROP

#bloqueia conexões nas demais portas
iptables -A INPUT -p tcp --syn -j DROP
echo "Regras do firewall ativadas"
}

parar(){
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
echo "Regras do firewall desativadas"
}

case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parametros start ou stop"
esac

E pior q ta funcionando. kkkk
na proxima vez eu vo usar o seu.

[4] Comentário enviado por d4n1 em 14/06/2009 - 15:18h

É semelhante os scripts, o que difere é a definição da política padrão e as portas abertas explicitamente..., mas funciona :)

[5] Comentário enviado por d4n1 em 13/07/2009 - 13:54h

O script do link "fazer download" não é o que postei..., está baixando outro..., pois o que eu postei está no link "código fonte"..., estranho isso...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts