zoukankan      html  css  js  c++  java
  • Squid 代理服务器 编译源码 伪造HTTP_X_FORWARDED_FOR 请求头

    本实验操作系统选用 CentOS release 5.6 (Final)

    实验目的实现 Squid 代理服务器 编译源码 伪造HTTP_X_FORWARDED_FOR  请求头 .使其显示任意IP 

    过程如下: 

    1.下载对应系统的squid源码版本

    Squid源码连接:http://www.squid-cache.org/Versions/

     本次实验下载:http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE21.tar.gz

    命令: wget  http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE21.tar.gz

    2.解压修改编译源码 一次执行如下命令

     yum -y install gcc perl make

    tar xzf squid-2.6.STABLE21.tar.gz

    cd squid-2.6.STABLE21

             修改代码文件 http.c  

      /* append X-Forwarded-For */

        if (opt_forwarded_for) {
        strFwd = httpHeaderGetList(hdr_in, HDR_X_FORWARDED_FOR);
        strListAdd(&strFwd,"112.121.182.45"',');
        httpHeaderPutStr(hdr_out, HDR_X_FORWARDED_FOR, strBuf(strFwd));
        stringClean(&strFwd);
        }
     
    cd squid-2.6.STABLE21
    ./configure --prefix=/usr/local/squid --disable-internal-dns
    make
    make install

    3.设置配置文件  

     /usr/local/squid/etc/squid.conf 如下配置

    visible_hostname nginxs.com
    http_port 3128
    icp_port 3130
    cache_log /dev/null
    cache_store_log none
    pid_filename /var/run/squid.pid
    maximum_object_size 32768 KB
    acl all src 0.0.0.0/0.0.0.0
    http_access allow all
    icp_access allow all
    dns_nameservers 8.8.8.8
    header_access Via deny all

    chmod -R 777 /usr/local/squid/var

     /usr/local/squid/sbin/squid -z

    /usr/local/squid/sbin/squid start

    echo "/usr/local/squid/sbin/squid start" >> /etc/rc.local

    vi /etc/rc.local

    不出意外 现在可以打开IE 挂上代理IP测试了
     
    对于修改之后重新编译
    make   uninstall
    make   clean
     
    对于启动出现错误 squid: Cannot open HTTP Port
    原来是Selinux防火墙阻止了,把SELinux关闭掉之后,便可以正常启动squid服务了!

    vi /etc/selinux/config
    改成SELINUX=disabled

    header_access Via deny all
    header_access X-Forwarded-For deny all
    header_access Server deny all
    header_access X-Cache deny all
    header_access X-Cache-Lookup deny all

    CentOS6 Shell脚本/bin/bash^M: bad interpreter错误解决方法

    在windows下保存了一个脚本文件,用ssh上传到centos,添加权限执行nginx提示没有那个文件或目录。
    shell脚本放到/etc/init.d/目录下,再执行/etc/init.d/nginx,提示多了这句/bin/bash^M: bad interpreter。
    网上找了资料才知道
    如果这个脚本在Windows下编辑过,就有可能被转换成Windows下的dos文本格式了,这样的格式每一行的末尾都是以\r\n来标识,它的ASCII码分别是0x0D,0x0A。如果你将这个脚本文件直接放到Linux上执行就会报/bin/bash^M: bad interpreter错误提示。
    解决方法很简单,首先你先要检查一下看看你的脚本文件是不是这个问题导致的,用vi命令打开要检查的脚本文件,然后用
    :set ff?
    命令检查一下,看看是不是dos字样,如果是dos格式的,继续执行
    :set ff=unix
    然后执行
    :qw
    保存退出即可。

     方法2:修改squid,confi 中visible_hostname 8.8.8.8 这样不用每次编译

    /* append X-Forwarded-For */
    if (opt_forwarded_for) {
    strFwd = httpHeaderGetList(hdr_in, HDR_X_FORWARDED_FOR);
    strListAdd(&strFwd,Config.visibleHostname, ',');
    httpHeaderPutStr(hdr_out, HDR_X_FORWARDED_FOR, strBuf(strFwd));
    stringClean(&strFwd);
    }

  • 相关阅读:
    c++---------------------------->>>>>>>>>>>>>>>>>>遍历文件工具
    图像分割------>>>>>>性能提升30%以上!产业SOTA的实时实例分割算法SOLOv2,更快更强!
    不用绿幕也能实时抠图,商汤等提出只需单张图像、单个模型的新方法MODNet
    目标检测框回归问题
    NeurIPS 2020 | 微软亚洲研究院论文摘录之目标检测篇
    动态规划算法
    FCOS环境搭建配置
    conda--------------------------------->虚拟环境创建
    W: Failed to fetch http://ppa.launchpad.ne
    shell-code-5-函数
  • 原文地址:https://www.cnblogs.com/xishi/p/ada.html
Copyright © 2011-2022 走看看