Si të konfiguroni një firewall bazë Iptables në Centos 6
Statusi: I vjetëruar
Ky artikull mbulon një version të CentOS që nuk mbështetet më. Nëse aktualisht jeni duke përdorur një server që ekzekuton CentOS 6, ne rekomandojmë shumë përmirësimin ose migrimin në një version të mbështetur të CentOS.
Arsyeja:
Shih në vend të kësaj:
- Iptables Essentials: Rregullat dhe komandat e zakonshme të murit të zjarrit
- Si funksionon muri i zjarrit Iptables.
- Si të konfiguroni një mur zjarri duke përdorur FirewallD në CentOS 7
Hyrje
Ky artikull do të tregojë se si të krijoni një mur të thjeshtë zjarri në një Centos VPS. Do të hapë vetëm portet që duam dhe do të mbyllë shërbime të tjera. Unë do të tregoj gjithashtu se si të parandaloni sulme më të thjeshta dhe si ta lejoni veten të hyni përsëri në VPS nëse ju refuzoni aksesin tek vetja aksidentalisht.
Tutoriali nuk është në asnjë mënyrë shteruese dhe tregon vetëm se si të hapni disa porte hyrëse: për apache, SSH dhe email dhe mbyllni të gjitha të tjerat. Ne nuk do të bllokojmë asnjë trafik në dalje dhe do të krijojmë vetëm disa rregulla më të zakonshme për të bllokuar skriptet dhe robotët e zakonshëm që kërkojnë VPS të cenueshme.
iptables është një mur i thjeshtë zjarri i instaluar në shumicën e shpërndarjeve linux. Faqja manuale e linux për iptables thotë se është një mjet administrimi për filtrimin e paketave IPv4 dhe NAT, që në përkthim do të thotë se është një mjet për të filtruar dhe bllokuar trafikun e internetit . Muri i zjarrit iptables përfshihet si parazgjedhje në imazhet linux Centos 6.4 të ofruara nga DigitalOcean.
Ne do të vendosim murin e zjarrit një nga një rregull. Për ta thjeshtuar: një mur zjarri është një listë rregullash, kështu që kur një lidhje hyrëse është e hapur, nëse përputhet me ndonjë nga rregullat, ky rregull mund ta pranojë atë lidhje ose ta refuzojë atë. Nëse nuk plotësohen rregulla, ne përdorim rregullin e paracaktuar.
Shënim: Ky tutorial mbulon sigurinë IPv4. Në Linux, siguria IPv6 ruhet veçmas nga IPv4. Për shembull, \iptables\ ruan vetëm rregullat e murit të zjarrit për adresat IPv4, por ka një homolog IPv6 të quajtur \ip6tables\, i cili mund të përdoret për të ruajtur rregullat e murit të zjarrit për adresat e rrjetit IPv6.
Nëse VPS-ja juaj është e konfiguruar për IPv6, mos harroni të siguroni ndërfaqet e rrjetit IPv4 dhe IPv6 me mjetet e duhura. Për më shumë informacion rreth mjeteve IPv6, referojuni këtij udhëzuesi: Si të konfiguroni mjetet për të përdorur IPv6 në një Linux VPS
Vendosni se cilat porte dhe shërbime të hapen
Për të filluar, ne duam të dimë se cilat shërbime duam të hapim për publikun. Le të përdorim serverin tipik të mbajtjes së uebit: është një server ueb dhe email, dhe ne gjithashtu duhet të lejojmë veten nga serveri SSH.
Së pari, ne duam të lëmë të hapur portin SSH në mënyrë që të mund të lidhemi me VPS nga distanca: kjo është porta 22.
Gjithashtu, ne kemi nevojë për portin 80 dhe 443 (port SSL) për trafikun në ueb. Për dërgimin e emailit, ne do të hapim portin 25 (SMTP i rregullt) dhe 465 (SMTP i sigurt). Për t'i lejuar përdoruesit të marrin email, ne do të hapim portën e zakonshme 110 (POP3) dhe 995 (portin e sigurt POP3).
Për më tepër, hapni mirë portat IMAP, nëse e kemi të instaluar: 143 për IMAP dhe 993 për IMAP mbi SSL. Shënim: Rekomandohet të lejohen vetëm protokollet e sigurta, por kjo mund të mos jetë një opsion, nëse nuk mund të ndikojmë përdoruesit e shërbimit të postës për të ndryshuar klientët e tyre të postës elektronike.
Blloko sulmet më të zakonshme
VPS-të DigitalOcean zakonisht vijnë me konfigurimin bosh: i gjithë trafiku lejohet. Vetëm për t'u siguruar për këtë, ne mund t'i shpëlajmë rregullat e murit të zjarrit - domethënë t'i fshijmë të gjitha:
iptables -F
Më pas mund të shtojmë disa rregulla të thjeshta të murit të zjarrit për të bllokuar sulmet më të zakonshme, për të mbrojtur VPS-në tonë nga skriptet. Ne nuk mund të mbështetemi në iptables vetëm për të na mbrojtur nga një DDOS në shkallë të plotë ose të ngjashme, por të paktën mund të heqim dorë nga robotët e zakonshëm të skanimit të rrjetit që përfundimisht do të gjejnë VPS-në tonë dhe do të fillojnë të kërkojnë vrima sigurie për t'i shfrytëzuar. Së pari, fillojmë me bllokimin e paketave null.
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
Ne i thamë murit të zjarrit që të merrte të gjitha paketat hyrëse me flamuj tcp ASNJË dhe thjesht t'i fshinte ato. Paketat null janë, thënë thjesht, paketa rikonstruktive. Modelet e sulmit i përdorin këto për të provuar se si e kemi konfiguruar VPS-në dhe për të gjetur dobësitë. Modeli tjetër për t'u refuzuar është një sulm syn-flood.
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
Pako XMAS, gjithashtu një paketë rikonstruksioni.
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
Ne kemi përjashtuar të paktën disa nga modelet e zakonshme që gjejnë dobësi në VPS-në tonë.
Hapni portet për shërbimet e zgjedhura
Tani mund të fillojmë të shtojmë shërbime të zgjedhura në filtrin tonë të murit të zjarrit. Gjëja e parë e tillë është një ndërfaqe localhost:
iptables -A INPUT -i lo -j ACCEPT
Ne i themi iptables që të shtojë (-A) një rregull në tabelën e filtrit në hyrje (INPUT) çdo trafik që vjen në ndërfaqen localhost (-i lo) dhe ta pranojë atë (-j ACCEPT). Localhost shpesh përdoret për, dmth. uebsajti juaj ose serveri i emailit që komunikon me një bazë të dhënash të instaluar në nivel lokal. Në këtë mënyrë VPS-ja jonë mund të përdorë bazën e të dhënave, por baza e të dhënave është e mbyllur për shfrytëzime nga interneti.
Tani mund të lejojmë trafikun e serverit në ueb:
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
Ne shtuam dy portet (porta http 80 dhe porta https 443) në zinxhirin ACCEPT - duke lejuar trafikun në ato porte. Tani, le t'i lejojmë përdoruesit të përdorin serverët tanë SMTP:
iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
Siç u tha më parë, nëse mund të ndikojmë tek përdoruesit tanë, duhet të përdorim më tepër versionin e sigurt, por shpesh nuk mund të diktojmë kushtet dhe klientët do të lidhen duke përdorur portën 25, e cila është shumë më e lehtë për të nuhatur fjalëkalimet. Tani vazhdojmë t'i lejojmë përdoruesit të lexojnë email në serverin e tyre:
iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
Këto dy rregulla do të lejojnë trafikun POP3. Përsëri, ne mund të rrisim sigurinë e serverit tonë të postës elektronike duke përdorur vetëm versionin e sigurt të shërbimit. Tani duhet të lejojmë gjithashtu protokollin e postës IMAP:
iptables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
Kufizimi i aksesit SSH
Ne gjithashtu duhet të lejojmë trafikun SSH, në mënyrë që të mund të lidhemi me VPS nga distanca. Mënyra e thjeshtë për ta bërë këtë do të ishte me këtë komandë:
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
Tani i thamë iptables të shtojë një rregull për pranimin e trafikut tcp që hyn në portin 22 (porta e paracaktuar SSH). Këshillohet që të ndryshoni konfigurimin SSH në një port tjetër dhe ky filtër i murit të zjarrit duhet të ndryshohet në përputhje me rrethanat, por konfigurimi i SSH nuk është pjesë e këtij artikulli.
Sidoqoftë, ne mund të bëjmë një gjë më shumë për këtë me vetë murin e zjarrit. Nëse zyra jonë ka një adresë IP të përhershme, ne mund të lejojmë lidhjet me SSH vetëm nga ky burim. Kjo do të lejonte vetëm njerëzit nga vendndodhja jonë të lidhen.
Së pari, zbuloni adresën tuaj IP të jashtme. Sigurohuni që të mos jetë një adresë nga LAN-i juaj, ose nuk do të funksionojë. Ju mund ta bëni këtë thjesht duke vizituar faqen whatismyip.com. Një mënyrë tjetër për ta zbuluar është të shkruani:
w
në terminal, duhet të na shohim të kyçur (nëse do të ishte i vetmi i regjistruar dhe adresa jonë IP e shkruar.
Prodhimi duket diçka si kjo:
root@iptables# w
11:42:59 up 60 days, 11:21, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 213.191.xxx.xxx 09:27 0.00s 0.05s 0.00s w
Tani, mund të krijoni rregullin e murit të zjarrit për të lejuar trafikun vetëm në portin SSH nëse ai vjen nga një burim: adresa juaj IP:
iptables -A INPUT -p tcp -s YOUR_IP_ADDRESS -m tcp --dport 22 -j ACCEPT
Zëvendëso YOUR_IP_ADDRESS me IP-në aktuale, natyrisht.
Ne mund të hapim më shumë porte në murin tonë të zjarrit sipas nevojës duke ndryshuar numrat e portit. Në këtë mënyrë muri ynë i zjarrit do të lejojë akses vetëm në shërbimet që duam. Tani për tani, ne duhet të shtojmë një rregull më shumë që do të na lejojë të përdorim lidhjet dalëse (dmth. ping nga VPS ose ekzekutimin e përditësimeve të softuerit);
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Do të lejojë çdo lidhje dalëse të vendosur të marrë përgjigje nga VPS në anën tjetër të asaj lidhjeje.
iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP
Tani ne kemi rregullat tona të firewall-it në vend.
Ruani konfigurimin
Tani që kemi të gjithë konfigurimin, mund të rendisim rregullat për të parë nëse diçka mungon.
iptables -L -n
Ndërprerësi -n këtu është sepse na duhen vetëm adresa ip, jo emra domenesh. Dmth. nëse ka një IP në rregullat si kjo: 69.55.48.33: muri i zjarrit do të shkonte ta kërkonte dhe të shihte që ishte një IP linux-console.net. Ne nuk kemi nevojë për këtë, vetëm vetë adresën. Tani më në fund mund të ruajmë konfigurimin e murit të zjarrit:
iptables-save | sudo tee /etc/sysconfig/iptables
Skedari i konfigurimit iptables në CentOS ndodhet në /etc/sysconfig/iptables. Komanda e mësipërme ruajti rregullat që krijuam në atë skedar. Vetëm për t'u siguruar që gjithçka funksionon, mund të rifillojmë murin e zjarrit:
service iptables restart
Rregullat e ruajtura do të vazhdojnë edhe kur VPS të rindizet.
Flush për ta zhbllokuar veten
Nëse kemi bërë një aksident në konfigurimin tonë, mund të kemi bllokuar veten nga qasja në VPS. Ndoshta ne kemi vendosur një adresë IP të gabuar, kështu që muri i zjarrit nuk lejon lidhje nga stacioni ynë i punës. Tani ne nuk mund t'i arrijmë ato rregulla dhe nëse i ruajmë ato, as një rifillim nuk do të na ndihmojë. Për fat të mirë, ndërfaqja në internet DO na lejon të lidhemi me serverin përmes tastierës:
Pasi të lidhemi, ne regjistrohemi si rrënjë dhe lëshojmë komandën e mëposhtme:
iptables -F
Kjo do të lajë filtrat dhe do të jetë në gjendje të futet përsëri në VPS.
konkluzioni
Ky artikull nuk është shterues dhe vetëm gërvishti sipërfaqen e funksionimit të një muri të thjeshtë zjarri në një makinë linux. Do të bëjë mjaftueshëm për një skenar tipik të serverit në ueb dhe email për një zhvillues që nuk është i njohur me linjën e komandës linux ose iptables.
Megjithatë, mund të bëhej shumë më tepër. Ka mësime dhe mostra të mira në internet për të na ndihmuar të ofrojmë konfigurim më të fortë. Për mjediset e prodhimit, do të këshillohej të krijoni një konfigurim më të detajuar ose që një ekspert sigurie të përgatisë konfigurimin.