千家信息网

sshd服务及服务管理

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,1.什么是sshd服务?客户端主机通过网络在服务端主机中开启服务端主机shell的服务客户端通过网络连接服务端,并且控制服务端,也就是客户端开了服务端的shell2.实验环境搭建1>在真机中打开虚拟机
千家信息网最后更新 2024年11月23日sshd服务及服务管理

1.什么是sshd服务?
客户端主机通过网络在服务端主机中开启服务端主机shell的服务
客户端通过网络连接服务端,并且控制服务端,也就是客户端开了服务端的shell
2.实验环境搭建
1>在真机中打开虚拟机desktop,server(在为了实验环境的干净,先要reset一下两台虚拟机)
2>配置两台主机的Ip
3>在两台主机的shell中分别删除 /root/.ssh/(删除这个目录rm -rf /root/.ssh 或者删除这个目录下的文件rm -rf /root/.ssh/*均可以)
备注:客户端主机第一次连接服务端主机会在这个目录下生成known_hosts这个文件,为了验证这个实验效果,所以先将这个目录清空或者直接删除这个隐藏目录
直接在家目录下面输入ls -a(查看所有文件,包括非隐藏文件和隐藏文件) 或者l.(只查看隐藏文件)

4>修改两个主机名字
在客户端主机输入 hostnamectl set-hostname client.hhh.com(desktop主机)
在服务端主机输入 hostnamectl set-hostname server.uuu.com(server主机)
3.sshd的相关内容(客户端连接服务端主机)
1>文本模式下连接
客户端可以启用服务端的文本模式功能
一台主机可以和另外一台主机连接起来,并且可以操作对方的文本模式1:
如果是客户端连接服务端,则客户端可以操作服务端的文本模式
如果是服务端连接客户端,则服务端可以操作客户端的文本模式
格式: ssh username@Ip 在连接时需要输入所连主机的密码
注意
第一次连接陌生主机的时候需要建立认证文(~/.ssh/know_hosts文件),所以会询问是否建立,输入yes即可.
再次连接次台主机的时候,由于已经生成~/.ssh/know_hosts文件,因此不需要再次输入yes.
模式2:
(默认上面这样打开的是文本模式,如果想要打开图形编辑模式)
格式:ssh -X username@ip

4.远程复制

:文件路径均采用绝对路径
1.将一台主机上的文件复制到另外一台主机上
格式:scp file root@ip:dir
2.将远程文件下载下来
格式:scp username@ip:file dir下载
rsysnc进行传输:

scp与rscp的区别
scp是相当于复制,黏贴,如果有的话是覆盖,比较耗时间,不智能。rsync是复制,如果有重复的文件,会直接跳过,而且他自己的算法优化。scp是把文件全部复制过去,当文件修改后还是把所有文件复制过去,rsync 第一次是把所有文件同步过去,当文件修改后,只把修改的文件同步过去。

5.sshd服务的免密操作
1.原因:如果客户端知道服务端主机的ip地址和密码,就可以远程操控服务端, 如果任意一个客户端知道服务端主机的ip地址和密码,并且知道它里面的重要文件存放路径,那么就可以拷贝服务端的文件,这样的操作在实际企业当中非常不安全
2.采用钥匙和锁子
key1:在服务端输入:ssh-keygen ,生成钥匙和密码 , id_rsa是钥匙 id_rsa.pub是锁

在服务端输入 ssh-keygen 三次回车 ,每次回车都有原因:
1>第一次回车是钥匙和密码存放路径(可以直接回车,存放在默认路径下)
2>第二次回车是密码(可以直接回车,不设置密码)
3>第三次回车也是密码(可以直接回车,不设置密码)

也可以不用回车,设置参数:

key2:在服务端输入:ssh-copy -id -i /root/.ssh/id_rsa.pub username@ip 先给自己上锁,也就是给服务端上锁

key3:在服务端输入:scp /root/.ssh/id_rsa username@ip:/root/.ssh/ 将密码传给客户端
客户端/root/.ssh/的这个文件(目录)必须存在 ,相当于上传

注意:如果客户端没有:/root/.ssh/这个文件,客户端使用密码方式重新连接一次server,会重新生成该文件
key4:验证客户端是否可以进行免密连接server
6.sshd的安全设定?
1.原因:因为server的root权限太大,客户端如果使用server的root权限极不安全,为了保证ssh服务器的安全性:server开放的权限不能太多,一般不太让客户端主机用server主机的超级用户root
2.常用安全规定
1>/etc/ssh/sshd_config的第78行
是否允许server的任意一个存在的用户通过登陆系统的密码做sshd的认证

2>/etc/ssh/sshd_config的第48行
是否允许server的root用户通过sshd的服务

3>加入AllowUesrs student westos
设定用户的白名单,此名单里面的用户可以做sshd服务 (文件里不存在 直接输入即可 多个用户用空格隔开)

4>加入DenyUsers westos
设定用户的黑名单,此名单
注意:改完 之后需要 systemctl restart sshd.service


5>验证78行PasswordAuthentication yes|no
是否允许server的任意一个存在的用户通过登陆系统的密码做sshd的认证(最初始的那种远程连接输入密码的方式),是否可以使别人在登陆时没有钥匙时试密码登陆 ,yes表示可以试密码和no表示不可以试密码, 注释相当于no
6>验证48行的PermitRootLogin yes|no
是否允许server的root用户通过sshd的服务(客户端是否能通过server的root用户远程连接server)
禁止超级用户登陆 ,限制超级用户使用root身份来登陆ssh,默认为yes
注意:之前我们已经设置过超级用户可以免密连接
因此做这个实验之前应该先取消root的免密操作
在客户端和server均删除钥匙也就是 rm -rf /root/.ssh/*
不允许的话会一直显示密码错误

修改端口 :port num 修改端口

7.添加sshd登录信息
1>原因:为了使客户端在连接server的时候可以直观的看到服务端的相关信息,因此要添加信息,也就是使客户端登陆,server的时候显示server的一些信息
2>方法:1.在server的 /etc/motd 文件里面设置服务端自己的一些信息
2.vim /etc/motd 文件内容就是登录后显示的信息
8.用户的登录审计
补充: /var/log/wtmp,/var/log/btmp,:该文件存放的是last查出来的信息,但是该文件不能用cat查看,可以用放file查看

  1. w -f 查看正在使用当前系统的用户
    -i 显示使用来源
    /var/run/utmp
    2.last /var/log/utmp 查看使用过 并退出的用户信息
    3.lastb /var/log/btmp 试图登陆但没成功的用户
0