1.什么是服务
定义:系统中运行的对于系统本身没有意义,但是对客户以及有重大意义的程序叫做服务性软件,简称服务。
服务是软件,而服务器是安装了服务软件的系统
注意:对于服务的控制一般用reload 不用kill -1 (有的服务不支持reload)
2.用什么控制服务
系统初始化进程可以对服务进行相应的控制
3.当前系统初始化进程是什么
systemd 系统初始化进程
pstree 显示系统中的进程树
如图:
4.进程控制命令
命令 | 注释 |
---|---|
systemctl status sshd | 查看服务状态,inactive(不可用),active(可用) |
systemctl start sshd | 开启服务 |
systemctl stop sshd | 关闭服务 |
systemctl restart sshd | 重启服务 |
systemctl reload sshd | 重新加载服务配置 |
systemctl mask sshd | 锁定服务 |
systemctl unmask sshd | 解锁服务 |
systemctl enable sshd | 设定服务开机启动 |
systemctl disabld sshd | 设定服务开机不启动 |
systemctl list-units | 列出已经开启服务当前状态 |
systemctl list-unit-files | 列出所有服务开机启动的状态 disable,enable,static |
systemctl list-dependencies | 列出服务的倚赖 |
systemctl set-default multi-user.targrt | 设定系统启动级别为多用户模式(无图形) |
systemctl set-default graphical.target | 设定系统启动级别为图形模式 |
(如图输入查看服务状态命令后,显示绿色字体active即为可用状态)
注意:
1.“uname -r” 查看内核版本;
2.“ps ax |grep 进程名 ” 搜索进程;
3.服务的倚赖性,即运行时需要另一个服务开启)
ssh简介
sshd=secure shell
可以通过网络在主机中开启shell的服务
客户端软件< C-F9>
1.连接方式:
ssh username@ip (文本模式的连接)
ssh -X username@ip (可以在连接成功后开启图形)
(如图所示,打开两台虚拟机用于操作,一台为client客户端,一台为server服务端,设置字体以便于区分,将两台虚拟机的网络配置好并设置好用户)
(然后使用一台虚拟机连接另一台虚拟机,输入设置好的密码后连接成功)
(输入命令检查是否连接成功)
(在另一台虚拟机上查看,即连接成功)
注意:
第一次连接陌生主机是要建立认证文件,所以会询问是否建立,需要输入yes,再次连接此台主机时,因为已经生成~/.ssh/know_hosts文件所以不需要再次输入yes
可以在自己的主机中用vim编辑/etc/hosts.deny ,输入 “sshd:ip”禁止别的主机连接,也可以编辑/etc/hosts.allow,设置被允许的主机连接,如图所示:
(输入禁止该ip的主机连接后保存退出)
(在开启的另一台虚拟机上已经不能连接)
注意:允许的优先级高于禁止
2.ssh的key认证
注意:设置前先检查好两台虚拟机
1.rm -fr /root/.ssh/ (删除以前的配置文件)
2.ping 172.25.254. …(是否能ping通)
3.exit (可以连以后退出连接)
1)设置锁
ssh-keygen -f /root/.ssh/id_rsa -N “”
(文件名) (密码为空)
如图
2)设置公钥
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
(加密key )(加密用户为root)(加密主机ip)
如图
关闭密码认证功能,如图
将78行的 yes 改为 no
注意:更改完毕后记得输入systemctl reload sshd.service
命令使更改生效,如图
3)下发钥匙
如下图,输入远程传输命令后,输入密码,发送钥匙成功
4)测试
在client虚拟机上测试,发现不需要密码直接连接成功,如图
5)权限的收回与再次下发
收回连接权限:在server上删掉/root/.ssh/authorized_keys文件,如下图
用client登陆时失败,如下图
在server复制一份公钥文件,便可再次给client权限,如下图
client不用输入密码直接连接成功
注意:可能出现的错误,
1.加密时失败,如下图
原因:密码认证功能之前被关闭
解决方法:打开密码认证功能vim /etc/ssh/sshd_config
,将78行的 no 改为 yes ,问题解决。
2.发送钥匙时失败,如下图
原因:client主机更改了ssh权限拒绝连接
解决办法:在client主机打开vim /etc/hosts.deny
如下图
更改文件内容,问题解决。
注意:
在client主机用kiosk用户输入 ssh [email protected]连接server时,
是用root用户登陆server ,而不是用kiosk用户登陆
3.sshd的安全设定
命令 vim /etc/ssh/sshd_config
行数 | 文件内容 | 注释 |
---|---|---|
78 | PasswordAuthentication yes/no | 是否允许用户通过登陆系统的密码做sshd的认证 |
48 | PermitPootLogin yes/no | 是否允许root用户通过sshd服务的认证 |
52 | Allowusers 用户名 | 设定用户白名单,白名单出现默认不在名单中的用户不能使用sshd |
52 | Denyusers 用户名 | 设定用户黑名单,黑名单出现默认不在名单中的用户可以使用sshd |
注意:设置完成后记得输入命令systemctl reload sshd.service
使更改生效
4.添加sshd登陆信息
命令 vim /etc/motd
文件内容就是登陆后显示的信息
可以输入主机名,ip等信息提示,优化登陆环境,如图
5.用户的登陆审计
命令 | 注释 |
---|---|
w | 查看正在使用当前系统的用户 |
w -f | 查看使用来源 |
w -i | 显示ip |
last | 查看使用过并退出的用户 |
lastb | 试图登陆但没有成功的用户 |
w命令演示
w -f 命令演示
last命令,使用过并退出的用户信息保存在/var/log/wtmp中,
清空/var/log/wtmp,输入last命令,发现没有信息,如图
lastb命令,试图登陆但没有成功的用户信息在/var/log/btmp中,
清空/var/log/btmp,输入lastb
命令,发现没有信息,如图