服务器安全并不难实现,本文介绍一种简单的linux服务器安全配置,只要您花几分钟就可以在全新服务器上阻止常见攻击。
所有的服务器有两个账号:root和deploy。deploy有复杂的密码和sudo权限,用于开发者登录使用。开发者通过自己的公钥而不是密码登录,所以只需要保证所有服务器的authorized_keys 文件及时更新。root用户的ssh登录禁用了,deploy用户只能通过办公室IP地址段登录。这种方式不好的地方在于authorized_keys文件权限如果错误,就必须通过远程终端来修复。
服务器如虚拟机创建成功后,就可以登录了,以Ubuntu为例(您的发行版可能不一样,有的命令或者管理文件也会有一些差异):
password
修改root为一个复杂度强的密码,不一定要记在大脑里,但是要存在一个安全的地方。
apt-get update apt-get upgrade
更新系统可以安装最新的安全更新,保证服务器的安全。
apt-get install fail2ban
fail2ban会监控登录尝试并阻止可疑的登录。
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可以登录即可
编辑 /etc/sudoers文件,在root用户下添加deploy用户sudo权限
root ALL=(ALL) ALL deploy ALL=(ALL) ALL
编辑 /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
您还可以根据需要配置系统的自动安全更新和日志功能等。