针对ssh白名单配置一般是在/etc/hosts.allows、/etc/hosts.deny和/etc/ssh/sshd_config 配置文件进行配置,但针对服务是否应用了相关lib库文件需要区分对待,以下以实际测试案例说明:
hosts.allow和hosts.deny属于tcp_Wrappers防火墙的配置文件,而用tcp_Wrappers防火墙控制某一服务访问策略的前提是该服务支持tcp_Wrappers防火墙,即该服务应用了libwrapped库文件。
如果有显示,则可以通过hosts.allow和hosts.deny做限制处理;
如果没有,则通过sshd_config文件配置限制;
【案例1】、服务(如ssh)没有应用了libwrapped库文件
【测试验证】:
三台设备:test2-192.168.137.5、test3-192.168.137.20、test4-192.168.137.21
三台操作系统版本和内核版本都一样,ssh版本为7.9p1 ssl版本为1.0.2k-fips,且都未应用了libwrapped库文件
配置之前可以互相通过输入密码ssh登录
依次检查 /etc/hosts.allow 、/etc/hosts.deny、/etc/ssh/sshd_config 配置文件均未设置;
设置规则:test3只允许test4可以登录,其他地址无法登录
在test3服务器上添加
echo 'AllowUsers *@192.168.137.21 ' >>/etc/ssh/sshd_config
如果有多个IP,中间用空格隔开,例如
echo 'AllowUsers *@192.168.137.21 *@192.168.137.22 ' >>/etc/ssh/sshd_config
加载sshd服务
systemctl reload sshd
进行验证test2 、test4是否可以登录
【案例2】、服务(如ssh)应用了libwrapped库文件
【测试验证】:
两台设备:test5-192.168.137.22、test5-192.168.137.23
2台操作系统版本和内核版本都一样,ssh版本为7.4p1 ssl版本为1.0.2k-fips,且都应用了libwrapped库文件
在配置之前可以ssh登录,现在在test5上设置只允许test6(192.168.137.23)可以访问,其他地址不可以
在test5服务器上设置
echo sshd:192.168.137.23:allow >> /etc/hosts.allow
echo sshd:all:deny >> /etc/hosts.deny
重新加载服务
systemctl reload sshd
【验证】
test6可以正常登录test5
其它节点服务器登录不了