Fil-qosor: Firewall għal servers tal-web tippermetti dieħla biss TCP 80 u 443, ma' HTTP/3 addizzjonalment UDP 443, u SSH biss minn netwerks magħrufa. Kull ma hu ieħor jiġi skartat: databases, caches, PHP-FPM u interfaces tal-amministrazzjoni ma jappartjenux fl-internet. Ivverifika l-ewwel b'ss -tulpn x'jisma', ibni imbagħad sett ta' regoli bl-istandard „skarta” u ittestja r-riżultat minn barra. Li tillimita l-konnessjonijiet ħerġin tillimita addizzjonalment il-konsegwenzi ta' dħul.
Il-bibien minsija maġenb il-bieb tad-dar
F'PHP2Shell il-ħarsa kienet fuq is-server tal-web innifsu, fuq il-ports 80 u 443. Dawn iridu jkunu miftuħa, inkella ma jkun hemm l-ebda websajt. Waqt inventarji wara vulnerabbiltajiet bħal dawn, madankollu, spiss tidher xi ħaġa oħra: maġenb il-bieb tad-dar hemm bibien oħra miftuħa. Database tisma' fuq l-interfaces tan-netwerk kollha, pool PHP-FPM fuq port 9000, servizz tal-cache mingħajr password, interface tal-amministrazzjoni mill-fażi tal-installazzjoni.
Kull wieħed minn dawn il-bibien huwa superfiċje ta' attakk proprja b'vulnerabbiltajiet proprji. Firewall li tippermetti biss dak meħtieġ tagħlaqhom b'ftit regoli. Din hija waħda mill-miżuri l-aktar effettivi meta tassigura server proprju, kif tiddeskrivi wkoll il-paġna Assigura root servers u vServers stess.
X'jappartjeni miftuħ, x'ma jappartjenix?
Il-prinċipju huwa lista ta' permess: kollox magħluq, u biss servizzi ċċarati b'mod konxju huma aċċessibbli. Il-ħarsa ġenerali li ġejja tgħin fil-klassifikazzjoni.
| Servizz | Port tipiku | Aċċessibbli minn barra? |
|---|---|---|
| HTTP u HTTPS | TCP 80, TCP 443 | iva |
| HTTP/3 (QUIC) | UDP 443 | biss jekk jintuża |
| SSH | TCP 22 | biss minn netwerks magħrufa jew permezz ta' VPN |
| Panel tal-hosting | skont il-prodott | biss minn netwerks magħrufa |
| MySQL/MariaDB, PostgreSQL | TCP 3306, TCP 5432 | le |
| Redis, Memcached | TCP 6379, TCP 11211 | le |
| PHP-FPM | TCP 9000 jew socket Unix | le, aħjar biss socket |
| Mail server | TCP 25, 465, 587, 993 | biss jekk is-server jirċievi jew jipprovdi emails |
Servizz li m'għandux għalfejn jilħaq lejn barra għandu addizzjonalment jisma' biss fuq 127.0.0.1 jew socket Unix. Allura jibqa' inaċċessibbli anke f'ħsara tal-firewall. Għal aċċessi tal-amministrazzjoni jaqblu permessi ta' IP jew VPN; dettalji jinsabu fl-artikolu Aħbi ż-żoni tal-amministrazzjoni b'IP, VPN jew protezzjoni addizzjonali.
Pass 1: Iddetermina x'jisma'
Qabel ma tikteb regoli, ikseb ħarsa ġenerali. Il-kmandi li ġejjin jaqraw biss:
# Il-ports TCP u UDP kollha li jisimgħu bil-proċess
sudo ss -tulpn
# Sett attwali ta' regoli ta' nftables
sudo nft list ruleset
# Status ta' ufw, jekk jintuża
sudo ufw status verbose
Oqgħod attent fl-output ta' ss għall-indirizz quddiem il-port. 0.0.0.0 jew [::] ifisser: is-servizz jisma' fuq l-interfaces kollha. 127.0.0.1 ifisser: biss lokalment. Innota għal kull servizz jekk irid ikun aċċessibbli minn barra. Din il-lista hija fl-istess ħin biċċa mill-inventarju tas-server tiegħek.
Firewall għal servers tal-web b'nftables
nftables huwa l-packet filter attwali taħt Linux. Is-sett ta' regoli li ġej jissegwi l-eżempju fil-wiki uffiċjali ta' nftables u jżid permess għal SSH biss minn netwerk tal-amministrazzjoni. L-indirizzi huma eżempji ta' dokumentazzjoni u jridu jiġu sostitwiti.
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
set verwaltung_v4 {
type ipv4_addr
flags interval
elements = { 203.0.113.0/28 }
}
chain input {
type filter hook input priority 0; policy drop;
ct state vmap { established : accept, related : accept, invalid : drop }
iifname lo accept
# IPv6 jeħtieġ skoperta tal-ġirien
icmpv6 type { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert } accept
icmp type echo-request limit rate 5/second accept
icmpv6 type echo-request limit rate 5/second accept
# Websajt
tcp dport { 80, 443 } accept
# biss ma' HTTP/3:
# udp dport 443 accept
# SSH biss min-netwerk tal-amministrazzjoni
ip saddr @verwaltung_v4 tcp dport 22 accept
}
chain forward {
type filter hook forward priority 0; policy drop;
}
}
Ivverifika s-sett ta' regoli qabel it-tagħbija b'nft -c -f /etc/nftables.conf. L-ewwel linja flush ruleset tħassar ir-regoli eżistenti kollha, anke dawk li Docker jew Fail2ban daħħlu. Fuq servers b'Docker jew servizzi oħra li jissettjaw regoli proprji, adatta għalhekk is-sett ta' regoli, minflok ma tissostitwih b'mod ġenerali. Kif Fail2ban jaħdem mal-firewall jinsab taħt Stabbilixxi Fail2ban għal servers tal-web.
Min jippreferi aktar sempliċi juża taħt Ubuntu ufw. Importanti hija l-ordni: l-ewwel il-permess ta' SSH, imbagħad xegħel.
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow proto tcp from 203.0.113.0/28 to any port 22
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose
Ibdel ir-regoli tal-firewall fuq servers remoti biss b'toroq ta' aċċess ieħor, pereżempju l-console tal-fornitur tiegħek. Regola SSH żbaljata inkella teskludi lilek innifsek.
Konnessjonijiet ħerġin: in-nofs imqiegħed taħt il-valur
Il-biċċa l-kbira tal-firewalls jippermettu kollox lejn barra. Għal server tal-web dan huwa ġeneruż. Wara dħul l-attakkanti jużaw konnessjonijiet ħerġin biex jgħabbu għodod, jiġbdu data jew jirċievu kmandi. Proċessi tas-server tal-web jew ta' PHP li jibnu konnessjonijiet mhux mistennija għalhekk jitqiesu sinjal ta' twissija.
Limitazzjoni tal-konnessjonijiet ħerġin hija aktar bi sforz, għax kull konnessjoni leġittima trid tkun magħrufa: sorsi tal-pakketti għall-aġġornamenti, servizzi tal-pagament, interfaces, il-bgħit tal-mail, servers tal-ħin. Triq pragmatika hija li l-ewwel jiġu rreġistrati l-konnessjonijiet ħerġin, imbagħad tinbena lista ta' permess u biss wara jinbloċċaw. Kif tivverifika l-konnessjonijiet eżistenti tiddeskrivih Ivverifika l-konnessjonijiet ħerġin ta' server; liema traċċi oħra jindikaw dħul jinsab taħt Diġà kompromess?.
Fl-aħħar ittestja minn barra, minn kompjuter ieħor u biss kontra s-sistemi tiegħek stess, liema ports huma verament aċċessibbli. Dan it-test biss juri jekk Docker, il-firewall tal-fornitur u r-regoli tas-server flimkien jagħtux l-istampa mixtieqa.
Konklużjoni: ftit regoli, effett kbir
Firewall għal server tal-web m'għandhiex tkun kumplikata. Ports tal-web miftuħa, amministrazzjoni biss minn netwerks magħrufa, kull ma hu ieħor skartat: b'dawn ir-regoli bażiċi databases, caches u servizzi minsija jisparixxu mill-internet. Din hija waħda mill-miżuri bl-aħjar proporzjon bejn sforz u benefiċċju.
Kontra vulnerabbiltajiet fis-server tal-web jew f'PHP innifsu l-firewall ma tgħinx, għax eżattament dawn il-ports iridu jibqgħu miftuħa. Is-saħħa tagħha tinsab fit-tnaqqis tas-superfiċje l-oħra ta' attakk u, b'limitazzjoni tal-konnessjonijiet ħerġin, fil-kontroll tal-konsegwenzi ta' dħul.
Id-deċiżiva hija l-manutenzjoni. Kull servizz ġdid, kull container u kull bidla għand il-fornitur jista' jċaqlaq l-istampa. Irrepeti l-verifika minn barra għalhekk wara kull bidla akbar u f'intervalli fissi, pereżempju darba kull kwart tas-sena.
Kif tgħin PHP SOS b'mod konkret?
- Nieħdu inventarju: niġbru s-servizzi kollha li jisimgħu u nivverifikaw minn barra x'inhu verament aċċessibbli.
- Nibnu s-sett ta' regoli: noħolqu lista ta' permess għal konnessjonijiet dieħlin u, fejn sensibbli, ħerġin, ikkoordinata ma' Docker, Fail2ban u l-firewall tal-fornitur.
- Nibdlu b'mod sikur: nimplimentaw il-bidliet b'tieni triq ta' aċċess u pjan ta' rtirar.
- Niddokumentaw: ports, permessi u raġunijiet inżommuhom bħala parti mit-Tisħiħ tas-server.
Mistoqsijiet frekwenti
Liema ports jeħtieġ server tal-web?
Għall-viżitaturi bħala regola biss TCP 80 u 443, ma' HTTP/3 addizzjonalment UDP 443. SSH u interfaces tal-amministrazzjoni għandhom ikunu aċċessibbli biss minn netwerks magħrufa jew permezz ta' VPN. Ports tad-database, tal-cache u ta' PHP-FPM ma jappartjenux fl-internet.
Firewall tipproteġi minn PHP2Shell?
Le. PHP2Shell jiġi sfruttat permezz tas-server tal-web, jiġifieri permezz tal-ports li jridu jkunu miftuħa. Il-firewall, madankollu, tnaqqas is-superfiċje l-oħra ta' attakk, u limitazzjoni tal-konnessjonijiet ħerġin tista' tikkontrolla l-konsegwenzi ta' dħul.
Għaliex ufw juri ports bħala magħluqa li madankollu huma aċċessibbli?
Każ magħruf huma containers Docker: Docker jikteb ports ippubblikati direttament fir-regoli tal-packet filter, madwar ufw. Ivverifika għalhekk il-ports miftuħa dejjem addizzjonalment minn barra.
Il-firewall tal-fornitur tal-hosting tiegħi hija biżżejjed?
Firewall tal-fornitur quddiem is-server hija saff tajjeb ieħor. Imma ma tissostitwixxix il-firewall fuq is-server, għax ma taħdimx f'każ ta' żball fil-konfigurazzjoni tal-fornitur jew ma' konnessjonijiet interni. L-aħjar tuża t-tnejn bl-istess regoli bażiċi.