iptables:利用iptables实现简单的流量转发

记个笔记,如何用iptables实现简单的流量转发。

安装

CentOS:

#停用firewalld并禁止开机启动
systemctl stop firewalld
systemctl disable firewalld
#安装iptables
yum install iptables-services -ysystemctl enable iptables.service

Debian:

# Debian 默认防火墙即 iptables
查询是否开启转发以及开启转发的方法
#查询是否开启转发
sysctl net.ipv4.ip_forward

开启转发

# CentOS 7 以上
echo "net.ipv4.ip_forward = 1" >> /usr/lib/sysctl.d/sys.conf
sysctl -p /usr/lib/sysctl.d/sys.conf

# Debian 9/10
echo 1 >/proc/sys/net/ipv4/ip_forward
添加及保存规则 CentOS/Debian

落地机即为要被转发的服务器,以下操作均在中转机上进行。

# 放行端口(例如放行19998端口)
iptables -A INPUT -p tcp -m tcp --dport 19998 -j ACCEPT

#添加端口转发规则
iptables -t nat -A PREROUTING -p tcp --dport 19998 -j DNAT --to-destination 落地机IP:落地机被转发端口
iptables -t nat -A PREROUTING -p udp --dport 19998 -j DNAT --to-destination 落地机IP:落地机被转发端口
iptables -t nat -A POSTROUTING -p tcp -d 落地机IP --dport 落地机被转发端口 -j SNAT --to-source 中转机IP
iptables -t nat -A POSTROUTING -p udp -d 落地机IP --dport 落地机被转发端口 -j SNAT --to-source 中转机IP

#保存规则并重启服务-CentOS(Debian9/10 不需要这一步)
service iptables save
service iptables restart

更多

多端口转发方法,反正我感觉平常用上面的方法就够了

#多端口转发配置(将本地服务器的 10000-65535 端口转发至目标IP的 10000-65535 端口)
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 10000:65535 -j DNAT --to-destination 目标落地机IP
iptables -t nat -A POSTROUTING -d 目标落地机IP -p tcp -m tcp --dport 10000:65535 -j SNAT --to-source 本地服务器IP
iptables -t filter -I FORWARD -d 目标落地机IP -j ACCEPT 
iptables -t filter -I FORWARD -s 目标落地机IP -j ACCEPT 
iptables -t filter -I -A INPUT -s 0.0.0.0/0 -m multiport -p tcp --dport 10000:65535 -j ACCEPT
查看规则
#查看目前在nat的规则
iptables -t nat -nL

#查看目前在iptables的规则
iptables -nL --line-number
修改iptables规则文件

CentOS位置: /etc/sysconfig/iptables

Debian位置:/etc/iptables.up.rules

删除规则

删除iptables中的规则,可以使用iptables -L INPUT –line-numbers来显示规则,然后用命令iptables -D INPUT *,删除指定number所对应的规则。

#显示iptables入站规则,规则前会有数字
iptables -L INPUT --line-numbers

#删除iptables对应规则
iptables -D INPUT 规则对应数字

#显示nat表规则
iptables -t nat -L -n --line-numbers

#删除nat表对应规则
iptables -t nat -D POSTROUTING 对应数字
iptables -t nat -D PREROUTING 对应数字

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注