De mai multe ori am confruntat cu faptul că chiar și o destul de inteligent, în general, oamenii fac greșeli destul de neiertat. De exemplu, deschide peste tot portul de internet pe care baza de date este filare. Deci, de multe ori în cazul începătorilor DevOps, care a scris codul pentru viață, dar acum munca lor este de a configura și servere. În rețea există tutoriale bune pe setarea de bază de firewall în Linux și alte * nix, dar de multe ori este foaia într-o multitudine de ecrane. Deci, sperăm, tutorial mai concis este util pentru cineva.
Important! Este ușor de greșeală mașină, astfel încât zafaervolit ai pus pe ea nu va mai merge în jos. Acest lucru este valabil mai ales de nor hosting. De exemplu, dacă închideți AWS toate porturile 1024-65536, aparatul la repornirea sistemului pentru un motiv sau altul, ele sunt în general închise toate porturile. Dacă găzduiește în nori, adapta mai bine la firewall-ul prin intermediul interfeței web shared hosting.
O notă mică asupra terminologiei. Firewall-ul construit în kernel-ul Linux este numit Netfilter, și iptables - un utilitar pentru a gestiona firewall-ul. Mulți oameni cred eronat că un firewall numit iptables. Acest lucru nu este așa. A spune ceva de genul „pot filtra pachetele folosind iptables», vă arată alții ignoranța lor.
De fapt, ce putem spune despre problema poate fi rezolvată cu Netfilter:
Constat că iptables utilitatea pentru mine personal la început părea foarte inconfortabil în comparație cu ipfw pe FreeBSD. Din fericire, după ce a lucrat cu ea pentru o vreme, toate acest set de steaguri cum ar fi -O, -D, -j și celălalt devine un obicei, astfel încât să fie pacient. Luați în considerare comenzile de bază.
Arata toate regulile:
Este posibil să observați că netfilter au nici un „lanț» (lanțuri) - un minim de intrare, ieșire și FORWARD. Eu personal am o mașină este, de asemenea, un docher lanț. Pentru prima dată, este posibil să ne gândim la primele două ca, respectiv, tot traficul de intrare și de ieșire, în timp ce restul sunt uitate temporar. Sansele sunt bune pe care le-au niciodată nu ai nevoie.
Pentru a șterge toate regulile:
Politica Schimbarea (comportamentul implicit) lanțuri:
iptables -P INPUT DROP
iptables -P INPUT ACCEPT
iptables-restore etc / iptables.rules
Acum, ia în considerare câteva exemple practice. Deci, de exemplu, arată netsplituri emulare pentru a testa, valida comportamentul aplicației, care utilizează Akka Cluster:
alerga # 40; node1, s "iptables -A INPUT -s $ node2 -j DROP" # 41;
alerga # 40; node1, s "iptables -A INPUT -s $ node3 -j DROP" # 41;
alerga # 40; node1, s "iptables -A OUTPUT -d $ node2 -j DROP" # 41;
alerga # 40; node1, s "iptables -A OUTPUT -d $ node3 -j DROP" # 41;
Recuperarea are loc în același mod, numai steagul -A este înlocuit cu steagul -D.
Un alt exemplu. Este necesar să se determine care sunt porturile de ascultare pe masina, și închideți inutile. Mergem la mașină și să spună:
Conexiuni la Internet active (numai servere)
Proto Recv-Q Trimite-Q Adresa locală externă Adresa Numele statului PID / Prog
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3210 / nginx
tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 1789 / epmd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 797 / sshd
tcp 0 0 127.0.0.1:5432 0.0.0.0:* ASCULTA 990 / Postgres
Nginx și sshd uita-te la Internet, e în regulă. PostgreSQL ascultă doar la interfața locală, la fel nu există nici o problemă cu ea. Dar epmd ieșită (puteți verifica telnet la o altă mașină), și nu este bun. Puteți închide singurul port 4369. Cum de a face acest lucru, s-a arătat mai sus. Sau puteți merge chiar mai departe și de a interzice toate conexiunile externe la portul 81 și mai în vârstă:
iptables -A INPUT -m multiport \
-p tcp --dports 81. 65535. -s 127.0.0.0 / 8 -j DROP
Se folosește o expansiune multiport, vă permite să specificați zone portuare.
Verificăm că totul funcționează. Dacă OK, își rezervă dreptul de a:
iptables-save> / etc / iptables.rules
Pentru a exclude preluat de la pornire, a crea un nou fișier /etc/network/if-pre-up.d/iptables:
iptables-restore etc / iptables.rules
exit 0
chmod + x / etc / network / if-pre-up.d / iptables
A verificat că această metodă funcționează în Ubuntu 14.04 LTS. În Debian ar trebui să funcționeze prea. Descrie modalitate alternativă de restabilire a regulilor de firewall la pornire pot fi găsite în menționat deja articolul despre OpenVPN.
Materiale suplimentare pentru cei care doresc să afle mai multe despre netfilter:
Cum să configurați firewall-uri de pe serverele lor?