服务器安全

1. 更新系统

首先,确保你的系统和所有安装的软件都是最新的。这不仅可以帮助你利用最新的功能,还可以修复已知的安全漏洞。使用以下命令进行更新:

1
bashsudo apt update && sudo apt upgrade

2. 安装防火墙

Ubuntu默认带有ufw(Uncomplicated Firewall)工具,它是一个对于初学者非常友好的防火墙管理工具。要启用并配置它,请执行以下步骤:

启用ufw

1
bashsudo ufw enable

接下来,开放必要的端口。例如,对于SSH服务:

1
bashsudo ufw allow 22

如果你运行了Web服务器,你可能还需要开放HTTP和HTTPS端口:

1
2
bashsudo ufw allow 80
sudo ufw allow 443

3. 配置SSH

SSH是远程管理Linux服务器的标准方法。为了增强安全性,推荐使用SSH密钥对进行身份验证,而不是密码。

生成SSH密钥对

在客户端机器上,运行以下命令生成SSH密钥对:

1
bashssh-keygen -t rsa -b 4096

将公钥添加到服务器

使用ssh-copy-id命令将公钥复制到服务器上:

1
bashssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@服务器IP

禁用密码认证

编辑服务器上的/etc/ssh/sshd_config文件,设置以下内容:

1
bashPasswordAuthentication no

然后重启SSH服务以应用更改:

1
bashsudo systemctl restart sshd

4. 配置Fail2Ban

Fail2Ban可以帮助保护服务器免受暴力破解攻击。它通过监控日志文件中的失败登录尝试来工作,并封锁显示恶意行为的IP地址。

安装Fail2Ban

1
bashsudo apt install fail2ban

配置基本保护

创建或编辑/etc/fail2ban/jail.local文件,为SSH服务添加基本保护:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ini[DEFAULT]
# 全局设置
bantime = 1h # 封禁时间:1小时
findtime = 10m # 在此时间内连续失败的尝试视为攻击
maxretry = 5 # 允许失败次数
ignoreip = 127.0.0.1/8 # 忽略本地IP地址的封禁

# 指定要使用的日志文件
backend = auto # 自动确定日志文件类型
usedns = warn # 使用DNS解析
logencoding = auto # 日志文件的编码
enabled = false # 默认不启用任何规则

# SSH 服务
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 5m

重启Fail2Ban服务以应用配置:

1
2
bashsudo systemctl restart fail2ban
sudo systemctl enable fail2ban

通过上述步骤,你的服务器将具备较强的基本安全保护。务必定期检查和更新你的系统及应用程序,保持警惕,适时应对新的安全威胁。