cortafuegos day4-Iptables

Se recomienda aprender iptables escrito por Zhu Shuangyin
http://www.zsythink.net/archives/category/%e8%bf%90%e7%bb%b4%e7%9b%b8%e5%85%b3/iptables / page / 2 /
http://www.zsythink.net/archives/1199 "concepto de iptables"
http://www.zsythink.net/archives/1493 "consulta de regla de operación real de iptables"

1. Introducción a la estructura del firewall de Iptables

Inserte la descripción de la imagen aquí

El diagrama de flujo de iptables que ingresan al host para filtrar

防火墙规则的执行顺序默认为从前到后依次执行、遇到匹配的规则就不在继续向下检查,如果遇到不匹配的规则则会继续向下进行。
重点:匹配上了拒绝规则也是匹配,因此,不在继续向下进行,这一点需注意。

Inserte la descripción de la imagen aquí

Relación entre mesa y cadena

Nota: La tabla sin formato no está escrita aquí, y Oldboy dijo que casi nunca la ha usado, así que no le presto mucha atención.
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Introducción a la tabla de filtros

Inserte la descripción de la imagen aquí

Introducción a la tabla nat

Inserte la descripción de la imagen aquí

Introducción a la mesa de mangle

Inserte la descripción de la imagen aquí

Dos, reglas de comando y configuración de Iptables

tabla de iptables y diagrama de flujo de trabajo en cadena

En el extremo izquierdo está el flujo de datos. Para obtener explicaciones sobre el proceso, consulte el blog de Zhu Shuangyin.
Inserte la descripción de la imagen aquí
En el trabajo general de operación y mantenimiento, la tabla de mangle se usa raramente. Para comprender y dominar mejor la tecnología iptalbes de uso común, es simplificado de la siguiente manera:
Inserte la descripción de la imagen aquí

从上图我们看出,当数据包进入时,首先经过的是NAT表的PREROUTING的链,接着会分两条路走,
如果是进入主机就通过FILTER表的 INPUT链,然后到达主机内部(LOCALPROCESS),
最后通过NAT表与FILTER的OUTPUT 返回;如果是流经主机则会通过FILTER表的 FORWARD链,
最后出站时通过NAT表的POSTROUTING链。
注:以上流程图是一个形象的图,和实际流程略有出入,但不影响我们理解IPTABLES原理。

Tres, configure el firewall del host del entorno de producción

El diagrama de flujo de trabajo del firewall del host es el siguiente

http://www.netfilter.org/documentation/HOWTO//packet-filtering-HOWTO-6.html
Inserte la descripción de la imagen aquí

Guardar de forma permanente la configuración del cortafuegos

centos5 、 centos6

/etc/ini.d/iptables save
iptables-save >/etc/sysconfig/iptables
#其中 /etc/sysconfig/iptables为iptables的默认文件路径
#保存前备份 cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak

#15、保存IPtables规则
iptables-save > ~/iptables.rules
#16、还原IPtables规则
iptables-restore < ~/iptables.rules

Inserte la descripción de la imagen aquí
Restaurado: o sobrescriba el archivo bak y luego reinicie el firewall
Inserte la descripción de la imagen aquí

Una secuencia de comandos para la inicialización y la configuración básica del firewall (secuencias de comandos de Teacher Old Boy)

https://www.cnblogs.com/blog-tim/p/10291337.html El
script contiene muchos ejemplos

#!/bin/bash
#define variable Path 
IPT=/sbin/iptables

#remove any existing rules
$IPT -F
$IPT -X
$IPT -Z

#设置SSH的允许,已改默认SSH端口,变成52113
$IPT -A INPUT -s 202.81.17.0/24 -p tcp --dport 52113 -j ACCEPT
$IPT -A INPUT -s 202.81.18.0/24 -p tcp --dport 52113 -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p tcp --dport 52113 -j ACCEPT
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT

#允许放行的ip端、IPS
$IPT -A INPUT -s 202.81.17.0/24 -p all -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p all -j ACCEPT
$IPT -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT

#改变防火墙的默认policy
$IPT --policy OUTPUT ACCEPT
$IPT --policy FORWARD DROP
$IPT -P INPUT DROP

#允许放行环回网卡 loopback interface
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

#拦截IP欺骗(IP Address Spoofing)和bad addresses 
$IPT -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP
$IPT -A INPUT -i eth0 -s 0.0.0.0/8 -j DROP
$IPT -A INPUT -i eth0 -s 169.254.0.0/16 -j DROP
$IPT -A INPUT -i eth0 -s 192.0.2.0/24 -j DROP

#拦截隐藏扫描stealth scans等扫描 下面的就cvcv了
# prevent all Stealth Scans and TCP State Flags
$IPT -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
# All of the bits are cleared
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
$IPT -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
#SYN and RST are both set
$IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
# SYN and FIN are both set
$IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
# FIN and RST are both set
$IPT -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
# FIN is the only bit set, without the expected accompanying ACK
$IPT -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
# PSH is the only bit set, without the expected accompanying ACK
$IPT -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
# URG is the only bit set, without the expected accompanying ACK
$IPT -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP


#允许nagios
$IPT -A INPUT -s 192.168.1.0/24 -p tcp --dport 5666 -j ACCEPT
$IPT -A INPUT -s 202.81.17.0/24 -p tcp --dport 5666 -j ACCEPT
$IPT -A INPUT -s 202.81.18.0/24 -p tcp --dport 5666 -j ACCEPT

#允许mysql oracle数据库
$IPT -A INPUT -s 192.168.1.0/24 -p tcp --dport 3306 -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p tcp --dport 3307 -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p tcp --dport 3308 -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p tcp --dport 1521 -j ACCEPT

#允许ftp
$IPT -A INPUT -p tcp --dport 21 -j ACCEPT

#允许http
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p tcp -m multiport --dport 8080,8081,8082,8888,8010,8020,8030,8150 -j ACCEPT
$IPT -A INPUT -s 202.81.17.0/24 -p tcp -m multiport --dport 8080,8081,8082,8888,8010,8020,8030,8150 -j ACCEPT
$IPT -A INPUT -s 124.43.62.96/27 -p tcp -m multiport --dport 8080,8081,8082,8888,8010,8020,8030,8150 -j ACCEPT

#允许snmp  (UDP协议)
$IPT -A INPUT -s 192.168.1.0/24 -p udp --dport 161 -j ACCEPT
$IPT -A INPUT -s 202.81.17.0/24 -p udp --dport 161 -j ACCEPT

#允许rsync 873  -m tcp:是要装载 tcp模块 。 -p tcp:使用tcp的协议
$IPT -A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 873 -j ACCEPT
$IPT -A INPUT -s 124.43.62.96/27 -p tcp -m tcp --dport 873 -j ACCEPT
$IPT -A INPUT -s 202.81.17.0/24 -p tcp -m tcp --dport 873 -j ACCEPT

#允许nfs 2049,portmap 111
$IPT -A INPUT -s 192.168.1.0/24 -p udp -m multiport --dport 111,892,2049 -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p tcp -m multiport --dport 111,892,2049 -j ACCEPT

#$IPT -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
$IPT -A INPUT -s 124.43.62.96/27 -p icmp -m icmp --icmp-type any -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p icmp -m icmp --icmp-type any -j ACCEPT

$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#end
#bash common-ipt.sh

Inserte la descripción de la imagen aquí

Cuatro, casos reales

Supongo que te gusta

Origin blog.csdn.net/Nightwish5/article/details/113629517
Recomendado
Clasificación