Ubuntu防火墙 UFW做NAT转换,IP伪装,端口重定向,端口映射

ip伪装:在ubuntu里,nat被称为ip伪装,意为”允许来自内网口eno1上使用私网地址(如10.0.0.0/20)的计算机共享外网口eno2上的单个IP地址”

端口重定向:要将外网口eno2上的某个端口转发到位于内网地址10.0.0.X上的某个端口,比如将外网口eno2上的tcp端口80转发到位于10.0.0.3的Web服务器。

2 UFW基本操作:

2.1查看当前状态和防火墙规则

ufw status    #Status: active服务激活;如果没有配置规则,将不显示防火墙规则

2.2设置默认动作

ufw default allow/deny    #对未配置的端口执行默认允许/拒绝动作

2.3添加允许/拒绝端口的规则

ufw allow 22/tcp    #允许22 tcp封包;还可以换成22/udp,表示允许22端口udp封包

ufw deny 22       #拒绝22端口 (udp+tcp)

2.4删除允许/拒绝端口的规则

ufw delete allow/deny 20    #删除规则同添加一致 添加22/tcp就删除22/tcp,不能删除22

2.5启动/关闭/重载防火墙

通过ssh远程连接建议先设置22/tcp允许规则再启动防火墙服务

ufw enable/disable/reload

3防火墙配置转发

3.1首先开启系统的IP转发

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1    #增加或修改该字段,值设为1

3.2生效

sysctl -p

3.3设置防火墙的转发(修改俩个配置文件)

3.3.1修改 /etc/default/ufw

vim /etc/default/ufw

DEFAULT_FORWARD_POLICY="ACCEPT"    #该值设为ACCEPT

注意:

# 默认规则内容都包含在 *filter…COMMIT内

# 添加如下内容时注意 *nat…COMMIT不能放在 *filter…COMMIT内

#10.0.0.0/20是内网网段

3.3.2修改 /etc/ufw/before.rules

vim /etc/ufw/before.rules

#在末尾增加以下字段

*nat

:PREROUTING - [0:0]

:POSTROUTING - [0:0]

-A POSTROUTING -s 10.0.0.0/20 -o eno2 -j MASQUERADE

COMMIT

3.3.3重启防火墙,成功

ufw disable

ufw enable

4设置端口重定向:

4.1将外网口eno2上的tcp端口80转发到位于10.0.0.3的Web服务器。

4.1.1编辑/etc/ufw/sysctl.conf

vim /etc/ufw/sysctl.conf

net.ipv4.ip_forward=1

4.1.2编辑 /etc/ufw/before.rules,并在nat段里增加

vim /etc/ufw/before.rules

-A PREROUTING -p tcp -i eno2 --dport 80 -j DNAT --to-destination 10.0.0.3:80

4.1.3增加ufw规则

ufw route allow in on eno2 to 10.0.0.3 port 80 proto tcp

ufw allow 80

#删除以上ufw添加的从eno2口进来并转发到10.0.0.3端口80的数据:

ufw route delete allow in on eno2 to 10.0.0.3 port 80 proto tcp

#拒绝从eno2口进来转发到主机10.0.0.3端口22的数据:

ufw route reject in on eno2 to 10.0.0.3 port 80

4.1.4重启ufw

ufw reload

Was this helpful?

0 / 1

发表回复 0