如何配置ufw将端口80/443转发到LAN上托管的内部服务器
如何在Ubuntu Linux服务器上使用UFW将TCP HTTP端口80和443转发到托管于192.168.1.100:80和192.168.1.100:443的内部服务器?
UFW是简单防火墙的首字母缩写。
它用于管理Linux防火墙,旨在为用户提供易于使用的界面。
在本教程中,您将学习如何将传入流量转发到在端口80/443上运行ufw的服务器到在您的LAN/VLAN或Linux容器中托管的另一台内部服务器上的端口80/443。
设置示例
假设您要将要转发到{80,443}的请求转发到侦听192.168.1.100:{80,443}的服务器:
如何配置ufw将HTTP流量重定向到另一个IP:port
对192.54.1.1端口80和443的所有请求都需要重定向到另一台内部服务器。
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地址的LAN节点与外部公共网络进行通信,请配置防火墙以伪装IP,以屏蔽来自LAN节点的带有防火墙外部设备IP地址(例如eth0)的请求。
语法为:
/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
接下来,配置ufw将http通信重定向到另一个(LAN)IP:端口。
在顶部文件中,追加:
*nat :PREROUTING ACCEPT [0:0] # forward 192.54.1.1 port 80 to 192.168.1.100:80 # forward 192.54.1.1 port 443 to 192.168.1.100:443 -A PREROUTING -i eth0 -d 192.54.1.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80 -A PREROUTING -i eth0 -d 192.54.1.1 -p tcp --dport 443 -j DNAT --to-destination 192.168.1.100:443 # setup routing -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
设置/编辑如下:
net.ipv4.ip_forward=1
保存并关闭文件。
重新加载更改:
$ sudo sysctl -p
最后,重新启动防火墙以启用路由:
$ sudo systemctl restart ufw
确保端口80和443被允许,否则ufw将阻止重定向到内部192.168.1.100:{80,443}的请求:
$ sudo ufw allow proto tcp from any to 192.54.1.1 port 80 $ sudo ufw allow proto tcp from any to 192.54.1.1 port 443
验证新设置:
$ sudo ufw status $ sudo iptables -t nat -L -n -v
最后,确保您的域的DNS类型设置为192.54.1.1。