CentOS 7 - Securing OpenSSH(二)
文章目录
- Securing OpenSSH
- 6. 在防火墙处过滤 SSH
- 7. 使用公有/私有密钥进行身份认证
- 参考
Securing OpenSSH
上文:CentOS 7 - Securing OpenSSH(一)
6. 在防火墙处过滤 SSH
如果您只需要从一个 IP 地址进行远程访问(比如从工作地址到您的家庭服务器),那么考虑在您的路由器中添加防火墙规则来过滤防火墙上的连接,将访问限制为仅该特定的 IP 地址。
在防火墙服务中使用 rich-rules 来允许 SSH 只在特定的端口上。源地址可以是单个地址,也可以是带位掩码的基址:
# use 'ssh' or 'ssh-custom' depending on which are enabled and available
$ firewall-cmd --permanent --remove-service="ssh"
$ firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="72.232.194.162" service name="ssh-custom" accept'
$ firewall-cmd --reload
SSH also natively supports TCP wrappers and access to the ssh service may be similarly controlled using hosts.allow and hosts.deny.
如果您不能限制源 IP 地址,并且必须全局打开 SSH 端口,那么可以限制其尝试连接的次数:
# use 'ssh' or 'ssh-custom' depending on which are enabled and available
$ firewall-cmd --permanent --remove-service="ssh"
$ firewall-cmd --permanent --add-rich-rule='rule service name="ssh-custom" accept limit value="4/m" log'
$ firewall-cmd --reload
第一个命令删除了更宽松的服务规则,第二个命令设置了一条规则,每分钟只接受 4 个连接,并记录所有连接。
7. 使用公有/私有密钥进行身份认证
使用密钥进行认证有两个主要好处。第一,如果你使用公/私密钥对进行认证,你无需输入密码(除非你使用密码加密密钥对)。第二,一旦在服务器上建立公/私密钥对认证,你可以完全地禁用 SSH 服务的密码认证,这意味着没有已授权的私钥,你将无法获得访问权限 – 因此,就没有密码破解攻击。
创建公/私密钥对并将其安装在使用 SSH 服务的服务器上的步骤是相当简单的。
首先,在你的客户端上创建一个公/私密钥对:
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:pT1KVqS9SdC9MUkCcR1JfRGDS8NhO8dj2G3uR3mbhU0 root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| +++==Bo+o|
| *..O=* +|
| . = .BoBE|
| * o..+*o|
| S = ..*|
| o . . o=|
| . oo|
| .|
| |
+----[SHA256]-----+
- 第 2 行:输入一个文件名,用于保存私钥。如果直接按回车键,则使用默认路径;
- 第 4 行:输入密码,用于加密私钥。如果不提供密码直接按回车键,则每一个使用你的账户的人都可以访问该私有密钥,这是极其危险的;
- 第 5 行:确认上一步骤的密码。
以上操作将在 ~/.ssh
目录中创建两个文件:id_rsa
(私钥)和 id_rsa.pub
(公钥)。
接着,设置 ~/.ssh
目录及私钥的权限:
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_rsa
然后,使用 scp [[user@]host1:]file1 ... [[user@]host2:]file2
命令将公钥复制到服务器上,并将其安装到 authorized_keys
列表:
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
注意:一旦你成功导入公钥,就可以将其删除。
and finally set file permissions on the server:
最后,设置 ~/.ssh
目录及 authorized_keys
列表的权限:
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
如果 /etc/ssh/sshd_config
文件中的 StrictModes
值为 yes
(默认),则以上权限是必须的。
确保正确的 SELinux 环境被设置:
$ restorecon -Rv ~/.ssh
现在,当你登录服务器时,你将不会被提示输入密码(除非你在创建密钥对时输入了密码)。默认情况下,SSH 将首先尝试使用密钥对进行认证。如果没有找到密钥或者认证失败,那么 SSH 将尝试使用密码认证。
一旦你确认使用公/私密钥对能够成功地登录到服务器,你就可以完全地禁用密码认证,只需在 /etc/ssh/sshd_config
文件中添加:
# Disable password authentication forcing use of keys
PasswordAuthentication no
参考
Securing OpenSSH
CentOS 7 - 在两台主机之间复制文件(scp (security copy))
CentOS 7 - Securing OpenSSH(二)相关推荐
- CentOS工作内容(二)关闭SELinux
CentOS工作内容(二)关闭SELinux CentOS安装完成后,有很多配置要改,不过最重要就是关闭SELinux SELinux是增强安全性的一项功能,不是SELinux不好,而是当功能安全性较 ...
- Linux学习之centOs的安装(二)
Linux学习之centOs的安装(二) 一般步骤笔记本上已经标注,另外详细解说:NETWORK和HOSTNAME部分 1.配置本身固定ip地址: 双击NETWORK & HOSTNAME,打 ...
- [官版翻译]OpenStack centos版安装(二)
2019独角兽企业重金招聘Python工程师标准>>> 原创作品:http://manual.blog.51cto.com/3300438/967858 在OpenStack第一天文 ...
- centos常用命令_二、Docker镜像是什么?Docker常用命令
科技奇闻 关注让你我共同进步 文章来源:CSDN 作者:IronmanJay Docker常用命令 1.帮助命令 docker version #查看版本号docker info #显示D ...
- centos 管理记录(二)
2019独角兽企业重金招聘Python工程师标准>>> 以下操作均为root账户 更新yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo h ...
- centos 6.7 openssh 升级到openssh 7.1p
openssh 升级主要解决: OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组所维护的一套用于安全访问远程计算机的连接工具.该工具是SSH协议的开源实现,支持对所有的 ...
- CentOS下升级openssh版本
前言 CentOS 6.x 和 7.x 的断裂带来很多麻烦,习惯SysV下面的init.d脚本后,转systemd很不适应,之前还花了点时间学systemd,但是可能是年龄大了,老是记不住命令,以后还 ...
- CentOS 初体验十二:wget下载文件
转载请注明出处http://blog.csdn.net/zhaoyanjun6/article/details/79108129 本文出自[赵彦军的博客] wget命令 wget命令用来从指定的URL ...
- linux怎么卸载fastdfs,FastDFS5.10卸载,centos卸载FastDFS(二)
由于FastDFS软件并未提供直接的一键卸载,所以卸载有点麻烦,FastDFS卸载步骤如下: 注意:所有删除操作请务必先查看是否存在文件文件是否为FastDFS相关 1) 停止服务 [root@bog ...
- CentOS minimal笔记(二):安装Qualcomm Atheros AR8161 Gigabit Ethernet网卡驱动
上一篇是在visual box上装的,然后我在我的笔记本上也装了,悲剧又开始了. 和在虚拟机上装不同,虚拟机上虚拟的网卡驱动已经装好了,而我的电脑就需要自己找驱动了. 首先进系统我就去找ifcfg-e ...
最新文章
- erlang 二进制
- Django的学习需要掌握的一些基础和初步搭建自己的框架
- IDEA同时使用maven和gradle
- 多所高校通知:暂缓返校
- linux:根据关键字或日期查找日志
- python画轮廓_python 分割 画图像的轮廓 - 程序园
- 超252万市民预约报名 北京数字人民币红包中签结果公布啦
- 如何解决大量的if语句或switch case语句?
- 你可能需要为你的 APP 适配 iOS 11
- Android开机启动Activity或者Service方法
- VC2010 编译 Media Player Classic - Home Cinema (mpc-hc)
- 常用的python内置方法
- paip.提升性能----java 无锁结构(CAS, Atomic, Threadlocal, volatile, 函数式编码, 不变对象)
- freeswitch+kamailio+unimrcp
- c语言程序设计读书心得,高质量的c语言编程读后感
- 【设计模式】职责链模式,MySQL+Tomcat+JVM,看完还怕面试官
- VINS-Mono学习(四)——回环检测与重定位
- python json库安装_python-安装simplejson后没有名为“ json”的模块
- oppor9桌面布局设置_oppor9添加桌面图标
- win10系统输入法图标不见了怎么找回