Ubuntu Server中iptables防火墙怎么用

2023-04-14 02:30:00 server ubuntu 防火墙

Ubuntu Server中iptables防火墙怎么用

Iptables是一个用于防火墙的工具,可以用来控制防火墙规则。在Ubuntu Server中,可以使用iptables来配置防火墙规则。

首先,使用命令行登录到Ubuntu Server,然后使用命令“sudo iptables –list”来查看当前的防火墙规则。如果没有任何规则,则会显示一条信息:“Chain INPUT (policy ACCEPT)”,表示当前防火墙规则是允许所有输入的。

下面介绍一下如何使用iptables来配置防火墙规则。

首先,使用命令“sudo iptables –new-chain ”来新建一个链,其中是链的名称。然后,使用命令“sudo iptables –append-rule ”来添加一条规则到链中,其中是规则的内容。

规则的格式为“ ”,其中表示动作,表示协议,表示源IP地址,表示目的IP地址,表示选项。

动作有三种:ACCEPT表示允许通过,DROP表示丢弃,REJECT表示拒绝。

协议有三种:TCP表示传输控制协议,UDP表示用户数据报协议,ICMP表示Internet控制报文协议。

选项有两种:–state表示状态,–dport表示端口。

状态有五种:NEW表示新建的连接,ESTABLISHED表示已建立的连接,RELATED表示与已建立的连接相关联的连接,INVALID表示无效的连接,UNTRACKED表示未跟踪的连接。

例如,要设置一个防火墙规则,允许来自192.168.1.0/24网段的主机通过22端口访问本机的SSH服务,则可以使用如下命令:

sudo iptables –new-chain ssh_access

sudo iptables –append-rule ssh_access ACCEPT TCP –state NEW –source 192.168.1.0/24 –dport 22

上面命令中,首先使用“sudo iptables –new-chain ssh_access”命令新建一个名为ssh_access的链,然后使用“sudo iptables –append-rule ssh_access ACCEPT TCP –state NEW –source 192.168.1.0/24 –dport 22”命令添加一条规则到ssh_access链中。

规则的内容为“ACCEPT TCP –state NEW –source 192.168.1.0/24 –dport 22”,表示允许新建的TCP连接,且源地址为192.168.1.0/24,目的端口为22的连接通过。

最后,使用命令“sudo iptables –apply-chain ”来应用链中的规则。

例如,要应用上面设置的ssh_access链中的规则,则可以使用命令:

sudo iptables –apply-chain ssh_access

需要注意的是,上面的规则只是临时生效,当重启服务器后,规则就会失效。要想让规则永久生效,则需要修改配置文件。

打开配置文件/etc/network/interfaces,在“iface inet ”行之前添加如下内容:

pre-up iptables-restore < /etc/iptables.rules

其中是网络接口的名称,是网络连接方式,可以是static或dhcp。

例如,要让ssh_access链中的规则永久生效,则可以在/etc/network/interfaces文件中添加如下内容:

pre-up iptables-restore < /etc/iptables.rules

然后,使用命令“sudo /etc/init.d/networking restart”重启网络服务。

需要注意的是,如果添加的规则不正确,则可能会导致无法访问服务器的情况,因此在添加规则之前,最好先备份一份配置文件。

相关文章