欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Linux服务器安全防护九招

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

  Linux服务器安全防护九招,你可长点儿心!

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

  让我们以Ubuntu 16.04为例:

  1.保持内核随时更新。

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

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

  apt-get -y update

  2. 重置Root密码。

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

  root_pwd="DevOpsDennyChangeMe1"

  echo "root:$root_pwd" | chpasswd

  3. 强化SSHD

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

  # Disable ssh bypassword

  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.利用防火墙限制恶意访问。

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

  # Disable ssh bypassword

  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

  # 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

  # Loadkey pair

  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

  exec ssh-agent bash

  # General new key pair

  ssh-keygen

  # Loadkey pair

  ssh-add

  apt-get install -y logwatch

  # Fullcheck. Takes several minutes

  logwatch --range ALL

  # Onlycheck log of Today

  logwatch --range Today

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

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

  apt-get install -y lynis

  # Run lynis tocheck security issues

  lynis -c

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

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

  网堤安全www.ddos.com)专注为互联网企业、云计算平台、IDC数据中心提供DDOSCC防御解决服务及方案,无论在流量清洗能力、CC攻击防护能力均处于国内先进水平。提供HTTP/HTTPS以及TCP/UDP层的防护,具备WAF、数据可视化等功能。为您的服务器安全保驾护航!

来自 http://blog.sina.com.cn/s/blog_66bf65090102wjmh.html

普通分类: