Naujausias pranešimas: Samba kritinis pažeidžiamumas
frame

Sveiki apsilankę!

Jei forume lankaisi pirmą kartą, kviečiame registruotis ir prisijungti prie diskusijų.

Prisijungti Registruotis

Iptables ugniasienės konfigūravimas

iv_vytenisgiv_vytenisg Super Moderator
edited 2020 balandžio 7 Į Serverių saugumas
attachmentphpattachmentid329stc1d1518443748

Iptables tai tinklo paketų filtravimo mechanizmas. Jį galite naudoti tiek įeinamųjų, tiek išeinamųjų sujungimų taisyklių formavimui. Iptables gali būti naudojamas blokuoti prievadus, IP adresus ir pan.

Šioje pamokoje apžvelgsime pagrindines Iptables panaudojimo galimybes.


1. Visų taisyklių išvalymas:

Prieš pradedant analizuoti taisyklių nustatymo galimybes norime informuoti, kad klientų sistemoje suteikiame galimybę vieno mygtuko paspaudimu išvalyti visas galiojančias taisykles. Tai galite atlikti prisijungė prie klientų sistemos adresu:

https://klientams.iv.lt/

ir pasirinkus konkrečią serverio nuomos paslaugą, ties skiltimi valdymas matysite mygtuką "Išvalyti Iptables" (šis funkcionalumas galimas tik OpenVZ virtualizacijos serveriams). Jį pasirinkus bus išvalomos visos naudojamos ugniasienės taisyklės.


2. Pagrindiniai iptables parametrai:

INPUT - komanda skirta blokuoti visus paketus, kurie yra nukreipti į Jūsų serverį.
OUTPUT - blokuojami visi paketai keliaujantys iš Jūsų serverio.
FORWARD - Visi paketai, tiek įeinantys, tiek išeinantys. Šis parametras naudojamas tokiu atveju kai naudojate serverį, kaip maršrutizatorių.


3. Taisyklių naudojimas:

1. Prieš pradedant nustatyti konkrečiai iptables taisykles siūlytume išvalyti egzistuojančias. Tai galite atlikti klientų sistemoje arba serverio terminale paleidus komandą:
iptables -F

Jeigu norite pašalinti tik konkretaus parametro taisykles, galite naudoti:
sudo iptables -F INPUT

Šiuo atveju bus pašalinamos visos INPUT parametro taisyklės. Tam, kad patikrintumėte konkrečias taisykles, galite naudoti šias komandas:
iptables -L
iptables -S

Taip pat galite ir nurodyti konkretų parametrą, kad būtų išfiltruojamos konkretaus parametro taisyklės, kaip pavyzdžiui:
iptables -L INPUT

2. Toliau apžvelgsime blokavimo nustatymą. Komandų eiliškumas čia yra labai svarbus, iš pradžių leidžiame prisijungti sau, o tik tada draudžiame prisijungimą visiems kitiems. Priešingu atveju neprisijungsite prie serverio.SSH prieigos leidimas tik naudojant konkretų IP adresą:
iptables -A INPUT -i venet0 -p tcp -s IP_adresas --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o venet0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

Pirmasis parametras "-I INPUT" nurodo, kad bus sukurta nauja taisyklė įeinamiesiems sujungimams, "-s" nurodo IP adresą, kurį norėsite blokuoti, "-j" nusako atliekamą veiksmą, kuomet įvykis atitiks sąlygą.

Įvykdžius šias komandas bus leidžiamas prisijungimas tik naudojant konkretų IP naudojant SSH prievadą.

3. Tam, kad galėtumėte užblokuoti konkretaus IP adreso prisijungimą, galite naudoti šias komandas:
iptables -A INPUT -s IP_adresas -j DROP
iptables -A OUTPUT -s IP_adresas -j DROP

Taip pat galite naudoti komandą "REJECT", kurios pagalba bus pateikiamas atsakymas "connection refused", tačiau nebus nurodoma, kad IP adresas blokuojamas. Naudojama komanda:
iptables -A INPUT -s IP_adresas -j REJECT

4. Prievadų blokavimui galite naudoti šias komandas:
iptables -A INPUT -p tcp --dport 25 -j DROP
iptables -I OUTPUT -p tcp --dport 25 -j DROP

Naudojami parametrai "-p tcp" ir "--dport 80" nurodo, kad tinklo paketai bus blokuojami TCP protokolo pagrindu prie 80 prievado, kas dažniausiai yra Web serverio tarnyba. Tokiu pačiu principu galite blokuoti prieigą prie pašto serverio ar FTP, nurodydami atitinkamą prievado numerį.

5. Sekančiame pavyzdyje pateikiame komandas, kaip blokuojamas HTTP(prievadas 80) ir HTTPS(prievadas 443) susijungimas:
iptables -A INPUT -i venet0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o venet0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

iptables -A INPUT -i venet0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o venet0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

6. Toliau pateikiame pavyzdį, kaip reikėtų užblokuoti išorinių naudotojų bandymą paleisti ping komandą į serverį:
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP

Bei kaip tokią veiklą leisti:
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

7. Leidimas prisijungti prie MySQL naudojant konkretų IP adresą:
iptables -A INPUT -i venet0 -p tcp -s IP_adresas --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o vent0 -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

8. POP3 ir IMAP srauto blokavimas:
iptables -A INPUT -i venet0 -p tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o venet0 -p tcp --sport 143 -m state --state ESTABLISHED -j ACCEPT

iptables -A INPUT -i venet0 -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o venet0 -p tcp --sport 110 -m state --state ESTABLISHED -j ACCEPT

Beto, tai galima būtų naudoti nurodant tik galimybę jungti saugiu susijungimu (SSL):
iptables -A INPUT -i venet0 -p tcp --dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o venet0 -p tcp --sport 993 -m state --state ESTABLISHED -j ACCEPT

iptables -A INPUT -i venet0 -p tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o venet0 -p tcp --sport 995 -m state --state ESTABLISHED -j ACCEPT

9. Taip pat galite apriboti DDoS atakas ribojant praleidžiamų paketų srautą:
iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute --limit-burst 100 -j ACCEPT

Šioje komandoje naudojami nustatymai:

-m limit: Naudojamas iptables limitas.
–limit 25/minute: Apribojimas leidžiantis iki 10 susijungimų per minutę.
–limit-burst 100: Ši reikšmė nurodo, kiek limitavimų per minutė gali būti naudojami poto kai bus pasiekiamas bendras susijungimų limitas.

10. Reikėtų prisiminti, kad po kiekvieno serverio perkrovimo į IPTABLES įrašyta informacija dingsta, todėl ją būtina išsaugoti taip, kad ji išliktų perkrovus serverį. Tai galite atlikti šios komandos pagalba:

CentOS/Fedora
service iptables save

Ubuntu/Debian
iptables-save > /etc/network/iptables.rules
Pažymėtos temos:
Norėdami palikti komentarą, turite prisijungti arba registruokis.
Dedikuoti.lt
Šiame forume rasite informaciją kaip atlikti serverio administravimą, konfigūravimą, įvairių tarnybų bei papildomų aplikacijų diegimą. Taip pat pateiksime rekomendacijų, skirtų serverių saugumui, monitoringui ir optimizavimui. Kviečiame prisijungti prie dedikuotų serverių administratorių bendruomenės, dalyvauti diskusijose ir praplėsti savo žinias serverių administravimo srityje!
© 2007 - 2023 Dedikuoti.lt forumas, visos teisės saugumos.