WordTian
V2EX  ›  Linux

有人猜解 Linux 的 ssh 服务,你们是怎么处理的?

By WordTian at 2017 年 10 月 24 日 · 10004 次点击
最近有个人一直在猜解我的 ssh,五分钟猜一次,持续了快半个月了。
虽然我知道他猜不出来,但是一直在日志里晃悠,强迫症受不了啊
之前试过 /etc/hosts.deny,但是还是会进入 pam 验证过程后再拒绝
有什么办法能针对 IP,直接拒绝访问的方法吗? iptables ?
第 1 条附言  ·  2017 年 10 月 24 日
下面回复出现的解决方法,整理如下:
1.换端口(感觉作用不大,nmap 还是能扫出来)
2.IP 登录白名单(如果换 IP 就坑了)
3.登录方式换为公私钥(虽然安全性很高,但我还是喜欢帐密,可以用不同设备随时登录)
4.tcp_wrappers (通过 pam 认证过程后才拒绝,感觉有点迟钝)
5.iptables (针对某 IP 或 IP 段还是比较好用的)
6.fail2ban (这个可以尝试下)
7.port knocking (这个很 6,就是不知实际使用效果如何,可以试试)

我倒是还一个思路:
sshd 监听 127.0.0.1,这样外网就扫不到 sshd 的端口了
服务器开着代理服务(比如$$,或 v2ray )
然后通过代理,访问 127.0.0.1 登录 ssh
但是有个问题是,sshd 绑定到 127.0.0.1 就会无法启动,有 dalao 知道是啥情况吗?
第 2 条附言  ·  2017 年 10 月 25 日
update:
8.denyhosts (类似 fail2ban )
9.在 ssh 端口上做蜜罐,反套路(思路清奇)
10.ssh 多开,九假一真(脑洞真大)
第 3 条附言  ·  2017 年 11 月 5 日
update:
11.集成 Google Authenticator 两步验证登录(这个也很不错的样子)
69 条回复  •  2017-11-04 10:31:36 +08:00
opengps
   1
opengps  
   2017 年 10 月 24 日 via Android   ❤️ 2
换端口啊
zlfzy
   2
zlfzy  
   2017 年 10 月 24 日
就是你那个加入 /etc/hosts.deny 就可以了,而且 tcp_wrappers 的优先级貌似高于 iptables,没必要再加入 iptables
sagaxu
   3
sagaxu  
   2017 年 10 月 24 日   ❤️ 1
标准答案不是 fail2ban 吗?
wxm4ever
   4
wxm4ever  
   2017 年 10 月 24 日
阿里云 ECS 不天天被人扫么
isCyan
   5
isCyan  
   2017 年 10 月 24 日
装个 fail2ban 不用配置,默认就会帮你自动封
clino
   6
clino  
   2017 年 10 月 24 日
fail2ban+1
装上了不用配置直接就能防
当然要更严格,比如更少的失败次数更长的封禁时间,可以自己改配置
j4fun
   7
j4fun  
   2017 年 10 月 24 日
换个数字大一点的端口肿么样?或者改成秘钥登陆。。
或者 iptables -t filter -d ip -j REJECT ?
aalska
   8
aalska  
   2017 年 10 月 24 日   ❤️ 4
随便他扫。。。。。看着他从 0 次失败变成 50w 次失败 心情舒爽
kmahyyg
   9
kmahyyg  
   2017 年 10 月 24 日 via Android
301 到 10GB.test
type
   10
type  
   2017 年 10 月 24 日   ❤️ 1
使用 SSH KEY 来登陆,并且关闭密码登陆。
就没人尝试你的 SSH 密码了。
sagaxu
   11
sagaxu  
   2017 年 10 月 24 日
@zlfzy Changes since OpenSSH 6.6
=========================

Potentially-incompatible changes
* sshd(8): Support for tcpwrappers/libwrap has been removed.
WordTian
   12
WordTian  
OP
   2017 年 10 月 24 日
@opengps 懒,不想换,换了我的手机电脑上的 ssh 配置都得改
@zlfzy 我一直以为 iptables 的优先级更高 /doge
@j4fun 端口已经是 5 位数字的了,密钥感觉不太方便
@sagaxu @clino 回头试试
@aalska 怎么说呢,其实不知道他在扫还好,发现了强迫症就忍不了
est
   13
est  
   2017 年 10 月 24 日   ❤️ 11
把登陆成功的提示语改成:Permission denied, please try again.
sagaxu
   14
sagaxu  
   2017 年 10 月 24 日
@WordTian iptables 的优先级更高,你理解无误
likuku
   15
likuku  
   2017 年 10 月 24 日
@WordTian 不方便?比密钥更方便唯有空密码了。
ferstar
   16
ferstar  
   2017 年 10 月 24 日
楼上 fail2ban 可破, 或者 iptables 也是美滋滋的
https://ferstar.org/post/root/ssrbei-e-yi-sao-miao-shi-xu-yao-zuo-de-shi-qing
fe619742721
   17
fe619742721  
   2017 年 10 月 24 日
@est 我看行。。。
zjyl1994
   18
zjyl1994  
   2017 年 10 月 24 日
我端口都没换,把密码登录关掉,只允许 SSH 密钥登录,这样就行了
zlfzy
   19
zlfzy  
   2017 年 10 月 24 日
@sagaxu 实测 openssh-6.6 版本 tcpwrappers 依然有效
加入 /etc/hosts.deny 之后再连 ssh:
“ ssh_exchange_identification: read: Connection reset by peer ”
aalska
   20
aalska  
   2017 年 10 月 24 日
@WordTian 我也强迫症 我就是强迫一定要看到对面登陆失败
sagaxu
   21
sagaxu  
   2017 年 10 月 24 日
@zlfzy Changes since OpenSSH 6.6,6.6 是最后一个能用的版本
zlfzy
   22
zlfzy  
   2017 年 10 月 24 日
@sagaxu 噢噢,谢谢
levenhdu
   23
levenhdu  
   2017 年 10 月 24 日
mark
eslizn
   24
eslizn  
   2017 年 10 月 24 日
证书登录,如果对方能猜解出来,我也认了
Phariel
   25
Phariel  
   2017 年 10 月 24 日
关闭密码登入,换私钥,改端口
cye3s
   26
cye3s  
   2017 年 10 月 24 日
就算改密钥登陆,关密码,也还是有大把 ip 来尝试,顺便上了 fial2ban
psirnull
   27
psirnull  
   2017 年 10 月 24 日
/sbin/iptables -A INPUT -s 1.1.1.0/24 -j DROP #网段
/sbin/iptables -A INPUT -s 1.1.1.0 -j DROP #ip
zpvip
   28
zpvip  
   2017 年 10 月 24 日   ❤️ 1
fail2ban + 最多三次尝试 + IP 白名单
白名单里放另一台服务器的 IP

SSH 改端口一般是第一件事,改的时候小心点,新的端口通了再删除旧的,不然连不上只能控制面板重装系统了。
zpf124
   29
zpf124  
   2017 年 10 月 24 日
只允许 秘钥登录 +1。

唯一有点方的就是 前段时间那个 xshell 被植入恶意后门那个,我当时更新到了中招版本。
不过知道它上传秘钥不,反正目前那个服务器啥也不干,如果发现被人黑了,我再换秘钥。
okletswin
   30
okletswin  
   2017 年 10 月 24 日
更换端口+秘钥登陆
macfee
   31
macfee  
   2017 年 10 月 24 日
@zpvip console 呢?
vipper
   32
vipper  
   2017 年 10 月 24 日
今天好像看到一篇有关 ssh 私钥泄露的新闻,不知真假,不过还是小心为好。

另外,像这种扫你登录的可以直接 iptables ban 掉他

之前我的一个论坛,一直有人在猜管理员密码,看日志 ip 不是固定的,前 3 位一样,但第四位会变,于是我就将那个段的 IP 全 ban 了,之后再也没有猜解的出现
woshinide300yuan
   33
woshinide300yuan  
   2017 年 10 月 24 日
0.0 我是阿里云安全组仅允许固定 IP 访问 SSH 端口,不知道这样有用吗!
zander
   34
zander  
   2017 年 10 月 24 日
/etc/ssh/sshd_config
PasswordAuthentication no
hjc4869
   35
hjc4869  
   2017 年 10 月 24 日
ssh 关掉
yingtl
   36
yingtl  
   2017 年 10 月 24 日
有个脚本,如果检测到我登陆进去了,就把端口关上。没有登陆就开着端口。
然后我长年保持登陆
ArcticL
   37
ArcticL  
   2017 年 10 月 24 日
@yingtl 端口关了,怎么通信的?
q397064399
   38
q397064399  
   2017 年 10 月 24 日
随便扫,你能扫到算我输
sagaxu
   39
sagaxu  
   2017 年 10 月 24 日
@ArcticL port knocking,敲门敲对了才能 connect
https://wiki.archlinux.org/index.php/Port_knocking
ArcticL
   40
ArcticL  
   2017 年 10 月 24 日
@sagaxu 这个还挺好玩的
srx1982
   41
srx1982  
   2017 年 10 月 24 日
@woshinide300yuan 万一你的 ip 变了。。。
feast
   42
feast  
   2017 年 10 月 24 日
57880 123.183.209.135
20925 58.242.83.26
16902 60.18.229.201
16878 58.242.83.35
16271 123.183.209.136
12324 59.63.166.83
11911 42.7.26.49
10259 121.18.238.106
9554 221.194.44.212
8816 218.65.30.190
8757 59.45.175.96
8605 221.194.47.242
8538 121.18.238.28
8455 123.244.9.47
8378 59.45.175.94
8373 121.18.238.119
8351 59.45.175.95
8209 221.194.47.224
8130 59.45.175.98
8050 218.87.109.150
7903 59.45.175.67
7773 121.18.238.123
7673 221.194.47.236
7417 221.194.47.233

48757 218.65.30.124
39393 123.244.9.46
38337 61.177.172.66
26713 58.242.83.14
21392 42.7.26.15
19163 218.65.30.126
10409 103.242.58.237
9516 218.65.30.30
8673 121.18.238.106
8469 42.7.26.60
7960 221.194.47.236
7947 61.177.172.60
7897 59.45.175.11
7712 58.57.65.112
7463 59.45.175.96
7440 121.18.238.125
7425 121.18.238.123
7361 221.194.47.242
7193 221.194.47.233
6772 221.194.44.212
6696 121.18.238.119
6659 59.45.175.95
6635 59.45.175.67
6109 121.18.238.28

开机半个月的 JJ
ryd994
   43
ryd994  
   2017 年 10 月 24 日 via Android
禁止密码登录,随便扫随便试
真要在外面的话用跳板机进去
wdlth
   44
wdlth  
   2017 年 10 月 24 日
我限制了只能深圳电信连进来……
timothyye
   45
timothyye  
   2017 年 10 月 24 日 via Android
只允许证书登录,密码登录的不安全!
Neveroldmilk
   46
Neveroldmilk  
   2017 年 10 月 24 日
前面有人说过了,关闭密码验证,使用 key 验证。
iceheart
   47
iceheart  
   2017 年 10 月 24 日 via Android
我只 listen 127.0.0.1,就没人能猜了
BFDZ
   48
BFDZ  
   2017 年 10 月 24 日 via Android
@WordTian 我都是先换端口,禁止密码开密钥登录,看日志
WordTian
   49
WordTian  
OP
   2017 年 10 月 24 日
@iceheart 能监听 127.0.0.1 ?我改成 127.0.0.1 之后 ssh 就没法启动啊
Ultraman
   50
Ultraman  
   2017 年 10 月 24 日
随他猜 百十位的随机字符 猜得出来我也认了
kiwi95
   51
kiwi95  
   2017 年 10 月 24 日
1. 换端口
2. 禁止密码登陆
3. 禁止 root 用户登陆

三个全了基本就问题了
intsilence
   52
intsilence  
   2017 年 10 月 24 日
3 楼就有标准答案了呀,其他方法都会给自己带来不便
WordTian
   53
WordTian  
OP
   2017 年 10 月 24 日 via Android
@intsilence 想看看大家遇到这种情况都是怎么处理的,集思广益嘛
tinkerer
   54
tinkerer  
   2017 年 10 月 24 日
fail2ban
bao3
   55
bao3  
   2017 年 10 月 24 日
fail2ban + ssh key
aaronzjw
   56
aaronzjw  
   2017 年 10 月 24 日
@est 机智
ywgx
   57
ywgx  
   2017 年 10 月 24 日 via Android
https://xabcloud.com 强安利 😄
pynix
   58
pynix  
   2017 年 10 月 25 日
采用公钥验证。。。。
twl007
   59
twl007  
   2017 年 10 月 25 日 via iPhone
denyhosts
pony279
   60
pony279  
   2017 年 10 月 25 日
搞个 docker 镜像给他登陆,把容器里面的网络关掉,记录信息,看能不能反套路一波
qzy168
   61
qzy168  
   2017 年 10 月 25 日
换端口+证书登录。
0871087123
   62
0871087123  
   2017 年 10 月 25 日
找个 ssh 的蜜罐,开个十几个的,真的 ssh 端口只有自己知道,不 OK ?
寻龙点穴之 ssh 七星疑冢(滑稽)
flynaj
   63
flynaj  
   2017 年 10 月 25 日 via Android
如果是那种无脑机器扫描,换端口就行了,如果是针对性的用用密匙
bigpigeon
   64
bigpigeon  
   2017 年 10 月 25 日
改证书登录,在 /etc/ssh/sshd_conf 把密码登录 false 掉,随他怎么猜
woshinide300yuan
   65
woshinide300yuan  
   2017 年 10 月 25 日
@srx1982 主要我的情况是不重启路由就 IP 不变,要变了再去阿里云安全组里更新一下喽。嘻嘻~~~~
nyaruko
   66
nyaruko  
   2017 年 10 月 25 日
之前也有过密码被扫描的困扰。后来只允许密钥登录。但加密钥又实在太麻烦。现在用了 Google 验证器做两步验证,有 key 可以免密码,没 key 需要 Google 验证和用户密码
nyaruko
   67
nyaruko  
   2017 年 10 月 25 日
好吧没注意审题。这种情况只能蜜罐了。
panzhc
   68
panzhc  
   2017 年 10 月 30 日
集成 Google Authenticator 双因子登录
testcaoy7
   69
testcaoy7  
   2017 年 11 月 4 日
头一次听说 port knocking,真的很 6 !正在研究中。
Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
© 2026 V2EX · 113ms · 3.9.8.5