IPTables: permite apenas acesso SSH, nada mais dentro ou fora

IPTables: permite apenas acesso SSH, nada mais dentro ou fora

Como você configura o IPTables para que ele funcioneapenaspermitir a entrada de SSH e não permitir nenhum outro tráfegoou fora?

Alguma precaução de segurança que alguém possa recomendar?

Eu tenho um servidor que euacreditarfoi migrado do GoDaddy com sucesso e euacreditarnão está mais em uso.

Mas quero ter certeza só porque... nunca se sabe. :)

Observe que este é um servidor virtual dedicado da GoDaddy... Isso significa nenhum backup e praticamente nenhum suporte.

Responder1

Você precisa apenas definir a política padrão como DROP nas cadeias INPUT e OUTPUT.

Para permitir a entrada SSH, você precisa dos seguintes comandos:

$ sudo iptables -P INPUT DROP
$ sudo iptables -P OUTPUT DROP
$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
$ sudo iptables -A OUTPUT -o lo -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

Os dois últimos comandos permitem o tráfego de loopback, pois isso é exigido por alguns aplicativos para funcionar corretamente. Você pode restringir o acesso SSH de um IP específico usando -s source_ipa opção.

Executar os comandos na ordem mostrada acima fará com que sua sessão SSH atual seja interrompida. Isso ocorre porque os comandos do iptables entram em vigor imediatamente. Você precisa executá-los em um script de shell para evitar perder a capacidade de conexão com sua máquina ao executá-los remotamente.

Responder2

Algo assim:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT  # or iptables -P INPUT DROP

iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j REJECT # or iptables -P OUTPUT DROP

informação relacionada