文章目录
SSH远程管理
一、配置OpenSSH服务端
1.1 SSH服务及配置文件
SSH(Secure Shell) 协议
- 是一种安全通道协议
- 对通信数据进行了加密处理,用于远程管理
OpenSSH
-
服务名称:sshd
-
服务端主程序:/usr/sbin/sshd
-
服务端配置文件:/etc/ssh/sshd_config
systemctl start sshd ##启动sshd服务
1.2 服务监听选项
sshd服务使用的默认的端口号为22,必要时建议修改此端口号,并指定监听服务的具体 IP 地址,以提高在网络中的隐蔽性。除此之外,SSH协议的版本V2比V1的安全性要更好,禁用DNS反向解析可以提高服务器的响应速度。
[root@localhost~]# vi /etc/ssh/sshd_config
Port 22 //监听端口,可以修改
ListenAddress 172.16.16.22 //监听地址,可以修改
Protocol 2 //使用SSH V2协议
UseDNS no //禁止DNS反向解析
1.3 用户登录控制
sshd服务默认允许root用户登录,当在Internet中使用时这是非常不安全的。普遍的做法:先以普通用户远程登录,进入安全Shell环境后,根据实际需要使用su命令切换为root用户。
关于sshd服务的用户登录控制:
- 禁用root用户、空密码用户
- 限制登录验证时间、重试次数
- AllowUsers、DenyUsers
AllowUsers 白名单 :仅允许登陆
DenyUsers 黑名单 :仅拒绝登陆
[root@localhost ~]# vi/etc/ssh/sshd_config
LOginGrace Time 2m //登录验证时间为2分钟
PermitROotLogin no //禁止root用户登录
MaxAuthTries 6 //最大重试次数为6
PermitEmptyPasswords no //禁止空密码用户登录
......
AllowUsers jerry admin@61.23.24.25
当只允许或禁止某些用户登录时,可以使用 AllowUsers 或 DenyUsers 配置,两者用法类似(注意不要同时使用)。例如,若只允许 jerry、tesengyia 和 admin 用户登录,且其中 admin 用户仅能够从 IP 地址为 61.23.24.25 的主机远程登录,则可以在 /etc/ssh/sshd_config 配置文件中添加一下配置。
例如:
#AllowUsers zhangsan wangwu@192.168.1.101,192.168.1.102
只允许wangwu以192.168.1.101的ip登录,zhangsan两个ip都可以。
1.4 登录验证方式
密码验证:核对用户名、密码是否匹配
密钥对验证:核对客户的私钥、服务端公钥是否匹配
[root@server~]# vi /etc/ssh/sshd_config .
PasswordAuthentication yes //启用密码验证密匙对
PubkeyAuthentication yes //验证公钥位置
AuthorizedKeysFile ssh/authorized_keys
生成密钥:ssh-keygen -t rsa
二、使用SSH客户端程序
ssh命令——远程安全登录
ssh user@host -p 端口选项∶-p22
scp命令——远程安全复制(拷贝)
格式1∶scp user@host∶file1 file2
格式2∶scp filel user@hostfile2
sftp命令——安全FTP上下载
客户端的上传和下载(因为sftp服务也在使用22号端口,无须另外设置)
put:上传;get:下载
sftp user@host //登录的是该用户的家目录
图形工具Xshell
三、构建密钥对验证的SSH体系
3.1 整体过程
步骤如下:
(1)在客户端创建密钥对
[root@server ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
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:ZKWPnLtftpqJdM3uYBrpy2KXQjDUx0C2mncp8jVIUJ4 root@client2
The key's randomart image is:
+---[RSA 2048]----+
| .+=o . |
| .+.ooo |
| . E.+ |
| o+ = = |
| +o+ S . |
| +.+ + o |
| .. =.+ = |
| ++oB B . |
| . +Bo=o+ |
+----[SHA256]-----+
(2)将公钥文件上传至服务器
(3)在服务器上导入公钥
(4)在客户端使用密钥对验证
TCP Wrappers访问控制
1.TCP Wrappers概述
保护机制的实现方式
- 方式一:通过tcpd主程序对其他服务程序进行包装
- 方式二:由其他服务程序调用libwrap.so.*链接库
访问控制策略的配置文件
/etc/hosts.allow
/etc/hosts.deny
2.TCP Wrappers访问策略
TCP Wrappers机制的保护对象为各种网络服务程序,针对访问服务的客户机地址进行访问控制。对应的两个策略文件为 /etc/hosts.allow和/etc/hosts.deny,分别用来设置允许和拒绝的策略
2.1 策略的配置格式
设置访问控制策略:
- 策略格式:服务程序列表:客户端地址列表
- 服务程序列表
◆多个服务以逗号分隔,ALL表示所有服务 - 客户端地址列表
◆多个地址以逗号分隔,ALL表示所有服务
◆允许使用通配符 ? 和 *
◆网段地址,如 192.168.1 或者 192.168.1.0/255.255.255.0
◆区域地址,如.benet.com
2.2 访问控制的基本原则
(1)检查hosts.allow,找到匹配则允许访问
(2)再检查hosts.deny,找到则拒绝访问
(3)若两个文件中均无匹配策略,则默认允许访问
2.3 TCP Wrappers配置实例
相当于ACL访问控制列表一样,不过控制的是tcp协议类型的服务
vi /etc/hosts.allow
举例
sshd,vsftpd∶192.168.1. *任意字符 192.168.1.1-192.168.1.254
sshd,vsftpd∶192.168.1. 所有 192.168.1.0/24
sshd,vsftpd∶192.168.1.? 单个字符 192.168.1.1-192.168.1.9
vi /etc/hosts.deny
举例
shd, vsftpd:ALL //禁止所有
sshd,vsftpd∶192.168.2. //仅禁止192.168.2.0/24