本实验操作系统选用 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);
}

转载于:https://www.cnblogs.com/xishi/archive/2012/04/10/ada.html

Squid 代理服务器 编译源码 伪造HTTP_X_FORWARDED_FOR 请求头相关推荐

  1. FFmpeg入门详解之104:Win10快速安装OpenSSL(不用编译源码)

    win10x64安装OpenSSL:不用编译源码 网上一堆的教程教你去下载opensll源代码并用vs进行编译,虽然我有安装vs2015,但是看到那么长的编译步骤,太心累了. 懒人只得找简单的方法,最 ...

  2. 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)

    作者 : 韩曙亮  博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...

  3. Windows下PCL1.9.1配置(编译源码)

    PCL1.9.1并没有支持vs2015版本的exe版本,然后需要下载PCL的源码重新自己CMake编译出vs2015版本的 编译的目的: 1.得到支持vs2015的版本的PCL1.9.1 前期准备 1 ...

  4. ubuntu 编译源码包 dsc diff.gz orig.tar.gz

    2019独角兽企业重金招聘Python工程师标准>>> 1) 在获取源码包之前,确保在软件源配置文件/etc/apt/sources.list中添加了deb-src项以tree实用程 ...

  5. ubuntu配置android开发环境和编译源码遇到的一些问题

    ---------------------------------------------环境变量设置--------------------------------------------- 1.设 ...

  6. 二、ceph编译源码、单机搭建调试环境

    2019独角兽企业重金招聘Python工程师标准>>> 准备一台机器: root@test3:~# cat /proc/version Linux version 3.13.0-32 ...

  7. android 代码发adb,Android预安装软件adb命令编译源码

    Android预安装软件&adb命令&编译源码 发布时间:2020-06-02 17:28:41 来源:51CTO 阅读:895 作者:年少的风 1.预安装软件: 将eclipse下的 ...

  8. Spring源码解析 -- SpringWeb请求参数获取解析

    Spring源码解析 – SpringWeb请求参数获取解析 简介 在文章:Spring Web 请求初探中,我们看到最后方法反射调用的相关代码,本篇文章就探索其中的参数是如何从请求中获取的 概览 方 ...

  9. Spring源码解析 -- SpringWeb请求映射Map初始化

    简介 在上篇文章中,大致解析了Spring如何将请求路径与处理方法进行映射,但映射相关的初始化对于我们来说还是一团迷雾 本篇文章就来探索下,请求路径和处理方法的映射,是如何进行初始化的 概览 基于上篇 ...

最新文章

  1. SAP QM Multiple Specifications的使用III
  2. python手机版做小游戏代码大全-Python大牛手把手教你做一个小游戏,萌新福利!...
  3. Windows下将MySQL5.5升级为MySQL5.7
  4. 面试文员计算机水平考题,一般电脑文员面试上机操作的时候会考什么?
  5. cube、rollup及exec的用法实例
  6. 腾讯AI Lab宣布将于9月底开源“Tencent ML-Images”项目
  7. nginx https http2
  8. CRM WebClient UI和Hybris里工作中心跳转的url生成逻辑
  9. android webView的缓存机制和资源预加载
  10. 网站改title的后果到底有多惨?
  11. 从头到尾打印链表c++_从头到尾创建一个C#应用程序-完整的24小时课程
  12. 算法 Tricks(一)—— 字符串和数组的翻转
  13. 【USACO 2.4】Fractions to Decimals(分数转小数)
  14. MMI、SS、USSD介绍
  15. ubuntu16安装搜狗输入法教程
  16. 彻底讲清楚ZooKeeper分布式锁的实现原理【石杉的架构笔记】
  17. .net MVC全局定时器执行作业
  18. 两数之和c++实现 java实现 two sum
  19. e 服务器怎么注册不了怎么办,IMVU注册不了怎么办 服务器错误怎么办
  20. 16福师硬盘是计算机的,福师16春《计算机应用基础》在线作业一

热门文章

  1. FPA笔记六 计算EI/EO/EQ的功能点
  2. Zenoss学习杂记(十)
  3. 让我吐血的一次重做系统
  4. 成功的九字真言(冯唐)
  5. 当你所有的尝试告一段落
  6. ubuntu配置文件对照表
  7. VMware安装Centos7过程
  8. 移动端列表点击跳转 返回保存原来高度
  9. java算法 第七届 蓝桥杯B组(题+答案) 5.抽签
  10. MySQL数据类型:UNSIGNED注意事项