minimale iptables-Firewall

minimale iptables-Firewall

Ich möchte eine minimale iptables-Firewall innerhalb des Ubuntu-Servers 14.04 erstellen. Um sicherzugehen, dass ich meine Firewall richtig baue und ausführe, lasse ich sie zur Überprüfung durch die Community laufen. Ich verstehe die Vorgehensweise nicht ganz -o interface. Jedes Mal, wenn ich mir verschiedene Firewall-Regeln ansehe, sind sie anders konfiguriert, was die Art und -i interfaceWeise, wie meine Regeln eingerichtet sind, komplizierter macht . So wie ich es verstehe, ist es:wanlanPC>-i interface LAN -o interface>-i interface WAN -o interface>INTERNET. Dies gilt auch für NATTabellen. prerouting>NETZWERK postroutingund forwardUmgehungenNETZWERK.

Dies ist ein allgemeiner Regelsatz, um die Firewall funktionsfähig zu machen, wenn ich richtig liege , wanwobei eth0gilt :laneth1

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

Dies ist mein Regelsatz, wobei wanist eth0und lanist 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

Auch bezüglich der permanenten Ausführung der Firewall. Nachdem ich diesen Regelsatz bearbeitet habe, sudo nano -w /etc/rc.localverwende ich ihn sudo chmod 755 /etc/rc.localund sudo rebootdieser Regelsatz wird bei jedem Gerätestart permanent ausgeführt?

Antwort1

Bevor Sie weitermachen, sehen Sie sich die „Net Filter Tables“ ( nftables) an. Sie ersetzen iptables, iptables6, arptables, …

nftables ist: einfacher zu verwenden, leistungsfähiger und neuer. Auf neueren Systemen ist iptables ein (veraltetes) Frontend für nftables.

Ein Beispiel für einen nftables-Regelsatz: Blockieren des direkten Netzwerkzugriffs von Benutzern otherund Erzwingen der Verwendung eines Proxys. Es sind noch zwei Zähler vorhanden, die beim Testen verwendet wurden (sie könnten entfernt werden). Außerdem ist accepting, skuid „proxy-server“ unnötig. Dies ist die aktuelle Richtlinie.

#!/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;
    }
}

verwandte Informationen