Linux服务器实现SSH限制IP访问

配置前需要知道的事情

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容