Sitwazzjoni attwali: PHP2Shell. Żewġ vulnerabbiltajiet kritiċi ta' PHP (CVSS 9,2) jippermettu kodiċi malizzjuż mingħajr login. Patches mill-21/10/2026.X'għandu jsir issa →

Firewall għal servers tal-web: iftaħ biss il-ports meħtieġa

Server tal-web ġeneralment jeħtieġ lejn barra żewġ ports biss. Madankollu fuq ħafna servers jisimgħu databases, PHP-FPM jew interfaces tal-amministrazzjoni fl-internet. Hekk issib is-servizzi miftuħa u tagħlaq dak li mhux meħtieġ.

Stat 6 min. qariTisħiħ u konfigurazzjoni

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
Importanti

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.

Sorsi

Kuntatt immedjat

Kull siegħa tgħodd. Iktbu lilna issa.

Iddeskrivu fil-qosor is-sistema, il-verżjoni ta' PHP u dak li osservajtu. Nikkuntattjawkom, niċċaraw is-sitwazzjoni u naħdmu mill-bogħod sakemm l-inċident jingħalaq u jiġi ddokumentat.

Għajnuna immedjata