signout
(usa Slackware)
Enviado em 18/10/2018 - 21:46h
Boas....
Sugiro a leitura destes artigos:
https://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras.
http://eriberto.pro.br/iptables/3.html
https://tiagosleal.wordpress.com/2012/02/27/dominando-estados-da-conexao-com-o-iptables/
https://pt.wikibooks.org/wiki/Guia_do_Linux/Avan%C3%A7ado/Firewall_iptables/Exemplos_de_configura%C3...
É um bom começo...
Algumas observações:
1 - Para cada chain, existe uma regra padrão, voce pode visualizar com o comando iptables -L
nba520 ~ # iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
2 - Entenda que:
INPUT = tudo que tem como destino a maquina onde as regras são aplicadas
OUTPUT = tudo que tem como origem a maquina onde as regras são aplicadas
FORWARD = tudo que passa pela maquina, mas que tem como origem/destino outra maquina.
3 - Compreendendo o item 2, voce pode deixar o INPUT com a politica padrão DROP e depois adicionar somente as regras que terão ACCEPT.
TOME CUIDADO, CASO VOCE DEIXE A POLITICA PADRÃO DE INPUT COMO DROP SEM UMA REGRA DE ACCEPT, VOCE PERDERA ACESSO AO SERVIDOR.COMO VOCE NÃO TEM ACESSO À CONSOLE DO MESMO, SERÁ UMA TREMENDA DOR DE CABEÇA. (teste as regras em uma maquina que voce tenha acesso à console).
4 - Considerando o item 2, o OUTPUT não precisa ser bloqueado já que são pacotes originados na propria maquina(há controversias sobre isto, cada admin pode trabalhar de um jeito, pesquise e veja o que melhor se adequa ao seu caso).
Caso voce considere deixar o OUTPUT como DROP, é necessário uma regra para as conexões que estão vindo para o seu servidor:
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
5 - Baseado nos itens anteriores e considerando as regras que voce mandou:
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 22 -j ACCEPT (se a politica padrão do OUTPUT é ACCEPT, não há necessidade, senão, observe a regra do item 4)
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 80 -j ACCEPT (se a politica padrão do OUTPUT é ACCEPT, não há necessidade, senão, observe a regra do item 4)
iptables -A INPUT -p tcp -d xxx.xxx.xxx.xxx --dport 3306 -j ACCEPT (A ideia é que seja liberado VINDO de um IP e não como destino, então seria -s xxx.xxx.xxx.xxx)
iptables -A OUTPUT -p tcp -d xxx.xxx.xxx.xxx --dport 3306 -j ACCEPT (se a politica padrão do OUTPUT é ACCEPT, não há necessidade, senão, observe a regra do item 4)
6 - Alem destes itens, leia tambem sobre portas e conexões TCP/UDP
Espero que ajude.
[]s