Elementele de bază ale iptables sunt reguli generale și comenzi firewall

Plasarea serverelor în centre de date fiabile din Europa. Deschideți serverul VPS / VDS bazat pe cloud pe SSD-uri rapide în 1 minut!

Cel mai bun Gazduire:
- protejează datele de accesul nedorit într-un centru de date european protejat






- va accepta plata cel puțin în taxe.
- vă va permite să vă distribuiți distribuția

- protecția împotriva atacurilor DDos
- copie de rezervă gratuită
- Uptime 99.9999%
- Centrul de date - TIER III
- furnizor - TIER I

Sprijinim în limba rusă 24/7/365 Lucrăm cu persoane juridice și persoane fizice. Acum aveți nevoie de 24 nuclee și 72 GB de memorie RAM. Vă rog!

Tarifele noastre avantajoase vor dovedi că nu ați știut încă ieftinul de găzduire!

Minute: selectați configurația, plătiți și CMS de pe VPS este gata.
Banii înapoi - 30 de zile!

Carduri bancare, e-valută, prin intermediul terminalelor Qiwi, Webmoney, PayPal, Novoplat etc.

Puneți o întrebare la sprijinul 24/7/365

Găsiți răspunsuri în baza noastră de date și cunoașteți recomandările

Cum să utilizați acest ghid

În primul rând, trebuie să instalați iptables pe serverul dvs.

Majoritatea regulilor descrise în resetarea manuală a traficului de intrare în conformitate cu politica implicită (DROP). Puteți să deblocați selectiv traficul de intrare.

Nu trebuie să urmați întreaga comandă în ordine. Găsiți secțiunea care conține instrucțiunile de care aveți nevoie și folosiți regulile sugerate în aceasta. Practic, secțiunile conducerii nu sunt legate între ele.

Dacă este necesar, puteți să copiați și să lipiți exemplele de reguli sugerate aici, după ce le-ați ajustat anterior.

Amintiți-vă: ordinea regulilor din dosar are o mare importanță! Fiecare comandă iptables folosește semnalul -A pentru a insera o regulă la sfârșitul lanțului. Dacă doriți să selectați locul în care regula va ocupa în lanț, utilizați pavilionul -I. Pentru a pune o regulă la începutul lanțului, nu specificați numărul din comandă.

Notă. Atunci când se lucrează cu firewall, puteți bloca accidental vă acces la propriul server - disable SSH-trafic, portul 22. În cazul în care se întâmplă acest lucru, încercați să vă conectați la server folosind consola și repara setările de firewall pentru a permite traficul pe portul 22. Dacă nu ați salvat un nou set de regulile care blochează SSH și regulile vechi deschideți portul 22, reporniți serverul. Regulile nesalvate vor fi resetate și veți putea să vă conectați din nou la server.

Pentru a verifica setul actual de reguli iptables, utilizați următoarele comenzi:

sudo iptables -S
sudo iptables -L

Reguli de salvare

Regulile Iptables sunt resetate după ce serverul este repornit. Pentru a le folosi permanent, acestea trebuie păstrate manual.

Se salvează reguli în Ubuntu

În Ubuntu, regulile sunt salvate folosind pachetul iptables persistent. Instalați acest pachet:

sudo apt-get instalează iptables-persistent

În timpul instalării, vi se va solicita salvarea setului actual de reguli.

Dacă ați actualizat regulile și doriți să le salvați, introduceți următoarea comandă:

sudo invoke-rc.d iptables-salvare persistentă

Conservarea regulilor în versiunile CentOS 6 și vechi

Notă. CentOS 7 utilizează în mod implicit FirewallD.

În versiunile CentOS 6 și mai vechi, puteți utiliza scriptul de inițializare iptables pentru a salva fișierul:

sudo service iptables salvați

Setul actual de reguli iptables va fi stocat în / etc / sysconfig / iptables.

Acest subiect este discutat în detaliu în regulile de conducere și de eliminare a IPTables.

Reguli generale pentru IPTables

În această secțiune veți găsi cele mai comune reguli și comenzi IPTables.

Suport pentru interfața Loopback

Interfața loopback (numită și lo) este interfața utilizată de computer pentru conexiunile de rețea la ea însăși.

Pentru a permite traficul la interfața loopback, executați următoarele comenzi:

sudo iptables -U INTRARE -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

Permiteți conexiunile de intrare existente și asociate

Traficul de rețea în ansamblu trebuie să fie bidirecțional (intrare și ieșire). Trebuie să adăugați o regulă de firewall care permite conexiunile existente și traficul asociat de intrare, astfel încât serverul să accepte traficul invers din conexiunile de ieșire inițiate de serverul însuși.

sudo iptables -U INPUT -m conntrack -actstat ESTABLISHED, RELATED -j ACCEPT

Permiteți conexiunile de ieșire existente

Pentru a permite serverului să suporte traficul de ieșire al conexiunilor existente, utilizați comanda:

sudo iptables -A OUTPUT -m conntrack -actstate ESTABLISHED -j ACCEPT

Rețea externă și internă

Dat fiind că eth0 este o rețea externă și eth1 este o rețea internă, următoarea regulă va configura interacțiunea:

sudo iptables -A FORWARD -i eth1 -oeth-ACCEPT

Resetați pachetele nevalide

Uneori pachetele de trafic din rețea sunt marcate ca nevalide. În anumite situații, astfel de pachete trebuie să fie înregistrate în jurnal, dar de obicei este mai bine să le resetați. Aceasta se face folosind următoarea comandă:

sudo iptables -U INPUT -m conntrack -ctstate INVALID -j DROP

sudo iptables -A INPUT -s 15.15.15.51 -j DROP

În această comandă, secțiunea 15.15.15.51 specifică sursa de conexiune care trebuie blocată.

Notă. Puteți specifica sursa IP în orice regulă de firewall, inclusiv permiteți-o.

sudo iptables -A INPUT -s 15.15.15.51 -j REJECT

Restricționarea conexiunilor pe interfață

Paravanul de protecție poate bloca conexiunile de la IP (de exemplu, 15.15.15.51) la o interfață specifică (de exemplu, eth0).

iptables -A INPUT -i eth0 -s 15.15.15.51 -j DROP

Această comandă diferă de cea anterioară numai cu opțiunea -i eth0. Puteți specifica interfața de rețea în orice regulă de firewall.

Serviciul SSH

Pentru a lucra cu serverul cloud, trebuie să permiteți conexiunile SSH primite (portul 22).







Permiteți tuturor traficului de intrare

Pentru aceasta, utilizați următoarele comenzi:

sudo iptables -A INPUT -p tcp -dport 22 -m conntrack -ctstate NEW, ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack -actstate ESTABLISHED -j ACCEPT

A doua comandă care permite traficul de ieșire al conexiunilor SSH existente este necesară numai dacă politica OUTPUT nu este ACCEPTĂ.

sudo iptables -A INPUT -p tcp -s 15.15.15.0/24 --dport 22 -m conntrack --ctstate NOU, STABILIT -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack -actstate ESTABLISHED -j ACCEPT

A doua comandă care permite traficul de ieșire al conexiunilor SSH existente este necesară numai dacă politica OUTPUT nu este ACCEPTĂ.

Rezolvarea traficului de ieșire

Dacă politica OUTPUT nu este ACCEPTĂ, dar trebuie să permiteți conexiuni SSH de ieșire, utilizați:

sudo iptables -A OUTPUT -p tcp -dport 22 -m conntrack -ctstate NEW, ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp --sport 22 -m conntrack -actstat ESTABLISHED -j ACCEPT

Conexiuni rsync inbound

Rsync utilizează portul 873 și vă permite să transferați fișiere de pe un computer în altul.

sudo iptables -A INPUT -p tcp -s 15.15.15.0/24 --dport 873 -m conntrack --ctstate NOU, STABILIT -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 873 -m conntrack -actstat ESTABLISHED -j ACCEPT

A doua comandă care permite traficul de ieșire al conexiunilor rsync existente este necesară numai dacă politica OUTPUT nu este ACCEPTĂ.

Servere Web

Serverele web (de exemplu, Apache și Nginx) ascultă de obicei conexiunile HTTP și HTTPS la porturile 80 și respectiv 443. Dacă politica de firewall implicită blochează sau respinge conexiunile, trebuie să creați reguli de excepție din această politică, astfel încât serverele web să poată răspunde solicitărilor.

Permite traficul HTTP primit

Pentru a permite întregul trafic HTTP (portul 80), utilizați:

sudo iptables -A INPUT -p tcp -dport 80 -m conntrack -ctstate NEW, ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp -sport 80 -m conntrack -actstate ESTABLISHED -j ACCEPT

A doua comandă care permite traficul de ieșire a conexiunilor HTTP existente este necesară numai dacă politica OUTPUT nu este ACCEPTĂ.

Permite traficul HTTPS primit

Pentru a permite întregul trafic HTTPS (portul 443), introduceți:

sudo iptables -A INPUT -p tcp -dport 443 -m conntrack -ctstate NEW, ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 443 -m conntrack -actstate ESTABLISHED -j ACCEPT

A doua comandă care permite traficul de ieșire a conexiunilor HTTPS existente este necesară numai dacă politica OUTPUT nu este ACCEPTĂ.

Permiteți traficul HTTP și HTTPS

Pentru a permite traficul HTTP și HTTPS, utilizați modulul multiport. Creați o regulă care deschide ambele porturi pentru traficul de intrare:

sudo iptables -A INPUT -p multiport tcp -m --dports 80443 -m conntrack --ctstate NOU, STABILIT -j ACCEPT
sudo iptables -A OUTPUT -p tcp -m multiport -dporturi 80.443 -m conntrack -actstate ESTABLISHED -j ACCEPT

A doua comandă care permite traficul de ieșire a conexiunilor HTTP și HTTPS existente este necesară numai dacă politica OUTPUT nu este ACCEPTĂ.

Sistemul de management al bazei de date MySQL

MySQL ascultă conexiunile clientului la portul 3306. Dacă serverul de bază de date MySQL este utilizat de client pe un server de la distanță, trebuie să permiteți întotdeauna acest trafic.

sudo iptables -A INPUT -p tcp -s 15.15.15.0/24 --dport 3306 -m conntrack --ctstate NOU, STABILIT -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 3306 -m conntrack -actstate ESTABLISHED -j ACCEPT

A doua comandă care permite traficul de ieșire a conexiunilor MySQL existente este necesară numai dacă politica OUTPUT nu este ACCEPTĂ.

Interfețe de rețea MySQL

Pentru a permite accesul la MySQL utilizând o interfață de rețea specifică (de exemplu, eth1), utilizați următoarele comenzi:

sudo iptables -A INPUT -p tcp eth1 -I --dport 3306 -m conntrack --ctstate NOU, STABILIT -j ACCEPT
sudo iptables -A OUTPUT -o eth1 -p tcp -sport 3306 -m conntrack -actstate ESTABLISHED -j ACCEPT

A doua comandă care permite traficul de ieșire a conexiunilor MySQL existente este necesară numai dacă politica OUTPUT nu este ACCEPTĂ.

Sistem de management al bazei de date PostgreSQL

PostgreSQL ascultă conexiunile client pe portul 5432. Dacă serverul PostgreSQL este utilizat de un client de pe un server de la distanță, trebuie să permiteți întotdeauna acest trafic.

sudo iptables -A INPUT -p tcp -s 15.15.15.0/24 --port 5432 -m conntrack -ctstate NEW, ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 5432 -m conntrack -actstate ESTABLISHED -j ACCEPT

unde 15.15.15.0/24 este subrețeaua care poate accesa PostgreSQL.

A doua comandă care permite traficul de ieșire al conexiunilor PostgreSQL existente este necesară numai dacă politica OUTPUT nu este ACCEPTĂ.

Interfețele de rețea PostgreSQL

Pentru a permite accesul la PostgreSQL utilizând o interfață de rețea specifică (de exemplu, eth1), utilizați următoarele comenzi:

sudo iptables -U INPUT -i eth1 -p tcp -dport 5432 -m conntrack -state NEW, ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -o eth1 -p tcp -sport 5432 -m conntrack -actstate ESTABLISHED -j ACCEPT

A doua comandă care permite traficul de ieșire al conexiunilor PostgreSQL existente este necesară numai dacă politica OUTPUT nu este ACCEPTĂ.

Servicii postale

Blochează e-mailurile SMTP expediate

Dacă serverul nu are nevoie să trimită e-mailurile trimise, puteți bloca acest tip de trafic. SMTP utilizează portul 25. Pentru a bloca traficul de ieșire, executați următoarea comandă:

sudo iptables -A OUTPUT -p tcp -dport 25 -j REJECT

Acum, iptables va respinge tot traficul de ieșire către portul 25. Pentru a reseta traficul celuilalt port, specificați pur și simplu numărul din comandă.

Activarea traficului SMTP

Pentru a deschide toate traficul SMTP pe portul 25, executați:

sudo iptables -U INPUT -p tcp -dport 25 -m conntrack -ctstate NEW, ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 25 -m conntrack -actstate ESTABLISHED -j ACCEPT

A doua comandă care permite traficul de ieșire al conexiunilor SMTP existente este necesară numai dacă politica OUTPUT nu este ACCEPTĂ.

Notă. În mod tipic, serverele SMTP utilizează portul 587 pentru e-mailurile trimise.

Permiterea traficului IMAP de intrare

Pentru a permite serverului să răspundă la conexiunile IMAP din portul 143, executați:

sudo iptables -A INPUT -p tcp -dport 143 -m conntrack -ctstate NEW, ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 143 -m conntrack -actstat ESTABLISHED -j ACCEPT

A doua comandă care permite traficul de ieșire al conexiunilor IMAP existente este necesară numai dacă politica OUTPUT nu este ACCEPTĂ.

Permiterea traficului IMAPS primit

Pentru a permite serverului să răspundă la conexiunile IMAPS de pe portul 993, executați următoarele comenzi:

sudo iptables -U INPUT -p tcp -dport 993 -m conntrack -ctstate NEW, ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp -sport 993 -m conntrack -actstate ESTABLISHED -j ACCEPT

A doua comandă care permite traficul de ieșire al conexiunilor IMAPS existente este necesară numai dacă politica OUTPUT nu este ACCEPTĂ.

Permiterea traficului POP3 de intrare

Pentru a permite serverului să răspundă la conexiunile POP3 de pe portul 110, introduceți următoarele comenzi:

sudo iptables -U INPUT -p tcp -dport 110 -m conntrack -ctstate NEW, ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp -sport 110 -m conntrack -actstate ESTABLISHED -j ACCEPT

A doua comandă care permite traficul de ieșire al conexiunilor POP3 existente este necesară numai dacă politica OUTPUT nu este ACCEPTĂ.

Permiterea traficului POP3S de intrare

Pentru a permite serverului să răspundă la conexiunile POP3S de pe portul 995, tastați:

sudo iptables -U INPUT -p tcp -dport 995 -m conntrack -ctstate NEW, ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp -sport 995 -m conntrack -actstate ESTABLISHED -j ACCEPT

A doua comandă care permite traficul de ieșire a conexiunilor POP3S existente este necesară numai dacă politica OUTPUT nu este ACCEPTĂ.

concluzie

Acest ghid acoperă majoritatea celor mai comune comenzi și reguli de firewall iptables. Desigur, iptables este un instrument foarte flexibil; Pentru a găsi cele mai optime reguli, experimentați cu setările firewall-ului.







Articole similare

Trimiteți-le prietenilor: