Linux下Openssh服务的安全优化策略

什么是sshd服务

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。
几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

实验环境的设定

建立两个虚拟机:desktop(客户端)server(服务端)
分别在两台虚拟机中配置 ip 和 更改主机名称

nm-connection-editor ##配置客户端和服务端

1、首先,设置客户端的ip,(已知自己主机的ip为172.25.75),发现在设置ip为172.25.254.275(在原ip上加200),保存不了。
Linux下Openssh服务的安全优化策略_第1张图片
于是设置ip为172.25.254.95(在原ip上加20),保存。
Linux下Openssh服务的安全优化策略_第2张图片
2、在查询自己的ip是否为自己所想
Linux下Openssh服务的安全优化策略_第3张图片
3、更改主机名称,并删除原有的文件,保证实验环境干净。
在这里插入图片描述
同理,可设置服务端的。
我们将服务端的ip写为172.25.254.175(在原ip上加100)
Linux下Openssh服务的安全优化策略_第4张图片
将客户端改为黑底绿字,便于区分两台虚拟机。

ssh命令的使用方式

1、文本建立的连接方式

客户端连接服务端且可以操作服务端文本模式功能

ssh username@ip     ##username为被连接的主机的存在的任意用户,ip是被连接的主机的地址。

示例:
若第一次连接的话会问yes或者no,输入yes,然后输入密码(server主机的密码)然后exit退出,如果连接过,则直接输入密码登录,没有yes、no的提示。
原因: 第一次连接陌生主机的时候需要建立认证文件( ~/.ssh/know_hosts 文件),所以会询问是否建立,输入yes即可.再次连接次台主机的时候,由于已经生成~/.ssh/know_hosts文件,因此不需要再次输入yes.
Linux下Openssh服务的安全优化策略_第5张图片
即可远程建立文件,但发现不可远程打开Firefox。
Linux下Openssh服务的安全优化策略_第6张图片
2、开启对方的图形编辑模式的连接方式

sshd -X username@ip 

示例:
在客户端打开了服务端的Firefox
Linux下Openssh服务的安全优化策略_第7张图片
3、远程复制

1)scp file username@ip:dir ##远程上传

密码认证及密钥认证的对比及密钥认证的实施的完整步骤

为什么要进行免密操作?
如果客户端知道服务端主机的ip地址和密码,就可以远程操控服务端
如果任意一个客户端知道服务端主机的ip地址和密码,并且知道它里面的重要文件存放路径
那么就可以拷贝服务端的文件
这样的操作在实际企业当中非常不安全
怎样进行免密操作?
采用钥匙和锁的方式,服务端想让客户端什么时候连就什么时候连

1、

ssh-keygen  ##生成钥匙和密码

输入 ssh-keygen 三次回车(也可以不回车)
第一次回车是钥匙和密码存放路径(可以直接回车,存放在默认路径下)
第二次回车是密码(可以直接回车,不设置密码)
第三次回车也是密码(可以直接回车,不设置密码)
Linux下Openssh服务的安全优化策略_第8张图片
发现在/root/.ssh出现了两个文件
在这里插入图片描述
2、

ssh-copy-id -i /root/.ssh/id_rsa.pub username@ip ##给哪个上锁,ip就为哪个的ip

发现/root/.ssh下生成了一个新文件 authorized_keys
Linux下Openssh服务的安全优化策略_第9张图片
文件authorized_keys和文件id_rsa.pub相同
Linux下Openssh服务的安全优化策略_第10张图片
3、

scp /root/.ssh/id_rsa username@ip:/root/.ssh/ 

示例:把密钥拷贝到客户端
Linux下Openssh服务的安全优化策略_第11张图片
进入发现还是需要输入密码,这是因为配置文件没有修改。
在这里插入图片描述
4、

 vim /etc/ssh/sshd_config ##修改配置文件

示例:进入/etc/ssh/sshd_config
在这里插入图片描述
将yes改为no
在这里插入图片描述
在这里插入图片描述
重启服务
在这里插入图片描述
在客户端的/root/.ssh中出现了id_rsa
在这里插入图片描述
ifconfig eth0 查询验证
Linux下Openssh服务的安全优化策略_第12张图片
注意:
authorized_keys 的名字时,从客户端无法进入服务端。
在这里插入图片描述
在这里插入图片描述

sshd-keygen

ssh-keygen -f /root/.ssh/id_rsa -P ""
-f ##指定文件的名称
-P ##密码

示例:
Linux下Openssh服务的安全优化策略_第13张图片

sshd服务安全优化之修改端口

setenforce 0 (临时生效可以直接用setenforce 0 )
getenforce (检查)
systemctl stop firewalld (关闭火墙)
netstat -antlupe |grep sshd 查看系统的接口
vim /etc/ssh/sshd_config
port 8888 (将系统的端口改为8888)
systemctl restart sshd.service(每改完后都必须执行此操作)

查看当前端口
在这里插入图片描述
修改文件,端口改变。
在这里插入图片描述

sshd安全优化之常用优化参数的设定

改变端口,再次在客户端登陆时,登陆不进去。
在这里插入图片描述

ssh userename@ip -p 8888

并关闭火墙即可
在这里插入图片描述
在这里插入图片描述
固定22端口到指定的ip

ListenAddress ip #ip即为指定的ip

在这里插入图片描述
在这里插入图片描述
关闭root超级用户的登陆
在这里插入图片描述
Linux下Openssh服务的安全优化策略_第14张图片
黑名单(不允许此用户连接)
在这里插入图片描述

白名单(只允许此用户登陆)

在这里插入图片描述
注意:要允许多个用户登陆时,两用户名之间用空格隔开
在这里插入图片描述

你可能感兴趣的:(Linux下Openssh服务的安全优化策略)