Kaip atidaryti prievadą Linux sistemoje: ufw ir iptables

Kad atidarytumėte prievadą (portą) Linux sistemoje, paprasčiausia naudoti ufw: sudo ufw allow 443/tcp. Tikslesnei kontrolei tinka iptables: sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT. Toliau — abu būdai su taisyklių išsaugojimu ir patikra, kad prievadas liktų atviras ir po perkrovimo.

1 būdas. ufw (paprasta ugniasienė)

ufw — antstatas virš iptables su aiškia sintakse, pagal numatymą pasiekiamas Ubuntu ir Debian sistemose.

1 žingsnis. Patikrinkite būseną

sudo ufw status verbose

Jei ufw neaktyvus, prieš įjungdami būtinai leiskite SSH, kitaip prarasite prieigą:

sudo ufw allow 22/tcp
sudo ufw enable

2 žingsnis. Atidarykite reikiamą prievadą

sudo ufw allow 443/tcp
sudo ufw allow 80/tcp

Atidaryti UDP prievadą arba diapazoną:

sudo ufw allow 53/udp
sudo ufw allow 6000:6010/tcp

Leisti prievadą tik iš vieno IP:

sudo ufw allow from 203.0.113.5 to any port 5432 proto tcp

3 žingsnis. Patikrinkite taisykles

sudo ufw status numbered

Pašalinti taisyklę pagal numerį:

sudo ufw delete 3

2 būdas. iptables (žemo lygio kontrolė)

iptables suteikia visišką taisyklių grandinių kontrolę.

Atidaryti prievadą

sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Teisingiau leisti tik naujus ir jau užmegztus ryšius:

sudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

Taisyklių peržiūra

sudo iptables -L INPUT -n --line-numbers

Taisyklės šalinimas

sudo iptables -D INPUT 2

iptables taisyklių išsaugojimas

Pagal numatymą iptables taisyklės po perkrovimo dingsta. Išsaugokite jas su paketu netfilter-persistent:

sudo apt install iptables-persistent
sudo netfilter-persistent save

ufw ar iptables: ką pasirinkti

Kriterijus ufw iptables
Paprastumas didelis mažas
Lankstumas vidutinis maksimalus
Taisyklių išsaugojimas automatinis reikia netfilter-persistent
Tinka tipinėms užduotims sudėtingoms NAT/maršrutizavimo schemoms

Nemaišykite rankinių iptables taisyklių su ufw tame pačiame serveryje — valdykite ugniasienę vienu įrankiu.

Įvardytos programos ir ufw profiliai

ufw geba dirbti ne tik su prievadų numeriais, bet ir su paruoštais programų profiliais. Prieinamų sąrašas:

sudo ufw app list

Atidaryti programos prievadus viena taisykle (pavyzdžiui, visą Nginx — 80 ir 443):

sudo ufw allow "Nginx Full"

Tai patogiau nei prisiminti prievadų numerius ir mažina rašybos klaidos riziką.

Prisijungimų dažnio ribojimas (rate limiting)

ufw geba riboti naujų prisijungimų prie prievado dažnį — naudinga SSH, kad būtų sunkiau brukti slaptažodžius. Taisyklė limit blokuoja IP, kuris per 30 sekundžių sukuria 6 ar daugiau prisijungimų:

sudo ufw limit 22/tcp

Tai nepakeičia patikimo autentifikavimo raktais, bet sumažina automatinių bandymų triukšmą.

Patikra, kad prievadas atviras

Vietoje tarnyba turi klausyti prievado:

sudo ss -tulpn | grep :443

Iš išorės patikrinkite pasiekiamumą iš kito kompiuterio:

nmap -p 443 203.0.113.10

Dažni klausimai

Atidariau prievadą, bet iš išorės jis nepasiekiamas — kodėl? Prievadas atviras ugniasienėje, bet tarnyba jo neklauso arba veikia antra ugniasienė (tiekėjo debesies saugumo grupė). Patikrinkite ss -tulpn ir tinklo nustatymus valdymo skyde.

ufw enable nutraukė mano SSH — ką daryti? Prieš įjungdami ufw visada pridėkite ufw allow 22/tcp. Jei prieiga prarasta, atkurkite ją per KVM konsolę.

iptables taisyklės po perkrovimo dingo — ką daryti? iptables pats taisyklių neišsaugo. Įdiekite iptables-persistent ir įvykdykite netfilter-persistent save.

Kaip laikinai uždaryti prievadą? ufw sistemoje — sudo ufw deny 443/tcp arba pašalinkite leidžiančią taisyklę. iptables — pašalinkite taisyklę komanda -D.

Ar reikia atidaryti prievadą išeinantiems ryšiams? Ne, pagal numatymą OUTPUT politika leidžia išeinantį srautą. Atidaromi būtent gaunamieji (INPUT) tarnybų prievadai.

Reikia serverio su root prieiga ir savo ugniasiene? Paleiskite VPS su Linux skiltyje VPS nuoma arba užsakykite Serverių administravimą.

Laura Zariņa