CentOS——SSH远程访问控制(一)
----------------------概述-----------------------
SSH是一种安全通道协议,主要是用来实现字符界面的远程登陆,远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。与早期的telnet(远程登录),rsh(Remote Shell,远程执行命令),rcp(Remote File Copy,远程文件复制)等应用相比,SSH协议提供了更好的安全性。
·
SH服务:sshd 允许远程登陆访问的服务 (密文传输)对应端口号 TCP 22端口
--------------------系统环境---------------------
centOS7 一台作为服务端(SSH服务器),一台作为客户端,并分别将主机名修改为01和02
--------------------实验过程-------------------
修改配置文件
1、修改SSH主配置文件,SSH主配置文件:"/etc/ssh/ssh_config"(客户端配置文件)、"/etc/ssh/sshd_config"(服务端配置文件),将"#"删除即可开启服务,记得不要忘了保存退出
vim /etc/ssh/sshd_config
Port 22 监听端口,默认监听22端口 #AddressFamily any 可以选择IPV4和IPV6协议,any表示都使用#ListenAddress 0.0.0.0 指明监听的地址(IPV4) #ListenAddress :: 指明监听的地址(IPV6)
#LoginGraceTime 2m----会话时间(默认时间为2分钟)
#PermitRootLogin yes----是否允许root用户远程登录(yes表示允许)
#StrictModes yes------验证访问权限
#MaxAuthTries 6------密码验证次数(默认为6次)
#MaxSessions 10------访问的最大连接数![](https://s1.51cto.com/images/blog/201909/10/64f1840fd1609512e53f3064d992da40.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
·
2、修改完配置文件之后需要重新启动服务
systemctl restart sshd
·
3、接下来用客户端主机去远程访问服务器,当前我们使用的时root用户登录
ssh root@192.168.100.128
·
4、大家都知道root用户是系统的管理员,所拥有的权限相对较高,如果别人可以随便远程登录的话会很不安全,可以在配置文件中修改权限,使得别人无法在远程登陆时使用root用户登录,修改完之后一定要重启服务
·
5、这时候我们再使用root用户远程登录,输入密码后显示权限拒绝,当切换为普通用户登陆时就可以访问
·
6、那么这时候我们可不可以使用普通用户作为跳板切换为root用户呢?答案肯定是可以的
·
7、遇到上述的这种情况可以用到使用PAM安全认证,将允许使用"su"的用户添加到"wheel"组即可
vim /etc/pam.d/su
·
8、 使用"id"命令可以看到"akg"用户已经添加在"wheel"组里,而"boss"用户并没有添加在"wheel"组里,这时再使用"boss'用户切换root用户可以显示,权限拒绝,而添加在"wheel"组里的用户依然可以切换
·
9、之前我们在配置文件中的最大密码尝试次数为6次,进入配置文件进行开启,现在测试一下,我们也可以使用"-o NumberOfPasswordPrompts=8"进行测试(输入8)
可以看到默认输入尝试输入三次密码就会退出,但是如果设定尝试超过6次的话就能发现设置上限制值是6次
·
10、还可以通过在配置文件中添加黑白名单来限制用户登录,现在用户boss只能在192.168.100.55中登录,lisi可以在任何主机上登录,配置完重启服务
11、我们使用192.168.100.55的主机登录时,由于设置了白名单,用户"akg"并不能登录,只有"lisi"和"boss"可以登录