Kā atvērt portu Linux: ufw un iptables
Lai Linux vidē atvērtu portu, visvienkāršāk izmantot ufw: sudo ufw allow 443/tcp. Precīzākai kontrolei lieto iptables: sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT. Zemāk — abi paņēmieni ar noteikumu saglabāšanu un pārbaudi, lai ports paliktu atvērts arī pēc pārstartēšanas.
1. veids. ufw (vienkāršais ugunsmūris)
ufw ir uzbūve virs iptables ar saprotamu sintaksi, pēc noklusējuma pieejama Ubuntu un Debian sistēmās.
1. solis. Pārbaudiet statusu
sudo ufw status verbose
Ja ufw nav aktīvs, pirms ieslēgšanas obligāti atļaujiet SSH, citādi zaudēsiet piekļuvi:
sudo ufw allow 22/tcp
sudo ufw enable
2. solis. Atveriet vajadzīgo portu
sudo ufw allow 443/tcp
sudo ufw allow 80/tcp
Atvērt UDP portu vai diapazonu:
sudo ufw allow 53/udp
sudo ufw allow 6000:6010/tcp
Atļaut portu tikai no vienas IP adreses:
sudo ufw allow from 203.0.113.5 to any port 5432 proto tcp
3. solis. Pārbaudiet noteikumus
sudo ufw status numbered
Dzēst noteikumu pēc numura:
sudo ufw delete 3
2. veids. iptables (zema līmeņa kontrole)
iptables sniedz pilnu kontroli pār noteikumu ķēdēm.
Atvērt portu
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Pareizāk ir atļaut tikai jaunus un izveidotus savienojumus:
sudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Noteikumu apskate
sudo iptables -L INPUT -n --line-numbers
Noteikuma dzēšana
sudo iptables -D INPUT 2
iptables noteikumu saglabāšana
Pēc noklusējuma iptables noteikumi pēc pārstartēšanas tiek nomesti. Saglabājiet tos ar pakotni netfilter-persistent:
sudo apt install iptables-persistent
sudo netfilter-persistent save
ufw vai iptables: ko izvēlēties
| Kritērijs | ufw | iptables |
|---|---|---|
| Vienkāršība | augsta | zema |
| Elastība | vidēja | maksimāla |
| Noteikumu saglabāšana | automātiska | vajadzīgs netfilter-persistent |
| Piemērots | tipiskiem uzdevumiem | sarežģītām NAT/maršrutēšanas shēmām |
Nejauciet manuālus iptables noteikumus ar ufw vienā serverī — pārvaldiet ugunsmūri ar vienu rīku.
Nosauktie ufw lietojumprogrammu profili
ufw prot strādāt ne tikai ar portu numuriem, bet arī ar gataviem lietojumprogrammu profiliem. Pieejamo saraksts:
sudo ufw app list
Atvērt lietojumprogrammas portus ar vienu noteikumu (piemēram, visu Nginx — 80 un 443):
sudo ufw allow "Nginx Full"
Tas ir ērtāk nekā atcerēties portu numurus un samazina drukas kļūdu risku.
Savienojumu biežuma ierobežošana (rate limiting)
ufw prot ierobežot jaunu savienojumu biežumu uz portu — noderīgi SSH gadījumā, lai apgrūtinātu paroļu uzminēšanu. Noteikums limit bloķē IP adresi, kas veic 6 vai vairāk savienojumus 30 sekundēs:
sudo ufw limit 22/tcp
Tas neaizstāj drošu autentifikāciju ar atslēgām, bet samazina automātisko uzbrucēju troksni.
Pārbaude, ka ports ir atvērts
Lokāli servisam jāklausās uz porta:
sudo ss -tulpn | grep :443
No ārpuses pārbaudiet pieejamību no cita resursdatora:
nmap -p 443 203.0.113.10
Biežākie jautājumi
Atvēru portu, bet no ārpuses tas nav pieejams — kāpēc?
Ports ugunsmūrī ir atvērts, bet serviss uz tā neklausās vai pastāv otrs ugunsmūris (pakalpojumu sniedzēja mākoņa security group). Pārbaudiet ss -tulpn un tīkla iestatījumus panelī.
ufw enable pārtrauca manu SSH — ko darīt?
Pirms ufw ieslēgšanas vienmēr pievienojiet ufw allow 22/tcp. Ja piekļuve zaudēta, atjaunojiet to caur KVM konsoli.
Pēc pārstartēšanas pazuda iptables noteikumi — ko darīt?
iptables noteikumus pats nesaglabā. Instalējiet iptables-persistent un izpildiet netfilter-persistent save.
Kā uz laiku aizvērt portu?
ufw vidē — sudo ufw deny 443/tcp vai dzēsiet atļaujošo noteikumu. iptables vidē — dzēsiet noteikumu ar komandu -D.
Vai jāatver ports izejošajiem savienojumiem? Nē, pēc noklusējuma OUTPUT politika atļauj izejošo datu plūsmu. Atver tieši ienākošos (INPUT) portus servisiem.
Nepieciešams serveris ar root piekļuvi un savu ugunsmūri? Izvietojiet VPS ar Linux sadaļā VPS noma vai pasūtiet serveru administrēšanu.