CentOS7完善ssh安全策略

服务器的root登陆和密码登录都禁用,只开放普通用户登录,这时需要给普通用户配置秘钥文件,实现无密码登录,需要注意的是使用什么用户,就把秘钥文件拷入到该用户的家目录下,如果是root用户,就直接拷贝到/root/.ssh/下(本次测试是使用普通用户oper测试的)

  1) .ssh目录的权限必须是700   (目录属主,属组也要是普通用户的)

  2) .ssh/authorized_keys文件权限必须是600  (目录属主,属组也要是普通用户的)

 

1.更改默认端口 22为xxx

2.禁止root用户登陆

3.禁止密码验证登陆

 

限制SSH登录的IP

a) 设置禁止所有ip连接服务器的SSH

vim /etc/hosts.deny

sshd:all:deny

b) 设置允许指定ip连接服务器的SSH

vim /etc/hosts.allow

sshd:192.168.1.106:allow

 

限制ssh访问服务器的用户名

#修改sshd_config配置文件,允许zcy用户ssh访问服务器(以空格分开用户;添加完允许,默认拒绝其他所有用户)
[root@imzcy ~]# echo "AllowUsers zcy" >>/etc/ssh/sshd_config

#重启sshd服务,使配置立即生效
[root@imzcy ~]# systemctl restart sshd

 

 

第一步:检查防火墙设置

#systemctl status firewalld.service
#firewall-cmd --zone=public --list-port
#firewall-cmd --list-all | grep 8822
 ports: 10022/tcp
#firewall-cmd --zone=public --add-port=8822/tcp --permanent
#firewall-cmd --reload

第二步:检查SELinux

[root@xuexi ~]# getenforce  //查看Selinux状态
Enforcing
[root@xuexi ~]# setenforce 0 //临时关闭Selinux
[root@xuexi ~]# getenforce
Permissive
[root@xuexi ~]# vim /etc/selinux/config   //修改Selinux配置文件 可以永久生效

selinux开启状态下,可以通过semanage(默认系统不自带,需要安装)设置SELinux规则,允许新的SSH端口,如果不将ssh新端口添加到selinux中,重启sshd时会报错。(修改ssh端口重启服务报错error: Bind to port 8822 on :: failed: Permission denied)

#yum -y install policycoreutils-python
#semanage port -l | grep ssh   查看selinux中sshd当前的端口
 ssh_port_t tcp 22
#semanage port -a -t ssh_port_t -p tcp 8822   在selinux中添加端口
#semanage port -l | grep ssh     查看selinux中sshd当前的端口
 ssh_port_t tcp 8822, 22

 

你可能感兴趣的:(linux学习)