iptables日常参数详解
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添加)
- 感谢你赐予我前进的力量