服务器安全配置至关重要,尤其是暴露在公网的设备。好的加固可以防止服务器被轻易攻破,让系统稳定良好运转。下面是总结的常用的centos7.6安全加固策略,方便后期使用查阅。

一、禁止root登录,采用sudo授权账号权限。

1.1、新建普通用户。
useradd 8888
passwd 8888

输入账号8888的密码。

1.2、禁止root登录。
vim  /etc/ssh/sshd_config

sshd_config PermitRootLogin no #把注释去掉并把yes改为no

1.3、重启ssh服务
systemctl restart sshd

二、连续输入错密码3次,锁定5分钟。

注意:在#%PAM-1.0的下面,即第二行,添加内容,一定要写在前面,如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的!

vim /etc/pam.d/sshd

#%PAM-1.0

auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=100

解锁指定用户

pam_tally2 -r -u 8888

三、设置ssh只允许特定用户从指定的IP登录

3.1、编辑文件 /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
3.2、root用户只允许在如下ip登录
AllowUsers root@203.212.4.117
AllowUsers root@124.202.206.14
3.3、重启ssh生效

service sshd restart

3.4、如果需要取消ip登录限制

删除AllowUsers项即可

四、修改ssh端口号。

4.1、编辑vim /etc/ssh/sshd_config
4.2、Port 51866

#更改SSH端口,最好改为10000以上,别人扫描到端口的机率也会下降。防火墙要开放配置好的端口号,如果是阿里云服务器,你还需要去阿里云后台配置开发相应的端口才可以,否则登不上哦!如果你觉得麻烦,可以不用改

为什么不先删除22,以防其他端口没配置成功,而又把22的删除了,无法再次进入服务器

4.3、修改SELinux

安装semanage

yum provides semanage
yum -y install policycoreutils-python

使用以下命令查看当前SElinux 允许的ssh端口:

semanage port -l | grep ssh

添加51866端口到 SELinux

semanage port -a -t ssh_port_t -p tcp 51866

注:操作不成功,可以参考:https://sebastianblade.com/how-to-modify-ssh-port-in-centos7/

失败了话应该是selinux没有打开

然后确认一下是否添加进去

semanage port -l | grep ssh

如果成功会输出

ssh_port_t                    tcp    51866, 22
4.4、重启ssh
systemctl restart sshd.service

查看下ssh是否监听51866端口

netstat -tuln
4.5、防火墙开放51866端口
firewall-cmd --permanent --zone=public --add-port=51866/tcp

firewall-cmd --reload

然后测试试试,能不能通过51866登录,若能登录进来,说明成功,接着删除22端口

vi /etc/ssh/sshd_config

删除22端口  wq

systemctl restart sshd.service

同时防火墙也关闭22端口

firewall-cmd --permanent --zone=public --remove-port=22/tcp

注意如果是使用阿里的服务器需要到阿里里面的安全组添加新的入站规则(应该是因为阿里的服务器是用的内网,需要做端口映射)

4.6、Protocol 2

#禁用版本1协议, 因为其设计缺陷, 很容易使密码被黑掉。

4.7、PermitEmptyPasswords no

#禁止空密码登陆。

4.8、重启ssh生效
service sshd restart

五、禁止系统响应任何从外部/内部来的ping请求

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

六、禁用不使用的用户及用户组。

6.1、编辑用户。
vi /etc/passwd
6.2、在前面加上#注释掉此行
# cat /etc/passwd|grep ^#
#adm:x:3:4:adm:/var/adm:/sbin/nologin
#lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
#shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
#halt:x:7:0:halt:/sbin:/sbin/halt
#uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
#operator:x:11:0:operator:/root:/sbin/nologin
#games:x:12:100:games:/usr/games:/sbin/nologin
#gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
#ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
#nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
#postfix:x:89:89::/var/spool/postfix:/sbin/nologin
6.3、注释不用的用户组
#cat /etc/group|grep ^#
#adm:x:4:adm,daemon
#lp:x:7:daemon
#uucp:x:14:
#games:x:20:
#gopher:x:30:
#video:x:39:
#dip:x:40:
#ftp:x:50:
#audio:x:63:
#floppy:x:19:
#postfix:x:89:

七、Linux防止DoS攻击

对系统所有的用户设置资源限制可以防止DoS类型攻击,如最大进程数和内存使用数量等。 可以在/etc/security/limits.conf中添加如下几行:
*  soft  core  0
*  soft  nproc  2048
*  hard  nproc  16384
*  soft  nofile 1024
*  hard  nofile 65536

core 0 表示禁止创建core文件;nproc 128 把最多的进程数限制到20;nofile 64 表示把一个用户同时打开的最大文件数限制为64;* 表示登录到系统的所有用户,不包括root

然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。

session required pam_limits.so

limits.conf 参数的值需要根据具体情况调整。

 

声明:
本站所有文章,如无特殊说明或标注,均为本站原创发布。
任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。