目录
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
服务的状态/停止/启动
systemctl status ssh.service
配置公钥私钥登录
ssh服务 通过 密码登录 流程
ssh服务公钥登录 流程
使用公私钥登录 避免每次都输入密码
- 生成密钥对
ssh-keygen
- 密钥对路径
/root/.ssh 直接回车为默认路径,也就是这个
id_rsa 私钥
id_rsa.pub 公钥
- 在服务器中 修改配置
/etc/ssh/sshd_config
将内容修改为:
重启
- 通过命令将密钥拷贝至服务器
ssh-copy-id root@192.168.158.130
- 进行无密码登录
客户端有私钥 被登陆的服务器有客户端的公钥,公钥与私钥这一密钥对由客户端产生,上面我们使用的是rsa算法生成的密钥对 也可以使用dsa算法
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
设置 | 描述 | 默认日志文件 |
---|---|---|
local0 | BIG-IP 特定消息 | /var/log/ltm |
local1 | EM 特定消息 APM 特定消息 | /var/log/em /var/log/apm |
loacl2 | GTM 和链路控制器特定消息 | /var/log/gtm |
local3 | ASM 特定消息 | /var/log/asm |
loacl4 | ITCM 门户和服务器 (iControl) 特定消息 | /var/log/ltm |
loacl5 | 包过滤特定消息 | /var/log/pktfilter |
loacl6 | HTTPD 特定消息 | /var/log/httpd/httpd_errors |
loacl7 | Linux 特定的引导消息 | /var/log/boot.log |
cron | 与cron进程相关的消息 | /var/log/cron |
daemon | 与系统守护进程相关的消息(包括named和ntpd) | /var/log/daemon.log |
kern | 内核消息 | /var/log/kern.log |
邮件系统消息 | /var/log/maillog | |
auth | 不包含敏感信息的用户身份验证消息 | /var/log/secure |
authpriv | 包含敏感信息的用户身份验证消息 | /var/log/secure |
user | 与用户进程相关的消息 | /var/log/user.log |
loglevel info 表示设置记录sshd日志的级别,可以理解为日志的详细程度
info 表示日志会报告大部分有用信息,是比较详细的等级
等级 | 描述 | 冗长度 |
---|---|---|
emerg | 紧急系统紧急信息 | 最低限度 |
alert | 需要管理员干预的严重错误 | 低的 |
crit | 严重错误,包括硬件和文件系统故障 | 低的 |
err | 非关键但可能非常重要的错误消息 | 低的 |
warning | 至少应该记录以供审查的警告消息 | 中等的 |
notice | 包含有用但可能会被忽略的消息 | 中等的 |
info | 包含有用但可能会被忽略的消息 | 高的 |
debug | 仅用于故障排除的消息 | 最大值 |
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 端口
代表断开连接
密码错误
使用密码登录成功