SSH服务

1.定义

ssh(Secure Shell  安全外壳)  可靠的专为远程登录会话提供的安全协议,可以有效封站远程管理过层中信息泄露问题

2.用途

通过 SSH Client (客户端) 我们可以连接到运行了 SSH Server (服务器) 的远程机器上

3.使用方法

<1>.scp 传输文件命令

  从本地上传文件至远程服务器

scp 【本地文件路径】[username]@【主机ip】:拷贝的目录

  从远程服务器下载文件到本地

ex: scp 1 root@43.143.216.88:/root

scp [username]@[主机ip]:[远程文件路径] 【本地文件路径】

ex: scp root@43.143.216.88:/root/1 /

<2>.ssh远程连接
ssh user@remote -p port
  • user 是你在远程机器上的用户名,如果不指定的话默认为当前用户
  • remote 是远程机器的地址,可以是 IP,域名,或者是后面会提到的别名
  • port 是 SSH Server 监听的端口,如果不指定的话就为默认值 22ex
  • exit 退出

ex: ssh root@43.143.216.88

<3>.安装 OpenSSH Server

 centos kali 默认安装了openssh  Ubuntu Desktop 系统,那么默认是没有安装

安装:

sudo apt-get install openssh-server

查询是否安装: dpkg -l | grep openssh 

查看服务的状态: 在 kali上 systemctl status ssh.service

 

4.公钥私钥

<1>.意义

每次 ssh 都要输入密码是不是很烦呢?与密码验证相对的,是公钥验证。也就是说,要实现免密码登入,首先要设置 SSH 钥匙

<2>.图解

 

<3>.用法

1.执行 ssh-keygen 即可生成 SSH 钥匙,一路回车即可

2.密钥对的地址: root/.ssh        公钥放在了 ~/.ssh/id_rsa.pub        私钥放在了 ~/.ssh/id_rsa

3.我们要让远程机器记住我们的公钥

在服务器中修改配置  /etc/ssh/sshd_config  将内容修改为此内容  然后重启

通过命令将密钥拷贝至服务器        ssh-copy-id user@remote -p port

客户端有私钥 被登陆的服务器有客户端的公钥,公钥与私钥这一密钥对由客户端产生,上面我们使用的是rsa算法生成的密钥对 也可以使用dsa算法  

5.openssh配置文件 加固

<1>.先删除服务器的公钥 以免影响后续实验

<2>.恢复配置文件  vim /etc/ssh/sshd_config

 6 实验一 修改ssh的默认端口

<1>.步骤

vim /etc/ssh/sshd_config

 重启后重新进行登录

<2>.配置文件

sshd_config 服务端配置文件

ssh_config 客户端配置文件

7.实验二 配置ssh日志

<1>.步骤

vim /etc/ssh/sshd_config

<2>.SyslogFacility 规定了日志的性质 同时规定了默认路径

loglevel 表示设置记录sshd日志信息级别

AUTHPRIV 表达用户记录的是包含敏感信息的用户身份验证消息 /var/log/secure

AUTH 表达不包含敏感信息用户的身份验证消息 /var/log/secure

ssh配置文件 log部分一般不需要做修改 但是Linux系统其他服务配置文件中,可能SyslogFacility会有下面这些状态

SyslogFacility

设置描述默认日志文件
local0BIG-IP 特定消息/var/log/ltm
local1EM 特定消息 APM 特定消息/var/log/em /var/log/apm
loacl2GTM 和链路控制器特定消息/var/log/gtm
local3ASM 特定消息/var/log/asm
loacl4ITCM 门户和服务器 (iControl) 特定消息/var/log/ltm
loacl5包过滤特定消息/var/log/pktfilter
loacl6HTTPD 特定消息/var/log/httpd/httpd_errors
loacl7Linux 特定的引导消息/var/log/boot.log
croncron进程相关的消息/var/log/cron
daemon与系统守护进程相关的消息(包括namedntpd/var/log/daemon.log
kern内核消息/var/log/kern.log
mail邮件系统消息/var/log/maillog
auth不包含敏感信息的用户身份验证消息/var/log/secure
authpriv包含敏感信息的用户身份验证消息/var/log/secure
user与用户进程相关的消息/var/log/user.log
<3>.loglevel info 表示设置记录sshd日志的级别,可以理解为日志的详细程度

info 表示日志会报告大部分有用信息,是比较详细的等级

等级描述冗长度
emerg紧急系统紧急信息最低限度
alert需要管理员干预的严重错误低的
crit严重错误,包括硬件和文件系统故障低的
err非关键但可能非常重要的错误消息低的
warning至少应该记录以供审查的警告消息中等的
notice包含有用但可能会被忽略的消息中等的
info包含有用但可能会被忽略的消息高的
debug仅用于故障排除的消息最大值
<4>.debug

<5>.INFO 

8.实验三 禁止root登录

<1>.vim /etc/ssh/sshd_config  对配置进行如下修改  然后重启服务  

<2>.尝试登陆root   失败 权限被拒绝,请重试

 <3>.尝试登陆普通用户  成功

 

9.实验四 配置长时间无人操作自动断开 

<1>. vim /etc/ssh/sshd_config  然后重启  这个选项决定了我们在使用ssh连接 登录的时间
 <2>. /etc/profile  export TMOUT=10        使配置文件生效 source /etc/profile

10.实验五 开启空口令登录

<1>.  vim /etc/ssh/sshd_config  
<2>.  使用空口令登录必须开启密码验证        重启

<3>.  创建新用户        useradd user111        清除密码        passwd -d user111

 11.实验六 调试访问速度

<1>.  vim /etc/ssh/sshd_config
<2>.  关闭GSSAP认证

<3>.  关闭DNS认证

<4>.  重启

12.实验七 启用密码策略

<1>.vim /etc/login.defs ​​​​​​​
<2>.常见指令

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 定义用户密码中必须包含多少特殊字符

<3>.SSH日志

日志位置:/var/log/secure

 代表空密码登录成功 用户 ip 端口

代表断开连接 

 

密码错误

使用密码登录成功

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清纯男大小趴菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值