iptables日常参数详解

一 iptables日常参数详解

参数列表

详解

-a

规则直接添加到配置文件末尾

-i

优先匹配已存在的并修改,如没匹配成功则添加到末尾

二 IPTABLES转发

1 安装iptables 添加开机启动

#先检查是否安装了iptables
service iptables status
#安装iptables
yum install -y iptables
#升级iptables
yum update iptables 
#安装iptables-services
yum install iptables-services
systemctl enable iptables.service

2 开启内核转发

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p

3 开启网卡转发+校验

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

4 重启网卡

systemctl restart network

三 本机端口转发到其他IP地址端口

0操作iptables有2中方法

第一种是在linux界面添加 iptables xxxx 添加到规则表,就需要用到 service iptables save保存
第二种修改文件 vim /etc/sysconfig/iptables 自定义添加后 需要重启iptables服务 /bin/systemctl restart iptables.service

1需求模拟:

通过访问A的6666端口转发到B的22端口

名称

服务器IP

端口

A

192.168.34.203

10001

B

192.168.34.207

22

2 用法详解:

第一条是访问过去,第二条则是返回数据

3 模拟格式

3.1 第一条是需要填写放行的端口

iptables -A INPUT -p tcp -m state –state NEW -m tcp –dport 10001 -j ACCEP

3.2 转发规则

iptables -t nat -A PREROUTING -p tcp –dport A端口 -j DNAT –to-destination B的IP地址:端口
iptables -t nat -A POSTROUTING -p tcp -d B的IP地址 –dport B端口 -j SNAT –to-source A的IP地址

4 实际写法

iptables -t nat -A PREROUTING -p tcp --dport 10001 -j DNAT --to-destination 192.168.34.207:22
iptables -t nat -A POSTROUTING -p tcp -d 192.168.34.207 --dport 22 -j SNAT --to-source 192.168.34.203

5保存规则

service iptables save

6查看规则

iptables -L

四 多端口转发

1服务器清单

名称

服务器IP

端口

A

192.168.34.203

10000~30000

B

192.168.34.201

10000~30000

2 多端口 端口转发

将中转服务器(IP 192.168.34.203) (10000~30000) 端口转发至目标服务器(IP 192.168.34.201) (10000~30000) 端口

2.1 放行端口(如只用tcp只放行tcp即可)

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 10000:30000 -j ACCEP
iptables -A INPUT -p udp -m state --state NEW -m udp --dport 10000:30000  -j ACCEP

2.2tcp协议

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 10000:30000 -j DNAT --to-destination 192.168.34.203:10000-30000
iptables -t nat -A POSTROUTING -p tcp -m tcp -d 192.168.34.203 --dport 10000:30000 -j SNAT --to-source 192.168.34.201

2.3 tcp协议

iptables -t nat -A PREROUTING -p udp -m udp --dport 10000:30000 -j DNAT --to-destination 192.168.34.203:10000-30000
iptables -t nat -A POSTROUTING -p udp -m udp -d 192.168.34.203 --dport 10000:30000 -j SNAT --to-source 192.168.34.201

五 单端口从外网IP转发

1需求模拟:

通过访问A的10001端口转发到B的22端口

名称

外网服务器IP

内网服务器IP

端口

A

10.10.10.10

192.168.34.203

10001

B

192.168.34.207

22

1 第一条是需要填写放行的端口

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 10001 -j ACCEP

2从10001端口转发到内网机器22端口

iptables规则配置如下

iptables -t nat -A PREROUTING -d 10.10.10.10 -p tcp --dport 10001-j DNAT --to-destination 192.168.34.207:22
iptables -t nat -A POSTROUTING -d 192.168.34.207 -p tcp --dport 22 -j SNAT --to-source 192.168.34.203

3 保存

service iptables save

4 说明:

iptables -t nat -A PREROUTING -d "对外公网ip" -p tcp --dport "对外端口" -j DNAT --to "内部实际提供服务的ip":"实际提供服务的端口"
iptables -t nat -A POSTROUTING -d "内部实际提供服务的ip"-p tcp --dport "实际提供服务的端口" -j SNAT --to-source "运行iptables机器的内网ip"

六 限制特定ip访问指定端口

1 查看代码

iptables --line -nvL INPUT

许172.28.18.71可以访问8075,(172.28.18.71是需要访问8075的服务器)

iptables -I INPUT -s 192.168.0.100-p tcp --dport 8075 -j ACCEPT
iptables -A INPUT -s 192.168.80.121 -p tcp -d 192.168.10.205 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -d 192.168.10.205 --dport 80 -j DROP(-I是插入的意思,-A添加)