Actualizat duminică, 19 iunie 2016
iptables este un sistem de firewall legat de kernelul Linux. Contrar a ceea ce poate părea iptables nu sunt ca un server pe care îl inițiem sau nu mai exista o vulnerabilitate pe care un DDOS a permis, dar va fi întotdeauna mai eficientă decât aplicațiile care ascultă într-un anumit port TCP. IPtable este integrat cu kernelul, face parte din sistemul de operare. Putem crea, modifica, șterge toate tipurile de reguli, aici vom propune câteva exemple.
Resetare IPABABABLE ID ID = „A693992F75”>
iptables -P INPUT ACCEPTiptables -P FORWARD ACCEPTiptables -P OUTPUT ACCEPTiptables -Fiptables -t nat -F
Vizualizarea stării de firewall și regulile de listă
Introduceți următoarea comandă ca rădăcină:
iptables -L -n -viptables -n -L -v --line-numbers iptables -L INPUT -n -viptables -L OUTPUT -n -v --line-numbers
ștergere reguli de firewall
iptables -L INPUT -n --line-numbersiptables -L OUTPUT -n --line-numbersiptables -L OUTPUT -n --line-numbers | lessiptables -L OUTPUT -n --line-numbers | grep 202.54.1.1
poate fi șters de numărul de regulă
iptables -D INPUT 4
sau specificați o regulă care se potrivește
iptables -D INPUT -s 202.54.1.1 -j DROP
Stabiliți politicile implicite de firewall la Eliminați tot traficul:
iptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD DROPiptables -L -v -n
blochează doar traficul de intrare
pentru a șterge toate pachetele primite / trimise, dar permite traficul de ieșire, tip :
div id = „A693992F75”>
iptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT ACCEPTiptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPTiptables -L -v -n
Ștergerea adreselor de rețea privată în interfața publică (presupunând Eth1 ca public interfață)
bloc id:
Salvare reguli:
iptables-save > /root/iptables.fw
în CentOS / Rhel / Fedora Linux,:
service iptables save
Restaurare reguli :
iptables-restore < /root/iptables.fw
restaurare în CentOS / RHEL / Fedora Linux:
service iptables restart
puteți Reîncărcați regulile atunci când reporniți serverul:
vi /etc/rc.local
# Reload IPTABLES Rules automatically on restart/sbin/iptables-restore < /root/iptables.fw
în centrul de a salva regulile pentru a le reîncărca În mod automat:
/etc/sysconfig/iptables
Permiteți toate traficul de loopback și eliminați tot traficul la 127/8 care nu utilizează LO0
iptables -A INPUT -i lo -j ACCEPTiptables -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
Șterge orice pachet TCP care nu a fost pornit cu steagul Syn Active
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
acceptați toate conexiunile de intrare stabilite
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Eliminați orice pachet nevalid care nu poate fi Identificat
iptables -A INPUT -m state --state INVALID -j DROPDrop all inbound telnet trafficiptables -I INPUT -p tcp --dport 23 -j DROPDrop all outbound web trafficiptables -I OUTPUT -p tcp --dport 80 -j DROPDrop all outbound traffic to 192.168.0.1iptables -I OUTPUT -p tcp --dest 192.168.0.1 -j DROPAllow all inbound web trafficiptables -I INPUT -p tcp --dport 80 -j ACCEPTAllow inbound port traffic for localhostiptables -I INPUT -s 12.0.0.1 -p tcp --dport 2003 -j ACCEPTAllow inbound HTTPS traffic from 10.2.2.4iptables -I INPUT -s 10.2.2.4 -p tcp -m tcp --dport 443 -j DROPDeny outbound traffic to 192.2.4.0-192.2.4.255iptables -I OUTPUT -d 192.2.4.6.0/24 -j DROP
blochează traficul în domeniul Facebook.com, ne uităm la IP-ul Facebook.com și apoi gama dvs. IPS
host -t a www.facebook.comwhois 69.171.228.40 | grep CIDR
Noi creăm regula pentru a nu permite accesul
iptables -A OUTPUT -p tcp -d 69.171.224.0/19 -j DROP
și pe numele de domeniu, dar nu este 100% eficient.
divid id = „01fc77706E”>
Permite conexiunile primite la Port 21 dintr-un IP 11.22.33.44
iptables -A INPUT -p tcp -m state --state NEW --dport 21 --source 11.22.33.44
permite toate traficul de intrare ssh
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
permit ssh
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
permite traficul http
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
permit HTTPS de ieșire.
DIV id = „A693992F75 „”> div>
iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
Combinați reguli cu multipport
iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp -m multiport --sports 22,80,443 -m state --state ESTABLISHED -j ACCEPT
nega Toate conexiunile primite la portul 21.
iptables -A INPUT -p tcp -m state --state NEW --dport 21 -j DROP
Șterge prima regulă de intrare
a inflori Quar sau să permită solicitarea ICMP Ping
iptables -A INPUT -p icmp --icmp-type echo-request -j DROPiptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -s 192.168.1.0/24 -p icmp --icmp-type echo-request -j ACCEPT/// A continuación sólo acepta tipo limitado de peticiones ICMP:
### ** a presupus că politica de intrare implicită setată la Drop ** ######## ## ## IPTABLES -A INPUT-PP-AICMP-tip Echo-Răspuns -J Acceptați iptables-o intrare -P-PP Dezactivare de tip IPMP-IPPABABLE -AMPABABABLES -A INPUT-PP ICMP-AICMP-TIP TIP -EXCEEDED -J acceptați
## ** toate serverul nostru să răspundă la Pings ** ## IPTABLES -A INPUT-PP ICMP-AICMP-TIP ECHO-cerere -j acceptați
FB90EF12D „>
iPtables-o intrare -p iCMP-de tip Echo-cerere -j acceptați iPtables -a ieșire -p ICMP – ICMP- Tip Echo-Răspunde -J acceptați
Permitir PING de dentro a fuera.
iPptables -a Ieșire -P ICMP-AICMP-tip Echo-cerere -j acceptați iptables -a intrare – P ICMP -Ip-replica -j acceptați
Permitir tráfico DNS saliente.
iptables -a ieșire -p udp -o eth0 -dport 53 -j acceptați iptables-o intrare – P UDP -I ETH0 -SPORT 53 -J Acceptați
Abrir un rango de puertos de entrada
iPtables -a intrare -M stare de stat NE W -m TCP-PP TCP DPT 7000: 7010 -J Acceptați
Abrir un rango de IPs
## numai acceptarea conexiunii la portul TCP 80 (Apache) IP IP este între 192.168 .1.100 și 192.168.1.200 ## IPTABABABLES-AUT -P DESTINAȚIA TCP-PORT 80 -M IPRAGE SRC-gama 192.168.1.100-192.168.1.200 -J Acceptați
## NAT Exemplu ## T NAT – Așezarea -j SNAT-la-Sursa 192.168.1.20-192.168.1.25
%%%Restringir el número de conexiones concurrentes a un servidor por IP%%%Puedes utilizar el módulo connlimit para crear estas restricciones. Permitir 3 conexiones SSH por cliente:
iPtables-o intrare -p TCP Syn DPort 22 -m Connlimit -Connlimit-deasupra 3 -j Reject
DIV id = ” A693992F75 „>
iPtables -p TCP Syn Dport 80 – m Conllimit Conllimit-mai sus 20 Conllimit-Mask 24-J Drop
Donde:* --connlimit-above 3 : Match if the number of existing connections is above 3.* --connlimit-mask 24 : Group hosts using the prefix length. For IPv4, this must be a number between (including) 0 and 32.%%%Eliminar o aceptar paquetes desde una MAC Address
iPptables -a Intrare -m Mac -Mac-sursă 00: 0F: EA: 91 : 04: 08 -J Drop
## * Acceptați doar traficul pentru portul TCP # 22 de la Mac 00: 0f: EA: 91: 04: 07 * ## IPTABABABABABLES-PORT-PORD 22 -M MAC MAC-Source 00: 0F: EA: 91: 04: 07 -J Acceptați
iptables-o intrare -p TCP DPort 80-M Limita limită 25 / minut -limit-burst 100 -j acceptați
iv id = „bbfe5d7d73”
iptentables -t nat -a prerout -p tcp -d 192.168.102.37 DPort 422 -J DNAT la 192.168.102.37:22 IPTABABABLES-AUT-IPPUT0-PP TCP DPART 422 -M Starea de stat Noua, stabilita -J accepta Iptables -a Output -o Eth0 -p Tcpsport 422 -m Stat de stat stabilit -j accepta
iPtables-o intrare -I Eth1 -s 10.0.0.0/8 -J Log -Log-Prefix „IP_Spoof A:” IPTABLES -A INPUT-III ETH1 -S 10.0.0.0 / 8 -J drop
Logar y eliminar paquetes limitando el número de entradas repetidas en el LOG
iptables-o intrare -I Eth1 -s 10.0.0.0/8 -M Limita limita 5 / m Limit-Burst 7 – J Log -Log-Prefix „IP_Spoof A:” IPTABLES -A INPUT – IPA 10.0.0.0/8 -J Drop
Sacar en el log los paquetes caídos.* Primero creamos una cadena llamada LOGGING:
iptables -n Logging
Luego todas las conexiones entrantes vayan por la cadena LOGGING
iptentables-o intrare -j logging
Logueamos paquetes con un log-prefix
iPtables-o limită limită de logging 2 / min-l log log-prefix „iptbles pachet a scăzut:” -Log-nivel 7
Y los bloqueamos:
iptables-o logging -j drop
%%%Listado de reglas ejemplo para puertos TCP/UDP comunes:* Replace ACCEPT with DROP to block port:
## deschis port ssh tcp port 22 ## iptables-o intrare – M starea de stat NEW -M TCP-PP TCP DPort 22 -J Acceptați IPTABABABLES -A INPUT -US 192.168.1.0/24 -M STATE DE STATE NEW-PP DPPort 22-L Acceptați
## cupe deschise (Serviciul de tipărire) UDP / TCP Port 631 pentru utilizatorii LAN ## IPTABLES -A INPUT -S 192.168.1.0/24 -P UDP -M UDP -PPORT 631 -J Acceptați IPTABABLES -A INPUT -S 192.168.1.0/24 -P TCP -M TCP -Port 631 -J Acceptați
## Permiteți Sincronizarea timpului prin intermediul utilizatorilor NTP pentru utilizatorii LAN (portul UDP deschis 123) ## iptables-o intrare -s 192.168.1.0/24 -M STATESTATE NEW -P UDP DPort 123 -J Acceptați
## Open TCP Port 25 (SMTP) pentru toate ## iptables-o intrare de intrare -M de stat New -p TCP DPort 25 -J Accept
- Deschideți porturile server DNS pentru toate ##
ol
iPtables-o intrare -M de stare de stat NEW -P UDP DPort 53 -J Accept IPTABLES -A INPUT-AN State de stat NEW -P TCPPORT 53 -J Accept
## OPEN HTTP / HTTPS (Apache) port server la toate ## iptables-o intrare de intrare -M de stare de stat nou -p TCP DPort 80 -J Accept IPTABABLES -A Intrare -M State de stat NEW -P TCP DPort 443 -J Accept
## Open TCP Port 110 (POP3) pentru toate ## iptables-o intrare -M de stare de stat New -p TCP DPort 110 -J Accept
## Open TCP Port 143 (IMAP) pentru toate ## IPTABLES -A INPUT-STATE de stat NEW -P TCP DPort 143 -J Accept
## Acces deschis la Samba F Serverul ILE pentru utilizatorii LAN Numai ## iptables-o intrare -s 192.168.1.0/24 -M stare de stat NEW -P TCP DPort 137 -J Accept IPTABABABLES -A INPUT -S 192.168.1.0/24 -M State de stat NEW-PP TCP DPort 138 -J acceptă iptables-o intrare -s -s 192.168.1.0/24 -M State de stat NEW-PP DPPort 139-L Acceptați IPTABABLES -A INPUT -S 192.168.1.0/24 -M State de stat NEW-PP TCP DPort 445 -J Acceptați
## accesul deschis la serverul proxy pentru utilizatorii LAN Numai ## iptables-o intrare -s 192.168.1.0/24 -M Starea de stat NEW -P TCP DPPort 3128 -J Acceptați
## Accesul deschis la serverul MySQL pentru utilizatorii LAN Numai ## IPTABLES-INPUT-PP TCP -Port 3306 -J Accept ///