关于Linux服务器安全的9条建议

任何重要的系统都不能忽视服务器安全,尤其在公有云中。网上有关这方面的小建议和教程有很多很多,这里我们只看几个基础的、通用的最佳做法。

完成系统配置后应当执行的几项安全措施

以Ubuntu 16.04为例:

1、更新内核版本

当然了,不能盲目更新,但对新部署的服务器来说,使用最新版内核一般是无害的,并且能提高系统安全系数。通常人们会建议我们禁用未使用的服务,但我选择信任发行商,我相信他们会做出正确的选择,决定哪些应当默认安装或禁用。

apt-get –y update

2、重置root密码

访问虚拟机的web控制台需要root密码,当SSH(Secure Shell,安全外壳协议)不能正常工作时,例如有奇怪的防火墙设置阻止你的操作,系统发生严重内核错误,机器神秘重启。

root_pwd="DevOpsDennyChangeMe1"

echo "root:$root_pwd" | chpasswd

3、加强SSHD服务安全

只允许通过密钥文件登录SSH,这样黑客就无法通过破解你的密码轻易入侵。ssh监听端口改用其他(默认为22端口),这样可以避免恼人的ssh登录尝试。

# Disable ssh by password
sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/g' \
      /etc/ssh/sshd_config
sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' \
     /etc/ssh/sshd_config
grep PasswordAuthentication /etc/ssh/sshd_config

# Use another ssh port
sshd_port="2702"
sed -i "s/^Port 22/Port $sshd_port/g" /etc/ssh/sshd_config
grep "^Port " /etc/ssh/sshd_config

# Restart sshd to take effect
service ssh restart

4、通过防火墙限制恶意访问

这也许是你应当执行的最重要的安全措施。

# Have a clean start with iptables
iptables -F; iptables -X
echo 'y' | ufw reset
echo 'y' | ufw enable
ufw default deny incoming
ufw default deny forward

# Allow traffic of safe ports
ufw allow 22,80,443/tcp

# Allow traffic from certain port
ufw allow 2702/tcp

# Allow traffic from trusted ip
ufw allow from 52.74.151.55

5、给命令历史记录添加时间戳

这样就可以看到在什么时间执行了什么命令。

echo export HISTTIMEFORMAT=\"%h %d %H:%M:%S \" >> /root/.bashrc

6、生成SSH密钥对

绝不要在整个服务器中共享同一个ssh密钥对!

exec ssh-agent bash

# General new key pair
ssh-keygen

# Load key pair
ssh-add

7、密切关注var/log

使用logwatch(https://www.howtoforge.com/tutorial/logwatch-installation-on-debian-and-ubuntu/)进行自动化检测与分析,这是一个非常有用的Perl脚本,可以生成系统日志活动的每日报告。主要关注以下几个日志文件:

  • /var/log/kern.log
  • /var/log/syslog
  • /var/log/ufw.log
  • /var/log/auth.log
  • /var/log/dpkg.log
  • /var/log/aptitude
  • /var/log/boot.log
  • /var/log/cron.log
  • /var/log/mailog
apt-get install -y logwatch

# Full check. Takes several minutes
logwatch --range ALL

# Only check log of Today
logwatch --range Today

# Check log for last week
logwatch --range "between -7 days and -1 days"

8、使用第三方安全检查工具

并非所有人都是或者会成为安全专家,不妨尝试一些可信赖的多功能的工具,lynis(https://cisofy.com/lynis/)就是这样一个方便且直接的工具,仅包含一个bash文件。

apt-get install -y lynis

# Run lynis to check security issues
lynis -c

9、适当备份数据

时刻都要保留一个“B计划”,作为最后的手段,在另一台服务器上做一个可快速恢复的系统备份是非常可行的。

转载请保留上述信息。