目录
SSH远程服务管理
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能。
SSH协议对通道双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,因此SSH协议具有很好的安全性
网络
SSH客户端<------------------------------------------------------->SSH服务器
数据传输是加密的,可以防止信息泄露
数据传输是压缩的,可以提高传输速度Linux主要用SSH客户端:Putty、Xshell、
CRT
SSH服务端:OpenSSH
OpenSSH
OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX、Linux操作系统。
CentOS 7系统默认已安装openssh相关软件包,并已将sshd服务添加为开机自启动。
执行“systemctl start sshd”命令即可启动sshd服务
sshd服务默认使用的TCP的22端口
sshd服务的默认配置文件是/etc/ssh/sshd_config
服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
注:ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者是针对服务端的配置文件。
示例
1.SSH远程登录
vim /ssh/sshd_config
———————————————————————————————————————————
设置白名单
wangwu只能在IP地址为192.168.110.80上登录
设置黑名单
vim /etc/ssh/sshd_config
systemctl restart sshd 重启服务
在IP地址为192.168.110.80的主机上登wangwu账户失败
在IP地址为192.168.110.100的主机上等wangwu账户成功
可以通过远程连接查看对方主机的一些配置
查询完会立刻退出
———————————————————————————————————————————
sshd服务支持的两种验证方式
1.密码验证
对服务器中本地系统用户的登录名称、密码进行验证。简便,但是可能会被暴力破解
2.密钥对验证
要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放在服务器指定位置。远程登陆时,系统将使用公钥、私钥进行加密/解密关联验证。能让增强安全性,且可以免交互登录。
公钥与私钥的关系
公钥与私钥是成对生成的,这两种密钥互不相同,可以相互加密和解密。
不能根据一个密钥来推算出另一个密钥。
公钥对外公开,私钥只有私钥的持有人才知道。
密钥对登录
vim /etc/ssh/sshd_conf
可以进入/etc/ssh目录中查看算法类型
在自己主机选择rsa的算法,设置了123123,通过rsa算法生成了一个密码对,放在了/root/.ssh/id_rsa目录中
把公钥文件复制到对方主机的家目录中
这是公钥信息
把公钥文件放在你要与对方主机配对的用户的家目录下,我的指定用户是zhangsan
把公钥文件放在/home/zhangsan/.ssh/authorized_keys指定目录中
查看文件位置
方法一
对方主机要把存放密钥文件的目录的权限设置为700
把对方主机密钥的存放文件的权限设为600
我方主机用ssh连接对方主机就会以密钥连接
方法二
在密匙文件中不设密码,这是一种免交互的验证方式,连密码都不用输入,直接就连
方法三
这也是一种免交互的验证方式,但是只能在当前环境有效
———————————————————————————————————————————
3. 远程复制
把对方主机的文件复制到自己的主机上
把自己主机的文件复制到对方主机上
在CentOS7-2上收到CentOS7-1的ppp
注:`pwd`表示复制到同目录下
对方主机
———————————————————————————————————————————
4.SFTP
在自己的主机上创建一个文件123.txt,通过sftp远程发送给对方主机
对方家目录收到文件
从对方主机接收zxr目录
———————————————————————————————————————————
TCP Wrappers 访问控制
TCP Wrappers ( TCP封套)
将TCP服务程序"包裹"起来,代为监听TcP服务程序的端口,增加了一个安全检测过程,外来的连
接请求必须先通过这层安全检测,获得许可后才能谈问真正的服务程序。
大多数 Linux发行版,TCP Wrappers 是默认提供的功能。
rpm -q tcp_wrappers
TCP Wrappers保护机制的两种实现方式
1.直接使用tcpd程序对其他服务程序进行保护,需要运行tcpd程序。
2.由其他网络服务程序调用libwrap.so.*链接库,不需要运行 tcpd程序。此方式的应用更加广泛,
也更有效率。
使用ldd命令可以查看程序的libwrap.so.*链接库
ldd /usr/sbun/sshd ;ldd `which sshd` ; ldd $(which sshd)都可以查看数据库是否支持该服务
TCP wrappers 的访问策略
TCP Wrappers机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。
对应的两个策略文件为/etc/hosts.allow 和/etc/hosts.deny,分别用来设置允许和拒绝的策略。
格式:
<服务程序列表>:<客户端地址列表>
(1)服务程序列表
ALL:代表所有的服务。
单个服务程序:如"vsftpd"。
多个服务程序组成的列表:如"vsftpd, sshd"。
(2)客户端地址列表
ALL:代表任何客户端地址。
LOCAL:代表本机地址。
多个地址以逗号分隔
允许使用通配符“*”和“?”,前者代表任意长度字符,后者仅代表一个字符
网段地址,如“192.168.110.”或者192.168.110.0/255.255.255.0
区城地址. 加" accp.cnm”配 accp.com域中的所有主机
TCP Wrappers机制的基本原则:
首先检查/etc/hosts.allow文件,如果找到相匹配的策略,则允许访问:否则继续检查/etc/hosts.deny
文件,如果找到和匹配的策略,则拒绝访问;如果检查上述两个文件都找不到相匹配的策略,则允
许访问。
”允许所有,拒绝个别”
只需在/etc/ hosts.deny文件中添加相应的拒外绝策略
”允许个刷,拒绝所有”
除了在/etc/hosts.allow中添加允许策略之外,还需要在/etc/hosts. deny文件中设置"ALL:ALL"的拒
绝策略。
示例
拒绝192.168.110.90访问
在Centos7-1上设置
vim /etc/hosts.deny
CentOS7-2连接CentOS7-1失败
CentOS7-3连接CentOS7-1成功
总结
telnet 明文传输tcp 23
ssh 密文传输tcp 22
软件包openssh
服务名sshd
服务端配置文件/etc/ssh/sshd_config
重要的配置项: Port ListenAddress PermitRootLogin UseDNS DenyUsers AllowUsers
Passwordauthentication Pabteyluthnticatiom
客户端命令
ssh -p 端口 用户@IP
scp -P 端口 [-r] 本机文件/目录 用户@IP:绝对路径 #上行复制
scp -P 端口 [-r] 用户@IP:绝对路径 本机目录/文件 #下行复制
sftp -P 端口 用户@IP
>get/put
cd到目录
ls展示文件
ssh密钥对配置
客户端 ssh的发起端: ssh-keygen -t rsa/ecdsa 创建密钥对,在自己家目录的.ssh目录中生成私钥和公钥文件(xxx.pub)
ssh-copy-id -i 公钥文件 目标主机用户@目标主机IP/主机名
服务端 被ssh连接端: 在指定用户家目录的.ssh目录(权限(700))中生成公钥认证文件
authorized_keys(权限600)
从此客户端使用 ssh [-p 端口] 用户@IP 使用密钥对的密码验证
ssh密钥对面交互登录
[1]使用没有密码的密钥对
ssh-keygen -t rsa/ecdsa 一直回车,不设置密码
ssh-copy-id -i 公钥文件 目标主机用户@目标主机IP/主机名
[2]创建ssh会话代理(只能在当前会话有效)
ssh-agent bash
ssh-add
TCP Wrappers
对支持TCP Wrappers的服务程序进行访问控制,要么允许放行,要么拒绝丢弃
判断是否支持:
ldd $ (which程序名) sshd vsftpd telnet ipop3 imap
程序文件路径 -> libwrap. so.*
访间策略:
先看/etc/hosts.allow,有则放通;再看/etc/hosts . deny,有则拒绝;如果都没有则放通所有