控制服务
什么是服务?
系统中运行的,对于系统本身没有意义,但是对客户主机有重大意义的程序叫做服务性软件,简称服务。
如何控制服务?
那么,在系统中我们用什么去控制服务呢?系统初始化进程可以对服务进行相应的控制。
pstree ##显示系统中的进程树
用pstree查看系统中的进程树,可以看到最前面是一个systemd,表示系统的初始化进程。
进程控制命令
systemctl [参数] [服务名称]
参数:
status ##查看服务状态,inactive(不可用),active(可用)
start ##开启服务
stop ##关闭服务
restart ##重启服务
reload ##重新加载服务配置
enable ##设定服务开机启动
disable ##设定服务开机不启动
mask ##锁定服务
unmask ##解锁
list-units ##列出已经开启服务当前状态
list-unit-files ##列出所有服务开机启动状态(disable,enable,static)
list-dependencies ##列出服务依赖
set-default multi-user.target ##设定服务启动级别为多用户模式(无图形)
set-default graphical.target ##设定系统启动级别为图形模式
systemctl status sshd
查看ssh服务的状态
使用status参数可以查看一个服务的状态,在下面的实验中,我们对服务的状态进行改变后,都可以用这个参数进行查看。
systemctl stop sshd
关闭ssh服务
可以看到,服务由active变为inactive。
使用start,stop,restart参数分别可以开启,停止,重启服务,使用reload参数可以重新加载服务配置,这个参数一般用在修改配置文件后,并且加载配置时不关闭服务。
此外,还可以用很多参数对服务进行控制,使用enable和disable设置开机启动或者开机启动;使用mask参数可以锁定一个服务,锁定后该服务将不能正常开启,可以使用unmask解锁。
列出已经开启服务当前状态。
列出已经开启服务当前状态。
列出服务依赖。
此外,还可以设定服务启动级别,用set-default multi-user.target设定服务启动级别为多用户模式(无图形),或者用set-default graphical.target设定系统启动级别为图形模式。
ssh远程服务
上面的实验我们就是用ssh服务举例的,现在我们来详细看看ssh服务吧。
ssh的连接方式:
ssh 用户名@ip ##文本模式的链接
ssh -X 用户名@ip ##可以在连接成功后开机图形
这里是文本模式的连接,如果要连接图形界面,在后面一个[-X]。
需要主义的是第一次连接陌生主机是要建立认证文件,所以会询问是否建立,需要输入yes,再次连接此台主机时,因为已经生成~/.ssh/know_hosts文件所以不需要再次输入yes。
设置连接名单
vim /etc/hosts.deny
vim /etc/hosts.allow
在这两个配置文件可以设置具体的连接名单,在deny中设置禁止连接的名单,在allow中设置可以连接的名单。
ssh的key认证
ssh-keygen -f /root/.ssh/id_rsa -N ''
建立认证信息。
可以看到在/root/.ssh/下生成了两个文件,其中id_rsa是密钥,id_rsa.pub是公钥。
ssh-copy-id -i /root/.ssh/id_rsa.pub root@
加密。
vim /etc/ssh/sshd_config
修改原始认证,把原来的yes改为no。之后重启服务就可以了。
此时,使用远程连接已经连接不上了,因为我们已经进行了加密,要想使他连上就得给他分发钥匙,这样就能成功连接了。
scp /root/.ssh/id_rsa root@172.25.62.250:/root/.ssh/
分发钥匙。
此时用root用户进行登陆成功了,并且不需要密码。
sshd的安全设定
vim /etc/ssh/sshd_config
用vim进入这个文件后就可以更改ssh服务的安全设定。
78 PasswordAuthentication yes|no ##是否允许用户通过登录系统的密码做sshd的认证
48 PermitRootLogin yes|no ##是否允许root用户通过sshd服务的认证。
第一个我们前面已经见过了,如果后面是yes,那么则允许用户通过登录系统的密码做sshd的认证。反之则不允许。
第二个则是 是否允许root用户通过sshd服务的认证,如果改为no,则不允许使用root用户进行远程连接。
此时正常使用root用户登陆。
此时即使输入密码正确,也不能用root用户进行连接了,但我们还可以使用其他用户进行连接。
使用student用户登陆成功。
此外,还可以在这个文件里设置黑名单和白名单。
Allowusers 用户名 ##设定用户白名单,白名单中的用户可以使用sshd
Denyusers 用户名 ##设定用户黑名单,黑名单出现的用户不可以使用sshd
添加sshd登录信息
我们可以在我们的主机上添加一些登陆信息,这样别人在登陆我们的主机的时候可以看到这些登陆信息。
vim /etc/motd ##文件内容就是登录后显示的信息
在其他主机进行远程连接时就会显示这些信息。
用户的登录审计
w ##查看正在使用当前系统的用户
-f ##查看使用来源
-i ##显示IP
查看正在使用当前系统的用户。
查看的时候显示ip,这个命令查看的文件是 /run/utmp
last ##查看使用过并退出的用户信息
这个命令查看的文件是 /var/log/wtmp
lastb ##试图登录但没成功的用户
这个命令查看的文件是 /var/log/btmp