Vienkārša IPTables konfigurācija un piemēri Ubuntu 16.04

Ievads

iptablesir spēcīgs rīks, ko izmanto, lai konfigurētu Linux kodola integrēto ugunsmūri. Tas ir sākotnēji instalēts lielākajā daļā Ubuntu izplatījumu, taču, ja izmantojat pielāgotu Ubuntu versiju vai izmantojat konteineru, visticamāk, tas būs jāinstalē manuāli.

sudo apt-get install iptables iptables-persistent

Ja pēc instalēšanas jums tiek jautāts, vai saglabāt pašreizējos noteikumus, tas pašlaik nav svarīgi, jo jūs vēlāk gatavojaties noņemt vai izveidot jaunus noteikumus.

Padomi

Varat izmantot netcatkomandu ( citā datorā, nevis serverī), lai pārbaudītu, kuri porti ir atvērti vai aizvērti.

nc -z -w5 -v SERVER_IP PORT
  • nc ir netcat komanda.
  • -z vienkārši nosūtiet paketi bez kravas.
  • -w5 pagaidiet līdz 5 sekundēm, lai saņemtu atbildi.
  • -v runīgs režīms.
  • Aizstāt SERVER_IPar sava servera adresi.
  • Aizstājiet PORTar portu, kuru vēlaties pārbaudīt, vai tas ir atvērts (piemēram, 22).

Savā serverī varat izmantot netstatkomandu, lai redzētu, kuri porti pašlaik klausās savienojumus.

sudo netstat -tulpn

Piezīme: Lai gan netstatir ērts, lai atrastu ostām vēlaties strādāt ar, jums ir jāzina par pieteikumu jums pašlaik ir instalēta jūsu serverī un kurā ostām ir klausīšanās, jums nav jābūt, lai varētu katru ostas jums atrast šajā netstatprodukciju .

Sintakse

sudo iptables -A INPUT -p tcp -m tcp --dport 22 --m geoip --src-cc PE -j ACCEPT
  • -A INPUTpievienojiet INPUTķēdei kārtulu , ķēde ir kārtulu grupa, šajā rokasgrāmatā visbiežāk izmantojamie ir INPUT, OUTPUTun PREROUTING.
  • -p tcpiestatīt tcpkā protokolu, uz kuru attieksies šis noteikums, varat izmantot arī citus protokolus, piemēram udp, icmpvai all.
  • -m tcpizmantojiet tcpmoduli. iptablesatbalsta papildu funkcijas, izmantojot moduļus, no kuriem daži jau ir sākotnēji instalēti, iptablesbet citi, piemēram, geoipmodulis.
  • --dport 22komandas, kas sākas ar --norāda papildu opcijas iepriekš izmantotajam modulim, šajā gadījumā mēs liksim tcpmodulim piemērot tikai portam 22.
  • -m geoipizmantojiet geoipmoduli. Tas ierobežos pakešu skaitu atkarībā no valsts (vairāk informācijas 5. darbībā).
  • --src-cc PEpasakiet geoipmodulim ierobežot ienākošās paketes ar tām, kas nāk no Peru. Vairāk valstu kodus meklējiet ISO 3166 country codesinternetā.
  • -j ACCEPT-jarguments stāsta iptables, ko darīt, ja pakete atbilst ierobežojumus norādītas iepriekšējos argumentus. Šajā gadījumā tas būs ACCEPTšīs paketes, citas iespējas ir REJECT, DROPun vairāk. Vairāk iespēju var atrast, meklējot iptables jump targetsinternetā.

1. Pamati

Uzskaitiet visus noteikumus.

sudo iptables -L

Uzskaitiet visas komandas, kas tika izmantotas, lai izveidotu pašlaik izmantotās kārtulas, kas ir noderīgas kārtulu rediģēšanai vai dzēšanai.

sudo iptables -S

Lai dzēstu noteiktu kārtulu, izvēlieties kārtulu no sudo iptables -Sun aizstājiet -Aar -D.

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

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

Uzskaitiet visus numurētos noteikumus INPUTķēdē.

sudo iptables -L INPUT --line-numbers

Dzēst numurētu kārtulu.

sudo iptables -D INPUT 2

Lai notīrītu visus noteikumus.

sudo iptables -F

Brīdinājums: savienojums var pazust, ja savienojat ar SSH .

Noskaidrojiet tikai noteikumus OUTPUTķēdē.

sudo iptables -F OUTPUT

2. Izveidojiet sākotnējos noteikumus

Atļaut SSHpar eth0saskarni

sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
  • -i eth0 lietot noteikumu konkrētam interfeisam, lai ļautu no jebkura interfeisa noņemt šo komandu.

Lai ierobežotu ienākošās paketes ar noteiktu IP (ti, 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 norāda IP/apakštīklu, no kura atļaut izveidot savienojumus.

Iestatiet noklusējuma ķēdes noteikumus.

Brīdinājums: pirms turpināt, pārliecinieties, vai esat lietojis pareizos SSH noteikumus, ja strādājat ar attālo serveri .

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP 
sudo iptables -P OUTPUT ACCEPT 
  • -P INPUT DROP liedz visas ienākošās paketes (ti, neviens nevarēs izveidot savienojumu ar jūsu darbinātajiem serveriem, piemēram, Apache, SQL utt.).
  • -P FORWARD DROP liedz visas pārsūtītās paketes (ti, ja izmantojat sistēmu kā maršrutētāju).
  • -P OUTPUT ACCEPTatļauj visas izejošās paketes (ti, kad veicat HTTPpieprasījumu).

Atļaut visu trafiku atpakaļcilpas saskarnē ( ieteicams ).

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

3. Padariet noteikumus noturīgus

Saglabājiet pašreizējos iptablesnoteikumus.

sudo netfilter-persistent save
sudo netfilter-persistent reload

Ja izmantojat konteineru, netfilter-persistentkomanda, visticamāk, nedarbosies, tāpēc iptables-persistentpakotne ir jāpārkonfigurē .

sudo dpkg-reconfigure iptables-persistent

4. Atļaujiet izejošos savienojumus

Atļaut DNS vaicājumus.

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

Izmantojiet statemoduli, lai atļautu RELATEDun ESTABLISHEDizejošās paketes.

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

Atļaujiet vēlamās pieslēgvietas; šajā gadījumā HTTPostas.

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

Vairāk portu, kurus, iespējams, vēlēsities izmantot.

  • FTP: tcp 21. portā
  • HTTPS: tcp 443. portā
  • DHCP: udp 67. portā
  • NTP: udp 123. portā

Piezīme. Ja vēlaties atļaut apt-get, iespējams, būs jāatļauj FTPunHTTPS .

Atļaut atgriezto trafiku tikai savienojumiem RELATEDun jau esošajiem ESTABLISHEDsavienojumiem ( ieteicams, jo dažreiz ir nepieciešama divvirzienu saziņa).

sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Citi noderīgi noteikumi

Atļaut ping pieprasījumus no ārpuses.

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

Pārsūtīt trafiku eth0portā 2200uz 10.0.3.21:22(noderīgi, ja vēlaties atklāt SSH serveri, kas darbojas konteinerā).

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

Ja veiksmīgi piesakāties savā serverī, izmantojot SSH, tiks izveidots pastāvīgs savienojums (ti, netiks izveidoti jauni savienojumi, pat ja esat izveidojis savienojumu ilgāk par 1 stundu). Ja neizdodas un mēģināt vēlreiz pieteikties, tiks izveidots jauns savienojums. Tas bloķēs nepārtrauktus SSH pieteikšanās mēģinājumus, ierobežojot jaunu savienojumu skaitu stundā.

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

Pāradresējiet visus pieprasījumus no porta 443uz portu 4430(noderīgi, ja vēlaties izveidot savienojumu ar portu 443bez 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 tīkla interfeisu.
  • -m geoip valsts bloka modulis (skatiet 5. darbību).

Brīdinājums: nelietojiet lo, OS atmetīs visas paketes, kas novirzītas uz atpakaļcilpas interfeisu .

5. Atļaut vai bloķēt veselas valstis

5.1 Instalēšana xtables-addons

Jūs varat instalēt xtables-addonsmoduli, izmantojot dažādas metodes, droši izmantojiet instalēšanas metodi, kas jums vislabāk atbilst.

  • Instalējiet, izmantojot apt-get.

    sudo apt-get install xtables-addons-common
    
  • Instalējiet, izmantojot module-assistant.

    sudo apt-get install module-assistant xtables-addons-source
    sudo module-assistant --verbose --text-mode auto-install xtables-addons
    
  • Instalējiet no avota.

    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
    

Izveidojiet "valstu" datubāzi.

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

Restartējiet sistēmu.

sudo reboot

Pēc xtables-addonsveiksmīgas instalēšanas pēc pirmās atsāknēšanas palaidiet, depmodpretējā gadījumā valsts bloķēšana nedarbosies pareizi (tas ir nepieciešams tikai pirmo reizi).

sudo depmod 

Izveidojiet skriptu vietnē, /etc/cron.monthly/geoip-updaterlai geoipkatru mēnesi atjauninātu datubāzi.

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

Padarīt /etc/cron.monthly/geoip-updaterizpildāmu.

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

5.2. Noteikumu paraugi

_Piezīme. Ja iptables: No chain/target/match by that name, mēģinot lietot geoipkārtulu, tiek parādīts kļūdas ziņojums, iespējams, ka xtables-addonstā nav instalēta pareizi. Izmēģiniet citu instalēšanas metodi.

Bloķējiet visas ienākošās paketes no Ķīnas, Honkongas, Krievijas un Korejas.

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

Atļaut ienākošās paketes ostā 80no jebkuras vietas, izņemot iepriekš minētās valstis.

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

Atļaut ienākošās paketes ens3interfeisā 22tikai no Peru (jūs varat brīvi izvēlēties valsts kodu, no kuras vēlaties pieņemt paketes, piemēram, USASV).

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

Atļaut ienākošās paketes ostā 443tikai no Peru.

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

Statiskā tīkla un IPv6 konfigurēšana operētājsistēmā CentOS 7

Statiskā tīkla un IPv6 konfigurēšana operētājsistēmā CentOS 7

VULTR nesen veica izmaiņas, un tagad visam vajadzētu darboties labi, ja ir iespējots NetworkManager. Ja vēlaties atspējot

Docker CE instalēšana Ubuntu 16.04

Docker CE instalēšana Ubuntu 16.04

Vai izmantojat citu sistēmu? Docker ir lietojumprogramma, kas ļauj izvietot programmas, kas tiek darbinātas kā konteineri. Tas tika uzrakstīts populārajā Go programmā

Netīrās govs eksploīta ielāgošana vietnē CentOS

Netīrās govs eksploīta ielāgošana vietnē CentOS

Kas ir netīrā govs (CVE-2016-5195)? Netīrās govs ievainojamība tiek izmantota, izmantojot to, kā Linux apstrādā kodu. Tas ļauj nepievilinātam lietotājam gai

Iestatiet laika joslu un NTP operētājsistēmā Ubuntu 14.04

Iestatiet laika joslu un NTP operētājsistēmā Ubuntu 14.04

Vultr serveri var nebūt izvietoti ar jūsu serverī nepieciešamo laika joslu/datumu/laiku. Par laimi mēs varam manuāli iestatīt laika joslu, lai novērstu problēmas

Rust instalēšana Ubuntu 14.04

Rust instalēšana Ubuntu 14.04

Rust, plaši pazīstama kā Rust-Lang, ir sistēmas programmēšanas valoda, ko izstrādā Mozilla un atbalsta LLVM. Rūsa ir pazīstama ar programmu novēršanu

Kā instalēt osTicket uz FreeBSD 12

Kā instalēt osTicket uz FreeBSD 12

Vai izmantojat citu sistēmu? osTicket ir atvērtā koda klientu atbalsta biļešu sistēma. osTicket pirmkods ir publiski mitināts vietnē Github. Šajā apmācībā

Darbs ar Linux iespējām

Darbs ar Linux iespējām

Ievads Linux iespējas ir īpaši atribūti Linux kodolā, kas piešķir procesiem un binārajiem izpildāmajiem failiem īpašas privilēģijas, kas ir normālas.

Kā instalēt JuliaLang Ubuntu 17.04

Kā instalēt JuliaLang Ubuntu 17.04

Julia, plaši pazīstama kā JuliaLang, ir programmēšanas valoda skaitliskajai skaitļošanai. Džūlija ir tikpat ātra kā C, taču tas neupurē lasāmību

Augsta pieejamība, izmantojot privāto tīklu Ubuntu 16.04 ar Keepalived

Augsta pieejamība, izmantojot privāto tīklu Ubuntu 16.04 ar Keepalived

Dažām augstas pieejamības arhitektūrām nepieciešama peldoša IP adrese. Šī funkcionalitāte ir pieejama Vultr platformā, tiklīdz ir izveidots privātais tīkls

Iestatiet tikai SFTP lietotāju kontus Ubuntu 14

Iestatiet tikai SFTP lietotāju kontus Ubuntu 14

Ievads Dažos gadījumos ir nepieciešams izveidot lietotājus ar lasīšanas un rakstīšanas piekļuvi vienam direktorijam, tikai izmantojot FTP. Šis raksts jums parādīs, kā t

Kā iestatīt Node.js pastāvīgās lietojumprogrammas Ubuntu 16.04

Kā iestatīt Node.js pastāvīgās lietojumprogrammas Ubuntu 16.04

Node.js lietojumprogrammas ir populāras to mērogošanas spējas dēļ. Vairāku vienlaicīgu procesu palaišana vairākos serveros nodrošina mazāku latentumu un ilgāku darbības laiku

Kā instalēt SuiteCRM operētājsistēmā Ubuntu 16.04

Kā instalēt SuiteCRM operētājsistēmā Ubuntu 16.04

SuiteCRM ir bezmaksas atvērtā koda alternatīva populārajai klientu attiecību pārvaldības (CRM) sistēmai SugarCRM. Tas kļuva populārs, kad SugarCRM nolēma

Kā instalēt Open Eshop operētājsistēmā Ubuntu 16.04

Kā instalēt Open Eshop operētājsistēmā Ubuntu 16.04

Open Eshop ir bezmaksas atvērtā koda e-komercijas programmatūra digitālo preču, piemēram, MP3, e-grāmatu, filmu, programmatūras un daudz ko citu, pārdošanai. Šajā apmācībā mēs vēlēsimies

Instalējiet NixOS vietnē Vultr

Instalējiet NixOS vietnē Vultr

NixOS ir tīri funkcionāls Linux izplatīšana. To var atrast vietnē nixos.org. Galvenais NixOS izmantošanas iemesls ir tas, ka tas ir pilnībā deklaratīvs, kas padara

Instalējiet Nginx + PHP FPM + Caching + MySQL Ubuntu 12.04

Instalējiet Nginx + PHP FPM + Caching + MySQL Ubuntu 12.04

Iespējams, daudzi cilvēki izmantos savus Vultr VPS kā tīmekļa serverus, laba izvēle būtu Nginx kā tīmekļa serveris. Šajā tēmā es aprakstīšu o

Hosts faila izmantošana vietņu pārbaudei

Hosts faila izmantošana vietņu pārbaudei

Hosts fails ir īpašs fails jūsu darbstacijas datorā, kurā tiks saglabāta IP un nosaukuma informācija. Šis fails tiek pārbaudīts pirms DNS, tādēļ, ja ievietojat a

Kā instalēt Xubuntu darbvirsmu Vultr serveros, izmantojot Ubuntu 15.10

Kā instalēt Xubuntu darbvirsmu Vultr serveros, izmantojot Ubuntu 15.10

Xubuntu ir XFCE + Ubuntu! XFCE ir viegla Ubuntu GUI/darbvirsma. Vultr serveriem ir nepieciešamas papildu atkarības, kas pēc noklusējuma nav instalētas

Iestatīšana ļauj šifrēt ar Lighttpd Ubuntu 16.04

Iestatīšana ļauj šifrēt ar Lighttpd Ubuntu 16.04

Ievads Let's Encrypt ir sertifikācijas iestāde (CA), kas izsniedz bezmaksas SSL/TLS sertifikātus. Lighttpd ir viegls tīmekļa serveris, kas darbojas uz lo

Apache optimizācija zemas klases VPS operētājsistēmā Ubuntu 14.04

Apache optimizācija zemas klases VPS operētājsistēmā Ubuntu 14.04

Apache ir ļoti viegli instalēt un inicializēt, taču tas ir aprīkots ar daudziem iepriekš instalētiem moduļiem, kā rezultātā, palaižot, var rasties veiktspējas problēmas.

Kā novērst vienlaicīgus savienojumus operētājsistēmā Linux, izmantojot IPTables

Kā novērst vienlaicīgus savienojumus operētājsistēmā Linux, izmantojot IPTables

iptables ir ugunsmūra programmatūra, ko var atrast daudzos izplatījumos, tostarp CentOS un Ubuntu. Šajā dokumentā jūs redzēsit, kā jūs varat novērst vienlaicīgumu

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk