V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HTSdTt3WygdgQQGe
V2EX  ›  程序员

iptables 怎么屏蔽 https 请求图片

  •  
  •   HTSdTt3WygdgQQGe · 2020-01-10 13:12:37 +08:00 · 4431 次点击
    这是一个创建于 1779 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一个需求,只想请求 js,css,html 等文件,图片屏蔽掉

    由于是 https 加密请求,iptables 搞不定了,求助 v 站

    23 条回复    2020-01-11 16:26:26 +08:00
    ChristopherWu
        1
    ChristopherWu  
       2020-01-10 13:15:21 +08:00
    用 cotent-type 过滤不就好了
    crazypig14
        2
    crazypig14  
       2020-01-10 13:17:07 +08:00
    防盗链?
    okletswin
        3
    okletswin  
       2020-01-10 13:57:20 +08:00   ❤️ 2
    不太理解,这不是 7 层做的事吗,怎么在 3/4 层做,咋做到的?
    crab
        4
    crab  
       2020-01-10 13:59:25 +08:00
    图片是单独域名 IP ?
    linbingcheng
        5
    linbingcheng  
       2020-01-10 14:03:17 +08:00
    不是在 nginx 配置路由过滤规则吗? deny allow
    zhhww57
        6
    zhhww57  
       2020-01-10 15:30:17 +08:00   ❤️ 1
    https 加密流量,iptables 怎么屏蔽,iptables 最多从 tls 握手包里面看到证书和域名,应该从你的 web server 入手
    zhhww57
        7
    zhhww57  
       2020-01-10 15:30:47 +08:00
    另外你是 server 还是 client
    HTSdTt3WygdgQQGe
        8
    HTSdTt3WygdgQQGe  
    OP
       2020-01-10 16:00:58 +08:00
    @ChristopherWu 由于是 ssl 加密,获取不到"cotent-type"
    @zhhww57 我是客户端
    @crab 我是客户端
    geekvcn
        9
    geekvcn  
       2020-01-10 16:02:44 +08:00 via iPhone
    做不到
    geekvcn
        10
    geekvcn  
       2020-01-10 16:04:43 +08:00 via iPhone
    你可以把图片服务器域名解析到 127.0.0.1,如果想拦截所有网站图片,网关设备加个代理,或者客户端浏览器用插件加规则
    ZRS
        11
    ZRS  
       2020-01-10 16:05:19 +08:00
    做不到 除非图片数据在域名上有体现
    tankren
        12
    tankren  
       2020-01-10 16:34:26 +08:00
    squidguard?
    lc7029
        13
    lc7029  
       2020-01-10 17:59:36 +08:00   ❤️ 1
    做不到,除非屏蔽 443 端口
    iptables 是三层包过滤防火墙,传输什么东西是七层数据
    libook
        14
    libook  
       2020-01-10 18:11:23 +08:00   ❤️ 1
    HTTPS 流量只能看到域信息,路径、Query、Header、Body、Method 全部加密,所以中间人完全不可能知道这个流量传的是图片还是文字还是其他的东西。这恰好也是 HTTPS 的设计初衷。

    想要让中间人能分析流量内容,有两种思路:
    1. 代理,客户端装代理服务器的 TLS 证书,发请求走代理服务器代理,代理服务器用自己的私钥解密流量,分析完之后再用目标服务器的 TLS 证书加密,转发给目标服务器,返回的时候也是在代理服务器解密,分析完后再用代理服务器的私钥加密返回给客户端。这个方案对页面依赖的其他资源兼容性好,但是操作起来稍微有点麻烦。
    2. 镜像站,客户端请求镜像站的域,HTTPS 用镜像站的 TLS 证书;镜像站分析完后重新用目标网站的 TLS 证书建立 HTTPS 转发给目标网站,返回数据的时候也是先返回镜像站,分析完后用镜像站的私钥返回给客户端。这个方案操作起来简单,兼容性欠佳,一不小心还可能会跳转到目标网站的域上。
    snBDX1b0jJM4ogKd
        15
    snBDX1b0jJM4ogKd  
       2020-01-10 20:11:41 +08:00 via Android
    两层 nginx 搞定
    rainbowchou
        16
    rainbowchou  
       2020-01-10 21:06:58 +08:00
    HTTPS 下的内容还能按内容区分给你,那加密有啥用,只能搞个中间环节伪装下
    yzwduck
        17
    yzwduck  
       2020-01-10 21:27:16 +08:00
    这种需求应该在 client (浏览器) 里去实现,Chrome, Firefox 都有禁止自动加载图片的开关。
    AndyWayne
        18
    AndyWayne  
       2020-01-10 22:24:58 +08:00
    iptables 还有这功能吗?
    ThirdFlame
        19
    ThirdFlame  
       2020-01-10 23:15:42 +08:00   ❤️ 1
    iptables 能够控制和理解第四层的东东,无法理解已经加过密的第七层的东西。 也就没有办法实现 楼主你的想法。
    HTSdTt3WygdgQQGe
        20
    HTSdTt3WygdgQQGe  
    OP
       2020-01-11 00:59:54 +08:00 via Android
    感谢各位分析,已死心
    yuzenan888
        21
    yuzenan888  
       2020-01-11 08:43:08 +08:00
    无解。不过可以考虑搭一个代理服务器 + HTTPS 中间人攻击。
    zjsxwc
        22
    zjsxwc  
       2020-01-11 09:34:59 +08:00
    自己当中间人攻击自己
    xzsljc
        23
    xzsljc  
       2020-01-11 16:26:26 +08:00
    7 层,web waf 控制
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2797 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:32 · PVG 15:32 · LAX 23:32 · JFK 02:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.