一、Linux中服务管理与控制
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(可用)
二、sshd服务
1、SSH介绍
- SSH为secure shell的简称;可以通过网络在主机中开启shell的服务;
- SSH是应用层的安全协议。目前较可靠,专门为远程登录会话和其他服务提供安全性的协议。
- SSH协议可以有效防止远程管理过程中的信息泄露问题。
2、连接方式(在客户端)
- ssh username@ip #文本模式
- ssh -X username@ip #可以在连接成功后开启图形界面
3、注意
- 第一次连接陌生主机是要建立认证文件,然后会被询问是否建立,需要输入yes
- 再次连接这台主机时,因为已经生成~/.ssh/know_hosts文件所以不需要再次输入yes
三、SSH远程登录环境的搭建
实验环境:
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,并设置密码为:123;
1.4> 在SSH_client端创建用户zhangsan,并设置密码为:123;
2、通过telnet进行远程登录;
2.1> SSH_server服务器
- 在SSH_server服务器上安装Telnet-server服务器;
- 修改配置文件,允许远程登录;
vim /etc/xinetd.d/telnet
- 启动telnet-server服务,并查看是否开启xinetd服务;
- 关闭iptables防火墙,关闭selinux服务;
2.2> SSH_client客户端
- 在SSH_client客户端上安装Telnet客户端
2.3> 通过SSH_client客户端远程登录SSH_server服务器;
总结:可以发现telnet远程登录是不加密,我们可以通过抓包获取密码,很不安全。
3、直接SSH远程登录,值需要安全性较低的身份验证;
SSH_server服务器
3.1> 一般Linux中自带SSH功能,不需要安装和开启SSH服务;
service sshd start ##启动sshd服务
netstart -anpt | grep :22 ##查看22号端口是否开放
3.2> 在SSH_client客户端用户密码验证的方式远程登录SSH_server服务器,安全性较低;
3.3> 在SSH_server服务器上修改配置文件;
vim /etc/ssh/sshd_conf,将原有的22号端口号修改为端口号为2200
3.4> 在SSH_client客户机上以新修改的端口号2200,登录SSH_server服务器;
3.5> 通过物理机登录SSH_server服务器;
理论上来说物理机192.168.10.30不能登录成功
为了提高安全性,可以采用公钥验证的方式进行远程登录服务;
4、通过公钥验证,安全性较高;
4.1> 在客户机上创建秘钥对,并输入私钥短语:123456;
4.2> 查看客户端生成的秘钥对文件;
4.3> 在服务器端登录lisi账号,并创建.ssh文件夹,存放上传到服务器的公钥文件;
4.4> 通过客户端SSH_client,将公钥上传至服务器SSH_server;
4.5> 在SSH_serer服务器端测试公钥认证方式,以管理员权限修改配置文件,启用公钥验证,禁用密码验证,并重启ssh服务;
vim /etc/ssh/sshd_config
4.6> 由于SSH_server服务器端的/home/lisi/.ssh目录的所属组的权限过大,将会拒绝公钥验证,所以,去掉所属组的w权限;
4.7> 在客户端以公钥认证的方式远程连接服务器,成功登陆李lisi账户;
猜想:是否知道了zhangsan用户的.ssh文件,就可以欺骗性的登录到服务器呢?
4.8> 在客户端创建新的用户wangwu;
4.9> 将zhangsan用户的秘钥复制给wangwu用户家目录下,并将该文件的权限改为wangwu;
因为,/home/wangwu/.ssh/. 文件的所有者和所属组都属于root用户,所以也必须的更改过来;
4.10> 在客户端以wangwu的身份登录服务器,如果wangwu知道了zhangsan的秘钥短语(得到秘钥对文件,就可以采用暴力破解的方式得到秘钥短语),就可以成功登录到服务器;
5、限制被登录的用户(服务器端的用户)
5.1> 在服务器端创建新用户:zhaoliu,并将lisi家目录中的公钥库拷贝到zhaoliu家目录中;
5.2> 验证客户端用户是否可以远程登录zaholiu;
5.3> 在服务器端修改配置文件/etc/ssh/sshd_config,限制被登录的用户(服务器端用户);
添加如下内容:
AllowUsers lisi
DenyUsers zhaoliu
5.4> 在客户端进行登录验证;