Uvod
Preduvjeti
Korak 1: Odredite usluge i portove koji se koriste na vašem poslužitelju
Korak 2: Konfigurirajte iptables pravila
Korak 3: Spremite konfiguracije
Zaobilazna rješenja za slučajnu blokadu
Uvod
Vatrozid je vrsta mrežnog sigurnosnog alata koji kontrolira ulazni i odlazni mrežni promet prema unaprijed definiranom skupu pravila. Možemo koristiti vatrozid zajedno s drugim sigurnosnim mjerama za zaštitu naših poslužitelja od hakerskih napada i napada.
Dizajn vatrozida može biti ili namjenski hardver ili softverski program koji se izvodi na našem računalu. Na CentOS-u 6 zadani program vatrozida je iptables.
U ovom članku pokazat ću vam kako postaviti osnovni iptables vatrozid na temelju aplikacije Vultr "WordPress na CentOS 6 x64", koja će blokirati sav promet osim web, SSH, NTP, DNS i ping usluga. Međutim, ovo je samo preliminarna konfiguracija koja zadovoljava uobičajene sigurnosne potrebe. Trebat će vam sofisticiranija iptables konfiguracija ako imate dodatne zahtjeve.
Napomena :
Ako svom poslužitelju dodate IPv6 adresu, trebali biste postaviti i uslugu ip6tables. Konfiguriranje ip6tables izvan je opsega ovog članka.
Za razliku od CentOS-a 6, iptables više nije zadani program vatrozida na CentOS-u 7 i zamijenjen je programom koji se zove firewalld. Ako planirate koristiti CentOS 7, morat ćete postaviti svoj vatrozid koristeći firewalld.
Preduvjeti
Svježe implementirajte instancu poslužitelja s aplikacijom Vultr "WordPress na CentOS 6 x64", a zatim se prijavite kao root.
Korak 1: Odredite usluge i portove koji se koriste na vašem poslužitelju
Pretpostavljam da će ovaj poslužitelj ugostiti samo WordPress blog i neće se koristiti kao usmjerivač niti pružati druge usluge (na primjer, mail, FTP, IRC, itd.).
Ovdje su nam potrebne sljedeće usluge:
- HTTP (TCP na portu 80)
- HTTPS (TCP na portu 443)
- SSH (TCP na portu 22 prema zadanim postavkama, može se promijeniti iz sigurnosnih razloga)
- NTP (UDP na portu 123)
- DNS (TCP i UDP na portu 53)
- ping (ICMP)
Svi ostali nepotrebni portovi bit će blokirani.
Iptables kontrolira promet s popisom pravila. Kada se mrežni paketi pošalju na naš poslužitelj, iptables će ih pregledati koristeći svako pravilo u nizu i poduzeti odgovarajuće radnje. Ako je pravilo ispunjeno, ostala pravila će se zanemariti. Ako nijedno pravilo nije ispunjeno, iptables će koristiti zadanu politiku.
Sav promet se može kategorizirati kao INPUT, OUTPUT i FORWARD.
- INPUT promet može biti normalan ili zlonamjeran, trebao bi biti dopušten selektivno.
- OUTPUT promet se obično smatra sigurnim i treba ga dopustiti.
- FORWARD promet je beskoristan i treba ga blokirati.
Sada, konfigurirajmo iptables pravila prema našim potrebama. Sve sljedeće naredbe trebale bi biti unesene s vašeg SSH terminala kao root.
Provjerite postojeća pravila:
iptables -L -n
Ispraznite sva postojeća pravila:
iptables -F; iptables -X; iptables -Z
Budući da će promjene u konfiguraciji iptables odmah stupiti na snagu, ako pogrešno konfigurirate iptables pravila, možete biti blokirani na svom poslužitelju. Možete spriječiti slučajna blokiranja sljedećom naredbom. Ne zaboravite zamijeniti [Your-IP-Address]vlastitom javnom IP adresom ili rasponom IP adresa (na primjer, 201.55.119.43 ili 201.55.119.0/24).
iptables -A INPUT -s [Your-IP-Address] -p tcp --dport 22 -j ACCEPT
Dopusti sav promet u povratnoj petlji (lo) i ispusti sav promet na 127.0.0.0/8 osim lo:
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -d 127.0.0.0/8 -j REJECT
Blokirajte neke uobičajene napade:
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
Prihvatite sve uspostavljene ulazne veze:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Dopusti HTTP i HTTPS ulazni promet:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Dopusti SSH veze:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Dopusti NTP veze:
iptables -A INPUT -p udp --dport 123 -j ACCEPT
Dopusti DNS upite:
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
Dopusti ping:
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
Na kraju, postavite zadana pravila:
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
Korak 3: Spremite konfiguracije
Svaka od gore navedenih promjena stupila je na snagu, ali nije trajna. Ako ih ne spremimo na tvrdi disk, bit će izgubljeni nakon ponovnog pokretanja sustava.
Spremite iptables konfiguraciju sljedećom naredbom:
service iptables save
Naše promjene će biti spremljene u datoteci /etc/sysconfig/iptables. Pravila možete pregledati ili izmijeniti uređivanjem te datoteke.
Zaobilazna rješenja za slučajnu blokadu
Ako ste blokirani na svom poslužitelju zbog pogreške u konfiguraciji, još uvijek možete povratiti pristup nekim zaobilaznim rješenjima.
- Ako još niste spremili svoje izmjene iptables pravila, možete ponovno pokrenuti svoj poslužitelj sa sučelja web-mjesta Vultr, tada će vaše promjene biti izbačene.
- Ako ste spremili svoje promjene, možete se prijaviti na svoj poslužitelj putem konzole sa sučelja web-mjesta Vultr i unijeti
iptables -Fza ispiranje svih iptables pravila. Tada možete ponovno postaviti pravila.