freitasrdf
(usa Ubuntu)
Enviado em 18/09/2008 - 15:26h
Parâmetros de conf:
Obs.: Este firewall serve apenas para compartilhamento da net, falta por exemplo proxy transparente, eu não gosto o proxy perde desempenho.
Crie o arquivo se tiver com o comando e adicione os dados abaixo
#kedit /etc/rc.d/rc.firewall
#!/bin/bash
#Configuraçao do Iptables
echo euquefiz@tofeliz
##caso queira ativa-lo como firewall principal descomente as linhas que te interessem, as iniciadas por "iptables"
firewall_start(){
echo [Definindo IP do servidor]
#use sua configuração
ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
#Compartilhamento
echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
#echo Compartilhamento Ativado
# Liberar portas
# Proxy
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
# SSH:
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# DNS:
#iptables -A INPUT -p tcp --dport 53 -j ACCEPT
#iptables -A INPUT -p udp --dport 53 -j ACCEPT
# HTTP e HTTPS:
#iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#FTP
#iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#WEBMIN
#iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
echo Liberando portas
#Bloqueia as portas UDP de 0 a 1024
#iptables -A INPUT -p udp --dport 0:1024 -j DROP
# Bloqueia as Demais portas
iptables -A INPUT -p tcp --syn -j DROP
echo Bloqueando Portas
# Ignora pings
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
# Proteção contra IP spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
# Protege contra synflood
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
# Proteção contra ICMP Broadcasting
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Bloqueia traceroute
iptables -A INPUT -p udp --dport 33435:33525 -j DROP
# Proteções diversas contra portscanners, ping of death, ataques DoS, etc.
iptables -A INPUT -m state --state INVALID -j DROP
#Log`s de Acessos
#Proxy
iptables -A INPUT -p tcp --dport 3128 -i eth1 -j LOG --log-level 6 --log-prefix "FIREWALL: squid: "
#TELNET
#iptables -A INPUT -p tcp --dport 23 -i eth1 -j LOG --log-level 6 --log-prefix "FIREWALL: telnet: "
#FTP
#iptables -A INPUT -p tcp --dport 21 -i eth1 -j LOG --log-level 6 --log-prefix "FIREWALL: ftp: "
#SSH
iptables -A INPUT -p tcp --dport 80 -i eth1 -j LOG --log-level 6 --log-prefix "FIREWALL: http: "
echo Log´s Ativado
# Abre para a interface de loopback.
iptables -A INPUT -i lo -j ACCEPT
echo "O Firewall está sendo carregado..."
sleep 1
echo "Tudo pronto!"
sleep 1
}
firewall_stop(){
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
}
case "$1" in
"start")
firewall_start
;;
"stop")
firewall_stop
echo "O firewall está sendo desativado"
sleep 2
echo "ok."
;;
"restart")
echo "O firewall está sendo reiniciado"
sleep 1
echo "ok."
firewall_stop; firewall_start
;;
*)
iptables -L -n
esac
#fim
Para permitir executá-lo:
# chmod +x /etc/rc.d/rc.firewall
Quando quiser colocar ele na inicialização automática:
kedit /etc/rc.d/rc.local
Adicionando a linha:
/etc/rc.d/rc.firewall start
ou execute ele direto
/etc/rc.d/rc.firewall start|stop|restart