文章目录
计算机系统
5G云计算
第四章 LINUX远程访问及控制
一、SSH远程管理
1.配置OpenSSH服务端
1)SSH(Secure Shell)协议
①是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能
②对通信双方的通信数据进行了加密处理,用于远程管理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性
③SSH客户端:Putty、Xshell、CRT
④SSH服务端:OpenSSH
2)OpenSSH
①服务名称:sshd
②服务端主程序:/usr/bin/sshd
③服务端配置文件:/etc/ssh/sshd_config
④OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX、Linux操作系统
⑤CentOS 7系统默认已安装openssh相关软件包,并已将sshd服务添加为开机自启动
⑥执行“systemctl start sshd”命令即可启动sshd服务
⑦sshd服务默认使用的是TCP的22号端口,密文传输。telnet服务默认使用的是TCP23号端口,明文传输
⑧ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件
3)配置OpenSSH 服务端
###配置openSSH服务端
###sshd_config配置文件的常用选项设置
vim /etc/ssh/sshd_ config
###监听端口为22
Port 22
###监听地址为任意网段,也可以指定openSSH服务器的具体IP
ListenAddress 0.0.0.0
###登录验证时间为2分钟
LoginGraceTime 2m
###禁止root用户登录
PermitRootLogin no
###最大重试次数为6
MaxAuthTries 6
###禁止空密码用户登录
PermitEmptyPasswords no
###禁用DNS反向解析,以提高服务器的响应速度
UseDNS no
###启用密码验证
PasswordAuthentication yes
###启用密钥对验证(优先级比密码高)
PubkeyAuthentication yes
###指定公钥库文件(默认权限为600,否则不生效)
AuthorizedKeyFile .ssh/authorized_keys
###只允许zhangsan、lisi、wangwu用户登录, 且其中wangwu用户仅能够从IP地址为192.168.58.61的主机远程登录
###多个用户以空格分隔
###如果不加则默认都可以登录
AllowUsers zhangsan lisi wangwu@192.168.58.61
###禁止某些用户登录,用法于AllowUsers类似(注意不要同时使用)
DenyUsers zhangsan
2.使用SSH客户端程序
1)sshd服务支持两种验证方式
①密码验证
对服务器中本地系统的用户的登录名称、密码进行验证。简便,但可能会被暴力破解
②密钥对验证
要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登陆时,系统将使用公钥、私钥进行加密/解密关联验证。能增强安全性,且可以免交户登录
③公钥和密钥的关系
Ⅰ.公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密
Ⅱ.不能根据一个密钥来推算出另一个密钥
Ⅲ.公钥对外公开,私钥只有私钥的持有人才知道
Ⅳ.当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。可根据实际情况设置验证方式
###验证
ssh [选项] 服务器端用户名@服务器IP地址
###当用户第一次登录SSH服务器时,必须接受服务器发来的ECDSA密钥(根据提示输入“yes”)后才能继续验证。接受的密钥信息将会保存到~/.ssh/known_hosts文件中
-p:指定非默认的端口号,缺省时默认使用22号端口
ssh -p 23333 服务器端用户名@服务器IP地址
2)scp远程复制
###下行复制,从服务器端下载到本机
scp 服务器端用户名@服务器IP地址:文件的绝对路径 复制到本机的哪的绝对路径
###上行复制,从本机上传到服务器端
scp -r 复制到本机的哪的绝对路径 服务器端用户名@服务器IP地址:文件的绝对路径
-r:复制或上传目录时,需要添加-r选项
3)sftp 安全FTP
由于使用了加密/解密技术,所以传输效率比普通的FTP要低,但安全性更高。操作语法sftp与ftp几乎一样
sftp 服务器端用户名@服务器端IP地址
Connecting to 服务器端IP地址 ...
###输入密码
服务器端用户名@服务器端IP地址’s password:
sftp> ls
###下载文件到ftp目录
sftp> get 文件名
###上传文件到ftp目录
sftp> put 文件名
###退出
sftp> quit
3.密钥对验证的SSH体系
1)配置密钥对验证
###在客户端创建密钥对,通过ssh-keygen工具为当前用户创建密钥对文件
###可用的加密算法为RSA、ECDSA或DSA等(ssh-keygen命令的“-t”选项用于指定算法类型)
###切换到test用户
su - test
###以ECDSA加密算法生成密钥对
ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
###指定私钥位置,直接回车使用默认位置
Enter file in which to save the key (/home/admin/.ssh/id_ecdsa):
###生成的私钥、公钥文件默认存放在宿主目录中的隐藏目录.ssh/下
Created directory '/home/test/.ssh'.
###设置私钥的密码(直接回车设置为空可在登陆时免交互界面直接登录成功)
Enter passphrase (empty for no passphrase) :
###确认输入
Enter same passphrase again:
###id_ ecdsa是私钥文件,权限默认为600;id_ecdsa.pub是公钥文件,用来提供给SSH服务器
ll -a ~/.ssh/
###将生成的公钥文件传送给服务器端(默认传输到登陆的用户的家目录当中的.ssh/目录下)
ssh-copy-id -p 23333 -i 公钥文件 服务器端用户名@服务器端IP地址
###服务器端将发送过来的公钥文件内容重定向输出到sshd配置文件指定的公钥库文件(目录默认权限700,文件默认权限为600,否则不生效)目录AuthorizedKeyFile .ssh/authorized_keys
cat ~/id_ras.pub > ~/.ssh/authorized_keys
###重启服务
systemctl restart sshd
###再次利用客户端登录test,若成功,显示直接登陆成功
2)密钥对免交互界面的几种方式
1.生成密钥对时密码为空
2.若密钥对生成时设置了密码,则设置个临时的会话代理(该代理只在当前的会话有效)
ssh-agent bash
ssh-add
###输入密钥对的密码
Enter passphrase for /root/.ssh/id_ecdsa:
Identity added:/root.ssh/id_ecdsa(/root.ssh/id_ecdsa)
3.ssh-keygen -f ~/.ssh/id_ecdsa -P '' -q -t ecdsa
-P:设置密码,''为空
二、TCP Wrappers访问控制
1.TCP Wrappers概述
1)TCP Wrappers (TCP封套)
将TCP服务程序“包裹"起来,代为监听TCR服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。
大多数Linux发行版,TCP wrappers是默认提供的功能。rpm -q tcp_ wrappers
2)TCP Wrappers保护机制的两种实现方式
①直接使用tcpd程序对其他服务程序进行保护,需要运行tcpd程序
②由其他网络服务程序调用libwrap.so.*链接库,不需要运行tcpd程序。此方式的应用更加广泛,也更有效率
###使用ldd 命令可以查看程序的libwrap.so.*链接库
ldd $(which sshd) | grep wrap
ldd `which sshd` | grep wrap
###$()和``两个的作用都是调用选中的命令的结果作为参数
2.TCP Wrappers访问策略
TCP Wrappers机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制
对应的两个策略文件为/etc/host.allow和/etc/host.deny,分别用来设置允许和拒绝的策略,先看/etc/host.allow,有则放通,再看/etc/host.deny,有则拒绝,如果都没有则放通所有
“允许所有,拒绝个别”
只需在/etc/host.deny文件中添加相应的拒绝策略
“允许个别,拒绝所有”
除了在/etc/host.allow中添加允许策略之外,还需要在/etc/host.deny文件中设置“ALL:ALL”的拒绝策略
###两个文件的设置格式,列表以“,”相隔
<服务程序列表>:<客户端地址列表>
服务程序列表:
ALL:代表所有服务
单个服务程序:如“sshd”
多个服务程序:如“sshd,sftp”
客户程序服务列表:
ALL:代表任何客户端地址
Local:代表本机地址
允许使用通配符“*”和“?”
网段地址,如“192.168.58.*”或者“192.168.58.0/255.255.255.0”
区域地址:如“*.tsy.com”匹配tsy.com域中的所有主机