Auðveld uppsetning IPTables og dæmi á Ubuntu 16.04

Kynning

iptableser öflugt tól sem notað er til að stilla innbyggðan eldvegg Linux-kjarnans. Það er foruppsett á flestum Ubuntu dreifingum, en ef þú ert að nota sérsniðna Ubuntu útgáfu eða keyrir inni í íláti þarftu líklegast að setja það upp handvirkt.

sudo apt-get install iptables iptables-persistent

Eftir uppsetningu, ef þú ert spurður hvort þú eigir að vista núverandi reglur þínar, skiptir það ekki máli í augnablikinu því þú ætlar að fjarlægja eða búa til nýjar reglur síðar.

Ábendingar

Þú getur notað netcatskipunina (á annarri tölvu en þjóninum þínum) til að prófa hvaða tengi eru opin eða lokuð.

nc -z -w5 -v SERVER_IP PORT
  • nc er netcat skipunin.
  • -z sendu bara pakka án farms.
  • -w5 bíða í allt að 5 sekúndur eftir svari.
  • -v orðrænn háttur.
  • Skiptu út SERVER_IPfyrir netfangið þitt fyrir netþjóninn.
  • Skiptu út PORTfyrir tengið sem þú vilt prófa ef það er opið (td 22).

Á þjóninum þínum geturðu notað netstatskipunina til að sjá hvaða höfn eru að hlusta á tengingar.

sudo netstat -tulpn

Athugið: Þó að það netstatsé sniðugt að finna höfnin sem þú vilt vinna með, þá ættir þú að vera meðvitaður um forritin sem þú ert með uppsett á netþjóninum þínum og hvaða höfn eru að hlusta, þú þarft ekki að leyfa hvert tengi sem þú finnur í netstatúttakinu .

Setningafræði

sudo iptables -A INPUT -p tcp -m tcp --dport 22 --m geoip --src-cc PE -j ACCEPT
  • -A INPUTbæta reglu við INPUTkeðjuna, keðja er hópur reglna, þær sem við notum mest í þessari handbók verða INPUT, OUTPUTog PREROUTING.
  • -p tcpstillt tcpsem samskiptareglur sem þessi regla mun gilda um geturðu líka notað aðrar samskiptareglur eins og udp, icmpeða all.
  • -m tcpnotaðu tcpeininguna. iptablesstyður viðbótareiginleika í gegnum einingar, sumar þeirra eru þegar foruppsettar með iptablesog aðrar, svo sem geoipeininguna.
  • --dport 22skipanirnar sem byrja á --gefa til kynna viðbótarvalkosti fyrir áður notaða einingu, í þessu tilfelli munum við segja tcpeiningunni að eiga aðeins við um port 22.
  • -m geoipnotaðu geoipeininguna. Það mun takmarka pakka eftir landi (nánari upplýsingar í skrefi 5).
  • --src-cc PEsegðu geoipeiningunni að takmarka komandi pakka við þá sem koma frá Perú. Fyrir fleiri landsnúmer leitaðu að ISO 3166 country codesá netinu.
  • -j ACCEPTsem -jrök segir iptableshvað á að gera ef pakki passar skorður tilgreind í fyrri rök. Í þessu tilfelli verður ACCEPTþá pakka, aðrir valkostir eru REJECT, DROPog fleira. Þú getur fundið fleiri valkosti með því að leita iptables jump targetsá netinu.

1. Grunnatriði

Listaðu allar reglur.

sudo iptables -L

Listaðu allar skipanir sem voru notaðar til að búa til þær reglur sem nú eru notaðar, gagnlegar til að breyta eða eyða reglum.

sudo iptables -S

Til að eyða tiltekinni reglu skaltu velja reglu úr sudo iptables -Sog setja í staðinn -Afyrir -D.

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

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

Skráðu allar númeraðar reglur í INPUTkeðjunni.

sudo iptables -L INPUT --line-numbers

Eyða númeraðri reglu.

sudo iptables -D INPUT 2

Til að hreinsa allar reglur.

sudo iptables -F

Viðvörun: þú gætir misst tenginguna ef þú ert tengdur með SSH .

Hreinsaðu aðeins reglur í OUTPUTkeðjunni.

sudo iptables -F OUTPUT

2. Búðu til upphafsreglur

Leyfa SSHá eth0viðmóti

sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
  • -i eth0 beita reglu á tiltekið viðmót, til að leyfa frá hvaða viðmóti sem er að fjarlægja þessa skipun.

Til að takmarka komandi pakka við ákveðna IP (þ.e. 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 tilgreinir IP/undirnet til að leyfa tengingar frá.

Stilltu sjálfgefnar keðjureglur.

Viðvörun: Áður en þú heldur áfram skaltu ganga úr skugga um að þú hafir notað réttar SSH reglur ef þú vinnur á ytri netþjóni .

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP 
sudo iptables -P OUTPUT ACCEPT 
  • -P INPUT DROP neitar öllum pökkum sem berast (þ.e. enginn mun geta tengst keyrandi netþjónum þínum eins og Apache, SQL osfrv.).
  • -P FORWARD DROP neitar öllum framsendum pökkum (þ.e. þegar þú ert að nota kerfið þitt sem leið).
  • -P OUTPUT ACCEPTleyfir alla senda pakka (þ.e. þegar þú framkvæmir HTTPbeiðni).

Leyfa alla umferð á bakslagsviðmóti ( mælt með ).

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

3. Gerðu reglur viðvarandi

Vistaðu núverandi iptablesreglur.

sudo netfilter-persistent save
sudo netfilter-persistent reload

Ef þú ert að keyra inni í gámi mun netfilter-persistentskipunin líklegast ekki virka, svo þú þarft að endurstilla iptables-persistentpakkann.

sudo dpkg-reconfigure iptables-persistent

4. Leyfa sendandi tengingar

Leyfa DNS fyrirspurnir.

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

Notaðu stateeininguna til að leyfa RELATEDog senda ESTABLISHEDút pakka.

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

Leyfa viðeigandi höfn; í þessu tilviki, HTTPhafnir.

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

Fleiri tengi sem þú gætir viljað nota.

  • FTP: tcp við höfn 21
  • HTTPS: tcp við höfn 443
  • DHCP: udp við höfn 67
  • NTP: udp við höfn 123

Athugið: Ef þú vilt leyfa apt-getgæti verið nauðsynlegt að leyfa FTPogHTTPS .

Leyfa aðeins skilaða umferð fyrir RELATEDog þegar ESTABLISHEDtengingar ( mælt með því stundum er tvíátta samskipta krafist).

sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Aðrar gagnlegar reglur

Leyfa ping beiðnir utan frá.

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

Framsenda umferð á eth0höfn 2200til 10.0.3.21:22(gagnlegt ef þú vilt afhjúpa SSH netþjón sem er í gangi inni í gámi).

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

Ef þú skráir þig inn á netþjóninn þinn með SSH verður viðvarandi tenging búin til (þ.e. engar nýjar tengingar þó þú sért tengdur í meira en 1 klukkustund). Ef þér mistekst og reynir að skrá þig inn aftur, verður ný tenging búin til. Þetta mun loka á stöðugar SSH innskráningartilraunir með því að takmarka nýjar tengingar á klukkustund.

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

Beindu öllum beiðnum um port 443í port 4430(gagnlegt ef þú vilt bindast við port 443án 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 netviðmótið.
  • -m geoip landblokkareining (sjá skref 5).

Viðvörun: Ekki nota lo, stýrikerfið mun fleygja öllum pökkum sem vísað er á bakhliðarviðmótið .

5. Leyfa eða loka fyrir heil lönd

5.1 Uppsetning xtables-addons

Þú getur sett upp xtables-addonseininguna með ýmsum aðferðum, ekki hika við að nota þá uppsetningaraðferð sem hentar þér best.

  • Settu upp með því að nota apt-get.

    sudo apt-get install xtables-addons-common
    
  • Settu upp með því að nota module-assistant.

    sudo apt-get install module-assistant xtables-addons-source
    sudo module-assistant --verbose --text-mode auto-install xtables-addons
    
  • Settu upp frá uppruna.

    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
    

Búðu til gagnagrunn „landa“.

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

Endurræstu kerfið þitt.

sudo reboot

Eftir að xtables-addonshafa verið sett upp með góðum árangri, eftir fyrstu endurræsingu, keyrðu depmodannars landslokun virkar ekki rétt (þetta er aðeins krafist í fyrsta skipti).

sudo depmod 

Búðu til handrit til /etc/cron.monthly/geoip-updaterað uppfæra geoipgagnagrunninn mánaðarlega.

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

Gerðu /etc/cron.monthly/geoip-updaterexecutable.

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

5.2 Dæmi um reglur

_Athugið: Ef þú færð iptables: No chain/target/match by that namevillu þegar þú reynir að beita geoipreglu er hugsanlegt að hún xtables-addonshafi ekki verið sett upp rétt. Prófaðu aðra uppsetningaraðferð.

Lokaðu fyrir alla pakka sem berast frá Kína, Hong Kong, Rússlandi og Kóreu.

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

Leyfa komandi pakka á höfn 80alls staðar að nema löndunum hér að ofan.

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

Leyfa komandi pökkum á ens3viðmótinu á höfn 22eingöngu frá Perú (veljið landsnúmerið sem þú vilt taka við pökkum frá, til dæmis USfyrir Bandaríkin).

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

Leyfa komandi pakka á höfn 443aðeins frá Perú.

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

Settu upp Cacti á Debian Jessie

Settu upp Cacti á Debian Jessie

Inngangur Cacti er opinn vöktunar- og grafatól sem byggir að fullu á RRD gögnum. Í gegnum Cacti geturðu fylgst með næstum hvers kyns tækjum

Settu upp Lets Encrypt SSL á WordPress appi með einum smelli

Settu upp Lets Encrypt SSL á WordPress appi með einum smelli

Inngangur Lets Encrypt er vottunaryfirvaldsþjónusta sem býður upp á ókeypis TLS/SSL vottorð. Uppsetningarferlið er einfaldað af Certbot,

Hvernig á að setja upp Tekkit Classic Server á Ubuntu 16.10

Hvernig á að setja upp Tekkit Classic Server á Ubuntu 16.10

Að nota annað kerfi? Hvað er Tekkit Classic? Tekkit Classic er modpack fyrir leikinn sem allir þekkja og elska; Minecraft. Það inniheldur eitthvað af ver

Settu upp iRedMail á Debian Wheezy

Settu upp iRedMail á Debian Wheezy

Að nota annað kerfi? Þessi kennsla mun sýna þér hvernig á að setja upp hópbúnaðinn iRedMail á nýrri uppsetningu á Debian Wheezy. Þú ættir að nota þjóna

Að búa til Jekyll blogg á Ubuntu 16.04

Að búa til Jekyll blogg á Ubuntu 16.04

Að nota annað kerfi? Jekyll er frábær valkostur við WordPress til að blogga eða deila efni. Það krefst enga gagnagrunna og það er mjög auðvelt i

Hvernig á að setja upp og stilla PHP 7.0 eða PHP 7.1 á Ubuntu 16.04

Hvernig á að setja upp og stilla PHP 7.0 eða PHP 7.1 á Ubuntu 16.04

PHP og tengdir pakkar eru algengustu íhlutirnir þegar vefþjónn er notaður. Í þessari grein munum við læra hvernig á að setja upp PHP 7.0 eða PHP 7.1 o

Hvernig á að setja upp Squid Proxy á CentOS

Hvernig á að setja upp Squid Proxy á CentOS

Smokkfiskur er vinsælt, ókeypis Linux forrit sem gerir þér kleift að búa til framsendingarforrit á vefnum. Í þessari handbók muntu sjá hvernig á að setja upp Squid á CentOS til að snúa þér

Hvernig á að setja upp Lighttpd (LLMP Stack) á CentOS 6

Hvernig á að setja upp Lighttpd (LLMP Stack) á CentOS 6

Inngangur Lighttpd er gaffal af Apache sem miðar að því að vera miklu minna auðlindafrekt. Hann er léttur, þess vegna heitir hann, og er frekar einfaldur í notkun. Uppsetning

Þrjú ókeypis stjórnborð miðlara (fljót uppsetning)

Þrjú ókeypis stjórnborð miðlara (fljót uppsetning)

1. Virtualmin/Webmin Virtualmin er öflugt og sveigjanlegt stjórnborð fyrir vefhýsingu fyrir Linux og UNIX kerfi byggt á hinum vel þekkta Open Source vefgrunni

Setja upp Yii forrit á Ubuntu 14.04

Setja upp Yii forrit á Ubuntu 14.04

Yii er PHP ramma sem gerir þér kleift að þróa forrit hraðar og auðveldlega. Uppsetning Yii á Ubuntu er einföld, þar sem þú munt læra nákvæmlega

Notkun Skjár á Ubuntu 14.04

Notkun Skjár á Ubuntu 14.04

Skjár er forrit sem leyfir margs konar notkun flugstöðvarlota innan eins glugga. Þetta gerir þér kleift að líkja eftir mörgum flugstöðvum gluggum þar sem það ma

Settu upp þinn eigin DNS netþjón á Debian/Ubuntu

Settu upp þinn eigin DNS netþjón á Debian/Ubuntu

Þessi kennsla útskýrir hvernig á að setja upp DNS netþjón með Bind9 á Debian eða Ubuntu. Í gegnum greinina skaltu skipta út-léninu þínu.com í samræmi við það. Á þ

Notkun Logrotate til að stjórna annálaskrám

Notkun Logrotate til að stjórna annálaskrám

Inngangur Logrotate er Linux tól sem einfaldar stjórnun annálaskráa. Það keyrir venjulega einu sinni á dag í gegnum cron-vinnu og stjórnar annálagrunni

Stilla Static Networking og IPv6 á CentOS 7

Stilla Static Networking og IPv6 á CentOS 7

VULTR hefur nýlega gert breytingar á enda þeirra og allt ætti nú að virka vel út úr kassanum með NetworkManager virkt. Ef þú vilt slökkva á

Breytir Icinga2 til að nota Master/Client Model á CentOS 6 eða CentOS 7

Breytir Icinga2 til að nota Master/Client Model á CentOS 6 eða CentOS 7

Icinga2 er öflugt eftirlitskerfi og þegar það er notað í aðal-viðskiptavinamódel getur það komið í stað þörf fyrir NRPE-undirstaða vöktunareftirlit. Húsbóndinn

Settu upp Red5 Media Server á Ubuntu 16.04

Settu upp Red5 Media Server á Ubuntu 16.04

Að nota annað kerfi? Red5 er opinn uppspretta miðlara útfærður í Java sem gerir þér kleift að keyra Flash fjölnotendaforrit eins og straumspilun í beinni

Settu saman og settu upp Nginx með PageSpeed ​​Module á Debian 8

Settu saman og settu upp Nginx með PageSpeed ​​Module á Debian 8

Í þessari grein munum við sjá hvernig á að setja saman og setja upp Nginx mainline frá opinberum heimildum Nginx með PageSpeed ​​einingunni, sem gerir þér kleift að

Hvernig á að setja upp Apache Cassandra 3.11.x á CentOS 7

Hvernig á að setja upp Apache Cassandra 3.11.x á CentOS 7

Að nota annað kerfi? Apache Cassandra er ókeypis og opinn uppspretta NoSQL gagnagrunnsstjórnunarkerfi sem er hannað til að veita sveigjanleika, háan

Hvernig á að setja upp Vanilla Forum á Ubuntu 16.04

Hvernig á að setja upp Vanilla Forum á Ubuntu 16.04

Að nota annað kerfi? Vanilla forum er opinn uppspretta spjallforrit skrifað í PHP. Það er fullkomlega sérhannaðar, auðvelt í notkun og styður utanaðkomandi

Hvernig á að setja upp Gitea á Debian 9

Hvernig á að setja upp Gitea á Debian 9

Að nota annað kerfi? Gitea er annað opinn uppspretta, sjálfhýst útgáfustýringarkerfi knúið af Git. Gitea er skrifað á Golang og er

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Gervigreind er ekki í framtíðinni, hún er hér í nútímanum Í þessu bloggi Lestu hvernig gervigreindarforrit hafa haft áhrif á ýmsa geira.

DDOS árásir: Stutt yfirlit

DDOS árásir: Stutt yfirlit

Ertu líka fórnarlamb DDOS árása og ruglaður með forvarnaraðferðirnar? Lestu þessa grein til að leysa spurningar þínar.

Hefur þú einhvern tíma velt því fyrir þér hvernig tölvuþrjótar græða peninga?

Hefur þú einhvern tíma velt því fyrir þér hvernig tölvuþrjótar græða peninga?

Þú gætir hafa heyrt að tölvuþrjótar græða mikið af peningum, en hefur þú einhvern tíma velt því fyrir þér hvernig þeir vinna sér inn svona peninga? við skulum ræða.

Byltingarkenndar uppfinningar frá Google sem munu auðvelda lífi þínu.

Byltingarkenndar uppfinningar frá Google sem munu auðvelda lífi þínu.

Viltu sjá byltingarkenndar uppfinningar frá Google og hvernig þessar uppfinningar breyttu lífi hvers manns í dag? Lestu síðan til að blogga til að sjá uppfinningar frá Google.

Föstudagur Nauðsynlegur: Hvað varð um gervigreindardrifna bíla?

Föstudagur Nauðsynlegur: Hvað varð um gervigreindardrifna bíla?

Hugmyndin um að sjálfkeyrandi bílar fari á göturnar með hjálp gervigreindar er draumur sem við höfum átt um tíma núna. En þrátt fyrir nokkur loforð eru þau hvergi sjáanleg. Lestu þetta blogg til að læra meira…

Tæknileg sérkenni: Fjarlæg framtíð mannlegrar siðmenningar?

Tæknileg sérkenni: Fjarlæg framtíð mannlegrar siðmenningar?

Þar sem vísindin þróast hratt og taka yfir mikið af viðleitni okkar, eykst hættan á því að verða fyrir óútskýranlegri einstæðu. Lestu, hvað sérkenni gæti þýtt fyrir okkur.

Þróun gagnageymslu – Infographic

Þróun gagnageymslu – Infographic

Geymsluaðferðir gagna hafa verið að þróast gæti verið frá fæðingu gagna. Þetta blogg fjallar um þróun gagnageymslu á grundvelli upplýsingamynda.

Virkni Big Data Reference Architecture Layers

Virkni Big Data Reference Architecture Layers

Lestu bloggið til að þekkja mismunandi lög í Big Data Architecture og virkni þeirra á einfaldasta hátt.

6 ótrúlegir kostir þess að hafa snjall heimilistæki í lífi okkar

6 ótrúlegir kostir þess að hafa snjall heimilistæki í lífi okkar

Í þessum stafræna heimi hafa snjallheimilistæki orðið afgerandi hluti af lífi. Hér eru nokkrir ótrúlegir kostir snjallheimatækja um hvernig þau gera líf okkar þess virði að lifa því og einfaldara.

macOS Catalina 10.15.4 viðbót uppfærsla veldur fleiri vandamálum en að leysa

macOS Catalina 10.15.4 viðbót uppfærsla veldur fleiri vandamálum en að leysa

Nýlega gaf Apple út macOS Catalina 10.15.4 viðbótaruppfærslu til að laga vandamál en svo virðist sem uppfærslan sé að valda fleiri vandamálum sem leiða til múrsteins á Mac vélum. Lestu þessa grein til að læra meira