一openSSH服务器
1、ssh协议简介
ssh协议是一种安全通道协议,对通信数据进行了加密处理,用于远程管理
2、openSSH
服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
二、配置OpenSSH服务器
1、sshd_config配置文件的常用选项
配置项 | 作用 |
---|---|
vim /etc/ssh/sshd_config | 进入配置文件 |
Port 22 | 监听端口为22 |
ListenAddress 0.0.0.0 | 监听地址为任意网段,也可以指定OpenSSH服务器的具体IP |
LonginGreaceTime 2m | 登录验证时间为2分钟 |
PermitRootLogin no | 禁止root用户登录 |
MaxAuthTries 6 | 最大重试次数 |
PermitEmptypasswords no | 禁止空密码用户登录 |
UseDNS no | 禁用DNS 反向解析,以提高服务器的响应速度 |
AllowUsers 用户 | 只允许某用户登录,多个用户用空格分隔,白名单效果 |
DenyUsers 用户 | 只禁止某些用户登录,多个用户用空格分隔,黑名单效果 |
列:AllowUsers lisi@192.168.66.66 只允许lisi用户从192.168.66.66IP登录
AllowUsers 和DenyUsers 不能同时使用
三、sshd服务支持两种验证方式
1、密码验证
对服务器中本地系统用户的登录名称,密码进行验证,简便,但可能被暴力破解。
2、ssh客户端程序
①、ssh 【选项】 用户@IP地址
-P:指定飞默认的端口号,缺省时默认使用的是22端口
ssh -p 66 luoxiang@192.168.66.66 以用户luoxiang的66端口登录
②、 scp远程复制
选项 | 说明 |
---|---|
-1 | 强制使用ssh协议版本1 |
-2 | 强制使用ssh协议版本2 |
-4 | 强制使用IPv4地址 |
-6 | 强制使用IPv6地址 |
-A | 开启认证代理连接转发功能 |
-a | 关闭认证代理连接转发功能 |
-b | 使用本机指定的地址作为对位连接的源IP地址 |
-C | 请求压缩所有数据 |
-F | 指定ssh指令的配置文件,默认的配置文件为“/etc/ssh/ssh_config” |
-f | 后台执行ssh指令 |
-g | 允许远程主机连接本机的转发端口 |
-i | 指定身份文件(即私钥文件) |
-l | 指定连接远程服务器的登录用户名 |
-N | 不执行远程指令 |
-o | 指定配置选项 |
-p | 指定远程服务器上的端口 |
-q | 静默模式,所有的警告和诊断信息被禁止输出 |
(1)下行复制
scp 用户@ip地址:要复制目标文件目录 /复制到本地位置目录
列:scp luoxiang@192.168.66.66:/etc/passwd /root/ 将远程主机中的/etc/passwd 复制到本机/root 目录,
(2)上行复制
scp /etc/passwd/ luoxiang@192.168.66.66:/root/
将本机的 /etc/passwd 复制到远程主机的 root 目录下
非管理员用户 要注意是否有相应权限。
4、sftp 安全FTP
使用了了加密/解密技术,所以传输效率比普通的FTP要低,但是安全性更高
sftp 用户@IP地址
输入用户密码
sftp>ls 看一下有哪些文件
sftp>get 文件名 下载文件到当前登录时的目录
sftp>put 文件名 上传文件到当前登录时的目录
sftp>quit 退出
***复制目录加 -r ****** 如:get -r free
***默认是当前登录时的目录,可在后面添加具体目录,如 get -r mmp /opt 复制mmp目录到opt目录下。
3、秘钥验证
①要求提供相匹配的秘钥信息才能通过验证,一般在客户端中创建一对秘钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置,远程登录时,系统将使用公钥、私钥进行解密/加密关联验证,安全免交互
②当密码验证和秘钥验证都启用时,服务器将优先使用秘钥验证,
vim /etc/ssh/sshd_config 进入配置文件
配置项 | 作业 |
---|---|
PasswordAuthentication yes | 启用密码验证 |
PubkeyAuthentication yes | 启用秘钥验证 |
AuthorizedKeyFile .ssh/authorized_keys | 指定公钥库文件 |
1、制作秘钥对
1、建立密钥对
[root@host ~]$ ssh-keygen <== 建立密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <== 按 Enter
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): <== 输入密钥锁码,或直接按 Enter 留空
Enter same passphrase again: <== 再输入一遍密钥锁码
2、将公钥上传到服务器
scp ~/.ssh/id_ecdsa.pub root@192.168.60.66:/opt
3、在服务器中导入公钥文本
4、在客户端使用秘钥验证
********************** 用哪个用户创建的就要用哪个用户登录。********************
四、TCP wrappers 访问控制
1. TCP Wrappers概述
(1)TCP Wrappers的作用
TCP Wrappers是一个将TCP服务程序“包裹”起来,代为监听TCP服务程序的端口,增加了一个安全监测过程,外来的连接请求必须先通过这层安全监测,获得许可后才能访问真正的服务程序。
大多数Linux发行版,TCP Wrappers都是默认提供的功能,可使用命令"rpm -q tcp_wappers"查看是否已安装。
(2)TCP Wrappers保护机制的实现方式
直接使用tcpd程序对其他服务程序进行保护,需要运行tcpd程序。
由其他网络服务程序调用libwrap.so.*链接库,不需要运行tcpd程序,此方式的应用更加广泛也更有效率。
使用ldd命令可以查看程序的libweap.so.*链接库
ldd $(which ssh vsftpd)
2. TCP Wrapper访问策略
(1)TCP Wrappers的策略文件
TCP Wrappers机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。
对应的两个策略文件为/etc/osts.allow和/etc/hosts.deny,分别同来设置允许和拒绝的策略,即白名单与黑名单。
(2)策略文件的配置格式
<服务程序列表>:<客户端地址列表>
服务程序列表
ALL:代表所有的服务
单个服务程序:如“vsftpd”
多个服务程序组成的列表:如“vsftpd,sshd”
2.客户端地址列表
ALL:代表任何客户端地址
LOCAL:代表本机地址
多个地址以逗号想分割
允许使用通配符“*”和“?”,前者代表任意长度字符,后者仅代表一个字符
网段地址,如192.168.88.或者192.168.88.0/255.255.255.0
区域地质,如“.abc.com”匹配abc.com域中的所有主机
(3)TCP Wrappers机制的基本原则
首先检查/etc/hosts.allow文件,如果找到相匹配的策略,则允许访问;
否则继续查看/etc/hosts.deny文件,如果找到相匹配策略,则拒绝访问;
如果检查上述两个文件都找不到相匹配的策略,则允许访问。
(4)访问策略设置
访问需求 | 具体操作 |
---|---|
允许所有,拒绝个别 | 只需在/etc/hosts.deny文件中添加相应的拒绝策略 |
允许个别,拒绝所有 | 除了在/etc/hosts.allow中添加允许策略之外,还需在/etc/hosts.deny文件中设置“ALL:ALL”的拒绝策略 |