hudsonebert
(usa Debian)
Enviado em 19/11/2009 - 14:33h
Pessoal meu problema é o seguinte: Tinha um firewall que funcionava junto com squid, porem está muito aberto, então resolvi modificar e renovar, por isso estou com esse script abaixo. Preciso de duas ajuda que ainda não consegui resolver, como faço e onde inserir no sricpt a regra para tirar um IP do proxy, navegando sem proxy, o anterior tinha e tambem para liberar para toda rede a porta 25 e 110.
E se tiver alguma coisa para melhorar. Agradeço, segue meu script
#!/bin/sh
#
# rc.firewall .By Hudson Ebert
# Variaveis
IFNET=eth0
IFLAN=eth1
IFLOCAL=lo
rede=10.1.1.0/24
#
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_filter
modprobe iptable_mangle
modprobe iptable_nat
modprobe ipt_LOG
modprobe ipt_limit
modprobe ipt_state
modprobe ipt_REDIRECT
modprobe ipt_owner
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_gre
#Limpa as Regras
iptables -F
iptables -X
iptables -F -t nat
iptables -X -t nat
iptables -F -t mangle
iptables -X -t mangle
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/all/accept_source_route
echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
echo "0" > /proc/sys/net/ipv4/conf/all/log_martians
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout
echo "1800" > /proc/sys/net/ipv4/tcp_keepalive_intvl
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/tcp_ecn
echo "1" > /proc/sys/net/ipv4/tcp_timestamps
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
echo "=========================================================|"
echo "|:INICIANDO A CONFIGURAÇÃO DO FIREWALL NETFILTER ATRAVÉS:|"
echo "|: DO IPTABLES :|"
echo "=========================================================|"
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
#Politicas Padrao
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
### Ativando Protecoes Contra Ataques ###
# 1 - Protecao contra Trinoo
iptables -N TRINOO
iptables -A TRINOO -m limit --limit 1/s -j LOG --log-level 6 --log-prefix "FIREWALL(Prot. Trinoo): "
iptables -A TRINOO -j DROP
iptables -A INPUT -p tcp -i $IFNET --dport 27444 -j TRINOO
iptables -A INPUT -p tcp -i $IFNET --dport 27665 -j TRINOO
iptables -A INPUT -p tcp -i $IFNET --dport 31335 -j TRINOO
iptables -A INPUT -p tcp -i $IFNET --dport 34555 -j TRINOO
iptables -A INPUT -p tcp -i $IFNET --dport 35555 -j TRINOO
echo "ativado o bloqueio a tentativa de ataque do tipo Trinoo"
echo "ON .................................................[ OK ]"
# 2 - Protecao contra Trojans
iptables -N TROJAN
iptables -A TROJAN -m limit --limit 1/s -j LOG --log-level 6 --log-prefix "FIREWALL(Prot. Trojan): "
iptables -A TROJAN -j DROP
iptables -A INPUT -p tcp -i $IFNET --dport 666 -j TROJAN
iptables -A INPUT -p tcp -i $IFNET --dport 666 -j TROJAN
iptables -A INPUT -p tcp -i $IFNET --dport 4000 -j TROJAN
iptables -A INPUT -p tcp -i $IFNET --dport 6000 -j TROJAN
iptables -A INPUT -p tcp -i $IFNET --dport 6006 -j TROJAN
iptables -A INPUT -p tcp -i $IFNET --dport 16660 -j TROJAN
echo "ativado o bloqueio a tentativa de ataque do tipo Trojan"
echo "ON .................................................[ OK ]"
# 3 - Protecao contra Worms
iptables -A FORWARD -p tcp --dport 135 -i $IFNET -j REJECT
echo "ativado o bloqueio a tentativa de ataque do tipo Worms"
echo "ON .................................................[ OK ]"
# 4 - Protecao contra Syn-Flood
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
echo "ativado o bloqueio a tentativa de ataque do tipo Syn-Flood"
echo "ON .................................................[ OK ]"
# 5 - Protecao contra Ping da Morte
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
echo "ativado o bloqueio a tentativa de ataque do tipo ping "
echo "ON .................................................[ OK ]"
# 6 - Protecao contra Port Scanners
iptables -N SCANNER
iptables -A SCANNER -m limit --limit 1/s -j LOG --log-level 6 --log-prefix "FIREWALL(Port Scanner): "
iptables -A SCANNER -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -i $IFNET -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL NONE -i $IFNET -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL ALL -i $IFNET -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL FIN,SYN -i $IFNET -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i $IFNET -j SCANNER
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -i $IFNET -j SCANNER
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -i $IFNET -j SCANNER
iptables -A INPUT -p udp -s 0/0 -i $IFNET --dport 33435:33525 -j REJECT
iptables -A INPUT -m state --state INVALID -j REJECT
echo "ativado o bloqueio a tentativa de ataque do tipo Scanners"
echo "ON .................................................[ OK ]"
#iptables -t nat -A PREROUTING -s 10.1.1.2 -j ACCEPT
#Rotiamento e redirecionamento
iptables -A POSTROUTING -t nat -o $IFNET -s $rede -j MASQUERADE
iptables -t nat -A PREROUTING -i $IFLAN -p udp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i $IFLAN -p tcp --dport 80 -j REDIRECT --to-port 3128
echo "ativado o Roteamento"
echo "ON .................................................[ OK ]"
###########Aqui diz o que vai aceitar na rede###################
iptables -A INPUT -i $IFLOCAL -j ACCEPT
iptables -A INPUT -i $IFLAN -s $rede -j ACCEPT
#Mantendo a conexao
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#DNS necessario resolucao de nomes
iptables -A FORWARD -s $rede -d 0/0 -i $IFLAN -o $IFNET -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -s $rede -d 0/0 -i $IFLAN -o $IFNET -p udp --dport 53 -j ACCEPT
# BLOQUEA O QUE NAO SE ENCAIXA NAS REGRAS ACIMA
iptables -A INPUT -p tcp --syn -j DROP
iptables -P FORWARD DROP
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
echo "=========================================================|"
echo "|: CARREGAMENTO BEM SUSSEDIDO :|"
echo "|: DO IPTABLES :|"
echo "=========================================================|"
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"