服务器安全并不难实现,本文介绍一种简单的Linux服务器安全配置,只要您花几分钟就可以在全新服务器上阻止常见攻击。
账号管理
所有的服务器有两个账号:root和deploy。deploy有复杂的密码和sudo权限,用于开发者登录使用。开发者通过自己的公钥而不是密码登录,所以只需要保证所有服务器的authorized_keys 文件及时更新。root用户的ssh登录禁用了,deploy用户只能通过办公室IP地址段登录。这种方式不好的地方在于authorized_keys文件权限如果错误,就必须通过远程终端来修复。
开始安全配置
服务器如虚拟机创建成功后,就可以登录了,以Ubuntu为例(您的发行版可能不一样,有的命令或者管理文件也会有一些差异):
修改root密码
password
修改root为一个复杂度强的密码,不一定要记在大脑里,但是要存在一个安全的地方。
更新系统
apt-get update
apt-get upgrade
更新系统可以安装最新的安全更新,保证服务器的安全。
安装Fail2ban
apt-get install fail2ban
fail2ban会监控登录尝试并阻止可疑的登录。
创建deploy用户
useradd -m deploy # 添加用户
mkdir /home/deploy/.ssh # 创建文件夹
chmod 700 /home/deploy/.ssh # 修改文件夹权限
vim /home/deploy/.ssh/authorized_keys # 添加用户的公钥
chmod 400 /home/deploy/.ssh/authorized_keys # 修改权限
chown deploy:deploy /home/deploy -R # 修改文件所属用户
password deploy # 修改密码
然后ssh测试deploy用户,ssh可以登录即可
sudo配置
编辑 /etc/sudoers文件,在root用户下添加deploy用户sudo权限
root ALL=(ALL) ALL
deploy ALL=(ALL) ALL
SSH配置
编辑 /etc/ssh/sshd_config 文件
PermitRootLogin no # 禁止root用户ssh登录
PasswordAuthentication no # 禁止使用密码登录
防火墙配置
ufw allow from {your-ip} to any port 22 # 只允许指定IP ssh 登录
ufw allow 80
ufw allow 443
ufw enable
其他
您还可以根据需要配置系统的自动安全更新和日志功能等。