Acerca de la empresa cortafuegos iptables y ejercicio práctico

Una, iptables firewall Perfil

  • NetFilter / Iptables (en lo Iptables) es una fuente abierta, el sistema de sistema de software de servidor de seguridad libre de Unix / Linux operativo, paquetes basado el filtrado de herramientas de cortafuegos, trabajando principalmente en el modelo de siete capas OSI: Capa (capa de enlace de datos), la capa 3 (capa de red), cuatro (la capa de transporte).
  • NetFilter trabajo principalmente en el espacio del núcleo (el espacio del núcleo), pertenece al módulo kernel de Linux incorporado en el sistema, sin tener que instalar, la integración por defecto, principalmente por diferentes tablas de información de filtro, la tabla se utiliza principalmente para almacenar una variedad de reglas post-política responsable de la normativa, la elaboración de políticas, el filtrado de paquetes y así sucesivamente.
  • Iptables principalmente de usuario espacio de trabajo (espacio de usuario), la herramienta de sistema es un sistema Linux viene (auto-montaje) y se utiliza principalmente para gestionar el módulo de Netfilter subyacente, la operación por defecto del módulo principal no puede ser directamente, a través del módulo de iptables gestión de herramientas Netfilter la tabla de filtros, también puede añadir las reglas de política en la tabla por iptables herramienta.
  • En la operación diaria del negocio y el mantenimiento, NetFilter y colectivamente referido como Iptables Iptables cortafuegos, firewall iptables por defecto hay cuatro tablas: Raw, Mangle, NAT, tabla de filtros, los iptables por defecto es la gestión y el uso de la tabla de filtros.
  • Tabla 5 contiene un total de cuatro cadenas, no se puede descartar en cada hebra, que pueden tener una gran variedad de normas, las reglas se pretende limitar la política de definición permite que el servidor de acceso de cliente, no hay conflicto entre las normas y reglamentos, 5 cadena:

Aquí Insertar imagen Descripción

Dos, iptables detalladas de los comandos

1, que ilustra el comando:

Aquí Insertar imagen Descripción

2, los argumentos de comandos detallados

-A 	 #顺序添加,添加一条新规则
-I   #插入,插入一条新规则 -I 后面加一数字表示插入到哪行
-D   #删除,删除一条新规则 -D 后面加一数字表示删除哪行
-N   #新建一个链
-X   #删除一个自定义链,删除之前要保证次链是空的,而且没有被引用
-L   #查看
 iptables -L -n #以数字的方式显示
 iptables -L -v #显示详细信息
 iptables -L -x #显示精确信息
 
-E   #重命名链
-F   #清空链中的所有规则
-Z   #清除链中使用的规则
-P   #设置默认规则

2.匹配条件:
隐含匹配:
   -p  tcp udp icmp
   --sport #指定源端口
   --dport #指定目标端
   -s #源地址
   -d #目的地址
   -i #数据包进入的网卡
   -o #数据包出口的网卡
   
扩展匹配:
-m state --state   #匹配状态的
-m limit --limit 3/minute   #每三分种一次
-m mutiport --source-port   #端口匹配 ,指定一组端口
-m time --timestart 8:00 --timestop 12:00  #表示从哪个时间到哪个时间段
-m time --days    #表示那天
-m mac --mac-source xx:xx:xx:xx:xx:xx #匹配源MAC地址
-m layer7 --l7proto qq   #表示匹配腾讯qq的 当然也支持很多协议,这个默认是没有的,需要我们给内核打补丁并重新编译内核及iptables才可以使用 -m layer7 这个显示扩展匹配

#下面两个参数不知有何用途!
-m limit --limit-burst  5   只匹配5个数据包
-m string --string --algo bm|kmp --string"xxxx"  匹配字符串

3.动作:
-j
DROP   #直接丢掉
ACCEPT #允许通过
REJECT #丢掉,但是回复信息
LOG --log-prefix"说明信息,自己随便定义"  #记录日志

SNAT       #源地址转换,适用于多个内网用户使用一个公网地址
DNAT       #目标地址转换,SNAT的逆过程
#从内网访问外网服务器网关使用的是为SNAT,从外网服务器返回到内网用户使用的是DNAT!

REDIRECT   #重定向
MASQUERAED #地址伪装


#保存iptables规则
service iptables save
# 重启iptables服务
service iptables stop
service iptables start

3 de aviso de llave

(1) Necesitamos reenvío abierta! firewalld, SElinux tendrá que cerrar

 echo 1 > /proc/sys/net/ipv4/ip_forward

(2) regla NAT orden coincidente
de arriba a abajo, en secuencia, la coincidencia es satisfactoria, ya no coincide abajo. Independientemente de la medida precisa de su partido!

Tres, Iptables Introducción de tabla de filtros

tabla de filtros indica los iptables por defecto, así que si usted no tiene que personalizar una tabla, a continuación, la tabla de filtros por defecto, que tiene tres incorporado en las cadenas:

  • cadena INPUT - Procesamiento de Datos desde el exterior;
  • cadena OUTPUT - tratamiento de los datos de salida;
  • cadena FORWARD - reenvía los datos al otro equipo de la LAN de la máquina.

ejercicio práctico

#查看iptables规则并编号
iptables -L -n --line-numbers
#WEB服务器,开启80端口; 
iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT #这里-I参数指定了插入到第二条规则
#指定多端口,开启邮件服务器25,110端口;  
iptables -A INPUT -p tcp -m multiport --dport 110,25 -j ACCEPT
#允许icmp包通过,也就是允许ping
iptables -A OUTPUT -p icmp -j ACCEPT (Input方向也要做,此处省略)
#友好的拒绝其访问
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
#FORWARD链的作用:一般与nat表一起使用,这里开启forward转发,nat表再转发!
#规则删除
1、按表删除
iptables -t nat -F #清空nat表的所有链
2、按链的类型加编号删除 #先明确你要删除那个链里的那条规则!
iptables -D INPUT 1


#iptables规则配置文件中默认规则,最后匹配
:INPUT ACCEPT [0:0] 
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [602:39593]
			   [请求数:所有请求的数据包的总大小]

Cuatro, Iptables Introducción de tabla NAT

1, escenarios de uso NAT

La tecnología NAT (traducción de direcciones de red) en tiempos de paz es mucho que ver, tales como el hogar cuando se utiliza un router para compartir el acceso a Internet, por lo general con la tecnología NAT es, se puede lograr un número de IP dentro de la red para compartir una única dirección IP pública de Internet.

2, el principio NAT

Simplemente significa que cuando la red de acceso de hosts de red externa, cuando el anfitrión dentro de los paquetes de datos a la red a través del router, el paquete de datos dentro de la dirección IP de origen a la dirección IP pública del router, y registrar los datos paquete de mensaje;

3, SNAT, DNAT resolución

Cuando el servidor de red externa envía en respuesta a esta solicitud o los datos de cambio de adentro hacia afuera, cuando el paquete de datos fuera de la red enviado por el servidor a través del router, que estaba originalmente en la dirección IP de la red pública al enrutador de red es un router IP.
SNAT y DNAT son dos conceptos importantes en el uso de iptables reglas NAT relacionados con el. Como se muestra arriba, si el host externo e interno de enrutamiento a través de la red visitada, la fuente IP va a cambiar, este comportamiento es cambiar la SNAT, por otra parte, cuando los datos de la red externa pasa a través de la ruta al host dentro de la red, el paquete de datos el propósito de IP (IP pública del router) se modificará a la red interna IP, este comportamiento es el cambio DNAT.

4, tabla NAT hay tres incorporado en las cadenas

  • POSTROUTING cadena - procesar paquetes que salen de la máquina. Se traduce la dirección IP de origen (origen de la dirección IP) en el paquete, típicamente para SNAT (NAT fuente).
  • PREROUTING cadena - procesamiento de la máquina y justo antes de llegar a la ruta de reenvío de paquetes. Se traduce el paquete de dirección IP de destino (dirección ip de destino), normalmente para DNAT (NAT de destino).
  • cadena OUTPUT - procesamiento de paquetes generados localmente.

5, el ejercicio de combate asignación de NAT

内网主机IP:192.168.0.1:8080,本局域网网关主机IP:39.97.176.117,你要访问106.54.72.122:80,在网关处配置规则如下;

#--to-source指定转换后的源IP地址,如果是udp/tcp的报文,可以指定转换后的端口号
iptables -t nat -A POSTROUTING -s 192.168.0.1/32  -p tcp --sport 8080 -j SNAT --to-source 39.97.176.117:8080

#--to-destination指定转换后的目标ip地址,如果是udp/tcp的报文,可以指定转换后的端口号
iptables -t nat -A PREROUTING -d 39.96.176.117/32 -p tcp --dport 8080 -j DNAT --to-destination 192.168.0.1:8080

#开启forward转发
iptables -A FORWARD -s 192.168.0.1 -p tcp --sport 8080 -j ACCEPT

6, las reglas de iptables se almacenan en línea y las reglas del servidor Ali nube muestran

iptables-save >/root/iptables
# Generated by iptables-save v1.4.21 on Sun Mar 29 09:32:13 2020
*mangle
:PREROUTING ACCEPT [4956702:403757221]
:INPUT ACCEPT [4956702:403757221]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4951017:201160024]
:POSTROUTING ACCEPT [4951028:201162271]
-A POSTROUTING -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
# Completed on Sun Mar 29 09:32:13 2020
# Generated by iptables-save v1.4.21 on Sun Mar 29 09:32:13 2020
*nat
:PREROUTING ACCEPT [4933337:295987301]
:INPUT ACCEPT [4933337:295987301]
:OUTPUT ACCEPT [3006:227717]
:POSTROUTING ACCEPT [3006:227717]
-A POSTROUTING -s 192.168.122.0/24 -d 224.0.0.0/24 -j RETURN
-A POSTROUTING -s 192.168.122.0/24 -d 255.255.255.255/32 -j RETURN
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE
COMMIT
# Completed on Sun Mar 29 09:32:13 2020
# Generated by iptables-save v1.4.21 on Sun Mar 29 09:32:13 2020
*filter
:INPUT ACCEPT [4956714:403758096]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4951029:201160679]
-A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A FORWARD -d 192.168.122.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -o virbr0 -p udp -m udp --dport 68 -j ACCEPT
COMMIT
# Completed on Sun Mar 29 09:32:13 2020

Aquí Insertar imagen Descripción
7, servidor en línea nube Tencent iptables instancia de configuración

*nat
:PREROUTING ACCEPT [15:616]
:INPUT ACCEPT [15:616]
:OUTPUT ACCEPT [312:18734]
:POSTROUTING ACCEPT [312:18734]
:DOCKER - [0:0]
:KUBE-MARK-DROP - [0:0]
:KUBE-MARK-MASQ - [0:0]
:KUBE-NODEPORTS - [0:0]
:KUBE-POSTROUTING - [0:0]
:KUBE-SEP-CDLPKQDAWGXXULF3 - [0:0]
:KUBE-SEP-WDXYE4D5Z7MA4KDL - [0:0]
:KUBE-SERVICES - [0:0]
:KUBE-SVC-NPX46M4PTMTKRN6Y - [0:0]
:KUBE-SVC-XGLOHA7QRQ3V22RZ - [0:0]
-A PREROUTING -m comment --comment "kubernetes service portals" -j KUBE-SERVICES
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT -m comment --comment "kubernetes service portals" -j KUBE-SERVICES
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.21.0/24 ! -o docker0 -j MASQUERADE
-A POSTROUTING -m comment --comment "kubernetes postrouting rules" -j KUBE-POSTROUTING
-A DOCKER -i docker0 -j RETURN
-A KUBE-MARK-DROP -j MARK --set-xmark 0x8000/0x8000
-A KUBE-MARK-MASQ -j MARK --set-xmark 0x4000/0x4000
-A KUBE-POSTROUTING -m comment --comment "kubernetes service traffic requiring SNAT" -m mark --mark 0x4000/0x4000 -j MASQUERADE
-A KUBE-SEP-CDLPKQDAWGXXULF3 -s 172.17.77.241/32 -m comment --comment "default/kubernetes:https" -j KUBE-MARK-MASQ
-A KUBE-SEP-CDLPKQDAWGXXULF3 -p tcp -m comment --comment "default/kubernetes:https" -m recent --set --name KUBE-SEP-CDLPKQDAWGXXULF3 --mask 255.255.255.255 --rsource -m tcp -j DNAT --to-destination 172.17.77.241:6443
-A KUBE-SEP-WDXYE4D5Z7MA4KDL -s 172.17.21.2/32 -m comment --comment "kube-system/kubernetes-dashboard:" -j KUBE-MARK-MASQ
-A KUBE-SEP-WDXYE4D5Z7MA4KDL -p tcp -m comment --comment "kube-system/kubernetes-dashboard:" -m tcp -j DNAT --to-destination 172.17.21.2:9090
-A KUBE-SERVICES -d 10.254.0.1/32 -p tcp -m comment --comment "default/kubernetes:https cluster IP" -m tcp --dport 443 -j KUBE-SVC-NPX46M4PTMTKRN6Y
-A KUBE-SERVICES -d 10.254.214.163/32 -p tcp -m comment --comment "kube-system/kubernetes-dashboard: cluster IP" -m tcp --dport 80 -j KUBE-SVC-XGLOHA7QRQ3V22RZ
-A KUBE-SERVICES -m comment --comment "kubernetes service nodeports; NOTE: this must be the last rule in this chain" -m addrtype --dst-type LOCAL -j KUBE-NODEPORTS
-A KUBE-SVC-NPX46M4PTMTKRN6Y -m comment --comment "default/kubernetes:https" -m recent --rcheck --seconds 10800 --reap --name KUBE-SEP-CDLPKQDAWGXXULF3 --mask 255.255.255.255 --rsource -j KUBE-SEP-CDLPKQDAWGXXULF3
-A KUBE-SVC-NPX46M4PTMTKRN6Y -m comment --comment "default/kubernetes:https" -j KUBE-SEP-CDLPKQDAWGXXULF3
-A KUBE-SVC-XGLOHA7QRQ3V22RZ -m comment --comment "kube-system/kubernetes-dashboard:" -j KUBE-SEP-WDXYE4D5Z7MA4KDL
COMMIT
# Completed on Sun Mar 29 09:41:43 2020
# Generated by iptables-save v1.4.21 on Sun Mar 29 09:41:43 2020
*filter
:INPUT ACCEPT [425:21221]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [401:28541]
:DOCKER - [0:0]
:DOCKER-ISOLATION - [0:0]
:KUBE-FIREWALL - [0:0]
:KUBE-SERVICES - [0:0]
-A INPUT -j KUBE-FIREWALL
-A FORWARD -j DOCKER-ISOLATION
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A OUTPUT -m comment --comment "kubernetes service portals" -j KUBE-SERVICES
-A OUTPUT -j KUBE-FIREWALL
-A DOCKER-ISOLATION -j RETURN
-A KUBE-FIREWALL -m comment --comment "kubernetes firewall for dropping marked packets" -m mark --mark 0x8000/0x8000 -j DROP
COMMIT
# Completed on Sun Mar 29 09:41:43 2020

Aquí Insertar imagen Descripción

Ha publicado 188 artículos originales · alabanza 150 won · vistas 30000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_44571270/article/details/104734269
Recomendado
Clasificación