
Ich ersetze einen drahtlosen Router/eine Firewall mit Tomato durch einen Debian-Server und war begeistert, als ich die iptables-Konfiguration von Tomato gefunden habe, sodass ichdirekt auf den neuen Server importieren(meine Frage davor). Die iptables-Konfigurationsdatei (unten) von Tomato schlägt iptables-restoreunter Debian fehl:
# iptables-restore < iptables.eth0-eth1
iptables-restore v1.4.14: Couldn't load match `mport':No such file or directory
Error occurred at line: 7
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
Gibt es eine Möglichkeit, mport in „moderne“ iptables zu bekommen?
Oder könnten Sie mir bitte beim Übersetzen mport
helfen multiport
?
Das Googeln iptables mport
war ziemlich mühsam, aber schließlich fand ichjemand beschwert sich, dass der Port weg istund einMultiport-Tutorialmit einem flüchtigen Hinweis auf die mport-Erweiterung, die dazu führte, dass ich in den Dateisystemen der beiden Boxen nach Modulen herumschnüffelte und auch jedes „Firewall“-Tool von Debian ausprobierte, in der Hoffnung, dass auf magische Weise eines dabei wäre mport
. Ich gebe zu, dass ich von der Benutzeroberfläche von Tomato ziemlich verwöhnt bin – jedes Debian-Paket, das ich seitdem ausprobiert habe, hat mich immer verwirrter zurückgelassen (GUI oder CLI). Wenn ich den Server dazu bringen könnte, alles kurzzeitig zu routen, mason
könnte es meiner Meinung nach funktionieren. Kein Wunder, dass alle iptables hassen.
Ich habe mehr Zeit damit verbracht, die Fehler herauszufinden, als ich sollte. Hätte ich so viel Zeit damit verbracht, zu verstehen , hätte ich die Regeln iptables
wahrscheinlich in übersetzen können . Außerdem habe ich überlegt, ob ich bei SuperUser posten soll, aber die wenigen mit iptables markierten Fragen waren nicht so gut wie die, die ich hier bei ServerFault lese.mport
multiport
Suche nach Modulen:
Ich habe mich per SSH mit der Firmware beim WLAN-Router angemeldet und das Modul in tomato
gefunden . Im Verzeichnis steht aber kein , nur .libipt_mport.so/usr/lib/iptables
/lib/modules/2.4.20/kernel/net/ipv4/netfilter
libipt_mport.soipt_multiport.o
Auf der Debian-Box (Neuinstallation von Wheezy) habe ich updatedb
und verwendet locate
, um nach (nach dem MASQUERADE-Objekt) zu suchen MASQ
und habe festgestellt, dass das Verzeichnis/lib/modules/3.2.0-4-amd64/kernel/net/ipv4/netfilter
eine gute Auswahl an iptable_*
und nf_nat_*
ko
Dateien enthält. Die Suche hat auch libxt_multiport.so
in gefunden /lib/xtables
, aber es gibt keinen Verweis auf Objektmodule für mport
.
Gibt es darüber hinaus noch weitere Probleme unten? Ich sehe das Zeug auf Ebene 7 und habe das Gefühl, dass dies als Nächstes zu weiteren Komplikationen führen wird.
Konfigurationsdatei von Tomato:
Hinweise:
» 99.1.81.209 ist die WAN-IP
» 10.0.0.2 ist die IP für diese Debian-Firewall
» 10.0.0.20 ist ein Server
» Die öffentliche Schnittstelle von Tomato vlan0
wurde geändert in eth0
» Die interne Schnittstelle von Tomato br0
wurde geändert in eth1
» Die Ports 5060:5090 sind für VoIP (wahrscheinlich wird dieser Bereich nicht benötigt?)
*mangle
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:QOSO - [0:0]
-A QOSO -j CONNMARK --restore-mark --mask 0xff
-A QOSO -m connmark ! --mark 0/0xff00 -j RETURN
-A QOSO -p tcp -m mport --dports 80,443 -m bcount --range 0x0-0x7ffff -j CONNMARK --set-return 0x2/0xFF
-A QOSO -p tcp -m mport --dports 80,443 -m bcount --range 0x80000 -j CONNMARK --set-return 0x4/0xFF
-A QOSO -p udp --dport 53 -m bcount --range 0x0-0x7ff -j CONNMARK --set-return 0x1/0xFF
-A QOSO -p tcp --dport 53 -m bcount --range 0x0-0x7ff -j CONNMARK --set-return 0x1/0xFF
-A QOSO -p udp --dport 53 -m bcount --range 0x800 -j CONNMARK --set-return 0x5/0xFF
-A QOSO -p tcp --dport 53 -m bcount --range 0x800 -j CONNMARK --set-return 0x5/0xFF
-A QOSO -p udp --dport 1024:65535 -j CONNMARK --set-return 0x5/0xFF
-A QOSO -p tcp --dport 1024:65535 -j CONNMARK --set-return 0x5/0xFF
-A QOSO -p udp -m mport --ports 5060:5090 -m layer7 --l7dir /etc/l7-protocols --l7proto sip -j CONNMARK --set-return 0x101/0xFF
-I QOSO -j BCOUNT
-A QOSO -j CONNMARK --set-return 0x4
-A FORWARD -o eth0 -j QOSO
-A OUTPUT -o eth0 -j QOSO
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -i eth0 -d 10.0.0.2/255.255.255.0 -j DROP
-A PREROUTING -p icmp -d 99.1.81.209 -j DNAT --to-destination 10.0.0.2
-A PREROUTING -p tcp -m tcp -d 99.1.81.209 --dport 22 -j DNAT --to-destination 10.0.0.2:22
-A PREROUTING -p tcp -d 99.1.81.209 --dport 10022 -j DNAT --to-destination 10.0.0.20:22
-A POSTROUTING -p tcp --dport 22 -s 10.0.0.2/255.255.255.0 -d 10.0.0.20 -j SNAT --to-source 99.1.81.209
:upnp - [0:0]
-A PREROUTING -d 99.1.81.209 -j upnp
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
:INPUT DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i eth1 -d 99.1.81.209 -j DROP
-A INPUT -m state --state INVALID -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-N shlimit
-A shlimit -m recent --set --name shlimit
-A shlimit -m recent --update --hitcount 3 --seconds 60 --name shlimit -j DROP
-A INPUT -p tcp --dport 22 -m state --state NEW -j shlimit
-A INPUT -i eth1 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp -d 10.0.0.2 --dport 22 -j ACCEPT
:FORWARD DROP [0:0]
-A FORWARD -i eth1 -o eth1 -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1461: -j TCPMSS --set-mss 1460
:L7in - [0:0]
-A FORWARD -i eth0 -j L7in
-A L7in -m layer7 --l7dir /etc/l7-protocols --l7proto sip -j RETURN
:wanin - [0:0]
:wanout - [0:0]
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -j wanin
-A FORWARD -o eth0 -j wanout
-A FORWARD -i eth1 -j ACCEPT
:upnp - [0:0]
-A FORWARD -i eth0 -j upnp
-A wanin -p tcp -m tcp -d 10.0.0.20 --dport 22 -j ACCEPT
COMMIT
Antwort1
Soweit ich weiß, sind die Parameter für das multiport
Modul identisch mit den Parametern für das mport
von Ihnen angezeigte Modul.
Versuchen Sie eine einfache Suchen-und-Ersetzen-Funktion:
s/-m mport/-m multiport/g
PS: Sicherlich nichtallehasst iptables; ich persönlichLIEBEiptables ;-)