Linux网络知识--远程访问与控制(SSH、TCP Wrappers)

Linux网络知识–远程访问与控制(SSH、TCP Wrappers)

一、SSH远程管理

1.1OpenSSH服务器

1.1.1SSH(Secure Shell)协议

●一种安全通道协议
●对通信数据进行了加密处理,用于远程管理

1.1.2OpenSSH

查看提供sshd服务的openssh软件是否安装:

[root@localhost ~]# rpm -q openssh
openssh-7.4p1-16.el7.x86_64

●服务名称:sshd
●服务端主程序:/usr/sbin/sshd
●服务端配置文件:/etc/ssh/sshd_config
注意:
服务端配置文件:sshd_config
客户端配置文件:ssh_config

1.1.3服务监听选项

在/etc/ssh/sshd_config配置文件中

●Port 22     ##端口号 (默认端口号:22 不建议修改)
●Protocol 2  ##协议版本是2
●ListenAddress 0.0.0.0  ##监听IP地址(0.0.0.0是监听所有IP地址)
●UseDNS no   ##禁用反向解析 

1.1.4用户登录控制

●LoginGraceTime 2m ##会话超时时间 2m(2分钟),不然会一直占用资源
●PermitRootLogin no ##禁用root用户 ,还要开启pam认证模块,避免其他用户登录进去后再切到root
当禁用root用户后会Permission denied:权限拒绝
但是可以通过其他用户先进去,再切换到root用户,(借助pam认证模块不让用户使用su命令)
在这里插入图片描述
●MaxAuthTries:6 ##最大验证尝试次数(输错次数)6 ;默认只可以连接3次,但是可以通过输入以下命令增加连接次数

ssh -o NumberOfPasswordPrompts=8(连接次数)[email protected]

在这里插入图片描述
在这里插入图片描述
●PermitEmptyPasswords:no ##禁止空密码登录
●AllowUsers test01 [email protected] (文件里没有,需自己添加)
允许用户 test01(从任意终端登录) ;admin(后面加了@,只能从固定终端登录)
白名单:仅允许某些用户,拒绝所有人(用在安全性场合高)
黑名单:仅拒绝某些用户,允许所有人(用在安全性场合低)
●MaxSessions 10 最大允许10个终端连接ssh

1.1.5登录验证方式

密钥对方式登录
●密码验证:核对用户名、密码是否匹配
●密钥对验证:核对客户的私钥、服务端公钥是否匹配(客户端留私钥,公钥给服务器)

PasswordAuthentication yes    ##启用密码验证
PubkeyAuthentication yes       ##启用公钥验证
AuthorizedKeysFile  .ssh/authorized_keys  ##指定公钥库位置(在家目录下隐藏目录 .ssh中)

注意:使用密钥对登录方式前得先保证/etc/ssh/sshd_config中以上三项已开启
在这里插入图片描述
在这里插入图片描述

二、构建密钥对验证的SSH体系

2.1整体实现过程

在这里插入图片描述

2.2创建完密钥对后将公钥推给服务器的两种方式

先在在客户机中创建密钥对
●ssh-keygen命令
●可用的加密算法:RSA、ECDSA或DSA

ssh-keygen  -t  ecdsa

在这里插入图片描述
第一种方式:
(1)将公钥文件上传至服务器
●任何方式均可(FTP、Email、SCP、HTTP等)
scp ~/.ssh/id_ecdsa.pub [email protected]:/tmp
(2)在服务器中导入公钥文本
●将公钥文本添加至目标用户的公钥库
●默认公钥库位置:~/.ssh/authorized_keys
mkdir /home/lisi/.ssh
cat /tmp/id_ecdsa.pub >>/home/test01/.ssh/authorized_keys

第二种方式: (常用)
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
验证密码后,会将公钥自动添加到目标主机test01宿主目录下的 .ssh/authorized_keys文件结尾
在这里插入图片描述
在这里插入图片描述

2.3客户端使用密钥对来验证登录

●验证用户:服务端的用户test01
●验证密码:客户端的用户caiwu的私钥短语
ssh [email protected]
在这里插入图片描述
补充知识:
下次登录实现免密登录:(要在本地)

ssh-agent bash    ##代理bash终端
ssh-add           ##添加免密登录的密码

在这里插入图片描述

三、使用SSH客户端程序

3.1ssh命令–远程安全登录

ssh user@host 更换端口选项:-p (默认是22)
例如:
ssh [email protected]

3.2scp命令–远程安全复制

格式1:scp user@host:file1 file2 ##把对方文件拷贝过来
在这里插入图片描述
格式2:scp file1 user@host:file2 ##把自己的文件推给对方
在这里插入图片描述
目录复制加 -r

3.3sftp命令–安全FTP下载

sftp user@host
get:下载文件
put:上传文件
bye:退出
在这里插入图片描述

四、TCP Wrappers

4.1保护原理

在这里插入图片描述

4.2保护机制的实现方式

●方式1:通过tcpd程序对其他服务程序进行包装
●方式2:由其他服务程序调用libwrap.so.*链接库

4.3访问控制策略的配置文件

●/etc/hosts.allow
●/etc/hosts.deny

4.4设置访问控制策略

●策略格式:服务程序列表:客户端地址列表(sshd:客户端地址)
●服务程序列表
多个服务以逗号分隔,ALL表示所有服务
●客户端地址列表
多个地址以逗号分割,ALL表示所有地址
允许使用通配符?和*
网段地址,如192.168.4.或者192.168.4.0/255.255.255.0
区域地址,如 .benet.com

4.5策略的应用顺序

1.先检查hosts.allow,找到匹配则允许访问
2.再检查hosts.deny,找到则拒绝访问
3.若两个文件中均无匹配策略,则默认允许访问
使用案例:
白名单:
在/etc/hosts.allow中写允许访问的sshd:192.168.100.*,20.0.0.50
再在/etc/hosts.deny中写sshd:ALL
黑名单:
在/etc/hosts.allow中空白
再在/etc/hosts.deny中写黑名单

猜你喜欢

转载自blog.csdn.net/chengu04/article/details/107219836