引言
很多企业的服务器经常遭受到攻击,出现的攻击方式有:http服务攻击、操作系统漏洞溢出攻击、sql注入攻击等。
大多服务器都托管在阿里云或者腾讯云上,这些云服务也都提供杀毒软件和防火墙功能,如:阿里云盾。上述攻击大部分都已经被厂商提供的云安全拦截住了,但是毕竟没有绝对的安全。
这里记录下我平时对服务器的安全配置,希望对大家有一些帮助,还是没有绝对的安全,但是能够防患未然还是好的。另外这里指出,在描述攻击我们的那些人,我拒绝使用黑客这个词语,黑客的含义已经被现在的社会涂上了一层让人憎恨讨厌的色彩,但是实际的含义并不是入侵、攻击、破解,所以在以后的描述中我与其他文章作者不同,采用另外的称号,就是恶意攻击者或恶意的小伙伴。
服务器配置
对于Linux操作系统,可以启动selinux和iptables对系统的访问进行过滤,同时可以降低用户权限,降低一些进程的运行权限。来保证服务器被渗透后的威胁降到最低。另外需要及时修复应用的漏洞,升级内核版本到稳定版,web应用程序足够强壮,降低数据库用户权限。
下面拿我的服务器举例,我的服务器配置如下:
阿里云服务深圳可用区B
带宽:2Mbps
CPU: 1核
内存: 1024 MB
带宽:2Mbps
操作系统: CentOS 7.0 64位
在服务器上配置有tomcat7.0、jre7、nginx1.9.9、mariadb5.5、php5.4.16。对外提供我的blog和微信公众平台的接口。
站长站端口扫描结果如下:
可以看到,从扫描的结果来看几乎没有可利用的。
使用nmap在服务器上对本机进行扫描,结果:
而在外网对其进行扫描,是无法得出结果的:
这些配置相当简单,相对而言,对付真正的攻击还差很多,所以我们还需要进行其他的一系列配置。
ssh服务
ssh服务是最常用的远程登录服务,虽然其比telnet安全多,但是也存在一定的安全漏洞。一些不友好的小伙伴们会使用一些不和谐程序对ssh服务进行暴力破解。对ssh服务进行适当的配置可以完全杜绝暴力破解。同时对sshd服务进行优化配置可以加快连接速度,减少耗费带宽。
编辑/etc/ssh/sshd_config:
修改如下配置(注意如果配置前面有#,代表配置被注释,这里我只罗列出需要配置的,如果你的服务器上的配置被注释掉,去掉#打开注释即可。另外我会在配置旁边加上配置说明的注释):
注意,这里使用了公钥认证,所以需要生成登陆的私钥和公钥,将公钥上传到服务器上,并写入到上面的AuthorizedKeysFile配置指定的公钥文件中。对于这个文件有如下要求:
①、该文件权限必须是640,所以需要执行sudo chmod 640 公钥文件,如:sudo chmod 640 /home/kid/.ssh/authorized_keys。
②、该文件的上层目录必须为700权限,所以需要执行sudo chmod 700 上层文件夹路径,如:sudo chmod 700 /home/kid。
③、该文件可以放多个公钥,注意公钥由于特别长,有的生成工具会把一个公钥拆分成多行,但sshd服务要求一个公钥只能一行存放,所以一定要编辑成一行才好使。
上述配置完成后,重启sshd服务,sudo systemctl restart sshd,即可使用公钥认证远程登录到服务器,如果之前没使用过公钥登录的小伙伴,建议改完配置不要退出当前登录,等待重启完后再开一个连接测试下公钥认证能否发登录成功。如果不成功,需要注意上面的要求!!!同时可以使用没断开连接的终端执行sudo tail -f /var/log/message检查sshd服务的日志信息,同样也需执行sudo tail -f /var/log/secure检查sshd服务的认证日志信息。在tail -f 是实时从尾部监听一个服务,经常用于动态查看相关日志文件,由于是监听要退出的话需要按ctrl+c结束。这样sshd服务的安全性就有很大的提升了,当然在sshd服务中还可以配置允许登陆的ip和禁止登陆的ip,这个以后我会单开文章详细说明。另外为了我们的配置不被恶意篡改可以执行,可以执行sudo chattr +i /etc/ssh/sshd_config 和sudo chattr +i 公钥文件(如:sudo chattr +i /home/kid/.ssh/authorized_keys),chattr +i 命令会多某个文件设置隐藏状态位,设置后该文件即使是root和文件所有者都无法对该文件进行删除、修改、移动等操作,保证了该文件的安全。
即使恶意登陆者想对sshd服务进行重新配置,把自己的公钥加入公钥文件都是无法操作的。但当你确实想要修改这个文件的时候,可以使用
sudo chattr -i /etc/ssh/sshd_config以及sudo chattr +i /home/kid/.ssh/authorized_keys然后编辑这两个文件。
今天的分享就到这里了,下一篇我们会继续讲解服务器配置的实例。
本文出自 “马哥Linux培训” 博客,请务必保留此出处http://mageedu.blog.51cto.com/4265610/1912299
原文地址:http://mageedu.blog.51cto.com/4265610/1912299