远程访问及控制
一、SSH远程管理
Ssh是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。
Ssh协议对通信双方的数据传输进行了加密处理、其中包括用户登录时输入的用户口令。
Ssh协议:为客户端提供安全的shell环境,用于远程管理 默认端口:TCP 22
配置openssh服务端:(openssh服务端程序/usr/sbin/sshd)
Sshd服务的配置文件默认位于/etc/ssh/sshd_config目录下
服务器监听选项:
Vi /etc/ssh/sshd_config
Port 22 监听端口为22
listenAddress 192.168.1.10 监听地址为192.168.1.10
Protocol 2 使用SSH V2协议 (V2 比 V1 的安全性更好)
UseDNS no 禁用DNS反向解析 (提高服务器响应速度)
Service sshd reload
用户登录控制:
Sshd服务默认允许root用户登录
Vi /etc/ssh/sshd_config
Logingracetime 2m 登录验证时间为2分钟
permitRootLogin no 禁止root用户登录
MaxAuthTries 6 最大重试次数为6
PermitEmptyPasswords no 禁止空密码用户登录
Service sshd reload
登录验证方式:
密码验证:以服务器中本地系统用户的登录名称、密码进行验证
密钥对验证:要求提供相匹配的密钥信息才能通过验证
Vi /etc/ssh/sshd_config
PasswordAuthentication yes 启用密码验证
PubkeyAuthentication yes 启用密钥对验证
AuthorizedKeysfile .ssh/authorized_keys 指定公钥库数据文件
Service sshd reload
二、使用SSH客户端程序
命令程序 ssh、scp、sftp
sftp命令(安全FTP上下载):
格式:sftp user@host
Ssh命令:(远程安全登录):
格式:ssh user@host
例:ssh -p 2345 使用非默认端口号连接
Scp命令:(远程安全复制):
格式1:scp user@host:file1 file2
格式2:scp file1 user@host:file2
三、构建密钥对验证的ssh体系
在客户端创建密钥对:ssh-keygen -t rsa
-t:用于指定算法类型 可用的加密算法为RSA或DSA
将公钥文件上传至服务器:
Scp ~/ssh/id_rsa.pub
在服务器中导入公钥文本:
Mkdir -p /home/lisi/.ssh/
Cat /tmp/id_rsa.pub >> /home/lisi/.ssh/authorized_keys
在客户端使用密钥对验证:
Ssh
四、TCP Wrappers访问控制
对应的两个策略文件为/etc/hosts.allow和/etc/hosts.deny,分别用来设置允许和拒绝的策略
策略的配置格式:
<服务程序列表>:<客户机地址列表>
服务程序列表:
ALL:代表所有的服务
单个服务程序:如“vsftpd”
多个服务程序组成的列表:如“vsftpd,sshd”
客户机列表:
ALL:代表任何客户机地址
LOCAL:代表本机地址
单个IP地址:如“192.168.1.1”
网络段地址:如“192.168.1.0/255.255.255.0”
以‘.’开始的域名:如“.benet.com”匹配benet.com域中的所有主机
以‘.’结束的网络地址:如“192.168.4.”匹配整个192.168.4.0/24网段
*:任意多个字符 ?:任意单个字符
访问控制的基本原则:
首先检查/etc/hosts.allow文件,如果找到相匹配的策略,则允许访问,否则继续检查/etc/hosts.deny文件,如果找到相匹配的策略,则拒绝访问;如果检查上述两个文件都找不到相匹配的策略,则允许访问。