SSH远程管理和tcp wappers

一、SSH远程管理

SSH (Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。
SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH 协议具有很好的安全性。
网络
SSH客户端 <-------------------------------------------------------------------------------------->SSH服务端
数据传输是加密的,可以防止信息泄漏
数据传输是压缩的,可以提高传输速度

SSH客户端:Putty、 xshell、CRT
SSH服务端:OpenSSH

OpenSSH 是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统。Centos 7系统默认已安装 OpenSSH 相关软件包,并已将 sshd 服务添加为开机自启动。执行 “systemctl start sshd” 命令即可启动sshd服务。
sshd服务默认使用的是 TCP的22端口
sshd服务的默认配置文件是 /etc/ssh/sshd _config

二,ssh原理

2.1公钥传输原理

客户端发起链接请求,服务端返回自己的公钥,以及一个会话id,而客户端生成密钥对用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密,发送加密后的值到服务端,服务端用私钥解密,得到Res。

,服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥) 最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都 会被加密。

对称加密

1、概念:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,其速度快,用法:消息发送方需要加密大量数据时使用

2、常用算法:在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。

3、特点

1、加密方和解密方使用同一个密钥

2、加密解密的速度比较快,适合数据比较长时的使用

3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦

4、优缺点 对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。 对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担

非对称加密

1、概念

非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

2、常用算法

RSA(RSA algorithm):目前使用最广泛的算法 DSA(Digital Signature Algorithm):数字签名算法,和 RSA 不同的是 DSA 仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快 ECC(Elliptic curve cryptography,椭圆曲线加密算法) ECDSA:Elliptic Curve Digital Signature Algorithm,椭圆曲线签名算法,是ECC和 DSA 的结合,相比于RSA算法,ECC 可以使用更小的秘钥,更高的效率,提供更高的安全保障

3、原理

首先ssh通过加密算法在客户端产生密钥对(公钥和私钥),公钥发送给服务器端,自己保留私钥,如果要想连接到带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下

5、优缺点

相比于对称加密技术,非对称加密技术安全性更好,但性能更慢。

此本次实验中,我们用非对称加密算法ECDSA进行加密,为了方便用root用户,也可给其他普通用户配置

二,登陆

方法一:

ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p port

 方法二:

ssh -l [远程主机用户名] [远程服务器主机名或IP 地址] -p port
-l :-l 选项,指定登录名称。
-p:-p 选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)

 三,服务端配置

1常用配置项:

vim /etc/ssh/sshd_config 

Port    22    #生产建议修改
ListenAddress ip
LoginGraceTime 2m
PermitRootLogin yes #默认ubuntu不允许root远程ssh登录
StrictModes yes   #检查.ssh/文件的所有者,权限等
MaxAuthTries   6  #pecifies the maximum number of authentication 
                  # ssh -o NumberOfPasswordPrompts=8root@192.168.91.100需要配合这个选                     项一起使用
attempts permitted per connection. Once the number of failures reaches half this 
value, additional failures are logged. The default is 6.
MaxSessions  10         #同一个连接最大会话
PubkeyAuthentication yes     #基于key验证
PermitEmptyPasswords no      #空密码连接
PasswordAuthentication yes   #基于用户名和密码连接
GatewayPorts no
ClientAliveInterval 10 #单位:秒
ClientAliveCountMax 3 #默认3
UseDNS yes #提高速度可改为no
GSSAPIAuthentication yes #提高速度可改为no
MaxStartups    #未认证连接最大值,默认值10
Banner /path/file
#以下可以限制可登录用户的办法:白名单  黑名单
AllowUsers user1 user2 user3@ip(限制主机)
DenyUsers user1 user2 user3
AllowGroups g1 g2
DenyGroups g1 g2

ssh服务的最佳实践:禁止使用非默认的端口,禁止使用protocol version 1,限制可登陆用户,设定空闲会话超时时长,利用防火墙设置ssh访问策略,仅监听特定的IP地址,基于口令认证时,使用强密码策略,使用基于密钥的认证,禁止使用空密码,禁止root用户直接登录,限制ssh的访问频度和并发在线数,经常分析日志。

四,ssh客户端

scp命令 —— 远程安全复制

sftp命令 —— 安全FTP上下载

五,TCP Wrappers

(一)、TCP Wrappers 访问控制 也称 TCP Wrappers (TCP封套)
将TCP服务程序”包裹" 起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序
大多数Linux发行版, TCP Wrappers 是默认提供的功能。

rpm -q tcp_wrappers

(二)TCP wrappers 保护机制的两种实现方式
1、直接使用 tcpd程序 对其他服务程序进行保护,需要运行tcpd程序。
2、由其他网络服务程序调用 libwrap.so.* 链接库,不需要运行tcpd程序。此方式的应用更加广泛,也更有效率。

使用 ldd $ (which ssh) 来查看ssh 这个程序文件的相关的 libwrap.so.*链接库,当使用该命令查找到相关的链接库文件后就说明ssh 可以使用 TCP Wrappers 的功能。

(三)、TCP Wrappers的访问策略
TCP Wrappers机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。对应的两个策略文件为 /etc/hosts.allow 和 /etc/hosts.deny 分别用来设置允许和拒绝的策略。

六,轻量级自动化运维工具pssh

EPEL源中提供了多个自动化运维工具

-H:主机字符串,内容格式”[user@]host[:port]” 
-h file:主机列表文件,内容格式”[user@]host[:port]” 
-A:手动输入密码模式
-i:每个服务器内部处理信息输出
-l:登录使用的用户名
-p:并发的线程数【可选】
-o:输出的文件目录【可选】
-e:错误输出文件【可选】
-t:TIMEOUT 超时时间设置,0无限制【可选】
-O:SSH的选项
-P:打印出服务器返回信息
-v:详细模式
--version:查看版本

七,总结

学习了ssh需要重点掌握,在以后生产环境中使用较为频繁。


版权声明:本文为m0_60353617原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。