firewall mínimo de iptables

firewall mínimo de iptables

Pretendo construir um firewall iptables mínimo no servidor Ubuntu 14.04. Apenas para ter certeza de que estou construindo meu firewall corretamente e executando-o corretamente, estou executando-o na comunidade para verificação. Eu não entendo muito bem o caminho -o interfacee -i interfaceo funcionamento. Cada vez que observo regras de firewall diferentes, elas são configuradas de maneira diferente, o que complica a maneira como minhas regras são configuradas em relação wanàs lanregras. Pelo que entendi é assim:PC>-i interface LAN -o interface>-i interface WAN -o interface>INTERNET. Isso também é verdade para NATtabelas. prerouting>REDE postroutinge forwardignoraREDE.

Este é um conjunto de regras gerais para que o firewall funcione se eu estiver correto onde wanestá eth0e lanestá eth1:

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Este é o meu conjunto de regras onde wanestá eth0e lanestá eth1:

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate DNAT,ESTABLISHED,RELATED -j ACCEPT
iptables -P FORWARD -j DROP

iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 67 -j ACCEPT
iptables -A INPUT -p udp --dport 123 -j ACCEPT
iptables -P INPUT -j DROP

iptables -P OUTPUT -j ACCEPT

iptables -t nat -P INPUT ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

iptables -A INPUT -p tcp -i eth1 --dport 22 -j ACCEPT

Também em relação à execução permanente do firewall. Depois de editar este conjunto de regras, sudo nano -w /etc/rc.localuse sudo chmod 755 /etc/rc.locale sudo rebooteste conjunto de regras será permanente sempre que o dispositivo for inicializado?

Responder1

Antes de ir mais longe. Veja "tabelas de filtros de rede" ( nftables). Ele substitui iptables, iptables6, arptables, ...

nftables é: mais fácil de usar, mais poderoso e mais recente. Em sistemas recentes, o iptables é um front-end (legado) para nftables.

Um exemplo de conjunto de regras nftables: para bloquear o acesso direto do usuário à rede othere forçá-lo a usar um proxy. Ainda possui dois contadores, que foram utilizados nos testes (podem ser removidos). Além disso accept, skuid "servidor proxy" é desnecessário. Como esta é a política atual.

#!/usr/sbin/nft -f

table ip my_table {}
flush table my_table

table ip my_table {
    chain output {
        type filter hook output priority 0; policy accept;
        skuid "other" jump restrict_chain;
        skuid "proxy-server" accept;
    }

    chain restrict_chain {
        counter;
        oifname != "lo" reject;
        tcp dport != "1080" reject;
        counter;
        accept;
    }
}

informação relacionada