一、openssh服务器
1.1ssh协议
-
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能;
-
SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令;
-
SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。
-
SSH客户端<--------------网络---------------->SSH服务端
-
数据传输是加密的,可以防止信息泄漏
-
数据传输是压缩的,可以提高传输速度
1.2openssh
- openssH 是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统。
- Centos 7系统默认已安装openssh相关软件包,并已将 sshd 服务添加为开机自启动。
- 执行”systemctl start sshd”命令即可启动 sshd 服务
- sshd 服务默认使用的是TCP的 22端口
- sshd 服务的默认配置文件是/etc/ssh/sshd_config
- ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于前者是针对客户瑞的配置文件,后者则是针对服务端的配置文件。
客户端常用的ssh连接软件
-
Linux Client: ssh, scp, sftp,slogin ,
-
Windows Client:xshell, MobaXterm,putty, securecrt ,telnet
-
服务名称 : sshd
-
服务端主程序: /usr/sbin/sshd
-
服务端配置文件 : /etc/ssh/sshd_config
-
客户端配置文件: /etc/ssh/ssh_config
二、配置openssh服务端
2.1sshd_config配置文件的常用选项
vim /etc/ssh/sshd config
Port 22 #监听端口为 22
ListenAddress 0.0.0.0 #监听地址为任意网段,也可以指定openSSH服务器的具体IP
LoqinGraceTime 2m #登录验证时间为 2 分钟
PermitRootLoqin no #禁止: root 用户欲录
MaxAuthTries 6 #最大重试次数为 6
PexmitEmptyPasswords no #禁止空密码用户录
UseDNs no #禁用 DNS 反向解析,以提高服务器的响应速度
PubkeyAuthentication yes #开启密钥对验证
二、设置白名单与黑名单的两种方法
2.1方法一:修改sshd_config文件
- Allowusers 添加白名单
- DenyUsers添加黑名单
- 白名单与黑名单不可以同时使用
白名单
黑名单
2.2方法二:设置TCP Wrappers访问策略
2.2.1TCP Wrappers保护机制的方式
- 由其他网络服务程序调用 libwrap.so.*链接库,不需要运行 tpd 程序。此方式的应用更加泛,也更有效率。
- 使用 ldd 命令可以查看程序的 ibwrap.so.*链接库Idd $(which ssh)
2.2.2访问策略
- TCP Wrappers 机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。
- 对应的两个策略文件为/etc/hosts.allow 和/etc/hosts.deny,分别用来设置允许和拒绝的策略
2.2.3格式
- <服务程序列表>:<客户端地址列表>
(1) 服务程序列表 - ALL:代表所有的服务。
- 单个服务程序:如”vsftpd”
- 多个服务程序组成的列表: 如rvsftpd,sshd"。
(2)客户端地址列表
- ALL:代表任何客户端地址。
- LOCAL:代表本机地址。
- 多个地址以逗号分隔
- 允许使用通配符 “*”和“?”,前者代表任意长度字符,后者仅代表一个字符
- 网段地址,如“192.168.80.” 或者 192.168.80.0/255.255.255.0
2.24设置白名单与黑名单
查看哪些tcp服务可以被wrappers保护
- Idd $(which ssh)
白名单
- 黑名单相反即可,TCP Wrappers会先读取allow文件,如果有则直接允许通过,然后在读取deny文件,如果有则拒绝访问,如果都没有则允许通过
三、scp、sftp服务
3.1scp远程复制
下行复制:将远程主机中的文件复制到本机
上行复制
注:复制目录要加-r,加端口号要加-P ,如果有同名文件会直接覆盖不提醒
3.2sftp 远程文件传输协议
- 由于使用了加密/解密技术,所以传输效率比普通的FTP要低,但安全性更高。操作语法sftp与ftp几乎一样。
sftp> ls
sftp> get 文件名 #下载文件到ftp目录
sftp> put 文件名 #上传文件到ftp目录
sftp> quit #退出
四、配置密钥对验证
(1)在客户端创建密钥对
ssh-keygen -t rsa
-t指定算法类型
(2)把公钥文件发送给服务端主机,即可完成密钥验证登录
ssh-copy-id -i id_rsa.pub dn@192.168.243.99
# ssh-copy-id 可以指定在指定用户的家目录中生成公钥文件的目录和文件,并且目录权限700,文件权限600,只有这样密钥验证才能使用
# -i 指定公钥文件
(3)客户端主机即可通过密钥验证登录,无需输出密码,密钥验证时一对一的,安全性比密码登录更高
4.2无交互式密钥登录的种方法
方法一:
- 在生成密钥文件时设置私钥密码为空即可完成免交互登录
方法二:
通过创建ssh会话代理 (只在当前会话有效)
ssh-agent bash
ssh-add