点击这里给我发消息QQ客服

Linux服务器基本安全防护策略

云之渝 2020-08-14

互联网安全问题是一个老生常谈,也是永不过时的话题。包括互联网很多大佬级的网站都出过安全事故,安全攻防、渗透、审计等涉及的专业性很强、密码学算法等很深。那些都有专业的机构在研究和相应的解决方案,但做为运维人的我们,不要忽视一个最基本的原则,最基本细心的安全做得越到位,黑客攻破所需付出的成本和花费的代价越高。而且我们付出的成本也比较低,能防护80~90%以上的攻击。好了,下面看下刚买的一台云服务器的安全日志:


1.jpg


通过上面日志可以看出在没做任何安全防护策略时,会有大量的扫描攻击。如果密码设置得比较简单,估计服务器很快就成为黑客的肉鸡了。本节我们仅讲下系统层面的,还有web安全和数据库安全以后再介绍,在企业中还有用到跳板机和VPN等在这由于篇幅有限也略过。

1、 首先root用户要禁掉远程ssh登录。禁root远程登录前先建立一个普通用户,普通用户建好后可以分配sudoers 权限,以方便管理系统服务等。

两条命令搞定:useradd 用户名;passwd 用户名,输入两次密码。完了id 用户名 检查下,再看下是否建立了用户的home目录,还有不要忘记用建立好的用户ssh登录试下。

将普通用户加入sudo权限有两种方式:第一种是直接将普通用户加入到wheel组就行,加入前我们先测试下:执行ls /root后提示权限不允许,再执行sudo ls /root 输入密码后提示不在sudoers file会向管理员报告。

2.jpg


在root或其他sodu用户身份下运行如下命令:

usermod -aG wheel username ,然后用id username看下已经加入wheel组了。

用这种方式对大多数的sudo命令是有权限的,有些还是不行。

第二种方式:vim /etc/sudoers 找到如下段落:

3.jpg


在root下面加上一行:username ALL=(ALL) NOPASSWD:ALL

意思表示赋予所有sudo权限并且不需当前用户验证密码。加入后输入 :wq! 强制保存退出,此文件是只读的。这样,下一步就可以关闭root远程登录了。

2、 关闭root远程ssh登录操作

编辑 sshd配置文件,vim /etc/ssh/sshd_config 找到下面字段,没有就加上。

4.jpg


把前头处PermitRootLogin 改为no 保存退出。

记得重启sshd 服务,systemctl restart sshd。重启后再systemctl status sshd确认。

3、 修改sshd服务默认的22监听端口,做一步前特别要注意确保其他端口能正常访问再关闭22端口,不要把自己锁在门外里,以免尴尬,影响工作。

先看下系统防火墙,默认是开启的。如果需开系统防火墙,请把要修改的端口号后加入允许的安全策略里,另外还要看下云服务商的安全组,也要把相应端口加进去。

执行 firewall-cmd –list-all 查看已开放的端口如下:

5.jpg


防火墙加入端口执行:firewall-cmd –zone=public –add-port=(自定义端口号)/tcp 返回success

重载防火墙使配置生效,firewall-cmd –reload 返回success

再运行 firewall-cmd –list-all 是不是你想加入的端口在里面呢?

另外,如果系统开启了selinux则也要把端口加入selinux 的 ssh_port_t中。如不打算开selinux,下面的步骤请略过。

先安装selinux的管理工具yum install –y policycoreutils-python

查询当前ssh 服务端口:semanage port –l |grep ssh

执行semanage port -a -t ssh_port_t -p tcp 自定义端口号。没什么问题再执行上面命令检查。

接着编辑 sshd配置文件 vim /etc/ssh/sshd_config 在port 22 下面加一行:

6.jpg

重启sshd服务 systemctl restart sshd 查看sshd服务是否正常并检查系统监听端口

4、 用普通用户和修改后的端口登录ssh测试

这步很简单,在此就不赘述了。测试好后还是编辑 sshd配置文件把22号端口去掉并重启sshd服务。如果万一哪步没弄好或端口被阻止了,那要记得在本地shell环境操作了,现在云服务器一般都有VNC等远程连接服务。