Linux中防火墙实战之Web服务器和SSH远程服务配置指南

在Linux系统中,防火墙的配置对于服务器的安全至关重要,尤其是Web服务器和SSH远程服务的配置。通过正确配置防火墙规则,可以有效地防止外部非法访问、入侵等风险。本指南将详细介绍如何在Linux环境中配置防火墙,以保证Web服务器和SSH服务的安全运行。

一、什么是防火墙?

防火墙是一种网络安全设备或软件,用于监控并控制进出网络的流量,通常基于预设的安全规则。防火墙可以过滤数据包,防止未经授权的访问。

1. 防火墙的主要功能

  • 数据包过滤:根据特定的规则,允许或拒绝通过防火墙的流量。
  • 端口管理:只允许特定端口的流量,关闭不必要的端口。
  • 防止DDoS攻击:通过限制IP的连接频率,防止分布式拒绝服务攻击。

2. Linux中的防火墙工具

  • iptables:Linux内核自带的防火墙工具。
  • firewalld:CentOS 7+ 默认防火墙工具,提供动态防火墙管理。
  • ufw:Ubuntu系统中简化的防火墙管理工具,基于iptables。

本指南将介绍如何使用firewalldufw来配置Web服务器和SSH服务。

二、安装并启用防火墙

1. CentOS中安装firewalld

firewalld是CentOS的默认防火墙管理工具,通常系统自带。如果未安装,可以通过以下命令进行安装:

sudo yum install firewalld

启动并设置防火墙开机启动:

sudo systemctl start firewalld
sudo systemctl enable firewalld

查看防火墙状态:

sudo firewall-cmd --state

2. Ubuntu中安装ufw

在Ubuntu系统中,默认防火墙工具是ufw,同样可能已经安装。检查是否已安装并启用:

sudo ufw status

如果没有安装,可以通过以下命令进行安装:

sudo apt install ufw

启动并启用ufw:

sudo ufw enable

查看防火墙状态:

sudo ufw status verbose

三、Web服务器防火墙配置

对于Web服务器(如Nginx或Apache),需要打开HTTP(80端口)和HTTPS(443端口),以便允许外部访问。

1. 使用firewalld开放80和443端口(CentOS)

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

验证端口规则是否生效:

sudo firewall-cmd --list-all

2. 使用ufw开放80和443端口(Ubuntu)

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

查看已开放的端口:

sudo ufw status

3. 限制IP访问Web服务器

如果只允许特定IP地址访问Web服务器,可以设置特定IP的规则。例如,允许192.168.1.10访问HTTP服务:

CentOS:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.10" service name="http" accept'
sudo firewall-cmd --reload

Ubuntu:

sudo ufw allow from 192.168.1.10 to any port 80

四、SSH远程服务防火墙配置

SSH服务默认监听在22端口,防火墙需要允许22端口的流量,以便远程登录服务器。

1. 使用firewalld开放22端口(CentOS)

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

2. 使用ufw开放22端口(Ubuntu)

sudo ufw allow 22/tcp
sudo ufw reload

3. 限制特定IP访问SSH

为了提高安全性,可以设置只允许特定的IP地址访问SSH服务。

CentOS:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.10" service name="ssh" accept'
sudo firewall-cmd --reload

Ubuntu:

sudo ufw allow from 192.168.1.10 to any port 22

4. 更改SSH端口并配置防火墙

为了避免默认22端口的扫描攻击,可以修改SSH服务的端口号。例如,将SSH端口修改为2222,并配置防火墙:

修改/etc/ssh/sshd_config文件:

sudo vi /etc/ssh/sshd_config

Port 22修改为Port 2222,然后重启SSH服务:

sudo systemctl restart sshd

CentOS:

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

Ubuntu:

sudo ufw allow 2222/tcp
sudo ufw reload

五、防止DDoS攻击的防火墙配置

防火墙不仅可以控制访问,还能设置规则防止DDoS攻击。例如,可以限制某个IP的连接频率,防止频繁的请求导致服务器瘫痪。

CentOS:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="http" limit value="50/m" accept'
sudo firewall-cmd --reload

Ubuntu:

sudo ufw limit 80/tcp

六、防火墙规则的备份与还原

为了防止误操作导致防火墙配置出错,可以在进行大规模修改前备份防火墙规则。

1. 备份firewalld规则

sudo firewall-cmd --runtime-to-permanent

2. 还原firewalld默认配置

sudo firewall-cmd --reload

3. 备份ufw规则

sudo cp /etc/ufw/ufw.conf /etc/ufw/ufw.conf.backup

4. 还原ufw默认配置

sudo ufw reset

七、总结

通过本文的介绍,大家应该掌握了如何在Linux系统中使用firewalld和ufw配置防火墙规则,确保Web服务器和SSH服务的安全运行。具体包括如何开放常用端口、限制IP访问、提高SSH服务的安全性以及防止DDoS攻击。防火墙的合理配置是服务器安全的重要保障,希望大家能够灵活应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只蜗牛儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值