背景
开启ssh外网远程登录,总是被暴露破解攻击,导致账号被锁定,无法登录
解决方法
1、关闭远程登录,改用其他方式,如堡垒机、vpn等,暂不详解
2、使用nginx反向代理,屏蔽外网ip
步骤一:修改ssh登录端口
步骤二:修改nginx配置,增加ssh反向代理
bash
stream {
upstream ssh {
hash $remote_addr consistent;
server *.*.*.*:1022;
}
server {
listen 22;
proxy_connect_timeout 120s;
proxy_timeout 120s;
proxy_pass ssh;
allow 外网ip1/32;
allow 外网ip1/32;
deny all;
}
}
注释:
deny IP; # 屏蔽单个 ip 访问
allow IP; # 允许单个 ip 访问
deny all; # 屏蔽所有 ip 访问
allow all; # 允许所有 ip 访问
deny 123.0.0.0/8; # 屏蔽整个段即从 123.0.0.1 到 123.255.255.254 访问的命令
deny 124.45.0.0/16; # 屏蔽IP段即从 123.45.0.1 到 123.45.255.254 访问的命令
deny 123.45.6.0/24; # 屏蔽IP段即从 123.45.6.1 到 123.45.6.254 访问的命令
# 如果你想实现这样的应用,除了几个IP外,其他全部拒绝
allow 1.1.1.1;
allow 1.1.1.2;
deny all;