iptables 配置示例

it2023-10-26  66

iptables 配置

个人收集整理记录使用 简单示例 系统:CentOS-7.8

/etc/init.d 目录下 新建 iptableRule 输入如下内容

#!/bin/bash #chkconfig:2345 80 90 #decription:autostart iptables -F iptables -A INPUT -s 127.0.0.1 -p tcp --dport 3306 -j ACCEPT iptables -A INPUT -s 192.168.1.101 -p tcp --dport 3306 -j ACCEPT

保存退出后 赋予文件执行权限

chmod +x iptableRule # 添加到服务 chkconfig --add iptableRule # 启用 chkconfig iptableRule on

iptables 其他示例

# 查看当前iptables配置 iptables -nL [--line-number(显示规则的序列号,可用于删除或修改)] # 添加规则参数有 -A和-I,-A是添加到规则的末尾;-I可以插入到指定位置,没有指定位置的话默认插入到规则的首部 # 添加一条规则到尾部: iptables -A INPUT -s 192.168.1.5 -j DROP # 插入一条规则到第三行,将行数直接写到规则链的后面 iptables -I INPUT 3 -s 192.168.1.3 -j DROP # 删除INPUT中的第二行规则 iptables -D INPUT 2 # 禁止ip iptables -I INPUT -s 123.44.55.66 -j DROP

其他说明:

表 (table)

参数:-t 包含4个表: 4个表的优先级由高到低:raw–>mangle–>nat–>filter raw: RAW表只使用在PREROUTING链和OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。一但用户使用了RAW表,在某个链上,RAW表处理完后,将跳过NAT表和ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了. filter: 这个规则表是预设规则表,拥有 INPUT、FORWARD 和 OUTPUT 三个规则链,这个规则表顾名思义是用来进行封包过滤的理动作 net-: 此规则表拥有prerouting和postrouting两个规则链, 主要功能为进行一对一、一对多、多对多等网址转译工作(SNATDNAT) mangle–此规则表拥有prerouting、FORWARD、postrouting三个规则链,除了进行网址转译工作会改写封包外,在某些特殊应用可能也必须去改写封包(ITL、TOS)或者是设定MARK(将封包作记号,以进行后续的过滤)这时就必须将这些工作定义在mangles规则表中

常用命令:

-A 追加规则–>iptables -A INPUT -D 删除规则–>iptables -D INPUT 1(编号) -R 修改规则–>iptables -R INPUT 1 -s 192.168.12.0 -j DROP 取代现行规则,顺序不变(1是位置) -I 插入规则–>iptables -I INPUT 1 --dport 80 -j ACCEPT 插入一条规则,原本位置上的规则将会往后移动一个顺位 -L 查看规则–>iptables -L INPUT 列出规则链中的所有规则 -N 新的规则–>iptables -N allowed 定义新的规则

通用参数:

-p 协议 例:iptables -A INPUT -p tcp -s 源地址 例:iptables -A INPUT -s 192.168.1.1 -d 目的地址 例:iptables -A INPUT -d 192.168.12.1 -sport 源端口 例:iptables -A INPUT -p tcp --sport 22 -dport 目的端口 例:iptables -A INPUT -p tcp --dport 22 -i 指定入口网卡 例:iptables -A INPUT -i eth0 -o 指定出口网卡 例:iptables -A FORWARD -o eth0

-j 指定要进行的处理动作 常用的ACTION

DROP:丢弃 REJECT:明示拒绝 ACCEPT:接受 SNAT 基于原地址的转换 source 指定原地址

# 比如我们现在要将所有192.168.10.0网段的IP在经过的时候全都转换成172.16.100.1 iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 172.16.100.1 # 这样,只要是来自本地网络的试图通过网卡访问网络的,都会被统统转换成172.16.100.1这个IP

MASQUERADE(动态伪装): 家用带宽获取的外网ip,就是用到了动态伪装

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE

DNAT: 目标地址转换 destination 指定目标地址

# 10.18访问80端口转换到100.2上 iptables -t nat -A PREROUTING -d 192.168.10.18 -p tcp --dport 80 -j DNAT --to-destination 172.16.100.2

MASQUERADE:源地址伪装 REDIRECT:重定向:主要用于实现端口重定向 MARK:打防火墙标记的 RETURN:返回 在自定义链执行完毕后使用返回,来返回原规则链。

最新回复(0)