ps-martins
(usa Debian)
Enviado em 08/03/2016 - 22:55h
Vamos lá, vou aqui apenas te explicar uma prévia de como se faz, no seu caso, você está usando o Debian,
De o seguinte comando :
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWAR DROP
Agora da um ping para qualquer lugar :
ping 127.0.0.1
ping 8.8.8.8
verá que está tudo bloqueado
### Para Liberar use o ACCEPT ###
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWAR ACCEPT
.
O restante você da uma pesquisada, sobre as outras regras, Pesquise sobre portas, sobre os tipos de tabelas Nat, Filter, Mangle, Raw .
Para listar as “chains” que cada tabela possui use a sinxtaxe:
iptables -L -t <tabela>
INPUT – Regras de entrada de pacotes;
OUTPUT – Regras de saída de pacotes;
FORWARD – Regras de passagem de pacotes pelo firewall.
PREROUTING – Regras que serão processadas antes do roteamento
dos pacotes nas interfaces do firewall;
POSTROUTING – Regras que serão processadas pós roteamento dos
pacotes nas interfaces do firewall;
OUTPUT – Regras de saída de pacotes.
.
Um detalhes muito importante é se o nosso firewall será o gateway da rede, ou
seja, a fronteira entre a sua rede e a internet. Se a resposta for positiva, devemos
estabelecer uma política que faça o repasse dos pacotes de uma rede para a outra
(forward). A primeira coisa que precisamos fazer é liberar o repasse de pacotes entre
as interfaces de rede, no kernel:
root@firewall :~# vim +28 /etc/sysctl.conf
net. ipv4 . ip_forward =1
.
Depois você deve criar um Script de Firewall, e iniciar juntamente com o sistema .
Adicione o cabeçalho para inicialização durante o boot:
root@firewall :~# head /etc/init.d/ssh > /etc/init.d/firewall
.
Conceda a permissão de execução para o script:
root@firewall :~# chmod +x /etc/init.d/firewall
.
root@firewall :~# vim /etc/init.d/firewall
#! /bin/sh
### BEGIN INIT INFO
# Provides : firewall
# Required - Start :
# Required - Stop :
# Default - Start : 2 3 4 5
# Default - Stop : 0 1 6
# Short - Description : firewall
### END INIT INFO
.
##### inicio do Script Firewall #######
case $1 in
stop )
# politicas que aceitam qualquer tipo de conex ão
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
# limpar as regras das tabelas nat e filter
iptables -t nat -F
iptables -t filter -F
;;
start )
# politicas que bloqueiam qualquer tipo de conex ão
iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
;;
restart )
$0 stop
sleep 0.5
$0 start
;;
*)
echo ’POR FAVOR USE " stop | start | restart "’
;;
esac
########### FIM DO SCRIPT Firewall ##############
.
Vamos testar o Script
root@firewall :~# service firewall restart
Quando você da um start no mesmo, verá que não consegue pingar para lugar algum, pois na regra de inicialização,
foi configurado com DROP nas tabelas .
Vou te dar um exemplo de como você deve fazer +- , faz de conta que você quer bloquear tudo e conseguir pingar para o localhost 127.0.0.1, Aí você deve adicionar essa regra no start juntamente com as outras já inseridas.
start)
# permite que a maquina FIREWALL ping a loopback
iptables -A OUTPUT -p icmp -d 0/0 -j ACCEPT
iptables -A INPUT -p icmp -d 127.0.0.1 -j ACCEPT
;;
root@firewall :~# service firewall restart
Agora se você consegue pingar para sua loopback
ping 127.0.0.1
root@firewall :~# service firewall stop
Parando o Firewall você consegue pingar (acesso) a qualquer lugar .
.
Para que ele seja iniciado junto com sistema quando a máquina for ligada, podemos
colocar o "script"nos níveis de execução:
root@firewall :/etc/init .d# insserv -d firewall
.
Todas as regras que são feitas ficam na memória do computador. Caso ele seja
reiniciado, perderemos todas elas. Podemos utilizar os comandos "iptables-save"e
"iptables-restore".
root@firewall :# iptables-save
root@firewall :# iptables-save > /root/firewall
root@firewall :# service firewall stop
root@firewall :# iptables-restore /root/firewall
root@firewall :# iptables -nL ; sleep 5 ; iptables -t nat -nL