远程访问及控制
文章目录
1.SSH协议:
是一种安全通道协议
对通信数据进行了加密处理,用于远程管理
加密处理会用到密钥,密钥分为对称密钥和非对称密钥
对称密钥:加密和解密都用一种密钥。AES DES 3DES 特点:加密速度快,但是不安全
非对称密钥:加密和解密使用不同的密钥,分为公钥和私钥,不可以从其中一种密钥推导出另外一种密钥;例如rsa 特点:加密速度慢,但是安全
私钥:验证身份
公钥:所有人都知道,公开的
网站中也用这种密钥 https s代表SSL安全加密
2.OpenSSH:
服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
其中ssh_config为客户端的配置文件,两个文件需要区分开来
3.服务监听选项:
端口号,协议版本,监听IP地址
禁用反向解析
端口号一般不建议改,除非那个端口号不用
Protocal 2 协议版本号为2
UseDNS no 反向解析为no,代表禁用反向解析
4.用户登录控制:
当用户要登陆客户端,
禁用root用户,空密码用户
限制登录验证时间,重试次数
AllowUsers丶DenyUsers
AllowUsers:白名单 仅允许某些用户登录,拒绝所有人 安全性场合高
DenyUsers:黑名单 仅拒绝某些用户,允许所有人 安全性场合低
LoginGraceTime 2m ##会话时间2分钟 会话时间:当双方不在交互时,会自动断开,如果长期保持长连接状态,对方会开启进程去接受你的请求,会占用资源,所以一定要设置会话时间,特别是远程连接的时候。
PermitRootLogin no ##不允许root用户能够随便登录
MaxAuthTries 6 ##最大的验证次数为6次 ,默认不改是3次(3次是连接次数)
PermitEmtyPasswords no ##允许空密码登录,是不安全的
AllowUsers jerry ##允许用户jerry去登录,而且从任意终端登录
AllowUsers [[email protected]] ##允许admin用户从固定61.23.24.25终端登录
MaxSessions 10 ##允许10个终端连接,第11个就要排队
4.1用户远程登录验证实验
1.先检查端口是否开启,如果端口号不开启的话,别的用户是无法远程登录到
2.用tian用户去登陆到148.131地址上,需要输入密码,这边密码输入的是对方用户的登陆密码,只有输入正确才可以登录
3.在opt目录下创建一个88.txt文件
4.这时被登录的主机种也会有88.txt文件,这就是远程登录的功能
5.用exit可以退出登录
6.进入服务端/etc/ssh/ssh_config配置文件中修改数据,首先先查看配置内容信息
7.这边baroot用户登录改为no,保存退出
8.切换至132终端,用root用户登录,Permission denied:显示权限不够,登录失败,说明验证成功
这时我们换一种登陆方法:
1.在cai主机中创建一用户为lisi
2.切换至tian客户端,用lisi用户去登陆131客户端
3.用lisi用户登录成功后,可以切换至root用户,所以这是不安全的
解决方法:
1.开启认证模块
2.再次用lisi用户去登陆,发现登录失败
总结:当配置文件中设置禁止以root用户身份登陆时,不要忘了启用pam认证模块
4.2最大尝试次数验证
1.在ssh配置文件中开启,验证功能
2.再次用tom身份去登录,故意输错密码,发现登录失败,第三次就不能登录,那为什么密码验证次数要设置6次,是因为只允许连接的次数为3次,只有将连接次数大于6次,验证次数才会生效
3.ssh -o NumberOfPasswordPrompts=7 [email protected] 设置密码最大验证次数为7次,这样密码就可以试6次
4.3.白名单黑名单验证实验
1.添加白名单为:tom用户可以从任意终端登录,lisi用户只能从132终端登录
2.再次创建一个用户pon
3.用pon用户身份去登陆131终端,发现登录失败,因为不在白名单内
4.用tom身份去登陆,发现登录成功,因为tom用户在白名单内
用yom身份在133终端上去登陆,发现也登陆成功,说明白名单生效
5.用lisi身份在132终端去登录131终端发现登录成功
6.当lisi在133终端上去登陆时,登录失败,所有白名单生效
黑名单:
1.反之设置黑名单 图中意思就变为不允许tom用户在任意终端登录,lisi用户除了在132终端登陆不了,其他都可以登陆
2.tom不能在132终端登录,显示没有权限
3.tom不能在133终端登录,显示没有权限
4.lisi用户不能再132终端登录
5.lisi用户可以在133终端
5.登录验证方式:
密钥验证:核对用户名丶密码是否匹配
密钥对验证:核对客户的私钥,服务端公钥是否匹配
密钥对方式要启用三种功能
PasswodAuthentication yes ##密码验证,开启
PubkeyAuthentication yes ##公钥验证,开启
AuthorizedKeysFile.ssh/authorized_keys ##密钥文件生成位置有一个相对路径,会生成到当前用户的家目录类里面,.代表的是隐藏,想查看必须要用ls -a查看
6.一些ssh客户端程序命令:
ssh命令–远程安全登录
scp命令–远程安全复制
将131终端文件拷贝到当前终端中
将当前终端的文件拷贝到131终端中,两种方法取决于终端是在前还是在后
sftp命令–安全FTP上下载
1.下载部分
2.切换至131终端中,在po的家目录中创建一个40.txt的文件
3.使用get命令将文件下载到当前终端中,注意是下载到当前登录的目录当中
上传部分:
1.将50.txt文件上传至131终端中,注意是上传至po用户的家目录当中
2.切换至131终端,发现上传成功
7.密钥对验证整体时间过程:
第一步:创建密钥对
私钥文件:id_rsa
公钥文件:id_rsa.pub 是在客户端生成的
第二步:上传公钥文件id_rsa.pub给对方,指定到对方的家目录,因为要登陆对方,必须以对方已知的用户去登陆到对方
第三步:这时对方会导入公钥信息 导入路径是在自己用户的家目录当中的.ssh
第四步:开启身份验证
7.1在客户机中创建密钥对
ssh-keygen命令 生成密钥对 -t type 指定密钥类型
可用的加密算法:RSA ECDSA或DSA
7.2将公钥文件上传至服务器
任何方式均可(FTP丶Email丶SCP丶HTTP…)
scp ~/.ssh/id_ecdsa.pub [email protected]:/tmp
将本地的公钥复制到对方的目录底下,然后对方就可以在家目录中建一个.ssh隐藏目录然后就有了
7.3在服务器中导入公钥文本
将公钥文本添加至目标用户的公钥库
默认公钥库位置:~/.ssh/authorized_keys
7.4客户端使用密钥对验证登录
验证用户:服务端的用户lisi
验证密码:客户端的用户zhangsan的私钥短语
7.5密钥对验证方式去登陆实验
1.现在131终端中开启公钥验证,使用密钥功能,公钥存放位置是默认开启的,保存后启动服务
2.切换至132终端,创建一个新的用户
3.这时发现gao的家目录下生成了.ssh文件
4.将公钥文件以po用户身份传过去
5.查看公钥文件是否有gao用户传过来的公钥文件
6.以po身份去登陆131终端,注意密码输入密钥密码
设置一种不要密码登录的方法:
先退出,方法为1.代理bash终端2.添加免密登录密码3.输入密码为密钥密码,这时以po用户身份去登录
8.TCP Wrappers:
保护原理
仅限于vsftpf telnet ipop3等程序服务
8.1保护机制的实现方式
方法1:通过tcpd程序对其他服务程序进行包装
方法2:由其他服务程序调用libwrap.so.*链接库
访问控制策略的配置文件
/etc/hosts.allow
/etc/hosts.deny
8.2设置访问控制策略
策略格式:服务程序列表:客户端地址列表
服务程序列表
多个服务以逗号分割,ALL表示所有服务
客户端地址列表
多个地址以逗号分割,ALL表示所有地址
允许使用通配符?和*
8.3策略的应用顺序
1.检查hosts.allow,找到匹配则允许访问
2.再检查hosts.deny,找到则拒绝访问
3.若两个文件中均无匹配策略,则默认允许访问
8.4TCP Wrappes小实验
1.配置允许在132这个终端登录至本台服务
2.配置黑名单拒绝在别的终端登录至次服务器
3.在132终端用po用户身份登录至131终端,登陆成功,因为优先选择白名单中的内容
4.这时在133终端上去登录到132终端就会显示登录失败,说明黑白名单设置成功