Quantcast
Channel: CodeSection,代码区,Linux操作系统:Ubuntu_Centos_Debian - CodeSec
Viewing all articles
Browse latest Browse all 11063

OpenSSH的应用和利用OpenSSL创建私有CA签证给httpd服务器开起https

$
0
0
一、OpenSSH

OpenSSH与SSH协议是远程登录的首选连接工具。它加密所有流量,以消除窃听,连接劫持和其它攻击。OpenSSH常常被误认以为与OpenSSL有关系,但实际上这两个项目的有不同的目的,不同的发展团队,名称相近只是因为两者有同样的软件发展目标──提供开放源代码的加密通讯软件。

OpenSSH的套件包括以下工具:

远程操作使用SSH,SCP,和SFTP。

密钥管理ssh-add, ssh-keysign, ssh-keyscan和ssh-keygen

服务端组成sshd,SFTP服务器和ssh-agent的。

OpenSSH的功能:

具有完全的开源项目

OpenSSH的源代码是免费提供给通过互联网大家。这鼓励代码重用和代码审核。代码审查,以确保该漏洞可以被发现和被任何人纠正。这导致的安全密码。OpenSSH的不受任何限制的许可证。它可以用于任何和所有目的,并且明确包括商业用途。该许可证包括在分布。我们觉得这个世界会更好,如果路由器,网络设备,操作系统,和所有其他的网络设备已经SSH集成到他们。限制性性质(即专利)的所有成分被从源代码移除。任何许可或专利的组件从外部库(如选择LibreSSL)。

强大的加密(AES,ChaCha20,RSA,ECDSA,Ed25519 …)

加密身份验证之前启动,没有密码或其他信息以明文传输。加密也可用于防止欺骗的包。许多不同的密码和密钥类型可供选择,和传统的选项通常在合理时间内逐步淘汰。

X11转发(也加密X窗口系统的流量)

X11转发允许远程X窗口的流量进行加密,使没有人可以窥探您的远程xterm终端或插入恶意命令。该程序会自动设置服务器计算机上显示,并转发了安全通道的X11连接。假XAUTHORITY信息自动生成并转发到远程机器;本地客户端会自动检查传入X11连接,并取代与真实数据(从不告诉远程计算机中的真实信息)假授权数据。

端口转发(对于传统协议加密频道)

端口转发允许通过加密通道TCP / IP连接到远程计算机上的转发。像POP不安全的互联网应用程序可以用此来保护。

强大的身份验证(公共密钥,一次性密码)

强大的身份验证可以防止一些安全问题:IP欺骗,伪造路线和DNS欺骗。一些身份验证方法包括公共密钥认证,具有S /键一次性密码和验证使用Kerberos(仅适用于 便携式)。

代理转发

一个认证代理,在用户的笔记本电脑或本地工作站上运行,可用于容纳用户的认证密钥。OpenSSH的自动转发过任何连接到验证代理的连接,并且也没有必要存储该网络(除了用户自己的本地机)中的任何计算机上的认证密钥。该认证协议绝不泄露密钥;它们只能用于验证用户的代理具有一定的键。最终,该代理可依靠在智能卡上执行所有验证计算。

互通性

实施之间的互操作性是一个目标,但不是一个承诺。由于OpenSSH的开发的进展,对 已知 旧协议的 弱点 ,加密算法,密钥类型和其他选项例行禁用。

SFTP客户端和服务器支持在这两个SSH1及SSH2协议

由于OpenSSH的2.5.0,完全支持SFTP包括,使用SFTP命令作为客户端。在SFTP服务器子系统自动工作在两个SSH1及SSH2协议。

可选的数据压缩

加密之前数据压缩提高低速网络链路的性能。

1、ssh客户端 ssh:Secure Shell创建在应用层和传输层基础上的安全协议

配置文件为:/etc/ssh/ssh_config

[root@localhost ssh]# vim /etc/ssh/ssh_config
# $OpenBSD: ssh_config,v 1.28 2013/09/16 11:35:43 sthen Exp $
# This is the ssh client system-wide configuration file. See
# ssh_config(5) for more information. This file provides defaults for
# users, and the values can be changed in per-user configuration files
# or on the command line.
# Configuration data is parsed as follows:
# 1. command line options
# 2. user-specific file
# 3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end.
# Site-wide defaults for some commonly used options. For a comprehensive
# list of available options, their meanings and defaults, please see the
# ssh_config(5) man page.
Host *
#选项“Host”只对能够匹配后面字串的计算机有效。“*”表示所有的计算机。
ForwardAgent no
#“ForwardAgent”设置连接是否经过验证代理(如果存在)转发给远程计算机。
ForwardX11 no
#“ForwardX11”设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set)。
RhostsAuthentication no
#“RhostsAuthentication”设置是否使用基于rhosts的安全验证。
RhostsRSAAuthentication no
#“RhostsRSAAuthentication”设置是否使用用RSA算法的基于rhosts的安全验证。
RSAAuthentication yes
#“RSAAuthentication”设置是否使用RSA算法进行安全验证。
PasswordAuthentication yes
#“PasswordAuthentication”设置是否使用口令验证。
FallBackToRsh no
#“FallBackToRsh”设置如果用ssh连接出现错误是否自动使用rsh。
UseRsh no
#“UseRsh”设置是否在这台计算机上使用“rlogin/rsh”。
BatchMode no
#“BatchMode”如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止。当不能交互式输入口令的时候,这个选项对脚本文件和批处理任务十分有用。
CheckHostIP yes
#“CheckHostIP”设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为“yes”。
StrictHostKeyChecking no
#“StrictHostKeyChecking”如果设置成“yes”,ssh就不会自动把计算机的密匙加入“$HOME/.ssh/known_hosts”文件,并且一旦计算机的密匙发生了变化,就拒绝连接。
IdentityFile ~/.ssh/identity
#“IdentityFile”设置从哪个文件读取用户的RSA安全验证标识。
Port 22
#“Port”设置连接到远程主机的端口。
Cipher blowfish
#“Cipher”设置加密用的密码。
EscapeChar ~
#“EscapeChar”设置escape字符。

在这个配置文件中,我们一般只修port的端口,因为默认端口很容易受到攻击,ssh的默认端口为22号端口

如果我要登录某ssh服务器则直接使用ssh username@host然后按照提示输入密码即可

[root@localhost ssh]# ssh root@172.16.11.55
[root@localhost ssh]# ssh root@172.16.11.55
root@172.16.11.55's password:
Last login: Thu Apr 14 02:04:55 2016 from 172.16.7.211 ssh密钥认证登录 #生成密钥对
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
#这里询问你要把生成的密钥文件保存在哪里,默认是在家目录下的.ssh文件夹中,回车保存默认目录
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
#这里是对密钥文件加密,不输入则表示不加密
Enter passphrase (empty for no passphrase):
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:
04:9f:cb:9c:9d:1e:47:d7:e1:d4:c1:87:71:c3:a4:22 root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| . =O+|
| o . ===|
| +E .....o|
| + +.o.. |
| S + . |
| . o |
| . |
| |
| |
+-----------------+
#已经成功生成了一对密钥
[root@localhost ~]# ls /root/.ssh
id_rsa id_rsa.pub
#其中id_rsa为私钥,id_rsa.pub为公钥
#在生成完密钥对之后将公钥上传给服务器对应用户的家目录
[root@localhost ~]# ssh-copy-id -i .ssh/id_rsa.pub root@172.16.9.9
The authenticity of host '172.16.9.9 (172.16.9.9)' can't be established.
ECDSA key fingerprint is 63:b9:6d:20:f0:22:b2:21:44:26:91:03:97:21:ff:b7.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@172.16.9.9's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@172.16.9.9'"
and check to make sure that only the key(s) you wanted were added.
#第一次输入密码后回车就上传成功了
然后尝试登录
[root@localhost ~]# ssh 172.16.9.9
Last login: Tue Mar 22 10:01:02 2016 from 172.16.7.211
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:83:15:cb brd ff:ff:ff:ff:ff:ff
inet 172.16.9.9/16 brd 172.16.255.255 scope global eno16777728
valid_lft forever preferred_lft forever
#可以看出不需要密钥就成功登录到了172.16.9.9这台服务器上了 在windows中使用密钥登录对应的服务器

这里我使用Xshlle


OpenSSH的应用和利用OpenSSL创建私有CA签证给httpd服务器开起https
OpenSSH的应用和利用OpenSSL创建私有CA签证给httpd服务器开起https
OpenSSH的应用和利用OpenSSL创建私有CA签证给httpd服务器开起https
OpenSSH的应用和利用OpenSSL创建私有CA签证给httpd服务器开起https

这里的密码是对密钥加密的,不加密直接点下一步


OpenSSH的应用和利用OpenSSL创建私有CA签证给httpd服务器开起https

这里显示的就是公钥,点保存为文件,也可以直接复制


OpenSSH的应用和利用OpenSSL创建私有CA签证给httpd服务器开起https

之后关闭

然后登录对应服务器,进入家目录下的.ssh/文件

[root@localhost ~]# cd /root/.ssh/
[root@localhost .ssh]# ls
authorized_keys known_hosts

编辑authorized_keys文件

[root@localhost .ssh]# vim authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoYslgClb39L0aPM8II18VBMG/pBHOR5kMKBAq6+9MQFCvOsIqS0tNEFPkbCQaIkKyZahRpdOP4FSgWOmX18uuLqG1MZT/FoAKGV4tJzKwcGpMjfTJVxhMVW+mUi4sxzF2atl8q0SmvzqnJHD5Sg6T2mlV0TC+xdbB5Q/ucFZAiflLkVfSEMBjzvJZTHe8QCLFS358xHKOzv4jfnaZVnsIpZ/LArzy/Y/hvPoamWSg794XlqEuascwPGkLq6VYbltT24gEy89/lAJfK4vXRrZjVmCvfkU98X8oe5wQRxNrPDWPsWO0tBYCt2/LTx+1na5WOYPIxeo3tAZ5LYbRD5Kn root@localhost.localdomain
#这是之前的公钥,可以将刚才的公钥复制粘贴在这之后
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr44c56Hx0dGCj1RTm7JoQkJn1P77y89IHG1S34onqmq/M0RpFn/rzjmxPgXiGS4FUr7LuPl0wLzczm29tTDGv8vkaeLcUeT9yz5pPh1NFNJKyBGNZ+6XQzx

Viewing all articles
Browse latest Browse all 11063

Trending Articles