1. În primul rând, clarificăm tabelul cu reguli existente:
-A INPUT -p tcp -i eth0 -dport 22 -j ACCEPT
Dar, permițând accesul la SSH încă de la început, nu putem impune regulile SSH pentru al proteja de parolele bruteforce. De ce? deoarece regulile din iptables sunt aplicate succesiv! Și toate celelalte restricții pe care le-am impune în portul 22 sub regula actuală nu vor mai avea forța lor.
Așadar, mai întâi protejați SSH-ul, apoi accesul acestuia, apoi restul configurației.
2.1 Pentru o bună protecție împotriva brute force, vom folosi un modul suplimentar care poate fi instalat și configurat după cum urmează:
# aptitude instalează modul-asistent xtables-addons-source
# modul-asistent pregăti
# modul-asistent auto-instalare xtables-addons-source
# depmod -a
2.2 După instalarea cu succes a adăugării. module, introducem reguli pentru protecția SSH:
# iptables -A INPUT -p tcp -m stat -stat NEW -dot 22 -m recent --update --secunde 20 -j TARPIT
# iptables -A INPUT -p tcp -m stare -state NOU --dot 22 -m recent --set -j ACCEPT
# Iptables -A INPUT -p tcp tcp -m --dport 22 -m stare --state NEW -m hashlimit --hashlimit 1 / oră --hashlimit-burst 2 --hashlimit-mode SrcIP --hashlimit-name SSH - -hashlimit-htable-expire 60000 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp -dport 22 -tcp-flags SYN, RST, ACK SYN -j DROP
2.3 Acum, după protecție, puteți deschide SSH:
# iptables -A INPUT -p tcp -i eth0 -dport 22 -j ACCEPT
3. Când totul este pregătit pentru noi să nu pierdem accesul, prescriim politicile implicite:
# iptables -P INPUT DROP
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT
Deci, prin lanțul DROP, reducem toate conexiunile primite, cu alte cuvinte, vom stabili politica cu privire la principiul că orice altceva, cu excepția a ceea ce este explicit permis, este interzis.
POLITICILE FORWARD și OUTPUT lăsăm deschis, deoarece, în opinia mea, ele sunt mai puțin periculoase în ceea ce privește securitatea. deși nimeni nu le împiedică să le taie. Oh, și nu uitați, dacă doriți toți politicienii să pună în lanț DROP, apoi se adaugă o regulă pentru a permite accesul de intrare ssh, o regulă care să permită traficul de ieșire pe portul 22 sau veți pierde accesul de la distanță. (iptables -A OUTPUT -p tcp -i eth0 -dport 22 -j ACCEPT)
4. Acum treceți la prescrierea regulilor de bază pentru serverele noastre web.
- Permitem traficul pe localhost:
# iptables -A INPUT -i lo -j ACCEPT
- Facem protecție împotriva atacurilor Dos:
Protecție împotriva inundațiilor SYN:
# iptables -A INPUT -p tcp --syn -m limită --limit 1 / s -j ACCEPT
# iptables -A INPUT -p tcp -syn -j DROP
Protecție împotriva scanerelor portuare:
# Iptables -A INPUT -p tcp --tcp-flags SYN, ACK, FIN, RST RST -m limită --limit 1 / s -j ACCEPT
# iptables -A INPUT -p tcp -tcp-flags SYN, ACK, FIN, RST RST -j DROP
Protecția de la Ping a morții:
# iptables -A INPUT -p icmp --tipul de tip ecop-request -m limit --limit 1 / s -j ACCEPT
# iptables -A INPUT -p icmp --icamp-type echo-request -j DROP
- Permiteți trafic pentru serviciile solicitate
# iptables -A INPUT -i eth0 -p tcp -dport 21 -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp -dport 25 -j ACCEPT
# iptables -A INPUT -i eth0 -p udp --sport 53 -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp -dport 80 -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp -dport 443 -j ACCEPT
# iptables -A INPUT -i eth0 -p icmp -m icmp -tipul de tip 3 -j ACCEPT
# iptables -A INPUT -i eth0 -p icmp -m icmp -tipul de tip 11 -j ACCEPT
# iptables -A INPUT -i eth0 -p icmp -m icmp -tipul de tip 12 -j ACCEPT
Deci, ceea ce am rezolvat:
portul 21 - ftp
port 80 - http
port 443 - https
port 25 - smtp
port 53 - DNS
Și plus tipurile necesare de pachete icmp. Doar nu uita. că portul ssh 22 este deschis.
5. Configurați fluxurile standard de ieșire și de intrare
# iptables -A INPUT -m stat -state RELATED, ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -m stat -state LEGATE, ESTABLISHED -j ACCEPT
6. Salvăm noile reguli și le înregistrăm în fișierul de configurare astfel încât să nu se piardă după repornirea sistemului.
# iptables-save
# iptables-save> /etc/iptables.conf
Pentru a vedea tabelul curent de filtrare, procedați după cum urmează:
7. Reguli automate de înregistrare și restaurare
adăugați următoarele rânduri la sfârșitul fișierului interfețelor:
pre-up iptables-restore post-jos iptables-save> /etc/iptables.conf
Acum, când mașina este oprită, regulile vor fi salvate, iar când sunt activate, acestea vor fi restaurate.
* Ștergeți anumite reguli.
Folosind următoarea comandă, uita-te la numărul de regulă pe care trebuie să o ștergem aici:
# iptables-L INPUT - linia-număr
Amintiți-vă numărul și ștergeți regula nr. 2
# iptables -D INPUT 2