配置前需要知道的事情
OpenSSH6.7开始默认关闭TCPwrappers支持,所以在OpenSSH6.7版本以上使用hosts.allow和hosts.deny不会生效
hosts.allow文件和hosts.deny文件
文件位置/etc/下
hosts.allow中设置允许SSH访问的IP或IP段
hosts.deny中设置禁止SSH访问的IP或IP段
当hosts.allow与hosts.deny配置冲突时,以hosts.allow为准
hosts.allow/hosts.deny格式为:
允许/拒绝IP段访问
sshd:192.168.x.x
允许/拒绝IP访问
sshd:192.168.1.2
允许/拒绝所有访问
sshd:all
配置后可能有配置不生效的情况,这时需要检查一下服务是否应用了libwrapped库文件
# ldd /usr/sbin/sshd |grep libwrap.so.0
执行上面代码块中的命令后若没有返回值说明ssh服务未应用libwrapped库文件。使用yum重新安装ssh即可解决问题
# yum -y remove openssh
# yum -y install openssh openssh-server
firewalld
取消默认开启的没有访问限制的ssh服务,让ssh服务默认情况下拒绝连接
firewall-cmd --permanent --remove-service=ssh
允许ip或ip段访问22端口的ssh服务
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept"
取消ip或ip段访问22端口的ssh服务
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept"
重载firewall配置,使其生效
firewall-cmd --reload
查看规则
firewall-cmd --zone=public --list-rich-rules