远程访问+控制
SSH远程管理
OpenSSH服务器
SSH(secureshell)协议是一种安全通道协议,对通信数据进行了加密处理,用于远程管理
OpenSSH
服务器名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
服务监听选项:端口号、协议版本、监听IP地址,禁用反向解析
vi /etc/ssh/sshd_config
port xx #端口号
Listen Address xxxxx #监听地址
Drorocol x #协议版本
userDNS no #禁用方向解析(禁用重进项)
用户登录控制:禁用root用户、空密用户,限制登录验证时间、重试次数,Allowusers(白名单),Denyusers(黑名单)
vi /etc/ssh/sshd_config
LoginGraceTime 2m #限制登录时间2分钟
DermitRootLogin no #进制root用户登录
MaxAuthTries 6 #最大登录次数为6次
PermitEmptyPasswds no #禁止空密用户
…
AllowUsers xx@(ip) #只允许xx以(ip)登录
DenyUsers xx@(ip) #禁止xx以(ip)登录
(黑名单和白名单不要同时用)
登录验证方式
密码验证:核对用户名、密码是否匹配
密钥验证:核对客户私钥、服务器端公钥是否匹配
vi /etc/ssh/sshd_config
PasswordAuthentication yes #启用密码验证
PubkeyAuthentication yes #启用密钥对验证
AuthorizedKeyFile .ssh/authorized_key #指定公钥库位置
SSH客户端程序
ssh——远程安全登录 sshuser@host
scp——远程安全复制
scp user@host:file1 file2
scp file1 user@host:file2
sftp——安全FTP上下载 sftp user@host
1.创建密钥对(客户端用户在本地创建密钥对)
ssh-keygen 【-t 生成密钥算法:RSA…】
询问生成密钥的位置(直接enter,默认括号内位置)
设置密钥短语并确认(直接enter,不设置跳过)
私钥只能自己使用,公钥可由对方使用,文件的加密和解密必须由同一对密钥完成
私钥文件:id_rsa
公钥文件:id_rsa.pub
2.上传公钥文件 客户机→服务器
cd /home/pp/.ssh #进入.ssh目录,此目录为隐藏目录
scp id_rsa.pub root@host:/tmp #将公钥文件复制到服务器,
3.导入公钥信息 公钥文件导入~/.ssh/authorized keys
在服务器端
mkdir /home/pp/.ssh #在用户pp下创建.ssh目录
cd /tmp #进入tmp
cat id_rsa.pub >> /home/pp/.ssh/authorized_keys #将公钥文件内容放入 /home/pp/.ssh/authorized_keys内
cat /home/pp/.ssh/authorized_keys #查看
4.使用密钥对验证,以服务器端身份在客户端登录
ssh pp@host
注:第2、3步可合成一步
ssh-copy-id -i /home/pp/.ssh/id_rsa.pubpp@host
ssh-agent bash #以下当设置了密钥短语时用
ssh-add
TCP Wrappers
保护机制的实现方式
1.通过tcpd程序对其它服务程序进行包装
2.由其它服务程序调用libwrap.so.*链接库
访问控制策略的配置文件
/etc/hosts.allow#白名单
/etc/hosts.deny#黑名单
TCP Wrappers策略应用
设置访问控制策略
策略格式:服务程序列表:客户端地址列表
服务程序列表:多个服务以逗号分隔,ALL表示所有服务
客户端地址列表:
多个服务以逗号分隔,ALL表示所有服务
允许使用通配符?和*
网段地址,如192.168.1.?或192.168.1.0/255.255.255.0
区域地址,如.benet.com
策略的应用顺序
检查hosts.allow,找到匹配则允许访问
再检查hosts.deny,找到则拒绝访问
若两个文件中均无匹配策略,则默认允许访问
例:仅允许以下地址访问sshd服务
主机:61.63.65.67
网段:192.168.2.0/24
vi /etc/hosts.allow
sshd:61.63.65.67,192.168.2.*
禁止其他所有地址访问受保护的服务
vi /etc/hosts.deny
sshd:ALL
SSH项目操作
先创建密钥对
ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/zhangsan/.ssh/id_ecdsa):
Created directory '/home/zhangsan/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/zhangsan/.ssh/id_ecdsa.
Your public key has been saved in /home/zhangsan/.ssh/id_ecdsa.pub
将公钥上传到服务器
scp ~/.ssh/id_ ecdsa.pub root@192.168.10.128:/tmp
在服务器中导入公钥文本
mkdir /home/lisi/.ssh/
cat /tmp/id_ecdsa.put >> /home/lisi/.ssh/authorized_keysauthorized_keys
tail -1 /home/lisi/.ssh/authorized_keys
客户端使用密钥对验证登录
ssh root@192.168.10.127