Linux 防火墙

发布于:2025-02-10 ⋅ 阅读:(44) ⋅ 点赞:(0)

iptables

CentOS 中 iptables 的实现

安装和基本设置

在 CentOS 中,iptables 通常是自带的。如果没有,可以使用命令安装。

yum install iptables -y

查看 iptables 规则,使用命令。

iptables -L

初始状态下,它会显示类似以下内容(以默认策略为例):

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

设置默认策略,例如,将 INPUT 链的默认策略设置为 DROP(拒绝所有进入的连接,除非有明确的允许规则),可以使用

iptables -P INPUT DROP

注意,这样设置后,如果没有后续的允许规则,系统将无法接收外部连接。

添加规则

允许特定端口的访问,比如允许 SSH 访问(SSH 默认端口是 22),使用

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

这条规则的意思是,在 INPUT 链中添加(-A)一条规则,对于 TCP 协议(-p tcp),目标端口(--dport)是 22 的连接,采取接受(-j ACCEPT)的动作。

允许本地回环接口访问,使用

iptables -A INPUT -i lo -j ACCEPT

这里的-i lo表示输入接口(-i)是本地回环(lo)接口,这种规则是为了确保本地程序之间的通信正常。

保存规则

在 CentOS 中,使用命令

service iptables save

可以将当前的 iptables 规则保存,以便系统重启后规则仍然生效。这些规则通常会保存在/etc/sysconfig/iptables文件中。

CentOS 中 firewalld 的实现

安装和基本设置

如果系统没有安装 firewalld,可以使用命令安装。

yum install firewalld -y

安装完成后,启动服务

systemctl start firewalld

并且设置开机自启

systemctl enable firewalld

查看 firewalld 状态,使用

firewall -cmd --state

正常情况下会显示running。

添加规则

允许特定端口访问,例如允许 HTTP 访问(HTTP 默认端口是 80),使用

firewall -cmd --add - port = 80/tcp --permanent

这里的--permanent表示永久添加规则,添加规则后需要重新加载规则才能生效,使用

firewall -cmd --reload

允许特定服务访问,例如允许 SSH 服务访问,使用

firewall -cmd --add - service = ssh --permanent

然后同样需要重新加载规则。

Ubuntu 中 iptables 的实现

安装和基本设置

在 Ubuntu 中,iptables 也是自带的。查看 iptables 规则同样是使用

iptables -L

设置默认策略的方式和 CentOS 类似,例如设置 INPUT 链默认策略为 DROP,使用

iptables -P INPUT DROP

添加规则

允许特定 IP 访问特定端口,例如允许 IP 地址为192.168.1.100访问本地的 3306 端口(假设是 MySQL 服务端口),使用

iptables -A INPUT -s 192.168.1.100 -p tcp --dport 3306 -j ACCEPT

其中-s表示源 IP 地址。

限制 ICMP(ping)请求,例如只允许内部网络(假设内部网络网段是192.168.1.0/24)的主机 ping 本地主机,使用

iptables -A INPUT -p icmp -s 192.168.1.0/24 -j ACCEPT

并且设置其他外部网络的 ICMP 请求为拒绝,使用

iptables -A INPUT -p icmp -j DROP

保存规则

在 Ubuntu 中,要保存 iptables 规则,可以使用

iptables - save >/etc/iptables. rules

将规则保存到文件,并且在系统启动脚本中添加加载这些规则的命令,例如在/etc/rc.local文件中添加iptables -restore < /etc/iptables.rules(需要确保/etc/rc.local有执行权限)。

Ubuntu 中 ufw(Uncomplicated Firewall,基于 iptables 的简单防火墙)的实现(替代 firewalld 部分功能)

安装和基本设置

使用命令安装 ufw

apt - get install ufw

安装完成后,启用 ufw,使用

ufw enable

在启用之前可以先使用查看当前状态

ufw status verbose

添加规则

允许特定端口访问,例如允许 HTTPS 访问(默认端口 443),使用

ufw allow 443/tcp

允许特定服务访问,例如允许 OpenSSH 服务访问,使用

ufw allow OpenSSH

网站公告

今日签到

点亮在社区的每一天
去签到