当前位置: 首页 > 科技观察

如何在Ubuntu中用UFW配置防火墙

时间:2023-03-14 17:34:29 科技观察

如何在Ubuntu中使用UFW配置防火墙UFW通过命令行使用(尽管它有一个可用的GUI),其目的是使防火墙配置简单(即不复杂)。开始之前1.熟悉我们的入门指南并完成设置服务器主机名和时区的步骤。2.本指南将尽可能使用sudo。完成保护您的服务器指南的部分后,创建一个标准用户帐户,加强SSH访问并删除不必要的网络服务。但不要遵循创建防火墙部分-本指南是关于使用UFW的,这是使用iptables控制防火墙的另一种方法。3.更新系统ArchLinuxsudopacman-SyuDebian/Ubuntusudoapt-getupdate&&sudoapt-getupgradeinstallUFWUFW默认包含在Ubuntu中,但需要在Arch和Debian中安装。Debian将自动启用UFW的systemd单元并使其在重启时启动,但Arch不会。这与告诉UFW启用防火墙规则不同,因为使用systemd或upstart启用UFW只是告诉init系统打开UFW守护进程。默认情况下,UFW的规则集是空的,因此即使守护进程正在运行,也不会强制执行任何防火墙规则。下面是执行防火墙规则集的部分。ArchLinux1.安装UFW:sudopacman-Sufw2。启动并启用UFW的systemd单元:sudosystemctlstartufwsudosystemctlenableufwDebian/Ubuntu1。安装UFWsudoapt-getinstallufw使用UFW管理防火墙规则设置默认规则大多数系统只需要打开少量端口来接受传入连接并关闭所有剩余端口。从一个简单的规则库开始,ufwdefault命令可用于设置对传入和传出连接的默认响应。要拒绝所有传入连接并允许所有传出连接,请运行:sudoufwdefaultallowoutgoingsudoufwdefaultdenyincomingufwdefault还允许使用reject参数。警告:配置默认拒绝或拒绝规则将锁定您的服务器,除非明确设置允许规则。在应用默认拒绝或拒绝规则之前,请确保您已按照以下部分为SSH和其他关键服务配置允许规则。添加规则有两种方法:通过端口号或服务名称。要允许SSH端口22上的传入和传出连接,您可以运行:sudoufwallowssh您也可以运行:sudoufwallow22同样,要拒绝特定端口(例如111)上的流量,您需要运行:sudoufwdeny111以便更好地调整在您的规则中,您还可以允许基于TCP或UDP的数据包。以下示例将允许端口80上的TCP数据包:sudoufwallow80/tcpsudoufwallowhttp/tcp这将允许端口1725上的UDP数据包:sudoufwallow1725/udp允许/阻止的组合。允许来自IP地址的连接:sudoufwallowfrom123.45.67.89允许特定子网连接:sudoufwallowfrom123.45.67.89/24允许特定IP/端口组合:sudoufwallowfrom123.45.67.89toanyport22prototcpprototcp可以根据您的需要删除或更改为proto对于udp,在所有示例中允许可以根据需要更改为拒绝。删除规则要删除规则,在规则前面加上delete。如果您希望不再允许HTTP流量,您可以运行:sudoufwdeleteallow80删除规则也可以使用服务名称。编辑UFW的配置文件虽然可以通过命令行添加简单的规则,但仍然可以添加或删除更高级或特定的规则。在运行通过终端输入的规则之前,UFW将运行一个before.rules文件,该文件允许环回接口、ping和DHCP等服务。要添加或更改这些规则,请编辑/etc/ufw/before.rules文件。同一目录中的before6.rules文件用于IPv6。还有一个after.rule和after6.rule文件,用于添加在UFW运行您通过命令行输入的规则后需要添加的任何规则。在/etc/default/ufw中还有一个配置文件。从这里可以禁用或启用IPv6,可以设置默认规则,还可以设置UFW来管理内置防火墙链。UFWstatus你可以随时使用命令:sudoufwstatus查看UFW的状态。这将显示所有规则的列表,如果UFW处于活动状态:Status:activeToActionFrom------------22ALLOWAnywhere80/tcpALLOWAnywhere443ALLOWAnywhere22(v6)ALLOWAnywhere(v6)80/tcp(v6)ALLOWAnywhere(v6)443(v6)ALLOWAnywhere(v6)启用防火墙作为您选择的规则来完成,您的初始运行ufwstatus可能会输出Status:inactive。启用UFW并强制执行防火墙规则:sudoufwenable同样,禁用UFW规则:sudoufwdisableUFW将继续运行并在下次启动时重新启动。日志记录您可以使用以下命令启用日志记录:sudoufwloggingon您可以通过运行sudoufwlogginglow|medium|high来配置日志记录级别,您可以选择低、中或高。默认级别为低。一般日志在/var/logs/ufw:Sep1615:08:14kernel:[UFWBLOCK]IN=eth0OUT=MAC=00:00:00:00:00:00:00:00:00中看起来像这样:00:00:00:00:00SRC=123.45.67.89DST=987.65.43.21LEN=40TOS=0x00PREC=0x00TTL=249ID=8475PROTO=TCPSPT=48247DPT=22WINDOW=1024RES=0x00SYNURGP=0前面的值列出了你的日期,服务器的时间和主机名。其余重要信息包括:[UFWBLOCK]:这是对记录事件的描述开始的地方。在这种情况下,这意味着连接被阻止。IN:如果它包含一个值,则该事件是传入事件OUT:如果它包含一个值,则该事件是传出事件MAC:目标和源MAC地址的组合SRC:数据包源的IPDST:目的地的数据包IPLEN:数据包长度TTL:数据包TTL,或生存时间。它会在路由器之间跳跃,直到它在找到目的地之前过期。PROTO:数据包的协议SPT:数据包的源端口DPT:数据包的目的端口WINDOW:发送方可以接收的数据包大小SYNURGP:表示是否需要三次握手。0表示不需要。