(1)什么是服务
可以用来给客户提供相关操作,对自己没有什么好处,因为服务开的越多,被攻击的可能就越大;
(2)用什么控制服务
系统初始化进程可以对服务进行相应的控制
(3)进程控制命令
ssh -------->sshd(ssh用为客户端,主要进行服务器端的连接;sshd用为服务器端)
systemctl ##服务控制命令
systemctl start sshd ##开启服务
systemctl stop sshd ##关闭服务
systemctl restart sshd ##重启服务
systemctl reload sshd ##重新加载服务配置
systemctl enable sshd ##设定服务开机启动
systemctl disable sshd ##设定服务开机不启动
systemctl list-units ##列出已经开启服务当前状态
systemctl list-dependencies ##列出服务的倚赖
systemctl set-default multi-user.target ##设定系统启动级别为多用户模式(无图形)
systemctl set-default graphical.target ##设定系统启动级别为图形模式
systemctl status sshd ##查看服务状态,inactive(不可用),active(可用)
(1)SSH介绍
ssh为secure shell的简称;可以通过网络在主机中开启shell的服务;
SSH是应用层的安全协议。目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。
(2)连接方式(在客户端)
ssh [email protected] #文本模式
ssh -X [email protected] #可以在链接成功后开启图形界面
(3)注意
第一次链接陌生主机是要建立认证文件,然后会询问是否建立,需要输入yes
再次链接此台主机时,因为已经生成~/.ssh/know_hosts文件所以不需要再次输入yes
实验环境:
SSH_server:linux rhel6.5,IP地址:192.168.10.10(用户为:lisi,zhaoliu)
SSH_client:linux rhel6.5,IP地址:192.168.10.20(用户为:zhangsan,wangwu)
实验步骤:
(1)前期配置
1.1> 配置SSH_server端IP,并重启网络服务;
1.2> 配置SSH_client端IP,并重启网络服务;
1.3> 在SSH_server端创建用户lisi;
1.4> 在SSH_client端创建用户zhangsan;
(2)安全性较低,身份验证
用密码验证的方式远程登录服务器,安全性较低;
为了提高安全性,可以采用公钥验证的方式进行远程登录服务器
(3)安全性较高,公钥验证
3.1> 在客户机上创建密钥对,并输入私钥短语;
3.2> 查看客户端生成的密钥对文件;
3.3> 在服务器端登录lisi账户,并创建.ssh文件夹,存放上传到服务器的公钥文件;
3.4> 将公钥上传至服务器;
3.5> 测试公钥认证方式,以管理员权限修改配置文件,启用公钥验证,禁用密码验证,并重启ssh服务;
3.6> 由于/home/lisi/.ssh目录的所属组的权限过大,将会拒绝公钥验证,所以,去掉所属组的w权限;
3.7> 在客户端以公钥认证的方式远程连接服务器;成功登录到lisi账户;
猜想:是否知道了zhangsan用户的.ssh文件,就可以欺骗性的登录到服务器呢?
3.8> 在客户端创建新的用户wangwu;
3.9> 将zhangsan用户的密钥对文件复制给wangwu用户家目录下,并将该文件的权限改为wangwu;
3.10> 在客户端以wangwu的身份登录服务器,如果wangwu用户知道了zhangsan的密钥短语(得到密钥对文件,就可以采用暴力破解的方式得到私钥短语),就可以成功登录到服务器;
(4)限制被登录的用户(服务器端的用户)
4.1> 在服务器创建新用户zhaoliu;并将lisi家目录中的公钥库拷贝到zhaoliu家目录中;
4.2> 验证客户端用户是否可以远程登录zhaoliu;
4.3> 在服务器端修改配置文件/etc/ssh/sshd_config,限制被登录的用户(服务器端的用户)
4.4> 在客户端进行登录验证;