主机评测
如何在Linux中设置只允许特定IP登录你的ssh
04/16
前言:
大家都知道每天都有大量的黑客扫描各位的Linux服务器,一般我们是修改ssh默认22端口,改用密钥登录,如果有固定IP上网的条件或者使用跳板机统一管理手中很多服务器。那么怎么样才能只允许特定IP登录你的ssh呢?网上有很多种方法比如修改/etc/hosts.allow和/etc/hosts.deny文件,或者通过iptables服务器来限制。这里我教大家另外一种方法修改systemd里的ssh服务启动脚本
步骤
在GNU/Linux系统上,另一种通过内置(假设init是systemd 235+和kernel 4.11+)在套接字级别限制对sshd的访问的方法是使用带有cgroup/eBPF访问列表的systemd
查看ssh服务脚本文件
root@localhost:~# systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-04-15 14:01:04 EDT; 15min ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 13104 (sshd)
IP: 19.3K in, 34.0K out
Tasks: 1 (limit: 9510)
Memory: 3.7M
CPU: 467ms
CGroup: /system.slice/ssh.service
└─13104 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
编辑ssh的systemd配置文件
root@localhost:~# vi /lib/systemd/system/ssh.service
[Service]
#requires systemd 235+ and kernel 4.11+
IPAccounting=yes
IPAddressDeny=any
IPAddressAllow=192.18.1.22
IPAddressAllow=10.161.0.0/16
IPAddressAllow=100.64.0.0/24
添加以上的配置内容到合适的位置
重新加载服务配置立即生效
systemctl daemon-reload