Iptables

1. Iptables

Welington Silva de Lima
welington27

(usa Debian)

Enviado em 03/05/2013 - 13:10h

Boa tarde pessoal, criei um iptables dentro do init.d para que o meu script reiniciasse com o meu servidor linux então é o seguinte como faço para habilitar essa regra de firewall e deixar funcionando redondo inicializando com o linux. Meu script de firewall esta logo abaixo verifiquem por favor se pode ter algo errado eu agradeço a vocês...


#!/bin/bash

limpar(){
iptables -F
iptables -t nat -F
iptables -P FORWARD ACCEPT
echo 0 > /proc/sys/net/ipv4/ip_forward
}



IFEXT=eth0
IFINT=eth1

case $1 in
stop)
limpar
;;
start)
limpar
iptables -P FORWARD DROP
echo 1 > /proc/sys/net/ipv4/ip_forward



echo "Liberando SMTP !!! "
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 25 -j ACCEPT
echo "OK :-)"

#----------------------------------------------------------------
echo "Proxy 3128"
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 3128 -j ACCEPT
echo "OK :-)"

#----------------------------------------------------------------
echo "Liberando DNS !!! "
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 53 -j ACCEPT
iptables -A INPUT -p udp -s 0/0 -d 0/0 --dport 53 -j ACCEPT
echo "OK :-)"

#---------------------------------------------------------------
echo "Bloqueando Bate papo Gmail!!! "
iptables -I INPUT -s chatenabled.mail.google.com -j DROP
iptables -A OUTPUT -d chatenabled.mail.google.com -j DROP
iptables -I FORWARD -s 0/0 -d chatenabled.mail.google.com -j DROP

#-----------------------------------------------------------------
echo "Liberando HTTPD !!! "
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 8000 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 8080 -j ACCEPT
echo "OK :-)"

#-----------------------------------------------------------------
echo "Liberando POP3 !!! "
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 110 -j ACCEPT
echo "OK :-)"

#------------------------------------------------------------------
echo "Liberando WEB MAIL !!! "
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 143 -j ACCEPT
iptables -A INPUT -p udp -s 0/0 -d 0/0 --dport 143 -j ACCEPT
echo "OK :-)"

#-----------------------------------------------------------------
echo "Bloqueando SUNRPC !!! "
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 111 -j REJECT
echo "OK :-)"
#-------------------------------------------------------------------


echo "firewall executado as: $(date +%R:%F)" >> /root/nat.log
;;
*)
echo " Use: $(basename $0) {start|stop}"
;;
esac



  


2. Re: Iptables

Buckminster
Buckminster

(usa Debian)

Enviado em 03/05/2013 - 13:46h

Dê permissão de execução, como root:

# chmod +x /etc/init.d/nome_do_arquivo

E coloque a linha abaixo no arquivo /etc/rc.local ANTES de exit 0, ficando assim:

/etc/init.d/nome_do_arquivo start
exit 0

Salve e saia do arquivo e reinicie a máquina e teste.

Dessa maneira você pode iniciar, parar ou reiniciar o script no terminal com:
# /etc/init.d/nome_do_arquivo start, stop ou restart.

Você tem o Squid nesse servidor também?


3. Re: Iptables

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 03/05/2013 - 14:09h

seu script firewall tem brechas de segurança, pois esta tudo liberado...

recomendo que leia o post e veja o script da explicação de http://goo.gl/pQRtk


4. Responder

Welington Silva de Lima
welington27

(usa Debian)

Enviado em 03/05/2013 - 15:21h

Esse script é só um esboço inicial nunca montei um bom Firewall é a primeira vez que monto um iptables, ai quero ir pegando aos poucos uma boa descrição de firewall e tenho sim um squid bloqueando sites. Tenho que relacionar o meu squid com o meu iptables?


Só pra reforçar o meu squid quando eu reinicio da esse erro aqui ou melhor aparesce essas mensagens aqui: O que seria?


2013/05/03 15:25:52| WARNING: because of this '.server1.kproxy.com' is ignored to keep splay tree searching predictable
2013/05/03 15:25:52| WARNING: You should probably remove '.server1.kproxy.com' from the ACL named 'sitesquentes'
2013/05/03 15:25:52| WARNING: '.server14.kproxy.com' is a subdomain of '.kproxy.com'
2013/05/03 15:25:52| WARNING: because of this '.server14.kproxy.com' is ignored to keep splay tree searching predictable
2013/05/03 15:25:52| WARNING: You should probably remove '.server14.kproxy.com' from the ACL named 'sitesquentes'
2013/05/03 15:25:52| WARNING: '.images.orkut.com' is a subdomain of '.orkut.com'
2013/05/03 15:25:52| WARNING: because of this '.images.orkut.com' is ignored to keep splay tree searching predictable
2013/05/03 15:25:52| WARNING: You should probably remove '.images.orkut.com' from the ACL named 'sitesquentes'
2013/05/03 15:25:52| WARNING: '.images.orkut.com' is a subdomain of '.orkut.com'
2013/05/03 15:25:52| WARNING: because of this '.images.orkut.com' is ignored to keep splay tree searching predictable
2013/05/03 15:25:52| WARNING: You should probably remove '.images.orkut.com' from the ACL named 'sitesquentes'
2013/05/03 15:25:52| WARNING: '.www34.meebo.com' is a subdomain of '.meebo.com'
2013/05/03 15:25:52| WARNING: because of this '.meebo.com' is ignored to keep splay tree searching predictable
2013/05/03 15:25:52| WARNING: You should probably remove '.www34.meebo.com' from the ACL named 'sitesquentes'



5. Responder

Welington Silva de Lima
welington27

(usa Debian)

Enviado em 03/05/2013 - 15:48h

Me diz pessoal como esta saindo esse script: Com esse firewall posso iniciar uma configuração segura?

#!/bin/bash

limpar(){
iptables -F
iptables -t nat -F
iptables -P FORWARD ACCEPT
echo 0 > /proc/sys/net/ipv4/ip_forward
}



IFEXT=eth0
IFINT=eth1

case $1 in
stop)
limpar
;;
start)
limpar
iptables -P FORWARD DROP
echo 1 > /proc/sys/net/ipv4/ip_forward

#--------------------------------------------------------------

echo " Bloqueando BackOriffice!!!"
iptables -A OUTPUT -p tcp --dport 1243 -j REJECT
iptables -A OUTPUT -p udp --dport 1243 -j REJECT
iptables -A OUTPUT -p tcp --dport 5800 -j REJECT
iptables -A OUTPUT -p tcp --dport 5801 -j REJECT
iptables -A OUTPUT -p tcp --dport 5900 -j REJECT
iptables -A OUTPUT -p tcp --dport 5901 -j REJECT
iptables -A OUTPUT -p tcp --dport 31337 -j REJECT
iptables -A OUTPUT -p tcp --dport 31338 -j REJECT
iptables -A OUTPUT -p tcp --dport 6000 -j REJECT
iptables -A OUTPUT -p tcp --dport 64320 -j REJECT
iptables -A OUTPUT -p udp --dport 64320 -j REJECT
iptables -A OUTPUT -p tcp --dport 26000 -j REJECT
iptables -A OUTPUT -p tcp --dport 8010 -j REJECT
iptables -A OUTPUT -p tcp --dport 6000 -j REJECT
iptables -A OUTPUT -p tcp --dport 6001 -j REJECT
iptables -A OUTPUT -p udp --dport 6001 -j REJECT
iptables -A OUTPUT -p tcp --dport 3306 -j REJECT
iptables -A OUTPUT -p udp --dport 161 -j REJECT
iptables -A OUTPUT -p udp --dport 111 -j REJECT
iptables -A OUTPUT -p tcp --dport 111 -j REJECT
iptables -A OUTPUT -p udp --dport 162 -j REJECT
iptables -A OUTPUT -p udp --dport 23 -j REJECT
iptables -A OUTPUT -p tcp --dport 111 -j REJECT
iptables -A OUTPUT -p tcp --dport 143 -j REJECT
echo "OH !!"

iptables -A OUTPUT -p tcp -o $IFEXT --dport 137 -j DROP
iptables -A OUTPUT -p udp -o $IFEXT --dport 137 -j DROP
iptables -A OUTPUT -p tcp -o $IFEXT --dport 138 -j DROP
iptables -A OUTPUT -p udp -o $IFEXT --dport 138 -j DROP
iptables -A OUTPUT -p udp -o $IFEXT --dport 139 -j DROP
iptables -A OUTPUT -p tcp -o $IFEXT --dport 139 -j DROP
iptables -A OUTPUT -p tcp -o $IFEXT --dport 445 -j DROP
iptables -A OUTPUT -p udp -o $IFEXT --dport 445 -j DROP
iptables -A OUTPUT -p tcp -o $IFEXT --dport 1512 -j DROP
iptables -A OUTPUT -p udp -o $IFEXT --dport 1512 -j DROP
iptables -A INPUT -p tcp -i $IFEXT --dport 6000 -j DROP
iptables -A INPUT -p udp -i $IFEXT --dport 6000 -j DROP
iptables -A INPUT -p tcp -i $IFEXT --dport 137 -j DROP
iptables -A INPUT -p udp -i $IFEXT --dport 137 -j DROP
iptables -A INPUT -p tcp -i $IFEXT --dport 138 -j DROP
iptables -A INPUT -p udp -i $IFEXT --dport 138 -j DROP
iptables -A INPUT -p udp -i $IFEXT --dport 139 -j DROP
iptables -A INPUT -p tcp -i $IFEXT --dport 139 -j DROP
iptables -A INPUT -p tcp -i $IFEXT --dport 445 -j DROP
iptables -A INPUT -p udp -i $IFEXT --dport 445 -j DROP
iptables -A INPUT -p tcp -i $IFEXT --dport 1512 -j DROP
iptables -A INPUT -p udp -i $IFEXT --dport 1512 -j DROP
echo "OK :-) "

#--------------------------------------------------------------
echo "Bloqueando Pacotes TCP Mal Formados"
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
echo "OK :-) "

#--------------------------------------------------------------
echo "Verifica Pacotes fragmentados na Rede"
iptables -N VALID_CHECK
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL SYN,ACK,FIN,URG -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL ALL -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL NONE -j DROP
echo "OK :-) "

#-----------------------------------------------------------------
echo "Protecao Contra ataque DOS"
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -p tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j DROP
echo "OK :-) "

#--------------------------------------------------------------
echo "Liberando SMTP !!! "
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 25 -j ACCEPT
echo "OK :-)"

#----------------------------------------------------------------
echo "Proxy 3128"
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 3128 -j ACCEPT
echo "OK :-)"

#----------------------------------------------------------------
echo "Liberando DNS !!! "
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 53 -j ACCEPT
iptables -A INPUT -p udp -s 0/0 -d 0/0 --dport 53 -j ACCEPT
echo "OK :-)"

#---------------------------------------------------------------
echo "Bloqueando Bate papo Gmail!!! "
iptables -I INPUT -s chatenabled.mail.google.com -j DROP
iptables -A OUTPUT -d chatenabled.mail.google.com -j DROP
iptables -I FORWARD -s 0/0 -d chatenabled.mail.google.com -j DROP

#-----------------------------------------------------------------
echo "Liberando HTTPD !!! "
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 8000 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 8080 -j ACCEPT
echo "OK :-)"

#-----------------------------------------------------------------
echo "Liberando POP3 !!! "
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 110 -j ACCEPT
echo "OK :-)"

#------------------------------------------------------------------
echo "Liberando WEB MAIL !!! "
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 143 -j ACCEPT
iptables -A INPUT -p udp -s 0/0 -d 0/0 --dport 143 -j ACCEPT
echo "OK :-)"

#-----------------------------------------------------------------
echo "Bloqueando SUNRPC !!! "
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 111 -j REJECT
echo "OK :-)"
#-------------------------------------------------------------------


echo "firewall executado as: $(date +%R:%F)" >> /root/nat.log
;;
*)
echo " Use: $(basename $0) {start|stop}"
;;
esac



6. Re: Iptables

Buckminster
Buckminster

(usa Debian)

Enviado em 05/05/2013 - 01:51h

2013/05/03 15:25:52| WARNING: because of this '.server1.kproxy.com' is ignored to keep splay tree searching predictable
2013/05/03 15:25:52| WARNING: You should probably remove '.server1.kproxy.com' from the ACL named 'sitesquentes'
2013/05/03 15:25:52| WARNING: '.server14.kproxy.com' is a subdomain of '.kproxy.com'

Aviso: '.server1.kproxy.com' está sendo ignorado para manter a busca previsível.
Aviso: você deve remover '.server1.kproxy.com' da ACL 'sitesquentes'.
Aviso: '.server1.kproxy.com' é um subdomínio de '.kproxy.com'

O mesmo vale para as outras ACLs da mensagem. Se você já bloqueou o domínio, não precisa bloquear os subdomínios. O Squid faz isso sozinho.

No teu script:

iptables -P INPUT DROP << acrescente essa linha.
iptables -P FORWARD DROP

E pode comentar ou apagar todas as regras de bloqueio na chain INPUT uma vez que a política padrão ficará como DROP.
Daí libere abaixo o que você quiser na chain INPUT (se quiser liberar alguma coisa).






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts