25 Nëtzlech IPtable Firewall Regelen All Linux Administrator Sollt Wësse


Konfiguréiert d'Firewall sou datt et de System an d'Benotzer Ufuerderunge fir souwuel erakommen an erausgaang Verbindungen entsprécht, ouni datt de System vulnérabel ass fir Attacken.

Dëst ass wou iptables praktesch kommen. Iptables ass eng Linux Kommandozeil Firewall déi Systemadministrateuren erlaabt den erakommen an erausginn Traffic iwwer eng Rei vu konfiguréierbaren Tabellregelen ze managen.

Iptables benotzt eng Rei vun Dëscher déi Ketten hunn, déi Set vun agebaute oder Benotzerdefinéierte Reegelen enthalen. Dank hinnen kann e Systemadministrator den Netzverkéier vu sengem System richteg filteren.

Per iptables Handbuch ginn et momentan 3 Zorte vun Dëscher:

    1. FILTER – dëst ass d'Standardtabell, déi déi agebaute Ketten enthält fir:
      1. INPUT  – Pakete fir lokal Sockets bestëmmt
      2. FORWARD - Päckchen duerch de System geréckelt
      3. OUTPUT - Pakete lokal generéiert

      1. PREROUTING - benotzt fir e Paket z'änneren soubal e kritt gëtt
      2. OUTPUT - benotzt fir lokal generéiert Pakete z'änneren
      3. POSTROUTING - benotzt fir Päck z'änneren wéi se amgaang sinn erauszekommen

      1. PREROUTING - fir erakommen Verbindungen z'änneren
      2. OUTPUT - fir lokal generéiert  Päckchen z'änneren
      3. INPUT - fir erakommen Pakete
      4. POSTROUTING - fir Päck z'änneren wéi se amgaang sinn eraus ze goen
      5. FORWARD - fir Päckchen duerch d'Këscht geréckelt

      An dësem Artikel gesitt Dir e puer nëtzlech Kommandoen, déi Iech hëllefen, Är Linux Box Firewall duerch iptables ze verwalten. Fir den Zweck vun dësem Artikel fänken ech mat méi einfache Kommandoen un a ginn op méi komplex bis zum Schluss.

      1. Start/Stop/Restart Iptables Firewall

      Als éischt sollt Dir wësse wéi Dir iptables Service a verschiddene Linux Verdeelungen verwalten. Dëst ass relativ einfach:

      ------------ On Cent/RHEL 7 and Fedora 22+ ------------
      # systemctl start iptables
      # systemctl stop iptables
      # systemctl restart iptables
      
      ------------ On Cent/RHEL 6/5 and Fedora ------------
      # /etc/init.d/iptables start 
      # /etc/init.d/iptables stop
      # /etc/init.d/iptables restart
      

      2. Check all IPtables Firewall Regelen

      Wann Dir Är existent Regele wëllt iwwerpréiwen, benotzt de folgende Kommando:

      # iptables -L -n -v
      

      Dëst sollt d'Ausgab ähnlech wéi deen hei ënnen zréckginn:

      Chain INPUT (policy ACCEPT 1129K packets, 415M bytes)
       pkts bytes target prot opt in out source destination 
       0 0 ACCEPT tcp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
       0 0 ACCEPT udp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
       0 0 ACCEPT tcp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
       0 0 ACCEPT udp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
      Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
       pkts bytes target prot opt in out source destination 
       0 0 ACCEPT all -- * lxcbr0 0.0.0.0/0 0.0.0.0/0 
       0 0 ACCEPT all -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0
      Chain OUTPUT (policy ACCEPT 354K packets, 185M bytes)
       pkts bytes target prot opt in out source destination

      Wann Dir léiwer d'Regele fir eng spezifesch Tabelle kontrolléiere wëllt, kënnt Dir d'Optioun -t benotzen, gefollegt vun der Tabell déi Dir wëllt iwwerpréiwen. Zum Beispill, fir d'Regelen an der NAT Tabell ze kontrolléieren, kënnt Dir benotzen:

      # iptables -t nat -L -v -n
      

      3. Spär spezifesch IP Adress an IPtables Firewall

      Wann Dir eng ongewéinlech oder mëssbraucht Aktivitéit vun enger IP Adress fannt, kënnt Dir dës IP Adress mat der folgender Regel blockéieren:

      # iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
      

      Wou Dir musst \xxx.xxx.xxx.xxx\ mat der aktueller IP Adress änneren. Sidd ganz virsiichteg wann Dir dëse Kommando leeft, well Dir kënnt zoufälleg Är eege IP Adress blockéieren. D'Optioun -A fügt d'Regel um Enn vun der gewielter Kette un.

      Am Fall wou Dir nëmmen den TCP Traffic vun dëser IP Adress blockéiere wëllt, kënnt Dir d'Optioun -p benotzen, déi de Protokoll spezifizéiert. Esou gesäit de Kommando esou aus:

      # iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP
      

      4. Spär IP Adress an IPtables Firewall

      Wann Dir decidéiert hutt datt Dir net méi Ufroe vun enger spezifescher IP Adress blockéiere wëllt, kënnt Dir d'Blockéierungsregel mat dem folgenden Kommando läschen:

      # iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
      

      D'Optioun -D läscht een oder méi Regelen aus der gewielter Kette. Wann Dir léiwer déi méi laang Optioun benotzt, kënnt Dir --läschen benotzen.

      5. Spär spezifesch Port op IPtables Firewall

      Heiansdo wëllt Dir Entréeën oder erausginn Verbindungen op engem spezifeschen Hafen blockéieren. Et ass eng gutt Sécherheetsmoossnam an Dir sollt wierklech iwwer dës Saach denken wann Dir Är Firewall opstellt.

      Fir erausgaang Verbindungen op engem spezifesche Port ze blockéieren benotzt:

      # iptables -A OUTPUT -p tcp --dport xxx -j DROP
      

      Fir Entréeën Verbindungen z'erméiglechen benotzt:

      # iptables -A INPUT -p tcp --dport xxx -j ACCEPT
      

      A béide Beispiller ännert \xxx\ mam aktuellen Hafen deen Dir wëllt erlaben. Wann Dir den UDP-Traffic blockéiere wëllt anstatt TCP, ännert einfach \tcp\ mat \udp\ an der uewe genannter iptables-Regel.

      6. Erlaben Multiple Häfen op IPtables benotzt Multiport

      Dir kënnt e puer Ports gläichzäiteg erlaben, andeems Dir Multiport benotzt, hei drënner fannt Dir esou Regelen fir souwuel erakommen an erausgaang Verbindungen:

      # iptables -A INPUT  -p tcp -m multiport --dports 22,80,443 -j ACCEPT
      # iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT
      

      7. Erlaabt Spezifesch Network Range op Besonnesch Port op IPtables

      Dir wëllt bestëmmte Verbindungen op spezifesch port zu engem bestëmmte Reseau limitéieren. Loosst eis soen datt Dir erausginn Verbindungen um Port 22 zum Netzwierk 192.168.100.0/24 erlaabt.

      Dir kënnt et mat dësem Kommando maachen:

      # iptables -A OUTPUT -p tcp -d 192.168.100.0/24 --dport 22 -j ACCEPT
      

      8. Block Facebook op IPtables Firewall

      E puer Patronen wëllen den Zougang zu Facebook fir hir Mataarbechter blockéieren. Drënner ass e Beispill wéi de Traffic op Facebook blockéiert.

      Opgepasst: Wann Dir e System Administrateur sidd an dës Reegele musse gëllen, denkt drun datt Är Kollegen ophalen mat Iech ze schwätzen :)

      Fannt als éischt d'IP Adressen déi vu Facebook benotzt ginn:

      # host facebook.com 
      facebook.com has address 66.220.156.68
      
      # whois 66.220.156.68 | grep CIDR
      CIDR: 66.220.144.0/20
      

      Dir kënnt dann dat Facebook Netzwierk blockéieren mat:

      # iptables -A OUTPUT -p tcp -d 66.220.144.0/20 -j DROP
      

      Denkt drun datt d'IP Adressbereich vu Facebook benotzt ka variéieren an Ärem Land.

      9. Setup Port Forwarding an IPtables

      Heiansdo wëllt Dir vläicht de Verkéier vun engem Service an en aneren Hafen weiderginn. Dir kënnt dëst mat dem folgenden Kommando erreechen:

      # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525
      

      Deen uewe genannte Kommando féiert all erakommen Traffic op den Netzwierkinterface eth0, vum Port 25 op den Port 2525. Dir kënnt d'Ports änneren mat deenen Dir braucht.

      10. Block Network Iwwerschwemmung op Apache Port mat IPtables

      Heiansdo kënnen IP Adressen ze vill Verbindunge fir Web Ports op Ärer Websäit ufroen. Dëst kann d'Zuel vu Probleemer verursaachen a fir esou Probleemer ze vermeiden, kënnt Dir déi folgend Regel benotzen:

      # iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT
      

      Deen uewe genannte Kommando limitéiert déi erakommen Verbindunge vu pro Minutt op 100 a setzt e Limitburst op 200. Dir kënnt d'Limit an d'Limitburst op Är eege spezifesch Ufuerderungen änneren.

      11. Block Entréeën Ping Ufroen op IPtables

      E puer Systemadministratoren blockéieren gären erakommen Ping-Ufroe wéinst Sécherheetsbedenken. Och wann d'Drohung net sou grouss ass, ass et gutt ze wëssen wéi een esou Ufro blockéiert:

      # iptables -A INPUT -p icmp -i eth0 -j DROP
      

      12. Erlaben loopback Zougang

      Loopback Zougang (Zougang vum 127.0.0.1) ass wichteg an Dir sollt et ëmmer aktiv loossen:

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

      13. Halen e Log vun erofgefall Network Pakete op IPtables

      Wann Dir déi erofgefallene Päckchen op Netzwierkinterface eth0 aloggen wëllt, kënnt Dir de folgende Kommando benotzen:

      # iptables -A INPUT -i eth0 -j LOG --log-prefix "IPtables dropped packets:"
      

      Dir kënnt de Wäert no \--log-Präfix\ mat eppes no Ärem Choix änneren. D'Messagen sinn ageloggt /var/log/messages an Dir kënnt no se sichen mat:

      # grep "IPtables dropped packets:" /var/log/messages
      

      14. Block Zougang zu spezifesch MAC Adress op IPtables

      Dir kënnt den Zougang zu Ärem System vun enger spezifescher MAC Adress blockéieren andeems Dir:

      # iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP
      

      Natierlech musst Dir \00:00:00:00:00:00\ mat der aktueller MAC Adress änneren, déi Dir blockéiere wëllt.

      15. Limitéiert d'Zuel vun Concurrent Verbindungen pro IP Adress

      Wann Dir net ze vill gläichzäiteg Verbindung vun enger eenzeger IP Adress op engem bestëmmten Hafen etabléiert wëllt, kënnt Dir de Kommando hei ënnen benotzen:

      # iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT
      

      Deen uewe genannte Kommando erlaabt net méi wéi 3 Verbindungen pro Client. Natierlech kënnt Dir d'Portnummer änneren fir verschidde Service ze passen. Och de --connlimit-above soll geännert ginn fir Är Ufuerderung ze passen.

      16. Sich bannent IPtables Regel

      Wann Dir Är iptables Regelen definéiert hutt, wëllt Dir vun Zäit zu Zäit sichen a kann se änneren. En einfache Wee fir an Äre Reegelen ze sichen ass ze benotzen:

      # iptables -L $table -v -n | grep $string
      

      Am uewe genannte Beispill musst Dir $Table änneren mat der aktueller Tabell, an där Dir wëllt sichen an $string mat der aktueller String, fir déi Dir sicht.

      Hei ass e Beispill:

      # iptables -L INPUT -v -n | grep 192.168.0.100
      

      17. Definéieren New IPTables Kette

      Mat iptables kënnt Dir Är eege Kette definéieren a personaliséiert Regelen dran späicheren. Fir eng Kette ze definéieren, benotzt:

      # iptables -N custom-filter
      

      Elo kënnt Dir kucken ob Ären neie Filter do ass:

      # iptables -L
      
      Chain INPUT (policy ACCEPT)
      target prot opt source destination
      
      Chain FORWARD (policy ACCEPT)
      target prot opt source destination
      Chain OUTPUT (policy ACCEPT)
      target prot opt source destination
      Chain custom-filter (0 references)
      target prot opt source destination

      18. Flush IPtables Firewall Ketten oder Regelen

      Wann Dir Är Firewallketten wëllt spülen, kënnt Dir benotzen:

      # iptables -F
      

      Dir kënnt Ketten aus spezifeschen Dësch spülen mat:

      # iptables -t nat -F
      

      Dir kënnt \nat\ mat der aktueller Tabell änneren, wéi eng Ketten Dir wëllt spülen.

      19. Retten IPtables Regelen zu engem Fichier

      Wann Dir Är Firewall Regele späichere wëllt, kënnt Dir de Kommando iptables-save benotzen. Dir kënnt déi folgend benotzen fir Är Regelen an enger Datei ze späicheren an ze späicheren:

      # iptables-save > ~/iptables.rules
      

      Et ass un Iech wou Dir d'Datei späichert a wéi Dir se nennt.

      20. Restauréieren IPtables Regelen aus engem Fichier

      Wann Dir eng Lëscht vun iptables-Regelen restauréiere wëllt, kënnt Dir iptables-restore benotzen. De Kommando gesäit esou aus:

      # iptables-restore < ~/iptables.rules
      

      Natierlech kann de Wee op Är Regelendatei anescht sinn.

      21. Ariichten IPtables Regele fir PCI Compliance

      E puer Systemadministrateuren kënnen erfuerderlech sinn hir Serveren ze konfiguréieren fir PCI-kompatibel ze sinn. Et gi vill Ufuerderunge vu verschiddene PCI Compliance Ubidder, awer et gi wéineg gemeinsam.

      A ville Fäll musst Dir méi wéi eng IP Adress hunn. Dir musst d'Regele hei ënnen fir d'IP Adress vum Site uwenden. Sidd extra virsiichteg wann Dir d'Regele hei ënnen benotzt a benotzt se nëmmen wann Dir sécher sidd wat Dir maacht:

      # iptables -I INPUT -d SITE -p tcp -m multiport --dports 21,25,110,143,465,587,993,995 -j DROP
      

      Wann Dir cPanel oder ähnlech Kontrollpanel benotzt, musst Dir vläicht och seng Ports blockéieren. Hei ass e Beispill:

      # iptables -I in_sg -d DEDI_IP -p tcp -m multiport --dports  2082,2083,2095,2096,2525,2086,2087 -j DROP
      

      Notiz: Fir sécherzestellen, datt Dir den Ufuerderunge vun Ärem PCI Verkeefer entsprécht, kontrolléiert hire Bericht suergfälteg an gëlt déi erfuerderlech Reegelen. A verschiddene Fäll musst Dir och den UDP-Traffic op bestëmmte Ports blockéieren.

      22. Erlaabt etabléiert a verbonne Verbindungen

      Well de Reseau Traffic getrennt ass op erakommen an erausginn, wëllt Dir etabléierten an Zesummenhang Entréeën Traffic erlaben. Fir erakommen Verbindunge maachen et mat:

      # iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
      

      Fir erausginn Benotzung:

      # iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
      

      23. Drop ongülteg Paketen an IPtables

      Et ass méiglech e puer Netzwierkpakete als ongëlteg markéiert ze hunn. E puer Leit kënne léiwer dës Pakete protokolléieren, awer anerer léiwer se ze falen. Fir d'Päck ongëlteg ze falen, kënnt Dir benotzen:

      # iptables -A INPUT -m conntrack --ctstate INVALID -j DROP 
      

      24. Block Verbindung op Network Interface

      E puer Systemer hu vläicht méi wéi ee Reseau Interface. Dir kënnt den Zougang zu deem Netz-Interface limitéieren oder Verbindunge vu bestëmmter IP Adress blockéieren.

      Zum Beispill:

      # iptables -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j DROP
      

      Ännert \xxx.xxx.xxx.xxx mat der aktueller IP Adress (oder Netzwierk) déi Dir wëllt blockéieren.

      25. Ausgeschéckt Mailen duerch IPTables auszeschalten

      Wann Äre System keng E-Maile schéckt, kënnt Dir erausginn Ports op SMTP Ports blockéieren. Zum Beispill kënnt Dir dëst benotzen:

      # iptables -A OUTPUT -p tcp --dports 25,465,587 -j REJECT
      

      Conclusioun

      Iptables ass eng mächteg Firewall vun där Dir einfach profitéiere kënnt. Et ass vital fir all Systemadministrator op d'mannst d'Basis vun iptables ze léieren. Wann Dir méi detailléiert Informatiounen iwwer iptables a seng Optiounen wëllt fannen, ass et recommandéiert d'Handbuch ze liesen:

      # man iptables
      

      Wann Dir mengt, mir sollten méi Kommandoen op dës Lëscht derbäisetzen, deelt se w.e.g. mat eis, andeems Dir se an der Kommentarsektioun hei drënner ofgitt.