SSH协议1.SSH协议1 .概述2、SSH的好处3、 SSH客户端和服务端2.OpenSSH协议1 .概念2.OpenSSH服务端配置3.AllowUsers和DenyUsers4.sshd服务器两种验证方式1 .密码验证2. scp远程复制3 配置errs per保护机制的两种实现方式2.TCP Wrappers的访问策略3.TCP Wrappers机制的基本原则
一. SSH协议1 .概述
安全shell (ssh )是一种安全通道协议,主要用于实现字符界面的远程登录、远程复制等功能。
SSH协议加密通信双方的数据传输,包括用户登录时输入的用户密码。 因此,SSH协议具有很好的安全性。
2、SSH的优点数据传输已加密,可以防止信息泄露() (安全) )。
数据传输经过压缩,可以提高传输速度。(
3、SSH客户端和服务端SSH客户端: Putty、Xshell、CRT
SSH服务端: OpenSSH
二. OpenSSH协议1 .概念OpenSSH 是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统。
CentOS 7系统默认安装了与openssh相关的软件包,并添加了sshd服务以在启动时自动启动。 openssh的服务名称为sshd )
可以通过运行“系统开始sshd”命令启动sshd服务
sshd服务默认使用TCP的22个端口
对于shd服务的默认配置文件,/etc/ssh/sshd_configssh_config和sshd_config都是ssh服务器的配置文件ssh_config是客户端的配置文件
显示OpenSSH服务器端配置sshd_config配置文件的常规选项vim /etc/ssh/sshd_configPort 22 #监听端口为22ListenAddress 0.0.0.0 # OpenSSH服务器具体IPLoginGraceTime 2m #登录认证时间2分钟禁止permitrootloginno#root用户登录MaxAuthTries 6 #最大重试次数6 permitemptypasswords
3.AllowUsers和DenyUsers AllowUsers用户1用户2#只有可以登录的用户,多个用户只有DenyUsers用户1 #用户禁止登录禁止张San、lisi和wangwu用户只能从IP地址为10.0.0.2的主机远程登录到AllowUsersZhangsanLisiWangWu。 10.0.0.2某些用户已被禁止登录,其用法与allowusers相似。 (请注意不要同时使用。 ) DenyusersLideers
4.sshd服务的两种认证方式(1)密码验证
验证服务器中本地系统用户的登录名和密码。 虽然简单,但有可能被暴力解读(和上面的许可测试一样) )。
(2)密钥对验证
要通过认证,必须输入匹配的密钥信息。 通常,在客户端创建一对密钥文件(公钥、私钥),并将公钥文件放在服务器中的指定位置。 远程登录时,系统使用公钥、私钥进行加密/解密相关的验证。 增强了安全性,不需要交互式登录。
如果同时启用了密码和密钥对验证,则服务器将优先使用密钥对验证。 可以根据情况设定验证方式。
vim/etc/ssh/sshd _ configpasswordauthenticationyes #启用密码验证PubkeyAuthentication yes #启用密钥对验证authorizedkeysfile.SSE
1 .在ssh客户端程序中设置密码验证
1 ) ssh远程登录
SSH [可选]当] zhangsan@192.168.133.13用户首次登录到ssh服务器时,必须根据提示接受输入“yes”的服务器的ECDSA密钥。 接收到的密钥信息保存在~/.ssh/known_hosts文件中。 如果密码验证成功,则可以登录到目标服务器的命令行环境。 -p :指定默认以外的端口号。 默认情况下,使用22个端口的ssh-p 20张San @ 192.168.133.13 #访问192.168.163.10
p> 2. scp 远程复制 #从服务器上下载scp root@192.168.133.20:/etc/passwd /root/passwd10.txt#将远程主机中的/etc/passwd文件复制到本机#向服务器传输资料scp -r /root/123/ root@192.168.133.10:/opt#将本机的/root/123 目录复制到远程主机下行复制:将远程主机的/etc/passwd文件复制到本机
scp root@192.168.133.20:/etc/passwd /root/passwd10.txt
上行复制:将本机的/etc/ssh目录复制到远程主机
[root@localhost ~]# scp -r /etc/passwd root@192.168.133.20:/opt
3.sftp安全FTP由于使用了加密/解密技术,所以传输效率比普通的FTP要低,但安全性更高。操作语法sftp与ftp几乎一样。
sftp zhangsan@192.168.133.20zhangsan@192.168.133.20 password: #输入密码Connected to 192.168.133.20.sftp> pwdsftp> lssftp> get 文件名#下载文件到登录前账号的家目录,文件要加-rsftp> put 文件名#上传文件到登录者的家目录,文件加-rsftp> quit#退出
上传:
1)在客户端创建密钥对
通过ssh-keygen工具为当前用户创建密钥对文件。可用的加密算法为RSA、ECDSA或DSA等(ssh-keygen命令的“-t”选项用于指定算法类型)。useradd becho "123456" |passwd --stdin bsu - bssh-keygen -t ecdsaGenerating public/private ecdsa key pair.Enter file in which to save the key (/home/admin/.ssh/id_ecdsa): #指定私钥位置,直接回车使用默认位置Created directory '/home/admin/.ssh'.#生成的私钥、公钥文件默认存放在宿主目录中的隐藏目录.ssh/下Enter passphrase (empty for no passphrase): #设置私钥的密码Enter same passphrase again: #确认输入ls -l .ssh/id_ecdsa#id_ecdsa是私钥文件,权限默认为600;id_ecdsa.pub是公钥文件,用来提供给 SSH 服务器1.在客户机创建b用户:
然后在客户端创建新用户a与b进行配置密钥对
方法一:此方法可直接在服务器的/home/zhangsan/.ssh/目录中导入公钥文本
cd ~/.ssh/
ssh-copy-id -i id_ecdsa.pub zhangsan@192.168.133.20
方法二:
客户端:先将公钥文件复制都服务端
scp ~/.ssh/id_ecdsa.pub root@192.168.133.20:/opt
服务端:
mkdir /home/zhangsan/.ssh/ #在zhangsan的家目录下创建.ssh文件,没有这个文件的需要创建
cat /tmp/id_ecdsa.pub >> /home/zhangsan/.ssh/authorized_keys
#将复制来的公钥文件导入到authorized_keys中(没有authorized_keys会自动创建)
cat /home/zhangsan/.ssh/authorized_keys #查看authorized_keys文件
cd ~/.ssh/
ssh-copy-id -i id_ecdsa.pub zhangsan@192.168.80.10
2.在客户端使用密钥对验证
ssh b@192.168.133.20b@192.168.133.20 password: #输入私钥的密码
3.在客户机设置ssh代理功能,实现免交互登录
ssh-agent bashssh-add Enter passphrase for /home/a/.ssh/id_ecdsa: #输入私钥的密码Identity added: /home/a/.ssh/id_ecdsa (/home/a/.ssh/id_ecdsa)ssh b@192.168.133.20Last login: Sun Dec 13 13:32:47 2020 from 192.168.133.13 三.TCP Wrappers 访问控制TCP Wrappers 像一个防护罩一样,保护着TCP服务程序,它代为监听TCP服务程序的端口,为其增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。
大多数 Linux 发行版,TCP Wrappers 是默认提供的功能。
使用“rpm -q tcp_wrappers”安装
直接使用 tcpd 程序对其他服务程序进行保护,需要运行 tcpd程序。
由其他网络服务程序调用 libwrap.so.*链接库,不需要运行 tcpd 程序。此方式的应用更加广泛,也更有效率。
使用 ldd 命令可以查看程序的 libwrap.so.*链接库
ldd $(which ssh vsftpd)
2.TCP Wrappers 的访问策略TCP Wrappers 机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。
对应的两个策略文件为/etc/hosts.allow 和/etc/hosts.deny,分别用来设置允许和拒绝的策略。
格式:
<服务程序列表>:<客户端地址列表>
(1)服务程序列表
ALL:代表所有的服务。单个服务程序:如“vsftpd”。多个服务程序组成的列表:如“vsftpd,sshd”。(2)客户端地址列表
ALL:代表任何客户端地址。LOCAL:代表本机地址。多个地址以逗号分隔允许使用通配符 “?” 和 “*” “*”代表任意长度字符 “?”仅代表一个字符网段地址,如 192.168.163. 或者 192.168.163.0/255.255.255.0区域地址,如 “.benet.com”匹配 bdqn.com 域中的所有主机。 3.TCP Wrappers 机制的基本原则首先检查/etc/hosts.allow文件,如果找到相匹配的策略,则允许访问;
否则继续检查/etc/hosts.deny文件,如果找到相匹配的策略,则拒绝访问;
如果检查上述两个文件都找不到相匹配的策略,则允许访问。
若只希望从IP地址为12.0.0.1的主机或者位于192.168.133.0/24网段的主机访问sshd服务,其他地址被拒绝。
vi /etc/hosts.allowsshd:12.0.0.1,192.168.133.*vi /etc/hosts.denysshd:ALL