使用UFW配置端口转发
如果要从公共IP转发流量,例如。
“150.129.148.155”“端口”80和443到具有IP地址192.168.1.120的另一个内部服务器。
然后,我们可以通过编辑/etc/default/prefore.rules
进行执行此操作:
# nano /etc/default/before.rules
更改文件如下所示:
:PREROUTING ACCEPT [0:0] -A PREROUTING -i eth0 -d 150.129.148.155 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.120:80 -A PREROUTING -i eth0 -d 150.129.148.155 -p tcp --dport 443 -j DNAT --to-destination 192.168.1.120:443 -A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -j MASQUERADE
接下来,使用以下命令重新启动UFW:
# ufw disable # ufw enable
接下来,我们还需要允许端口80和443.我们可以通过运行以下命令来执行此操作:
# ufw allow proto tcp from any to 150.129.148.155 port 80 # ufw allow proto tcp from any to 150.129.148.155 port 443
添加和删除防火墙规则
我们可以使用端口号或者使用服务名称以两种方式添加允许传入和传出流量的规则。
例如,如果要允许HTTP服务的传入和传出连接。
使用服务名称:
ufw allow http
或者,使用端口号,运行以下命令:
ufw allow 80
如果要根据TCP或者UDP过滤数据包,则运行以下命令:
ufw allow 80/tcp ufw allow 21/udp
我们可以使用以下Linux命令查看添加规则的状态。
ufw status verbose
我们应该看到以下输出:
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), deny (routed) New profiles: skip To Action From -- ------ ---- 80/tcp ALLOW IN Anywhere 21/udp ALLOW IN Anywhere 80/tcp (v6) ALLOW IN Anywhere (v6) 21/udp (v6) ALLOW IN Anywhere (v6)
我们还可以随时拒绝任何传入和传出流量,其中包含以下命令:
# ufw deny 80 # ufw deny 21
如果要删除HTTP的允许规则,只需在原理的规则前面添加delete,如下所示:
# ufw delete allow http # ufw delete deny 21
安装UFW
Ubuntu
默认情况下,UFW在大多数基于Ubuntu的发行版中可用。
如果已删除,则可以通过运行以下Linux命令来安装它。
# apt-get install ufw -y
debian
我们可以通过运行以下Linux命令在Debian中安装UFW:
# apt-get install ufw -y
Centos
默认情况下,UFW在CentOS存储库中不可用。
因此,我们需要将EPEL存储库安装到系统中。
我们可以通过运行以下Linux命令来执行此操作:
# yum install epel-release -y
安装EPEL存储库后,只需运行以下Linux命令即可安装UFW:
# yum install --enablerepo="epel" ufw -y
安装UFW后,启动UFW服务并通过运行以下Linux命令启动它以启动启动时间。
# ufw enable
使用以下Linux命令检查UFW的状态。
# ufw status Status: active
我们还可以通过运行以下Linux命令来禁用UFW防火墙:
# ufw disable
高级UFW规则
我们还可以添加特定的IP地址以允许和拒绝访问所有服务。
运行以下命令以允许IP 192.168.0.200访问服务器上的所有服务:
# ufw allow from 192.168.0.200
要拒绝IP 192.168.0.200访问服务器上的所有服务:
# ufw deny from 192.168.0.200
我们可以在UFW中允许IP地址范围。
运行以下命令以允许IP 192.168.1.1至192.168.1.254的所有连接:
# ufw allow from 192.168.1.0/24
要允许IP地址192.168.1.200使用TCP访问端口80,请运行以下Linux命令:
# ufw allow from 192.168.1.200 to any port 80 proto tcp
要允许访问TCP和UDP端口范围从2000到3000,请运行以下Linux命令:
# ufw allow 2000:3000/tcp # ufw allow 2000:3000/udp
如果要阻止IP 192.168.0.4和192.168.0.10的端口22,但允许所有其他IP访问端口22,请运行以下命令:
# ufw deny from 192.168.0.4 to any port 22 # ufw deny from 192.168.0.10 to any port 22 # ufw allow from 192.168.0.0/24 to any port 22
要允许网络接口eth0上的HTTP流量,请运行以下Linux命令:
# ufw allow in on eth0 to any port 80
默认情况下,UFW允许ping请求。
如果要拒绝ping请求,则需要编辑/etc/ufw/before.rules文件:
# nano /etc/ufw/before.rules
删除以下行:
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT -A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT -A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT -A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
完成后保存文件。
如果我们需要重置UFW,请删除所有规则,可以通过以下Linux命令执行此操作。
# ufw reset
使用UFW配置NAT
如果要使用UFW将与外部接口的连接到内部。
然后,我们可以通过编辑/etc/default/ufw
和/etc/ufw/free.rules
文件来执行此操作。
首先,使用nano编辑器开放/etc/default/ufw
文件:
# nano /etc/default/ufw
更改以下行:
DEFAULT_FORWARD_POLICY="ACCEPT"
接下来,我们还需要允许IPv4转发。
我们可以通过编辑/etc/ufw/sysctl.conf
文件来完成此操作:
# nano /etc/ufw/sysctl.conf
更改以下行:
net/ipv4/ip_forward=1
接下来,我们需要将NAT添加到UFW的配置文件。
我们可以通过编辑/etc/ufw/befuare.rules
文件来执行此操作:
# nano /etc/ufw/before.rules
在过滤器规则之前添加以下行:
# NAT table rules *nat :POSTROUTING ACCEPT [0:0] # Forward traffic through eth0 - Change to match you out-interface -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE # don't delete the 'COMMIT' line or these nat table rules won't # be processed COMMIT Save the file when you are finished. Then restart UFW with the following linux command: ufw disable ufw enable
设置UFW默认策略
默认情况下,UFW默认策略设置以阻止所有传入流量并允许所有传出流量。
我们可以使用以下Linux命令设置自己的默认策略。
ufw default allow outgoing ufw default deny incoming