Estou tentando remover todas as conexões de entrada do meu servidor, exceto de redes específicas. Ao mesmo tempo, quero manter todas as conexões de saída do meu servidor para a rede externa (qualquer rede por qualquer protocolo) aberta. Ele está funcionando, fazendo abaixo duas alterações na cadeia INPUT:
Nota: o teste foi realizado com 3 servidores (VMs) com IPs na rede 192.168.0.0/24 e todas as regras definidas no server3 (IP: 192.168.0.3)
a. iptables -P INPUT DROP
b. iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
[root@server3 ~]# iptables -nvL
Chain INPUT (policy DROP 124 packets, 22308 bytes)
pkts bytes target prot opt in out source destination
265 34603 ACCEPT all -- * * 192.168.0.0/24 0.0.0.0/0
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 433 packets, 34693 bytes)
pkts bytes target prot opt in out source destination
No entanto, minha primeira pergunta:
- Quando defini a primeira regra acima (alterando a política padrão da cadeia INPUT), ela interrompeu todas as conexões de saída (ssh, ping) do meu servidor (IP: 192.168.0.3). Por que isso está acontecendo, se minha política de cadeia OUTPUT padrão ainda é aceita e eu não tenho nenhuma regra definida na cadeia OUTPUT?
Eu queria conseguir a mesma coisa, não alterando a política padrão para a cadeia INPUT, assim:
c. iptables -I INPUT -j DROP
d. iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
Mas ainda bloqueia todas as conexões de entrada / saída de / para meu servidor3. Isso me leva à minha segunda pergunta:
- Como estão as regras
c.
ea.
funcionando de maneira diferente? Por favor, ajude na compreensão, como eu sou novo em firewalls linux.
order
regras em cada CADEIA é mais clara. Mais uma consulta relacionada àrule
que você sugeriu. Comportará o mesmo queiptables -I INPUT 1 -m state --state ESTABLISHED,RELATED -j ACCEPT
:?