Helppo IPTables-määritys ja esimerkkejä Ubuntu 16.04:ssä

Johdanto

iptableson tehokas työkalu Linux-ytimen integroidun palomuurin konfigurointiin. Se on esiasennettu useimpiin Ubuntu-jakeluihin, mutta jos käytät mukautettua Ubuntu-versiota tai käytät konttia, joudut todennäköisesti asentamaan sen manuaalisesti.

sudo apt-get install iptables iptables-persistent

Jos sinulta kysytään asennuksen jälkeen, tallennetaanko nykyiset säännöt, sillä ei ole tällä hetkellä väliä, koska aiot poistaa tai luoda uusia sääntöjä myöhemmin.

Vinkkejä

Voit käyttää netcatkomentoa ( eri tietokoneessa kuin palvelin) testataksesi, mitkä porteistasi ovat auki tai kiinni.

nc -z -w5 -v SERVER_IP PORT
  • nc on netcat-komento.
  • -z lähetä vain paketti ilman hyötykuormaa.
  • -w5 odota vastausta enintään 5 sekuntia.
  • -v monisanainen tila.
  • Korvaa SERVER_IPpalvelimesi osoitteella.
  • Korvaa PORTportilla, jonka haluat testata, onko se auki (esim. 22).

Palvelimellasi voit käyttää netstatkomentoa nähdäksesi mitkä portit tällä hetkellä kuuntelevat yhteyksiä.

sudo netstat -tulpn

Huomautus: Vaikka netstaton kätevä löytää portit, joiden kanssa haluat työskennellä, sinun tulee olla tietoinen palvelimellesi tällä hetkellä asentamistasi sovelluksista ja siitä, mitkä portit kuuntelevat. Sinun ei tarvitse sallia jokaista porttia, jonka löydät netstatulostulosta .

Syntaksi

sudo iptables -A INPUT -p tcp -m tcp --dport 22 --m geoip --src-cc PE -j ACCEPT
  • -A INPUTlisää sääntö INPUTketjuun, ketju on joukko sääntöjä, joita käytämme eniten tässä oppaassa ovat INPUT, OUTPUTja PREROUTING.
  • -p tcpasetettu tcpprotokollaksi, jota tämä sääntö koskee, voit käyttää myös muita protokollia, kuten udp, icmptai all.
  • -m tcpkäytä tcpmoduulia. iptablestukee lisäominaisuuksia moduulien kautta, joista osa on valmiiksi asennettuna iptablesja toiset, kuten geoipmoduuli.
  • --dport 22komennot alkavat --osoittavat lisäasetuksia aiemmin käytetylle moduulille, tässä tapauksessa käskemme tcpmoduulia koskemaan vain porttia 22.
  • -m geoipkäytä geoipmoduulia. Se rajoittaa paketteja maakohtaisesti (lisätietoja vaiheessa 5).
  • --src-cc PEkäske geoipmoduulia rajoittaa saapuvat paketit niihin, jotka tulevat Perusta. Lisää maakoodeja etsi ISO 3166 country codesInternetistä.
  • -j ACCEPT-jargumentti kertoo iptables, mitä tehdä, jos paketti täsmää rajoitteet eritelty edellisessä argumentteja. Tässä tapauksessa se ACCEPTne paketit, muut vaihtoehdot ovat REJECT, DROPja enemmän. Löydät lisää vaihtoehtoja etsimällä iptables jump targetsInternetistä.

1. Perusasiat

Listaa kaikki säännöt.

sudo iptables -L

Luettele kaikki komennot, joita käytettiin tällä hetkellä käytettyjen sääntöjen luomiseen, hyödyllisiä sääntöjen muokkaamiseen tai poistamiseen.

sudo iptables -S

Jos haluat poistaa tietyn säännön, valitse sääntö sudo iptables -Sja korvaa se -Amerkillä -D.

# -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

sudo iptables -D INPUT -p tcp -m tcp --dport 22 -j ACCEPT

Listaa kaikki numeroidut säännöt INPUTketjussa.

sudo iptables -L INPUT --line-numbers

Poista numeroitu sääntö.

sudo iptables -D INPUT 2

Tyhjentääksesi kaikki säännöt.

sudo iptables -F

Varoitus: saatat menettää yhteyden, jos yhdistät SSH:n .

Selkeät vain säännöt OUTPUTketjussa.

sudo iptables -F OUTPUT

2. Luo alustavat säännöt

Salli SSHon eth0liitäntä

sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
  • -i eth0 soveltaa sääntöä tiettyyn käyttöliittymään, jotta tämä komento voidaan poistaa mistä tahansa käyttöliittymästä.

Saapuvien pakettien rajoittaminen tiettyyn IP-osoitteeseen (eli 10.0.3.1/32).

sudo iptables -A INPUT -i eth0 -s 10.0.3.1/32 -p tcp -m tcp --dport 22 -j ACCEPT
  • -s 10.0.3.1/32 määrittää IP/aliverkon, josta yhteydet sallitaan.

Aseta oletusketjun säännöt.

Varoitus: ennen kuin jatkat, varmista, että olet käyttänyt oikeat SSH-säännöt, jos työskentelet etäpalvelimella .

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP 
sudo iptables -P OUTPUT ACCEPT 
  • -P INPUT DROP kieltää kaikki saapuvat paketit (eli kukaan ei voi muodostaa yhteyttä käynnissä oleviin palvelimiisi, kuten Apache, SQL jne.).
  • -P FORWARD DROP kieltää kaikki edelleenlähetetyt paketit (eli kun käytät järjestelmääsi reitittimenä).
  • -P OUTPUT ACCEPTsallii kaikki lähtevät paketit (eli kun suoritat HTTPpyynnön).

Salli kaikki liikenne loopback-liittymässä ( suositus ).

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

3. Tee säännöistä pysyviä

Tallenna nykyiset iptablessäännöt.

sudo netfilter-persistent save
sudo netfilter-persistent reload

Jos käytät säilön sisällä, netfilter-persistentkomento ei todennäköisesti toimi, joten sinun on määritettävä iptables-persistentpaketti uudelleen .

sudo dpkg-reconfigure iptables-persistent

4. Salli lähtevät yhteydet

Salli DNS-kyselyt.

sudo iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

Käytä statemoduulia salliaksesi RELATEDja ESTABLISHEDlähtevät paketit.

sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Salli haluamasi portit; tässä tapauksessa HTTPportit.

sudo iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

Lisää portteja, joita saatat haluta käyttää.

  • FTP: tcp portissa 21
  • HTTPS: tcp portissa 443
  • DHCP: udp portissa 67
  • NTP: udp portissa 123

Huomautus: Jos haluat sallia, apt-getvoi olla tarpeen sallia FTPjaHTTPS .

Salli palautettu liikenne vain RELATEDja jo ESTABLISHEDyhteyksille ( suositus, koska joskus tarvitaan kaksisuuntaista viestintää).

sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Muita hyödyllisiä sääntöjä

Salli ulkopuoliset ping-pyynnöt.

sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

Siirrä liikenne eth0portissa 2200osoitteeseen 10.0.3.21:22(hyödyllinen, jos haluat paljastaa SSH-palvelimen, joka toimii säilössä).

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2200 -j DNAT --to-destination 10.0.3.21:22

Jos kirjaudut onnistuneesti palvelimellesi SSH:lla, muodostuu jatkuva yhteys (eli ei uusia yhteyksiä, vaikka olisit yhteydessä yli tunnin). Jos epäonnistut ja yrität kirjautua uudelleen, uusi yhteys luodaan. Tämä estää jatkuvat SSH-kirjautumisyritykset rajoittamalla uusia yhteyksiä tunnissa.

sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 3600 --hitcount 4 -j DROP

Ohjaa kaikki pyynnöt portista 443porttiin 4430(hyödyllinen, jos haluat sitoutua porttiin 443ilman root).

sudo iptables -t nat -A PREROUTING -i ens3 -p tcp --dport 443 -j REDIRECT --to-port 4430
sudo iptables -A INPUT -p tcp -m tcp --dport 4430 -m geoip --src-cc PE -j ACCEPT
  • ens3 verkkoliitäntä.
  • -m geoip maalohkomoduuli (katso vaihe 5).

Varoitus: Älä käytä lo, käyttöjärjestelmä hylkää kaikki paketit, jotka on ohjattu takaisinsilmukkaliittymään .

5. Salli tai estä kokonaisia ​​maita

5.1 Asenna xtables-addons

Voit asentaa xtables-addonsmoduulin useilla eri tavoilla, käytä itsellesi parhaiten sopivaa asennustapaa.

  • Asenna käyttämällä apt-get.

    sudo apt-get install xtables-addons-common
    
  • Asenna käyttämällä module-assistant.

    sudo apt-get install module-assistant xtables-addons-source
    sudo module-assistant --verbose --text-mode auto-install xtables-addons
    
  • Asenna lähteestä.

    sudo apt-get install git bc libncurses5-dev libtext-csv-xs-perl autoconf automake libtool xutils-dev iptables-dev
    git clone git://git.code.sf.net/p/xtables-addons/xtables-addons
    cd xtables-addons
    ./autogen.sh
    ./configure
    make
    sudo make install
    

Rakenna "maiden" tietokanta.

sudo apt-get install libtext-csv-xs-perl unzip
sudo mkdir /usr/share/xt_geoip
sudo /usr/lib/xtables-addons/xt_geoip_dl
sudo /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
sudo rm GeoIPCountryCSV.zip GeoIPCountryWhois.csv GeoIPv6.csv

Käynnistä järjestelmä uudelleen.

sudo reboot

Sen jälkeen kun xtables-addonson onnistuneesti asennettu, ensimmäisen uudelleenkäynnistyksen jälkeen, suorita depmodmuuten maa esto ei toimi kunnolla (tämä vaaditaan vain ensimmäisellä kerralla).

sudo depmod 

Luo komentosarja osoitteessa /etc/cron.monthly/geoip-updaterpäivittääksesi geoiptietokannan kuukausittain.

#!/usr/bin/env bash
# this script is intended to run with sudo privileges

echo 'Removing old database---------------------------------------------------'
rm -rf /usr/share/xt_geoip/*
mkdir -p /usr/share/xt_geoip

echo 'Downloading country databases-------------------------------------------'
mkdir /tmp/geoip-updater
cd /tmp/geoip-updater
/usr/lib/xtables-addons/xt_geoip_dl

echo 'Building geoip database-------------------------------------------------'
/usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv

echo 'Removing temporary files------------------------------------------------'
cd /tmp
rm -rf /tmp/geoip-updater

Tee /etc/cron.monthly/geoip-updatersuoritettavasta.

sudo chmod +x /etc/cron.monthly/geoip-updater

5.2 Esimerkkisäännöt

_Huomaa: Jos saat iptables: No chain/target/match by that namevirheilmoituksen yrittäessäsi soveltaa geoipsääntöä, on mahdollista, että xtables-addonssitä ei ole asennettu oikein. Kokeile toista asennustapaa.

Estä kaikki saapuvat paketit Kiinasta, Hongkongista, Venäjältä ja Koreasta.

sudo iptables -A INPUT -m geoip --src-cc CN,HK,RU,KR -j DROP

Salli saapuvat paketit portissa 80kaikkialta paitsi yllä olevista maista.

sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

Salli saapuvat paketit ens3rajapinnassa portissa 22vain Perusta (valitse vapaasti maakoodi, josta haluat vastaanottaa paketteja esimerkiksi USYhdysvalloista).

sudo iptables -A INPUT -i ens3 -p tcp -m tcp --dport 22 -m geoip --src-cc PE -j ACCEPT

Salli saapuvat paketit portissa 443vain Perusta.

sudo iptables -A INPUT -p tcp -m tcp --dport 443 -m geoip --src-cc PE -j ACCEPT

Jätä kommentti

Koneiden nousu: tekoälyn todelliset sovellukset

Koneiden nousu: tekoälyn todelliset sovellukset

Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.

DDOS-hyökkäykset: lyhyt katsaus

DDOS-hyökkäykset: lyhyt katsaus

Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, ​​että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja