收集云服务器优惠信息
记录云服务器使用心得

增强Ubuntu系统安全几个工具:UFW/Fail2ban/AppArmor

在为生产环境设置Ubuntu服务器时,确保系统安全至关重要,这可用确保其稳定性、安全性和可访问性。尽管Ubuntu自带许多内置安全功能,但采取额外措施保护系统免受未经授权的访问和攻击仍然很有必要。

本文小编将介绍三个增强Ubuntu服务器安全的基本工具:UFW(简易防火墙)Fail2banAppArmor。这些工具将通过控制网络访问、防止暴力登录尝试以及保护应用程序来帮助保护你的Ubuntu服务器。

Ubuntu服务器强化工具

1、使用UFW保护网络访问

Ubuntu附带一个用户友好的防火墙配置工具,称为UFWUncomplicated Firewall),它提供了一个简单的界面来管理基于iptables的防火墙规则。

安装并启用UFW

在大多数Ubuntu系统的安装中,UFW是预先安装的,但如果尚未安装和启用,则可以使用以下命令安装并启用它:

sudo apt update && sudo apt install ufw -y
sudo ufw enable

拒绝不需要的服务

要默认阻止所有传入流量并仅允许特定端口,请将UFW配置为拒绝所有传入流量(明确允许的服务除外):

sudo ufw default deny incoming
sudo ufw default allow outgoing

允许基本服务

要允许基本服务,如SSH(用于远程管理)、HTTPHTTPS(用于Web服务器访问),可以使用以下命令:

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

速率限制(防止暴力攻击)

为了进一步保护Ubuntu服务器免受暴力攻击,可以使用UFW的速率限制功能,该功能限制客户端在给定时间段内可以进行的SSH连接尝试次数:

sudo ufw limit ssh

此命令允许SSH连接,但将尝试次数限制为每分钟6次,并阻止任何超过此限制的IP地址。

2、使用Fail2ban阻止暴力攻击

Fail2ban是一款重要工具,它通过监控日志文件中重复失败的登录尝试并阻止违规IP地址来保护你的Ubuntu服务器免受暴力攻击。

Fail2ban可以从默认的Ubuntu存储库安装:

sudo apt install fail2ban

Fail2ban的默认配置文件位于/etc/fail2ban/jail.conf。不过,小编建议不要直接修改此文件,而是创建该配置的副本来自定义设置:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

现在,打开jail.local文件进行编辑:

sudo nano /etc/fail2ban/jail.local

确保[sshd]部分已启用(取消注释这些行)以保护你的SSH服务,同时修改以下选项:

  • enabled:将其设置为true以激活SSH保护
  • port:指定SSH运行的端口(默认为22)
  • maxretry:定义禁止IP地址之前登录尝试失败的最大次数
  • bantime:定义禁令的持续时间(以秒为单位)
  • findtime:设置计数失败尝试的时间范围

示例如下:

[sshd]
enabled = true
port = ssh
maxretry = 5
bantime = 3600  # Ban IP for 1 hour
findtime = 600  # Count attempts within 10 minutes

保存更改后,重新启动Fail2ban以应用新配置:

sudo systemctl restart fail2ban

要检查Fail2ban的状态并查看活动的jails,可用输入以下命令:

sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

现在Fail2ban已经有效保护Ubuntu服务器免受暴力SSH登录尝试

3、使用AppArmor实现应用程序安全

AppArmor是一种强制访问控制MAC)系统,通过对单个应用程序实施策略来提供额外的安全层。

在大多数Ubuntu安装中,AppArmor是预先安装并启用的,如果未启用,可以启动并启用它在启动时运行:

sudo systemctl enable apparmor
sudo systemctl start apparmor

创建自定义AppArmor配置文件

AppArmor配置文件定义了应用程序可以访问哪些系统资源,默认情况下AppArmor配置文件应用于Ubuntu中的许多应用程序,你可以在/etc/apparmor.d/目录中找到这些配置文件。

您可以通过运行以下命令查看当前已加载的配置文件:

sudo apparmor_status

如果你有一个需要特定配置文件的自定义应用程序,可以创建一个新的配置文件或修改现有的配置文件:

sudo aa-genprof /path/to/application

一旦创建了配置文件,这样就可以强制执行该配置文件:

sudo aa-enforce /path/to/profile

Enforcing(强制模式)或Complain(抱怨/告警模式)

AppArmor以两种模式运行:强制执行和抱怨

  • 强制模式下,配置文件被严格执行,任何违反都将导致应用程序被阻止。
  • 在抱怨模式下,违规行为会被记录但不会强制执行,这使其成为测试配置文件的有用模式。

要更改配置文件的模式,可用使用以下命令:

sudo aa-enforce /path/to/profile    #Enforce mode
sudo aa-complain /path/to/profile   #Complain mode

使用AppArmor进行审计

AppArmor生成的日志可让你深入了解其执行操作,这些日志可以在 `/var/log/syslog` 中找到,并且可以使用` journalctl`等工具来查看它们:

sudo journalctl -xe | grep apparmor

4、其它安全最佳实践

除了使用UFWFail2banAppArmor之外,你还可以采取其它重要步骤来进一步强化Ubuntu服务器安全。

定期更新Ubuntu系统

确保Ubuntu系统和所有已安装的软件包都是最新的,以防止漏洞:

sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y

启用自动安全更新以保护你的服务器:

sudo apt install unattended-upgrades

禁用未使用的服务

任何不需要的服务或应用程序都应禁用,以减少攻击面。但是在禁用服务之前,务必使用systemctl命令确定服务器上正在运行哪些服务:

sudo systemctl list-units --type=service

一旦确定了不必要的服务,就可以禁用它们以防止服务在启动时自启动,从而减少攻击面,禁用命令如下:

sudo systemctl disable service-name

使用SSH密钥验证

为了提高SSH安全性,请使用SSH密钥对进行身份验证并禁用基于密码的登录:

ssh-keygen -t rsa -b 4096
ssh-copy-id user@your-server-ip

接下来,编辑SSH配置文件以禁用基于密码的登录:

sudo nano /etc/ssh/sshd_config

设置为PasswordAuthentication no,然后重启SSH:

sudo systemctl restart ssh

现在,只允许SSH密钥认证,从而提高了服务器的安全性。

小结

通过配置UFW进行防火墙管理、使用Fail2ban缓解暴力破解攻击,以及利用AppArmor控制应用程序行为,你可以大幅降低未授权访问和遭受攻击的风险,从而保障Ubuntu生产服务器的安全。

另外,始终监控日志、及时应用安全补丁,并定期审查安全配置,以防范潜在威胁。所有现在立即强化你的Ubuntu系统,将确保其长期的稳定性、安全性和可靠性。

赞(0)
网站声明:本文内容由趣云笔记原创,部分资源收集于网络,如有侵权请联系企鹅:2472781824删除。
文章名称:《增强Ubuntu系统安全几个工具:UFW/Fail2ban/AppArmor》
文章链接:https://www.ecscoupon.com/15683.html
本站资源仅供个人学习交流,未经允许不得转载,更不允许用于商业用途。如需转载,请注明来源,感谢理解!