paano i-set up ang UFW firewall sa VPS
Matutong i-configure ang UFW sa iyong VPS nang hindi ma-lockout sa SSH. Alamin ang tamang pagkakasunod-sunod ng commands para sa default-deny policy.
Ano ang UFW at bakit ito kailangan
Ang UFW ay nangangahulugang Uncomplicated Firewall, at tapat ang pangalang ito. Ito ay isang user-friendly na interface para sa firewall na built-in na sa Linux kernel. Sa halip na magsulat ng mga raw rules, gagamit ka ng mga maikling command tulad ng ufw allow 22/tcp. Sa isang bagong VPS, lahat ng listening service ay accessible mula sa internet by default. Binabaligtad ito ng firewall: i-deny ang lahat, at i-allow lamang ang mga port na kailangan mo. Ang pagbabagong ito ay magbabawas sa iyong exposure gamit ang apat na command.
Bago ito i-configure, alamin muna kung ano ang mga listening services dahil sila ang kontrolado ng firewall. Ang unang hakbang ay ang pagbabasa kung ano ang mga listening gamit ang ss -tlnp.
Ang iisang panuntunan para hindi ma-lockout ang sarili
Ito ang pagkakamaling kinatatakutan ng marami sa paggamit ng firewalls. I-e-enable mo ang UFW na may default-deny policy, pero hindi mo pinayagan ang SSH. Kapag nag-on na ang firewall, mapuputol ang sarili mong connection at hindi ka na makakabalik. Iwasan ito sa pamamagitan ng pag-allow muna sa SSH bago i-enable ang UFW. Iyan ang mahalagang hakbang, at ang mga sumusunod na steps ay naka-ayos sa tamang pagkakasunod-sunod.
Kung mangyari man ito sa iyo, hindi ka tuluyang ma-lockout: ang web console ng iyong provider, via VNC o serial, ay hindi gumagamit ng SSH. Maaari kang mag-log in doon para patakbuhin ang ufw disable o i-add ang kulang na rule.
Step 1: I-set ang default policies
Simulan sa pag-utos sa UFW na i-deny ang lahat ng incoming traffic at i-allow ang lahat ng outgoing traffic:
sudo ufw default deny incoming
sudo ufw default allow outgoingMahalaga ang deny incoming. Ibig sabihin nito, lahat ng port na walang explicit allow rule ay closed sa labas, kahit may service na nakikinig dito. Pinapahintulutan ng allow outgoing ang iyong server na kumonekta sa internet para sa mga updates at iba pa. Ang dalawang command na ito ay nagbabago lamang ng policy; walang ipapatupad hangga't hindi mo i-e-enable ang UFW sa step 3.
Step 2: I-allow ang mga port na kailangan mo lang
Bago i-enable, i-open muna ang SSH para hindi maputol ang iyong connection:
sudo ufw allow 22/tcpMaaari ring i-rate-limit ng UFW ang SSH: pinapayagan ng sudo ufw limit 22/tcp ang port pero bina-block ang anumang address na gumagawa ng anim o higit pang connections sa loob ng tatlumpung segundo. Pinipigilan nito ang mga brute-force script nang hindi nangangailangan ng extra software.
Kung nagpapatakbo ka ng web server, i-allow din ang HTTP at HTTPS:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpI-allow lamang ang mga serbisyong kailangan ng publiko. Ang mga database gaya ng Postgres sa port 5432 ay hindi dapat binibigyan ng allow rule. I-bind ito sa 127.0.0.1 sa halip, para sa machine lamang ito ma-access. Ang bawat port na binubuksan mo ay isang pintuan na dapat mong protektahan, kaya panatilihing maikli ang listahan.
Maaari mo ring i-build ang buong sequence ng mga command para sa ufw sa iyong server dito, at i-run ang mga ito nang sunod-sunod:
Step 3: I-enable at i-confirm na naka-on na ito
sudo ufw enableNagbibigay ito ng babala na maaaring maantala ng command na ito ang mga kasalukuyang SSH connection. Dahil pinayagan mo ang 22/tcp sa step 2, hindi mapuputol ang iyong session. I-confirm ang resulta:
sudo ufw status verboseStatus: active
Default: deny (incoming), allow (outgoing)
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
22/tcp (v6) ALLOW IN Anywhere (v6)
80/tcp ALLOW IN AnywhereBasahin ang dalawang bagay dito. Ang Status: active ay nangangahulugang tumatakbo ang firewall. At ang bawat rule ay lalabas nang dalawang beses: isang plain at isang may (v6), na nagpapakitang sakop ng UFW ang IPv6 pati na ang IPv4. Kung kulang ang mga (v6) line, hindi managed ang iyong IPv6, na isang isyu na tinalakay sa IPv6 firewall post.
Pag-manage ng mga rules sa hinaharap
Para makita ang mga rules na may kasamang numero para matanggal ang isa:
sudo ufw status numbered
sudo ufw delete 3Para payagan ang isang port mula sa isang address lamang, na isang mabuting paraan para i-expose ang admin service sa sarili mong IP:
sudo ufw allow from 10.0.0.24 to any port 5432 proto tcpAng firewall ay isang layer lamang. Kinokontrol nito kung ano ang maaaring makarating sa isang port, pero hindi nito napapabagal ang isang taong paulit-ulit na nag-a-attack sa isang bukas na port, gaya ng SSH. Para doon, magdagdag ng Fail2ban sa harap ng SSH para i-ban ang mga paulit-ulit na offender. Ang defence in depth ay nangangahulugang bawat layer ay sumasaklaw sa hindi kayang gawin ng iba.
Magiging kapaki-pakinabang lang ang firewall kapag alam mo na kung ano ang mga port at kung paano nakikinig ang mga service, at ang pag-configure nito ay bahagi ng unang 10 minuto sa isang bagong VPS.
FAQ
Mapapatay ba ang SSH session ko kapag i-e-enable ang UFW?
Hindi, basta i-allow muna ang SSH. Patakbuhin ang sudo ufw allow 22/tcp bago ang sudo ufw enable para manatili ang koneksyon dahil pinapayagan na ng firewall ang port 22. Delikado kapag nag-enable ng default-deny firewall nang walang SSH allow rule dahil mawawalan ka ng access. Kung mangyari ito, mag-log in gamit ang VNC o serial console ng iyong provider at patakbuhin ang ufw disable.
Anong mga port ang dapat kong i-open sa isang VPS?
Yung mga kailangan lang para sa public services. SSH (22/tcp) para sa management ng server, at HTTP at HTTPS (80/tcp, 443/tcp) kung mayroon kang website. I-deny ang lahat ng iba pa. Ang mga internal services tulad ng databases ay dapat naka-bind sa 127.0.0.1 at walang firewall rule, para hindi sila ma-access mula sa network.
Sinusuportahan ba ng UFW ang IPv6?
Sa modernong Ubuntu, oo: naka-set ang IPV6=yes sa /etc/default/ufw, kaya ang bawat rule ay applicable sa parehong stacks at ipinapakita ng ufw status ang mga IPv6 rules na may (v6) suffix. Ang mga posibleng error ay tatalakayin sa IPv6 firewall trap.
Paano mag-remove ng UFW rule?
Patakbuhin ang sudo ufw status numbered para i-list ang mga rules kasama ang kanilang index numbers, pagkatapos ay gamitin ang sudo ufw delete N kung saan ang N ay ang numero ng rule na gustong tanggalin. Maaari ring mag-delete gamit ang specification, halimbawa ang sudo ufw delete allow 80/tcp.
Paano mag-allow ng port para sa isang IP address lamang?
Gumamit ng from rule sa halip na plain allow. Para payagan lang ang office address mo na ma-access ang PostgreSQL, patakbuhin ang sudo ufw allow from 10.0.0.10 to any port 5432 proto tcp. Sa ilalim ng default-deny policy, sarado ang port sa lahat hangga't walang rule na magbubukas dito, kaya ang from rule na ito ang tanging paraan para makapasok: blocked ang buong internet at ang address na tinukoy mo lang ang makakadaan. Huwag ding magdagdag ng plain allow 5432/tcp dahil bubuksan nito ang port para sa lahat. Ito ang pinakaligtas na paraan para i-expose ang database o admin panel. I-verify ito gamit ang sudo ufw status verbose, na nagpapakita ng source address kasama ang port.