Linux系统服务的控制

一、什么是服务?
系统中运行的对于系统本身没有意义,但是对客户主机有重大意义的程序叫做服务型软件,简称服务。
cs模型
c表示client
s表示server

二、用什么控制服务?
系统中的初始化进程可以对服务进行相应的控制。

三、系统的初始化进程是什么
systemd #系统初始化进程

示例:

pstree #显示系统中的进程树

在这里插入图片描述

四、进程控制命令
systemctl ##服务控制命令

systemctl status sshd ##查看sshd服务状态,inactive(不可用),active(可用)

在这里插入图片描述

systemctl start sshd ##开启服务
systemctl stop sshd ##关闭服务

在这里插入图片描述
关闭服务

在这里插入图片描述
开启服务

systemctl restart sshd ##重启服务
systemctl reload sshd ##重新加载服务配置

重启服务类似于服务的关闭和再启动,而重新加载服务配置类似于服务不关闭的前提下加载配置

systemctl enable sshd ##设定服务开机启动
systemctl disable sshd ##设定服务开机不启动

在这里插入图片描述

在这里插入图片描述

开机启动和开机不启动就是在系统刚开机后,服务的初始状态。

systemctl list-units ##列出已经开启服务当前状态
systemctl list-unit-files ##列出所有服务开机启动的状态

在这里插入图片描述

在这里插入图片描述
systemctl mask sshd ##锁定服务
systemctl unmask sshd ##解锁服务

在这里插入图片描述

分析:如果关闭服务后再锁定,这个服务就不能再被启动了。

在这里插入图片描述
解锁后可以被正常启动。

systemctl list-dependencies ##列出服务的依赖

在这里插入图片描述

systemctl set-default multi-user.target ##设定系统启动的级别为多用户模式(无图形)
systemctl set-default graphical.target ##设定系统启动级别为图形模式

五、sshd服务
1、sshd简介
sshd=secure shell
连接方式:
在这里插入图片描述
ssh username@ip ##文本模式的链接
ssh -X username@ip ##可以在链接成功后开机图形

注意:
第一次链接陌生主机是要建立认证文件的
所以,会询问是否建立,需要输入yes
再次链接此台主机时,因为已经生成~/.ssh/know_hosts文件所以不需要再次输入yes

在这里插入图片描述

远程复制:
scp file root@ip:dir ##上传
scp root@ip:file dir ##下载

2、sshd的key认证
生成认证:

ssh-keygen -f /root/.ssh/id_rsa -N “”

在这里插入图片描述
N选项是设置认证时不需要再输入认证的密码。

加密服务:

ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

在这里插入图片描述
分发钥匙: 分发钥匙给客户机
注意:
这里客户机需要关闭防火墙,否则客户机的防火墙会阻止服务机的钥匙远程复制到客户机。

在这里插入图片描述

scp id_rsa [email protected]在这里插入图片描述:/root/.ssh/

测试:
在这里我们需要明白一点,我们采用sshd服务的目的在于,更换系统默认的远程连接验证方式:即输入系统的密码。所以,我们测试时首先关闭服务机的原始密码验证方式:

vim /etc/ssh/sshd_config ##更改sshd服务的配置文件

在这里插入图片描述

systemctl restart sshd ##重启sshd服务,这里重启的目的是使上一步的更改生效。

分析:服务机关闭ssh远程登录需要输入密码,并且客户机有钥匙的情况下,直接就登录成功了,避免管理员的密码知道的用户过多的情况。没有钥匙的客户机是无法成功登录的。

有钥匙的客户机不需要输入密码可以随便登录服务机,那如果我们不想让有钥匙的客户机登录该怎么办呢?
其实,我们只需要在服务机上删除authorized_keys文件就可以了。

在这里插入图片描述 authorized_keys和id_rsa.pub文件的内容其实是一样的,我们删除后如果想让有钥匙的客户机连接,只要把id_rsa.pub复制一份并且重命名成authorized_keys就好了.
左边为服务机,右为客户机,服务机删除authorized_keys文件后,有钥匙的客户机不能正常登录了。
把id_rsa.pub复制一份并且重命名成authorized_keys后,有钥匙的客户机可以正常登录了。

在这里插入图片描述
3、sshd的安全设定
vim /etc/ssh/sshd_config ##编辑sshd配置文件爱你
systemctl restart sshd.service ##重新加载sshd配置文件

注意:每次更改后都要重启服务才能使更改生效

78 PasswordAuthentication yes|no ##是否允许用户通过系统的密码做sshd的认证
48 PermitRootLogin yes|no ##是否允许root用户通过sshd服务的认证
52 Allowusers student westos ##设定用户白名单,白名单出现,默认不再名单中用户不可以使用sshd
53 Denyusers westos ##设定用户黑名单,黑名单出现,默认不再名单中的用户可以使用sshd

进行白名单和黑名单测试时,因为我们只给服务机的root用户添加了sshd认证方式,我们用客户机远程登录服务机的其他用户时,仍需要密码的原始认证方式。所以这里我们需要把原始的密码认证打开。
分析:服务机的白名单有student用户,客户机远程登录服务机的root用户时,虽然会提示输入密码,但是输入正确密码后仍会提示错误。但登录服务机的student用户时,输入密码就成功登陆了。
分析:黑名单出现student用户,客户机远程登录服务机的student用户时,虽然会提示输入密码,但是输入正确密码后仍会提示错误。但登录服务机的root用户时,就成功登陆了。
总分析: 白名单出现的用户可以远程登录主机,其他均不能成功登陆。黑名单出现的用户不能远程登录主机,其他均可以成功登陆。从系统安全的角度出发,白名单的安全级别高于黑名单。
4、添加sshd登录信息
vim /etc/motd ##文件的内容就是登录后显示的信息
5、用户的登录审计
w ##查看正在使用当前系统的用户
-f ##查看使用来源
-i ##显示ip

在这里插入图片描述
分析:w 查看的其实是/run/utmp 文件的内容,w可以查看哪些用户或者主机登录了我们的服务器。我们把/run/utmp 文件里面的内容清空再查看就查不到了。至于登录信息为什么会保存在这个文件里面,我们下篇再详细说明。

last ##查看使用过并退出的用户信息

在这里插入图片描述

分析:last查看的是/var/log/wtmp 文件的内容,在之前我先清空了文件内容,再远程登录并退出,last成功显示了使用过并退出的用户的有关信息。

lastb ##试图登录但没有成功的用户

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44313519/article/details/86485635