searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

入门iptables防火墙安全加固

2023-11-09 03:35:35
16
0

在 Linux 网络领域,iptables 是一个强大的工具,用于管理和控制网络流量等。它充当防火墙,使系统管理员能够根据定义的规则过滤和操作数据包。本文旨在介绍 iptables及其在Linux 环境中的使用。

iptables是由表(“三表五链”)组成

三表:

filter表:负责过滤数据包。(规则链:input , outpt , forward)

nat表:用于网络地址转换(ip , 端口)。(规则链:prerouting , postrouting , output)

mangle表:用于修改数据包,流量整形,给数据包打标识。(规则链:INPUT , OUTPUT , forward , POSTROUTING , PREROUTING)

 

五链:

input:匹配目标IP是本机的数据包。(注:进来的流量)

output: 出口数据包。

forward: 匹配流经本机的数据包。(注:转发的流量)

prerouting: 修改目的地址,用于做DNAT。(注:路由前的流量)

postrouting: 修改源地址,用于做SNAT。(注:路由后的流量)

 

常见命令
查看规则:ipatbles -L

查看已添加的iptables规则:iptables -vnL

删除规则:iptables -D 规则链 序号

匹配条件: 
-p:指定数据包的协议类型,如 TCP、UDP、ICMP 等。
-s:指定数据包的源地址。
-d:指定数据包的目标地址。
-i:指定数据包进入系统的网络接口。
-o:指定数据包离开系统的网络接口。

匹配选项:
--sport:指定数据包的源端口。
--dport:指定数据包的目标端口。
--state:指定数据包的连接状态,如 NEW、ESTABLISHED、RELATED 等。
--mac-source:指定数据包的源 MAC 地址。
--mac-destination:指定数据包的目标 MAC 地址。

匹配动作
-j:指定匹配成功时要执行的动作,如 ACCEPT、DROP、REJECT 等。

语法格式:#ipatbles [选择规则链] [选择防火墙规则][选择匹配服务] -j [选择触发条件]

举例:比如限制源192.168.10.10地址访问目标 192.168.10.100

iptables -A INPUT -p tcp -s 192.168.10.10  -j DROP

 

匹配多个端口

再比如:限制192.168.10.10地址访问目标地址192.168.10.100的22、80、1000端口,其他拒绝

iptables -A INPUT -p tcp -m multiport --dports 22,80,1000  -s 92.168.10.10/32 -j DROP

 

示例:拒绝ping Echo请求

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

 

示例:拒绝访问防火墙的新数据包,但允许响应连接或与已有连接相关的数据包
iptables -A INPUT -p tcp -m state --state NEW -j DROP
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
说明:“ESTABLISHED”表示已经响应请求或者已经建立连接的数据包,“RELATED”表示与已建立的连接有相关性的,比如FTP数据连接等。

命令行执行后,想要持久化保存,则执行:iptables-save

或者直接修改/etc/sysconfig/iptables;  保存,然后执行systemctl reload iptables即可立即生效。

 
0条评论
0 / 1000