如何配置ufw防火墙端口80/443的流量转发到内网的服务器
时间:2019-11-20 08:53:45 来源:igfitidea点击:
在Ubuntu Linux中,如何使用UFW将TCP HTTP端口80和443转发到内部服务器?
如何使用防火墙将web流量转发到内部服务器?
如何将ufw防火墙设置成代理?
配置说明
配置UFW防火墙,将所有对171.54.1.13端口80,443的请求转发到192.168.1.100服务器上。
DNAT
如果内部网络的服务器想对外开放,则可以使用NAT中PREROUTING链的-j DNAT目标来指定目标IP地址和端口,请求与内部服务建立连接的传入数据包可以在该IP地址和端口上转发。
语法为:
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -d {PUBLIC_IP} --dport 80 -j DNAT --to {INTERNAL_IP}:80
或者
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -d {PUBLIC_IP} --dport 443 -j DNAT --to {INTERNAL_IP}:443
后路由和IP伪装(IP Masquerading)
要允许具有私有IP地址的LAN节点与外部公共网络进行通信,需要配置防火墙来伪装IP,以屏蔽来自带有防火墙外部设备IP地址(例如eth0)的LAN节点的请求。
语法为:
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
或者
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -j MASQUERADE
如何配置ufw,置端口转发
编辑/etc/ufw/before.rules文件:
$ sudo vi /etc/ufw/before.rules
将http和https请求重定向到另一个服务器上。
在before.rules文件最上面添加下面内容:
*nat :PREROUTING ACCEPT [0:0] # 将171.54.1.13 80端口转发到 192.168.1.100:80 # 将171.54.1.13 443端口转发到 192.168.1.100:443 -A PREROUTING -i eth0 -d 171.54.1.13 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80 -A PREROUTING -i eth0 -d 171.54.1.13 -p tcp --dport 443 -j DNAT --to-destination 192.168.1.100:443 # 设置路由,允许IP伪装 -A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -j MASQUERADE COMMIT
编辑/etc/sysctl.conf:
$ sudo vi /etc/sysctl.conf
设置IP转发如下所示:
net.ipv4.ip_forward=1
重新加载,使配置生效:
$ sudo sysctl -p
重启防火墙,启用路由功能:
$ sudo systemctl restart ufw
打开端口80和443
$ sudo ufw allow proto tcp from any to 171.54.1.13 port 80 $ sudo ufw allow proto tcp from any to 171.54.1.13 port 443
检查新的设置:
$ sudo ufw status $ sudo iptables -t nat -L -n -v