5154

Good Luck To You!

CentOS如何限制特定IP地址通过SSH远程连接服务器?

在CentOS系统中,限制SSH连接是提升服务器安全性的重要措施,SSH作为远程管理的主要方式,若不加限制,可能成为恶意攻击的入口,通过合理的配置,可以有效控制访问来源、限制登录频率,并降低被暴力破解的风险,以下是几种常见且有效的限制SSH连接的方法,结合实际操作进行说明。

CentOS如何限制特定IP地址通过SSH远程连接服务器?

基于IP地址的访问控制

通过防火墙或SSH配置文件限制特定IP地址的访问,是最直接的防护手段,使用iptables或firewalld可以实现精细化控制,在firewalld中,仅允许特定IP段访问SSH端口(默认22):

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept'
firewall-cmd --reload

若需完全禁止某IP访问,可添加拒绝规则:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="恶意IP" service name="ssh" reject'

在SSH配置文件/etc/ssh/sshd_config中,通过AllowUsersAllowHosts指令指定允许的用户或主机,

AllowUsers admin@192.168.1.100

修改后需重启SSH服务:systemctl restart sshd

使用TCP Wrappers进行主机访问控制

TCP Wrappers是一种基于主机名的访问控制机制,通过/etc/hosts.allow/etc/hosts.deny文件管理,在hosts.allow中允许特定主机:

sshd: 192.168.1.0/24

hosts.deny中拒绝其他所有主机:

sshd: ALL

配置完成后,需确保/etc/xinetd.d/sshdenabled = yes(若使用xinetd)。

CentOS如何限制特定IP地址通过SSH远程连接服务器?

限制SSH登录频率与失败尝试次数

为防止暴力破解,可配置SSH登录失败次数限制,使用fail2ban工具自动封禁可疑IP:

  1. 安装fail2ban:yum install fail2ban -y
  2. 创建配置文件/etc/fail2ban/jail.local
    [sshd]
    enabled = true
    port = 22
    filter = sshd
    logpath = /var/log/secure
    maxretry = 3
    bantime = 3600

    该配置表示:连续3次登录失败则封禁IP1小时,启动服务:systemctl enable --now fail2ban

更改默认SSH端口与禁用root登录

默认SSH端口易被扫描攻击,建议修改为非标准端口(如2222),在sshd_config中设置:

Port 2222

禁用root直接登录:

PermitRootLogin no

修改后重启SSH服务,需注意,客户端连接时需指定新端口:ssh -p 2222 user@ip

使用SSH密钥认证替代密码

密钥认证比密码更安全,可完全禁用密码登录,在sshd_config中设置:

PasswordAuthentication no
PubkeyAuthentication yes

将客户端生成的公钥(~/.ssh/id_rsa.pub)添加到服务器的~/.ssh/authorized_keys文件中,确保目录权限正确:chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

CentOS如何限制特定IP地址通过SSH远程连接服务器?

定期审计SSH日志

通过分析/var/log/secure日志,可发现异常登录行为,使用grep查找失败尝试:

grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c

该命令可统计各IP的失败登录次数,帮助定位潜在威胁。

FAQs

  1. 如何查看当前SSH连接状态?
    使用ss -tulpn | grep ssh可查看SSH端口监听状态;who命令可显示当前登录用户及来源IP。

  2. 误封禁IP后如何解除fail2ban封禁?
    执行fail2ban-client set sshd unbanip [IP地址]即可解除指定IP的封禁,或在/etc/fail2ban/jail.local中调整bantimemaxretry参数后重启服务。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2026年2月    »
1
2345678
9101112131415
16171819202122
232425262728
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.