第十章.ssh服务
目录
在前几天嫖了波云服务器,在上面配置了LAMP环境,并利用Discuz!,搭建了论坛,使用DWA搭建好了靶机,以及wordpress搭建了博客网站,然后摸鱼了一段时间,今天来更新7.25的内容........
ssh 可靠的专为远程登录会话提供的安全协议,可以有效封站远程管理过层中信息泄露问题
ssh 1.0 2.0
openssh服务 是ssh协议的免费开源的实现 提供了服务端后台程序 客户端工具 加密传输文件
通过ssh 可以把传输的数据进行加密 能防止中间人 ip欺骗 dns欺骗
传输文件命令 scp
从本地上传文件至远程服务器
scp 【本地文件路径】[username]@【主机ip】:拷贝的目录
从远程服务器下载文件到本地
scp [username]@[主机ip]:[远程文件路径] 【本地文件路径】
ssh远程连接
ssh [username]@[主机ip]
exit退出
安装openssh
cenos kali 默认安装了openssh 可以通过以下命令查询
dpkg -l | grep openssh
emmmmm,这个命令适用于kali但centos7没有这个命令
可以用这个命令来查询
rpm -qa | openssh
配置公钥私钥登录
ssh有两种常用登录模式 密码口令 公私钥
ssh服务公钥登录 流程
我们来举个栗子,
(1) A 要向 B 发送信息,A 和 B 都要产生一对用于加密和解密的公钥和私钥。
(2) A 的私钥保密,A 的公钥告诉 B;B 的私钥保密,B 的公钥告诉 A。
(3) A 要给 B 发送信息时,A 用 B 的公钥加密信息,因为 A 知道 B 的公钥。
(4) A 将这个消息发给 B (已经用 B 的公钥加密消息)。
(5) B 收到这个消息后,B 用自己的私钥解密 A 的消息。其他所有收到这个报文的人都无法解密,因为只有 B 才有 B 的私钥。这样俩人就能互相通信了。
使用公私钥登录 避免每次都输入密码
-
生成密钥对
ssh-keygen
2.密钥对路径
/root/.ssh
id_rsa 私钥
id_rsa.pub 公钥
3.在服务器中 修改配置
/etc/ssh/sshd_config
将内容修改为:
重启
4.通过命令将密钥拷贝至服务器
ssh-copy-id root@192.168.158.130
5.进行无密码登录
至于使用公钥私钥有什么好处捏
首先我们可以使用无密码登录
然后
-
数据加密: 公钥和私钥结合形成非对称加密体系。公钥用于加密数据,只有私钥持有者能够解密它。这样可以保证数据在传输过程中的安全性,即使在不安全的网络环境下,数据也能得到保护。
-
身份验证: 数字签名是公钥和私钥的另一个重要用途。私钥用于签署数据,而公钥用于验证签名的真实性。这样可以确保数据的发送者身份是可信的,防止伪造和篡改。
-
密钥交换: 公钥可用于安全地传输对称加密算法的密钥。在加密会话开始时,客户端可以使用服务器的公钥来加密一个随机生成的对称密钥,并将其发送给服务器。服务器使用私钥解密这个对称密钥,然后双方就可以使用对称密钥进行高效的加密通信。
-
数字证书: 公钥基础设施(PKI)通过数字证书将公钥与实体(例如个人、组织或网站)绑定在一起。数字证书由认证机构(CA)签名,可用于验证实体的身份,并确保公钥的真实性和有效性。
-
密钥管理: 使用非对称密钥系统,密钥管理变得更加灵活。对于对称加密,需要在每个通信双方之间共享密钥,而在非对称加密中,只需保护好私钥即可
-
我在一些资料上看到这样还能在不信任的主机上登录的安全性,但是搜了一上午资料发现好像要把私钥备份给这台主机,,emmmm建议不要用这种方法。
openssh配置文件 加固
-
先删除服务器的公钥 以免影响后续实验
-
恢复配置文件
vim /etc/ssh/sshd_config
实验一 修改ssh的默认端口
vim /etc/ssh/sshd_config
重启,进行登录
sshd_config 服务端配置文件
ssh_config 客户端配置文件
实验二 配置ssh日志
vim /etc/ssh/sshd_config
SyslogFacility 规定了日志的性质 同时规定了默认路径
loglevel 表示设置记录sshd日志信息级别
AUTHPRIV 表达用户记录的是包含敏感信息的用户身份验证消息 /var/log/secure
AUTH 表达不包含敏感信息用户的身份验证消息 /var/log/secure
ssh配置文件 log部分一般不需要做修改 但是Linux系统其他服务配置文件中,可能SyslogFacility会有下面这些状态
SyslogFacility
loglevel info 表示设置记录sshd日志的级别,可以理解为日志的详细程度
info 表示日志会报告大部分有用信息,是比较详细的等级
DEBUG
INFO
实验三 禁止root登录
vim /etc/ssh/sshd_config
重启
尝试登陆root
失败 权限被拒绝,请重试
登录普通用户 成功
实验四 配置长时间无人操作自动断开
vim /etc/ssh/sshd_config
重启
这个选项决定了我们在使用ssh连接 登录的时间
/etc/profile
export TMOUT=10
使配置文件生效 source /etc/profile
实验五 开启空口令登录
vim /etc/ssh/sshd_config
使用空口令登录必须开启密码验证
重启
创建新用户
useradd user111
清除密码
passwd -d user111
实验六 调试访问速度
vim /etc/ssh/sshd_config
关闭GSSAP认证
关闭DNS认证
重启
实验七 启用密码策略
vim /etc/login.defs
PASS_MAX_DAYS 密码过期时间 (默认天)
PASS_MIN_DAYS 修改密码最小间隔时间
PASS_MIN_LEN 密码最短长度
PASS_WARN_AGE 密码过期的前一天内通知用户
/etc/security/pwquality.conf
minlen = 9 用户密码的最小长度
minclass= 定义密码必须满足同时有几种字符 大小写字母 数字 符号
maxrepeat = 定义密码中允许几个连续相同的字符
maxclassrepeat 定义用户密码连续字符的最大数目
lcredit 定义用户的密码中必须包含多少小写字母
ucredit 定义用户密码中必须包含多少大写字母
dcredit 定义用户密码中必须包含多少数字
ocredit 定义用户密码中必须包含多少特殊字符
SSH日志
日志位置:/var/log/secure
代表空密码登录成功 用户 ip 端口
代表断开连接
密码错误
使用密码登录成功