互联网中无时无刻存在大量的垃圾流量,针对服务器端口的扫描爆破,针对ip授权允许访问是很有必要的,通过系统防火墙来配置略微麻烦
介绍一个简单方便基于Nginx的方法(无需修改默认端口号,简单方便配置白名单ip)
步骤1
在nginx中修改配置 注意stream 块是和http块在同一级的
stream {
log_format tcp_format '$time_local|$remote_addr|$protocol|$status|$bytes_sent|$bytes_received|$session_time|$upstream_addr|$upstream_bytes_sent|$upstream_bytes_received|$upstream_connect_time';
access_log /nginx/wwwlogs/tcp.log tcp_format;
#南京联通4G
allow 122.96.32.0/24;
allow 122.96.33.0/24;
allow 122.192.14.0/24;
allow 122.192.15.0/24;
#南京移动4g
allow 223.104.150.0/24;
deny all;
#SSH
server {
listen 8001;
proxy_pass 127.0.0.1:22;
}
#MYSQL
server {
listen 8002;
proxy_pass 127.0.0.1:3306;
}
#redis
server {
listen 8002;
proxy_pass 127.0.0.1:6379;
}
}
allow 表示允许的ip段 122.96.32.0/24=122.96.32.0-122.96.32.255 范围不能设置太大,不安全 在收集平常我们所在地区的常用ip之后,基本不会出现太大变动
deny all; 表示禁止其他所有ip访问
步骤2
配置保存之后,进入云服务器后台,防火墙禁止掉所有端口 只保留80,443web端口,允许一个自定义端口段,这里我定义8000-9999后面需要用到 按照上述我的配置 如需连接ssh 则使用8001端口,通过转发的好处是校验了ip、无需修改端口号,增强了安全性
注意的是,当我们ip发生了变化,无法连接 只需要在云服务器后台中把ssh 22端口允许,手动连接之后加入白名单ip段,加好之后记得关闭。