Lihtne IPTablesi konfigureerimine ja näited Ubuntu 16.04-s

Sissejuhatus

iptableson võimas tööriist Linuxi kerneli integreeritud tulemüüri seadistamiseks. See on enamikus Ubuntu distributsioonides eelinstallitud, kuid kui kasutate kohandatud Ubuntu versiooni või töötate konteineris, peate selle tõenäoliselt käsitsi installima.

sudo apt-get install iptables iptables-persistent

Kui pärast installimist küsitakse, kas salvestada kehtivad reeglid, pole sellel hetkel tähtsust, kuna kavatsed hiljem uusi reegleid eemaldada või luua.

Näpunäiteid

Saate kasutada netcatkäsku ( teie serverist erinevas arvutis), et testida, millised teie portidest on avatud või suletud.

nc -z -w5 -v SERVER_IP PORT
  • nc on netcati käsk.
  • -z lihtsalt saatke pakett ilma kasuliku koormuseta.
  • -w5 oodake vastust kuni 5 sekundit.
  • -v paljusõnaline režiim.
  • Asenda SERVER_IPoma serveri aadressiga.
  • Asendage PORTpordiga, mida soovite testida, kas see on avatud (nt 22).

Oma serveris saate kasutada netstatkäsku, et näha, millised pordid praegu ühendusi kuulavad.

sudo netstat -tulpn

Märkus. Kuigi netstatsee on mugav pordide leidmiseks, millega soovite töötada, peaksite teadma, millised rakendused olete praegu oma serverisse installinud ja millised pordid kuulavad, ei pea te lubama iga netstatväljundis leitud porti .

Süntaks

sudo iptables -A INPUT -p tcp -m tcp --dport 22 --m geoip --src-cc PE -j ACCEPT
  • -A INPUTlisage INPUTahelasse reegel , ahel on reeglite rühm, reeglid, mida me selles juhendis kõige enam kasutame, on INPUT, OUTPUTja PREROUTING.
  • -p tcpmäärake tcpprotokolliks, millele see reegel rakendub, saate kasutada ka muid protokolle, nagu udp, icmpvõi all.
  • -m tcpkasutage tcpmoodulit. iptablestoetab lisafunktsioone moodulite kaudu, millest mõned on juba eelinstallitud iptablesja teised, näiteks geoipmoodul.
  • --dport 22tähega algavad käsud --näitavad eelnevalt kasutatud mooduli lisavõimalusi, sel juhul käsime tcpmoodulil rakendada ainult porti 22.
  • -m geoipkasutage geoipmoodulit. See piirab pakette riigipõhiselt (rohkem teavet sammus 5).
  • --src-cc PEkäskige geoipmoodulil piirata sissetulevaid pakette Peruust pärit pakettidega. Rohkem riigikoode otsige ISO 3166 country codesInternetist.
  • -j ACCEPT-jargument ütleb iptables, mida teha, kui pakett sobib täpsustatud piirangutest eelmises argumendid. Sel juhul on see ACCEPTnende paketid, muud võimalused on REJECT, DROPja palju muud. Rohkem valikuid leiate iptables jump targetsInternetist otsides .

1. Põhitõed

Loetlege kõik reeglid.

sudo iptables -L

Loetlege kõik käsud, mida kasutati praegu kasutatavate reeglite loomiseks, mis on kasulikud reeglite muutmiseks või kustutamiseks.

sudo iptables -S

Konkreetse reegli kustutamiseks valige reegel hulgast sudo iptables -Sja asendage -Asee -D.

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

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

Loetlege kõik INPUTahelas nummerdatud reeglid .

sudo iptables -L INPUT --line-numbers

Nummerdatud reegli kustutamine.

sudo iptables -D INPUT 2

Kõigi reeglite kustutamiseks.

sudo iptables -F

Hoiatus: kui ühendate SSH-ga, võite ühenduse kaotada .

Selge ainult OUTPUTahelas olevad reeglid .

sudo iptables -F OUTPUT

2. Loo esialgsed reeglid

Luba SSHkohta eth0liides

sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
  • -i eth0 rakendage reegel konkreetsele liidesele, et lubada mis tahes liidesest see käsk eemaldada.

Sissetulevate pakettide piiramiseks kindla IP-ga (st 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äärab IP/alamvõrgu, millest ühendusi lubada.

Määrake keti vaikereeglid.

Hoiatus: enne jätkamist veenduge, et olete kaugserveris töötades rakendanud õigeid SSH-reegleid .

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP 
sudo iptables -P OUTPUT ACCEPT 
  • -P INPUT DROP keelab kõik sissetulevad paketid (st keegi ei saa ühendust luua teie töötavate serveritega, nagu Apache, SQL jne).
  • -P FORWARD DROP keelab kõik edastatud paketid (st kui kasutate oma süsteemi ruuterina).
  • -P OUTPUT ACCEPTlubab kõik väljaminevad paketid (st kui täidate HTTPpäringu).

Luba kogu liiklus tagasisilmusliideses ( soovitatav ).

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

3. Muutke reeglid püsivaks

Salvestage kehtivad iptablesreeglid.

sudo netfilter-persistent save
sudo netfilter-persistent reload

Kui töötate konteineris, siis netfilter-persistentkäsk tõenäoliselt ei tööta, seega peate iptables-persistentpaketi uuesti konfigureerima .

sudo dpkg-reconfigure iptables-persistent

4. Lubage väljuvad ühendused

Luba DNS-päringud.

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

Kasutage statemoodulit pakettide lubamiseks RELATEDja ESTABLISHEDväljumiseks.

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

Luba soovitud pordid; antud juhul HTTPsadamad.

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

Rohkem porte, mida võiksite kasutada.

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

Märkus. Kui soovite lubada apt-get, võib olla vajalik lubada FTPjaHTTPS .

Lubage tagastatud liiklus ainult RELATEDja juba ESTABLISHEDühenduste jaoks ( soovitatav, kuna mõnikord on vaja kahesuunalist sidet).

sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Muud kasulikud reeglid

Luba pingitaotlused väljastpoolt.

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

Edasi liiklust eth0port 2200to 10.0.3.21:22(kasulik, kui soovite, et paljastada SSH server, mis töötab mahuti sees).

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

Kui logite edukalt oma serverisse SSH-ga sisse, luuakse püsiühendus (st uusi ühendusi ei teki isegi siis, kui olete ühenduses kauem kui 1 tund). Kui ebaõnnestute ja proovite uuesti sisse logida, luuakse uus ühendus. See blokeerib pidevad SSH-sisselogimiskatsed, piirates uute ühenduste loomist tunnis.

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

Suunake kõik pordi taotlused 443ümber pordile 4430(kasulik, kui soovite siduda pordiga 443ilma 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 võrguliidest.
  • -m geoip riigiploki moodul (vt 5. sammu).

Hoiatus. Ärge kasutage lo, OS tühistab kõik tagasisilmusliidesele suunatud paketid .

5. Lubage või blokeerige terveid riike

5.1 Installige xtables-addons

xtables-addonsMooduli saate installida erinevatel viisidel, kasutage julgelt teile sobivat paigaldusmeetodit.

  • Installige kasutades apt-get.

    sudo apt-get install xtables-addons-common
    
  • Installige kasutades module-assistant.

    sudo apt-get install module-assistant xtables-addons-source
    sudo module-assistant --verbose --text-mode auto-install xtables-addons
    
  • Installige allikast.

    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
    

Ehitage "riikide" andmebaas.

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

Taaskäivitage oma süsteem.

sudo reboot

Pärast xtables-addonsedukat installimist käivitage pärast esimest taaskäivitamist, depmodmuidu riigi blokeerimine ei tööta korralikult (see on vajalik ainult esimest korda).

sudo depmod 

Andmebaasi igakuiseks /etc/cron.monthly/geoip-updatervärskendamiseks looge skript aadressil geoip.

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

Muuda /etc/cron.monthly/geoip-updaterkäivitatavaks.

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

5.2 Näidisreeglid

_Märkus. Kui saate reegli iptables: No chain/target/match by that namerakendamisel tõrketeate geoip, on võimalik, et xtables-addonsseda pole õigesti installitud. Proovige mõnda muud installimeetodit.

Blokeerige kõik Hiinast, Hongkongist, Venemaalt ja Koreast saabuvad paketid.

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

Lubage sadamasse sissetulevad paketid 80kõikjalt, välja arvatud ülaltoodud riikidest.

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

Lubage sissetulevad paketid ens3liideses pordis 22ainult Peruust (valige vabalt riigikood, kust soovite pakette vastu võtta, näiteks USAmeerika Ühendriikide jaoks).

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

Luba sissetulevad paketid pordis 443ainult Peruust.

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

Seadistage Cacti Debian Jessies

Seadistage Cacti Debian Jessies

Sissejuhatus Cacti on avatud lähtekoodiga seire- ja graafikutööriist, mis põhineb täielikult RRD andmetel. Cacti kaudu saate jälgida peaaegu igat tüüpi seadmeid

Installige Lets Encrypt SSL ühe klõpsuga WordPressi rakendusse

Installige Lets Encrypt SSL ühe klõpsuga WordPressi rakendusse

Sissejuhatus Lets Encrypt on sertifikaatide väljastamise teenus, mis pakub tasuta TLS/SSL-sertifikaate. Paigaldusprotsessi lihtsustab Certbot,

Tekkiti klassikalise serveri seadistamine Ubuntu 16.10-s

Tekkiti klassikalise serveri seadistamine Ubuntu 16.10-s

Kas kasutate teistsugust süsteemi? Mis on Tekkit Classic? Tekkit Classic on modifikatsioonipakett mängule, mida kõik teavad ja armastavad; Minecraft. See sisaldab mõningaid ver

Seadistage iRedMail Debian Wheezys

Seadistage iRedMail Debian Wheezys

Kas kasutate teistsugust süsteemi? See õpetus näitab teile, kuidas installida grupitöö iRedMail Debian Wheezy värskele installile. Peaksite kasutama servi

Jekylli ajaveebi loomine Ubuntus 16.04

Jekylli ajaveebi loomine Ubuntus 16.04

Kas kasutate teistsugust süsteemi? Jekyll on suurepärane alternatiiv WordPressile ajaveebi pidamiseks või sisu jagamiseks. See ei nõua andmebaase ja see on väga lihtne

Järelevalveta versiooniuuenduste seadistamine Debian 9-s (venitamine)

Järelevalveta versiooniuuenduste seadistamine Debian 9-s (venitamine)

Kas kasutate teistsugust süsteemi? Kui ostate Debiani serveri, peaksid teil alati olema uusimad turvapaigad ja värskendused, olenemata sellest, kas magate või mitte

PHP 7.0 või PHP 7.1 installimine ja konfigureerimine Ubuntu 16.04-s

PHP 7.0 või PHP 7.1 installimine ja konfigureerimine Ubuntu 16.04-s

PHP ja sellega seotud paketid on veebiserveri juurutamisel kõige sagedamini kasutatavad komponendid. Selles artiklis õpime, kuidas seadistada PHP 7.0 või PHP 7.1 o

Kuidas installida CentOS-i Squid Proxy

Kuidas installida CentOS-i Squid Proxy

Squid on populaarne tasuta Linuxi programm, mis võimaldab teil luua edastamise veebipuhverserveri. Selles juhendis näete, kuidas installida Squid CentOS-i, et teid pöörata

Lighttpd (LLMP Stack) installimine CentOS 6-sse

Lighttpd (LLMP Stack) installimine CentOS 6-sse

Sissejuhatus Lighttpd on Apache'i hark, mille eesmärk on olla palju vähem ressursimahukas. See on kerge, sellest ka oma nimi, ja seda on üsna lihtne kasutada. Installin

Kolm tasuta serveri juhtpaneeli (kiire installimine)

Kolm tasuta serveri juhtpaneeli (kiire installimine)

1. Virtualmin/Webmin Virtualmin on võimas ja paindlik veebimajutuse juhtpaneel Linuxi ja UNIX süsteemidele, mis põhineb tuntud avatud lähtekoodiga veebibaasil

Yii rakenduse seadistamine Ubuntu 14.04-s

Yii rakenduse seadistamine Ubuntu 14.04-s

Yii on PHP raamistik, mis võimaldab teil rakendusi kiiremini ja lihtsamalt arendada. Yii installimine Ubuntule on lihtne, nagu saate täpselt teada

Ekraani kasutamine Ubuntu 14.04-s

Ekraani kasutamine Ubuntu 14.04-s

Ekraan on rakendus, mis võimaldab ühes aknas mitut terminaliseanssi kasutada. See võimaldab simuleerida mitut terminali akent, kus see ma

Seadistage Debianis/Ubuntus oma DNS-server

Seadistage Debianis/Ubuntus oma DNS-server

See õpetus selgitab, kuidas seadistada DNS-serverit Bind9 abil Debianis või Ubuntus. Asendage kogu artikli vältel oma-domeen-nimi.com vastavalt. Kell th

Logrotate kasutamine logifailide haldamiseks

Logrotate kasutamine logifailide haldamiseks

Sissejuhatus Logrotate on Linuxi utiliit, mis lihtsustab logifailide haldamist. Tavaliselt töötab see kord päevas cron-töö kaudu ja haldab logibaasi

Staatilise võrgu ja IPv6 konfigureerimine CentOS 7-s

Staatilise võrgu ja IPv6 konfigureerimine CentOS 7-s

VULTR on hiljuti teinud nende osas muudatusi ja kõik peaks nüüd töötama hästi, kui NetworkManager on lubatud. Kui soovite keelata

Icinga2 muutmine, et kasutada CentOS 6 või CentOS 7 põhi-/kliendimudelit

Icinga2 muutmine, et kasutada CentOS 6 või CentOS 7 põhi-/kliendimudelit

Icinga2 on võimas seiresüsteem ja kui seda kasutatakse põhikliendi mudelis, võib see asendada vajaduse NRPE-põhiste seirekontrollide järele. Meister-klient

Seadistage Red5 Media Server versioonis Ubuntu 16.04

Seadistage Red5 Media Server versioonis Ubuntu 16.04

Kas kasutate teistsugust süsteemi? Red5 on Java-s realiseeritud avatud lähtekoodiga meediumiserver, mis võimaldab käivitada mitme kasutajaga Flashi rakendusi, näiteks otseülekandeid.

Kompileerige ja installige Nginx mooduliga PageSpeed ​​Debian 8

Kompileerige ja installige Nginx mooduliga PageSpeed ​​Debian 8

Selles artiklis näeme, kuidas kompileerida ja installida Nginxi põhiliini ametlikest Nginxi allikatest mooduliga PageSpeed, mis võimaldab teil

Apache Cassandra 3.11.x installimine Ubuntu 16.04 LTS-i

Apache Cassandra 3.11.x installimine Ubuntu 16.04 LTS-i

Kas kasutate teistsugust süsteemi? Apache Cassandra on tasuta ja avatud lähtekoodiga NoSQL-i andmebaasihaldussüsteem, mis on loodud pakkuma skaleeritavust, hig.

Apache Cassandra 3.11.x installimine opsüsteemi CentOS 7

Apache Cassandra 3.11.x installimine opsüsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Apache Cassandra on tasuta ja avatud lähtekoodiga NoSQL-i andmebaasihaldussüsteem, mis on loodud pakkuma skaleeritavust, hig.

Masinate tõus: AI tegelikud rakendused

Masinate tõus: AI tegelikud rakendused

Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.

DDOS-i rünnakud: lühike ülevaade

DDOS-i rünnakud: lühike ülevaade

Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.

Andmesalvestuse areng – infograafik

Andmesalvestuse areng – infograafik

Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.

Suurandmete viitearhitektuuri kihtide funktsioonid

Suurandmete viitearhitektuuri kihtide funktsioonid

Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit