Tutorial usor de invatat cu comenzile de baza in IPTABLES pentru configurare firewall LINUX.

Ce este IPTABLES?

Iptables este folosit pentru mai multe servicii precum : translatare de adrese sursa sau destinatie (SNAT / DNAT ) , port forwading sau pur si simplu rejectare sau forwadare de pachete , routing.

Cum pornesc serviciul IPTABLES?

[root tmp]# service iptables start
[root tmp]# service iptables stop
[root tmp]# service iptables restart

Ca serviciul IPTABLES sa porneasca o data cu sistemul rulati urmatoarea comanda:

[root tmp]# chkconfig iptables on

Procesarea de pachete in IPTABLES

Toate pachetele inspectate de iptables trec printr-o secventa de tabele (cozi) pentru prelucrare. Fiecare dintre aceste cozi este dedicata unui anumit tip de activitate de pachete si este controlata de un lanţ de filtrare asociat.

Iptables foloseste implicit trei tabele :

1. FILTER ( tabel implicit) –  este responsabil cu filtrarea pachetelor

Are 3 lanturi built-in in care va puteti declara reguli de politica firewall

  • Forward : Filtreaza pachete catre servere protejate de firewall.
  • Input : Filtreaza pachetele destinate firewall-ului.
  • Output : Filtreaza pachetele expediate de firewall

2. NAT – este responsabil cu network address translation(translatarea adresei de retea)

3. MANGLE – este responsabil pentru modificarea bitilor QOS  din headerul TCP

Are 2 lanturi built-in:

  • Pre-routing:  face NAT atunci cand adresa destinatie a pachetului trebuie schimbata.
  • Post-routing: face NAT atunci cand adresa sursa a pachetului trebuie schimbata.

Cum functioneaza IPTABLES?

Pentru fiecare regula firewall pe care o creezi trebuie sa specifici tabela si lantul de careva apartine. La aceasta regula este o singura exceptie: Cele mai multe reguli sunt legate de filtrare, astfel iptables presupune că orice lanţ definit fără o tabela asociata va face parte din tabela filter. Tabela  filter este, prin urmare, implicita.

Mai jos aveti o imagine cu felul in care iptables manipuleaza pachetele:

Fiecare regulă firewall inspectează pachetele IP şi apoi încearcă să le identifice ca si tinte pentru o anumita operatie.

Cele mai folosite tinte sunt:

  • ACCEPT – Iptables opreste procesarea ulterioara; Pachetul este trimis catre aplicatie sau sistem de operare pentru prelucrare
  • DROP – Iptables opreste procesarea ulterioara; Pachetul este blocat
  • LOG – Informaţiile sunt trimise la daemonul syslog pentru logare; Iptables continua procesarea pachetului
  • REJECT – Funcţionează DROP, dar va trimite un mesaj de eroare la gazda carea a trimis pachetul cum că pachetul a fost blocat
  • DNAT – Rescrie adresa IP destinaţie a pachetului
  • SNAT – Rescrie adresa IP sursa a pachetului
  • MASQUERADE – Folosit pentru SNAT; În mod implicit adresa IP sursa este aceeaşi cu cea utilizată de interfaţa firewall-ului

Parametrii pentru IPTABLES:

-t <-table-> : Dacă nu specificaţi o tabela, tabela filter este asumata. Aşa cum am discutat înainte, tabelele posibile pot fi: filtru, NAT, mangle

-j <target> : Salt la lanţul ţintă specificat în momentul pachet se potriveste cu regula actuală.

-A sau –append : Adauga o regula la sfarsitul chainului

-F : Flush. Sterge toate regulile din tabela selectata.

-p <protocol-type> : Potrivire cu protocolul icmp, tcp, udp sau  all

-s <ip-address> : Potrivire cu adresa IP sursa

-d <ip-address> : Potrivire cu adresa IP destinatie

-i <interface-name> : Potrivire cu interfata de retea prin care intra pachetul

-o <interface-name> : Potrivire cu interfata de retea prin care iese pachetul

-m –state <state> : ESTABLISHED, NEW, RELATED, INVALID

Pentru a activa anumite funcţii ale Iptables trebuie sa  încărcaţi anumite module de kernel  la pornirea sistemului.

Fisier: /etc/rc.local


# Module to track the state of connections
modprobe ip_conntrack

# Load the iptables active FTP module, requires ip_conntrack
modprobe ip_conntrack_ftp

# Load iptables NAT module when required
modprobe iptable_nat

# Module required for active an FTP server using NAT
modprobe ip_nat_ftp

Exemple:

* -R –replace : Inlocuirea lantului specificat
iptables -R INPUT 1 -s 192.168.0.1 -j DROP

* -I –insert : Permite introducerea unui lant in intr-o zona specifica
iptables -I INPUT 1 --dport 80 -j ACCEPT

* -L –list : Afisarea tuturor regulilor IPTABLES

iptables -L # Afiseaza toate regulile din tabela FILTER
iptables -L INPUT # Afiseaza toate regulile din lantul INPUT (FILTER)

* -F –flush : Sterge toate regulile din tabela.

iptables -F INPUT # Sterge toate regulile din lantul INPUT
iptables -F # Sterge toate regulile

* -N –new-chain : Crearea unui nou lant
iptables -N LOG_DROP

* -X –delete-chain : Stergerea unui lant


iptables -X LOG_DROP # Stergerea lantului LOG_DROP
iptables -X # Sterge toate lanturile

* -P –policy :  Permite specificarea politicii default pentru un anumit lant ACCEPT, REJECT, DROP …
iptables -P INPUT DROP

* Iptables va fi configurat pentru a permite firewall-ului sa trimita cereri ICMP(ping) şi, la rândul său, să accepte cereri ICMP

iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

* Iptables va fi configurat sa accepte cereri ICMP si le limiteze la un număr maxim mediu  de o cerere pe secundă.
iptables -A INPUT -p icmp --icmp-type echo-request \
-m limit --limit 1/s -i eth0 -j ACCEPT

Setari de baza pentru protejarea sistemului de operare

Sistemul de operare Linux are cateva mecanismele de protecţie definite  pe care ar trebui să le activaţi prin modificarea parametrilor kernel-ului prin fişierul /etc/sysctl.conf


#---------------------------------------------------------------
# Disable routing triangulation. Respond to queries out
# the same interface, not another. Helps to maintain state
# Also protects against IP spoofing
#---------------------------------------------------------------
net/ipv4/conf/all/rp_filter = 1
#---------------------------------------------------------------
# Enable logging of packets with malformed IP addresses
#---------------------------------------------------------------
net/ipv4/conf/all/log_martians = 1
#---------------------------------------------------------------
# Disable redirects
#---------------------------------------------------------------
net/ipv4/conf/all/send_redirects = 0
#---------------------------------------------------------------
# Disable source routed packets
#---------------------------------------------------------------
net/ipv4/conf/all/accept_source_route = 0
#---------------------------------------------------------------
# Disable acceptance of ICMP redirects
#---------------------------------------------------------------
net/ipv4/conf/all/accept_redirects = 0
#---------------------------------------------------------------
# Turn on protection from Denial of Service (DOS) attacks
#---------------------------------------------------------------
net/ipv4/tcp_syncookies = 1
#---------------------------------------------------------------
# Disable responding to ping broadcasts
#---------------------------------------------------------------
net/ipv4/icmp_echo_ignore_broadcasts = 1
#---------------------------------------------------------------
# Enable IP routing. Required if your firewall is protecting a
# network, NAT included
#---------------------------------------------------------------
net/ipv4/ip_forward = 1

0 Comments

Leave a reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.

©2024 KLEO Template a premium and multipurpose theme from Seventh Queen

Log in with your credentials

Forgot your details?