1、SSH 简介
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复
制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用
户口令,语 TELNET(远程登录)等应用相比,SSH 协议提供了更好的安全性。
默认监听端口:TCP 22
2、OpenSSH 安装包
默认安装 Linux 系统时自动安装,若未安装,安装光盘中的如下 rpm 包:
openssh-5.3p1-94.el6.x86_64.rpm
openssh-askpass-5.3p1-94.el6.x86_64.rpm
openssh-clients-5.3p1-94.el6.x86_64.rpm
openssh-server-5.3p1-94.el6.x86_64.rpm
- 服务名称:sshd
- 服务端主程序:/usr/sbin/sshd
- 服务端配置文件:/etc/ssh/sshd_config
- 客户端配置文件:/etc/ssh/ssh_config
3、服务端OpenSSH配置
#Port 22 //默认端口号TCP22
#AddressFamily any //指定地址簇,any、inet(ipv4)、inet6(ipv6)
#ListenAddress 0.0.0.0 //监听IP地址
Protocol 2 //使用ssh协议第二版
#LoginGraceTime 2m //等待登录时长
#PermitRootLogin yes //默认允许root登录
#StrictModes yes //接受连接请求前对用户目录和权限进行宿主化和权限检查
#MaxAuthTries 6 //最大认证次数
#MaxSessions 10 //每个网络允许打开最大会话的最大数量
#PubkeyAuthentication yes //启用密钥对验证
AuthorizedKeysFile .ssh/authorized_keys //指定公钥库位置
#PermitEmptyPasswords no //不允许空密码用户登录
PasswordAuthentication yes //启用密码验证
GSSAPIAuthentication no
UseDNS no //禁用反向解析
AllowUsers amber zhangsan@192.168.200.1
AllowUsers:用户 amber 在任何客户端均可登录;用户 zhangsan 只允许在 IP 地址为192.168.200.1的客户端登录。且仅允许此二用户通过 ssh 协议远程登录。
DenyUsers:禁止用户 lisi 登录
注意:AllowUsers 不要与 DenyUsers 同时使用
4、使用 SSH 客户端程序
(1)ssh 命令(远程安全登录)
格式:ssh user@host (若客户机与主机用户名相同,可省去 user@)
端口选项:-p 22
2)scp 命令(远程安全复制)
格式 1:scp user@host:file1 file2
格式 2:scp file1 user@host:file2
3)sftp 命令(安全 FTP 上传下载)
格式:sftp user@host
5、构建密钥对验证的 SSH 体系
(1)第一步:客户端生产密钥对
ssh-keygen 命令
可用的加密算法:RSA 或 DSA或ECDSA
[root@localhost ~]# ssh-keygen -t rsa //生产密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
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:36uJgYQMoPkbxhKWY2P5OoE+qy4RzNsXC+utVFIW1UA root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|. .oEo |
|.oo . . |
|*O. o |
|**++oo |
|ooBo=.+ S |
|o+o=o+ . . . |
| *o.o . . . . |
|. =. . o . . |
|=o .. . o.. |
+----[SHA256]-----+
(2)第二步:
方法一:
客户端将生产的公钥上传到服务端
服务端导入公钥文本
方法二:ssh-copy-id 命令
客户端:[amber@Server-SSH ~]$ rm -f .ssh/authorized_keys
6、TCP Wrappers保护
(1)保护机制的实现方式
方式 1:通过 tcpd 主程序对其他服务程序进行包装
方式 2:由其他服务程序调用 libwrap.so.*链接库
(2)TCP Wrappers 保护的条件
必须是采用 TCP 协议的服务
函数库中必须包含 libwrap.so.0(可用 ldd 命令查看)
示例:
[root@localhost ~]# which sshd
/usr/sbin/sshd
[root@localhost ~]# ldd /usr/sbin/sshd | grep libwrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f52aec9a000)
(3)访问控制策略的配置文件
/etc/hosts.allow //若IP存在则同意
/etc/hosts.deny //若IP存在则拒绝
两个文件都不存在的IP也会同意
(4)配置项及格式
(1)格式:
服务列表 客户机地址列表
多个服务 例:vsftpd,sshd 多个地址 例:192.168.1.1,192.168.1.10
所有服务 ALL 所有地址 ALL
通配符? 例:192.168.1.?,192.168.2.1??
通配符* 例:192.168.1.1*
网段地址 例:192.168.1.或192.168.1.0/255.255.255.0
(2)通配符
1>通配符?:每一个?表示 1 位任意数字。如 192.168.1.1?表示
192.168.1.10~192.168.1.19;192.168.1.1??表示 192.168.100~192.168.1.199
2>通配符*:表示任意位数,也可为空。如 192.168.1.1*表示 192.168.1.1、
192.168.1.10~192.168.1.19、192.168.1.100~192.168.1.199