Openssh的服务安全优化
1.sshd简介
SSH是secure shell的缩写,是应用层的安全协议。SSH是目前比较可靠,专为远程登陆会话和其他网络服务提供安全性的协议,利用SSH协议可以有效防止远程管理过程中的信息泄露问题
连接方式:
ssh username@ip ##文本模式的连接
ssh -X username@ip ##图形模式的连接
注意:
第一次连接陌生主机要建立认证文件
所以会询问是否建立 需要输入yes
再次连接此主机时 因为已经生成~/.ssh/know_hosts文件 所以不需要再次输入yes
2.如何实现远程连接
step1 查看真机ip地址
输入:
ifconfig ##查看本机ip地址
step2 打开虚拟机 设置ip
输入:
nm-connection-editor ##打开网卡设置界面
Delete(删除原来的网卡)- - ->>>Add(添加新的网卡)- - ->>>Ethernet- - ->>>选择(eth0)- - ->>>IPv4 Settings- - ->>>填写Address(用本机ip的子网)- - ->>>填写Netmask- - ->>>点一下Gateway- - ->>>Save
step3 检测是否连接成功
输入
ping IP ##ip为本机的ip地址
step4 修改主机名
输入
hostnamectl set-hostname node1.westos.com ##修改主机名为node1
step5
输入
rm -rf /root/.ssh/ ##删除root下.ssh文件内容
3.虚拟机硬件出问题时的解决
在虚拟机中进行远程连接时,进行上面的操作后并不能连接成功,此时就说明是虚拟机的硬件出了问题。
解决方法(在真机中操作)
1.切换到超级用户
2.用virt-manager 命令打开虚拟机控制器
3.选择对应的虚拟机
4.点灯泡 删除错误的网卡–>>Add Hardware 添加新的网卡(选择virtio)
4.sshd的key认证
1.生成认证key
ssh-keygen ##生成密钥
(直接按回车把保存的文件和密码设置成默认的)
/root/.ssh/id_rsa ##私钥(钥匙)
/root/.ssh/id_rsa.pub ##公钥(锁)
2.加密服务
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.70.150 ##加密sshd服务
上图中文件生成 表示加密成功
3.关闭密码认证
vim /etc/ssh/sshd_config ##打开配置文件(在78行把yes改成no)
4.重启服务
systemctl restart sshd.service ##重启服务的命令
5.分发钥匙
scp /root/.ssh/id_rsa root@172.25.70.50:/root/.ssh/ ##分发钥匙的命令
6.测试
在客户主机中(172.25.70.50)
ssh root@172.25.70.150 (连接时发现直接登陆,不需要root登录系统的密码认证)
7.更改加密文件
mv authorized_keys authorized_lins ##更改加密文件名为authorized_lins
此时用客户主机连接ssh root@172.25.70.150时又会出现"Permission denied"无法连接的情况
注意:
1.更改加密文件可以达到什么时候想让谁登陆就让他登陆,什么时候不让谁登陆就不让他登陆的效果,使系统更安全。
2.想让该客户端登陆时,将文件名改回authorized_keys即可
5.修改网络的端口
setenforce 0
systemctl stop firewalld ##关闭火墙
netstat -antlupe | grep sshd ##查看端口数字
vim /etc/ssh/sshd_config ##打开配置文件(在文件的17行修改端口数字)
systemctl restart sshd.service ##重启服务
netstat -antlupe | grep sshd ##查看端口数字
测试:
在客户主机中(172.25.70.50)
ssh root@172.25.70.150 (显示无法连接22端口)
ssh root@172.25.70.150 -p 666 (连接成功)
6.sshd的安全设定
vim /etc/ssh/sshd_config ##打开配置文件
在该文件中修改:
设定可连接的 ip ListenAddress ip
超级用户能否登陆 PermitRootLogin yes|no
黑名单 DenyUsers
白名单 AllowUsers
注意:
1.每次打开配置文件进行设置后,必须用systemctl restart sshd.service重启服务,设定才会生效
2.在配置文件中修改某一项内容时,要将该行最前面的#(说明)删除
3.黑名单和白名单可设置多个用户,中间用空格隔开即可
4.白名单的安全系数最高