九项实例技巧帮您保障Linux服务器安全

译文
安全
任何一套关键性系统都需要高度重视服务器安全性,特别是在公有云环境当中。在今天的文章中,我们将专注于基本原理与一般性最佳实践层面对此加以解读。

【51CTO.com 快译】任何一套关键性系统都需要高度重视服务器安全性,特别是在公有云环境当中。在今天的文章中,我们将专注于基本原理与一般性最佳实践层面对此加以解读。

九项实例技巧帮您保障Linux服务器安全

我在操作系统配置完成之后始终坚持执行的安全改进举措。

让我们以Ubuntu 16.04为例:

1.保持内核随时更新。

环境虽然不应该盲目更新,不过在刚刚安装完成的服务器当中,版本更新一般都能够带来更理想的安全成效。

其中一项常规建议是禁用各项未使用采取行动。不过我个人非常信任发行版供应商。一般来讲,我认为他们给出的默认安装及启用选项还是相当可靠的。

  1. apt-get -y update 

2. 重置Root密码。

我们有时候需要在ssh无法起效的情况下访问各虚拟机的网络控制台,这类状况包括iptables规则将我们屏蔽、操作系统内核出现问题或者虚拟机神秘重启等等。

  1. root_pwd="DevOpsDennyChangeMe1" 
  2. echo "root:$root_pwd" | chpasswd 

3. 强化SSHD。

在keyfile当中仅允许ssh访问,这意味着黑客无法轻松猜到我们的密码内容。使用除端口22之外的其它ssh监听端口,这能够有效避免恶意ssh登录尝试。

  1. # Disable ssh by password 
  2. sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/g' \ 
  3. /etc/ssh/sshd_config 
  4. sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' \ 
  5. /etc/ssh/sshd_config 
  6. grep PasswordAuthentication /etc/ssh/sshd_config 
  7. # Use another ssh port 
  8. sshd_port="2702" 
  9. sed -i "s/^Port 22/Port $sshd_port/g" /etc/ssh/sshd_config 
  10. grep "^Port " /etc/ssh/sshd_config 
  11. # Restart sshd to take effect 
  12. service ssh restart 

4.利用防火墙限制恶意访问。

这可能是大家应当采取的最为重要的安全改进举措了。

  1. # Disable ssh by password 
  2. sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/g' \ 
  3. /etc/ssh/sshd_config 
  4. sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' \ 
  5. /etc/ssh/sshd_config 
  6. grep PasswordAuthentication /etc/ssh/sshd_config 
  7. # Use another ssh port 
  8. sshd_port="2702" 
  9. sed -i "s/^Port 22/Port $sshd_port/g" /etc/ssh/sshd_config 
  10. grep "^Port " /etc/ssh/sshd_config 
  11. # Restart sshd to take effect 
  12. service ssh restart 
  13. # Have a clean start with iptables 
  14. iptables -F; iptables -X 
  15. echo 'y' | ufw reset 
  16. echo 'y' | ufw enable 
  17. ufw default deny incoming 
  18. ufw default deny forward 
  19. # Allow traffic of safe ports 
  20. ufw allow 22,80,443/tcp 
  21. # Allow traffic from certain port 
  22. ufw allow 2702/tcp 
  23. # Allow traffic from trusted ip 
  24. ufw allow from 52.74.151.55 

5.向命令历史中添加时间戳。

通过这种方式,我们能够查看哪些命令曾在何时得以执行。

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

6.生成SSH密钥对。

永远、永远不要在不同服务器之间共享同一ssh密钥对!

  1. exec ssh-agent bash 
  2. # General new key pair 
  3. ssh-keygen 
  4. Load key pair 
  5. ssh-add 

7.高度关注var/log。

使用logwatch以自动执行检查与分析任务。这是一套实用的解析型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

  1. exec ssh-agent bash 
  2. # General new key pair 
  3. ssh-keygen 
  4. Load key pair 
  5. ssh-add 
  6. apt-get install -y logwatch 
  7. Full check. Takes several minutes 
  8. logwatch --range ALL 
  9. Only check log of Today 
  10. logwatch --range Today 

8.运行第三方安全检查工具。

并不是每位用户都具备强大的安全知识储备。因此最好选择可靠且多样化的工具方案。Lynis易于使用且功能可靠——其仅作为单一bash文件存在。

  1. apt-get install -y lynis 
  2. # Run lynis to check security issues 
  3. lynis -c 

9.适当备份无法恢复的数据。

永远要筹备一套B计划。作为最后补救手段,其应该能够将系统快速恢复至新服务器之上。

原文标题:9 Useful Tips For Linux Server Security  作者:Denny Zhang

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:蓝雨泪 来源: 51CTO.com
相关推荐

2019-07-17 10:51:12

防火墙服务器黑客

2017-01-19 10:54:56

2018-01-31 11:20:48

2009-11-06 10:07:45

2017-04-06 09:30:16

2010-07-16 12:10:15

2009-08-18 16:25:01

2018-09-06 10:16:39

2011-05-12 12:51:18

2009-02-10 15:49:00

Linux服务器服务器安全网络服务器

2010-01-06 09:19:45

2011-07-27 09:36:10

2014-08-25 13:40:40

2017-05-04 08:11:31

2011-07-27 15:11:02

2010-05-17 17:27:31

2017-04-06 10:00:33

2018-08-09 09:10:54

2009-02-12 14:07:00

2012-05-29 09:59:34

点赞
收藏

51CTO技术栈公众号