Iptables - Liberação de portas no VPS

Iniciado por rafatres, 17 de Março de 2014, 00:03

tópico anterior - próximo tópico

zekkerj

Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

rafatres

Criei um arquivo chamado firewall.sh com o seguinte conteúdo:
#!/bin/sh

modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 80 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
iptables -A INPUT -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
iptables -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
iptables -A INPUT -p tcp -m tcp --dport 60000:65535 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 20 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 60000:65535 -j ACCEPT


Mas, ainda preciso otimizar essas regras do iptables. O ping não funciona e nem o apt-get :/

zekkerj

Política DROP na cadeia OUTPUT ("iptables -p OUTPUT DROP") é apenas para os bravos de coração. Deixe isso pra quando você estiver mais tarimbado; por enquanto, use política ACCEPT, não tente controlar a saída de seu servidor.

O ping é protocolo ICMP, mensagem "echo". mas vc deve considerar liberá-lo apenas para a rede interna.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

rafatres

zekkerj,
Apaguei o DROP no output. Por enquanto vou deixar o ping assim, tentei pingar do meu pc para a rede e não foi...
E agora, quanto a colocar para carregar automaticamente ao iniciar/reiniciar o SO, tu poderias me ajudar (/etc/init.d/)?
Obrigado.

zekkerj

vc tem que usar o comando "update-rc.d" para que o script inicie. Logicamente, ele tem que ser executável; e é conveniente que esteja na forma de um script LSB, ou seja, ele deveria reconhecer os parâmetros de linha de comando "start", "stop" e "restart", no mínimo, e reagir de acordo.

Também tem uns outros truques que vc pode usar, se quiser transformar seu script em LSB-Compatible.

Vou ver se consigo um script de exemplo e posto aqui.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

rafatres

zekkerj,
Achei uma forma mais simples. No /etc/rc.local, colocar um if para ver se o arquivo com as regras existe, aí ele dar iptables-restore arquivo.formato. :)
Só preciso revisar minhas regras, pois estou com algumas regras meio fortes e colocar os comandos pra ativar os módulos junto com o if.
Obrigado,