最基本的Linux系统安全防护,你做到了吗?阿里云租用须看

最基本的Linux系统安全防护,你做到了吗?阿里云租用须看

前言

最近有些朋友自己买了阿里云主机,他们自己在阿里云上面部署了一些服务什么的,他们或许对代码比较熟悉,但是对系统安全和系统防护这一块还是比较缺乏经验。前几天有个朋友叫我帮他看下他阿里云主机上的一些进程卡死的问题,这个朋友也是很信任我,直接把公网IP,账号密码给我了。

我拿到IP、账号、密码一看。IP是公网的,ssh的端口是22,账号是root,密码是8位简单的密码。可能是职业的关系,我就觉得这个机器很不安全,于是就建议朋友从安全方面加固他的阿里云主机系统安全。

1、修改默认的ssh端口号

系统默认的ssh端口号是22,现在的网络环境中,无时无刻不在有人对暴露在公网的服务器进行扫描,为的就是入侵你的系统,控制你的系统作为犯罪的肉鸡,或者盗窃其中的信息。此时你的ssh端口如果依然为22,那么无疑是帮助这些小人降低入侵你系统的难度。因此第一条建议是修改ssh的默认端口。

修改方法:

  1. # sed -i 's/#Port 22/Port 22612/' /etc/ssh/sshd_config  
  2. # /etc/init.d/sshd restart 
最基本的Linux系统安全防护,你做到了吗?阿里云租用须看

2、创建普通用户,禁止root用户直接远程登录系统

首先你需要创建一个普通用户,这个普通用户的定位可以是用来可以远程登录系统的用户,可以是基于程序运行的用户等等,总之只有一个root用户是不太安全的。

  1. # useradd testuser 
  2. # echo testuser@112233 | passwd --stdin testuser (当然建议密码使用 # mkpasswd -l 16 命令进行随机生成密码,从安全角度来说,尽量16位以上) 

普通用户创建了,接下来进行root用户直接登录系统。

修改方法:

  1. # sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config 

设置完成后,root无法从远程直接登录系统,如需使用root权限,可以远程登录testuser用户,再su切换到root即可使用root权限。

最基本的Linux系统安全防护,你做到了吗?阿里云租用须看

3、系统登录失败次数限制策略

我上面也说了,现在的网络环境中,无时无刻不在有人对暴露在公网的服务器进行扫描,如果有人扫描到了你这个系统的ssh端口是被修改之后的,比如说是2222,那么他就会根据ssh协议不断尝试你的服务器密码,当然他们也没那么傻,肯定不会人工去尝试你的服务器密码,他们是有程序不断去尝试攻破你的服务器。

这个时候,我们试想下,如果我们的ssh密码只有8位,而且很简单,估计不用3天就被尝试攻破了,16位的也不用3个月就能攻破。所以除了密码复杂度(尽量随机)以及长度以外,为了防止有些想做坏事的人去尝试攻破你的服务器密码,你还可以设置系统登录失败次数限制策略。比如说超过5次密码验证错误,那么则在3分钟之内即使密码输入正确,也登录失败。

  1. # vim /etc/pam.d/sshd 
  2. #%PAM-1.0 必须添加下面这行在文件的第二行;也就是这个注释的下一行 
  3. auth required pam_tally2.so deny=5 even_deny_root unlock_time=180 

检验方法:

使用ssh远程连接方式连接服务器,连续输入5次错误密码,则会锁定180秒;180秒以后,则输入正确密码就可以进行登录了

最基本的Linux系统安全防护,你做到了吗?阿里云租用须看

4、iptables策略设置

现在还有一部分的公司是还没有能购买硬件防火墙的,这个时候软件级别的iptables就派上用场了。iptables可以作为一个轻量级的防护软件,如果你的服务器,不管是你自主购买进行托管的,还是租用阿里云的,iptables必须要进行设置,否则迟早有一天你的服务器会沦陷的。

  1. # iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT (#允许已建立的或相关连的通行) 
  2. # iptables -A INPUT -i lo -j ACCEPT (#允许本地回环接口(即运行本机访问本机)) 
  3. # iptables -A INPUT -s 内网网段/掩码 -j ACCEPT (#允许内网网段之间互相访问) 
  4. # iptables -A OUTPUT -j ACCEPT (#允许所有本机向外的访问) 
  5. # iptables -A INPUT -p tcp --dport 22222 -j ACCEPT (#允许访问22222(ssh端口)端口 ) 
  6. # iptables -A INPUT -p tcp --dport 80 -j ACCEPT (#如果有80端口,则允许访问80端口) 
  7. # iptables -A INPUT -j DROP (#禁止除了上述规则以外的任意访问) 
  8. # /etc/init.d/iptables save (#一定要记得进行规则保存,否则一切都前功尽弃,重启iptables之后就全都没了) 

相关推荐