오징어 프록시 서버 응용 프로그램 (전통과 투명)

실험 회로도

그림 삽입 설명 여기

1 단계 : 구성 오징어 프록시 서버

#远程共享并挂载源码包
[root@squid ~]# smbclient -L //192.168.142.1
[root@squid ~]# mount.cifs //192.168.142.1/squid /mnt

#解压源码包
[root@squid ~]# cd /mnt
[root@squid mnt]# tar zxvf squid-3.4.6.tar.gz -C /opt

#安装编译环境
[root@squid mnt]# yum install gcc gcc-c++ make -y

#切入源码包目录
[root@squid mnt]# cd /opt/squid-3.4.6/

#配置configure组件项
[root@squid squid-3.4.6]# ./configure --prefix=/usr/local/squid \
>--sysconfdir=/etc \
>--enable-arp-acl \
>--enable-linux-netfilter \
>--enable-linux-tproxy \
>--enable-async-io=100 \
>--enable-err-language="Simplify_Chinese" \
>--enable-underscore \
>--enable-poll \
>--enable-gnuregex

#编译与安装
[root@squid squid-3.4.6]# make && make install

#建立服务命令软链接到系统中,便于管理
[root@squid squid-3.4.6]# ln -s /usr/local/squid/sbin/* /usr/local/sbin

#添加程序用户
[root@squid squid-3.4.6]# useradd -M -s /sbin/nologin squid

#修改服务目录的属主和属组
[root@squid squid-3.4.6]# chown -R squid.squid /usr/local/squid/var

#修改squid.conf配置文件
[root@squid squid-3.4.6]# vim /etc/squid.conf

http_port 3128
#在3128端口条目下追加以下条目
#指定缓存功能所使用的内存空间大小,建议设为物理内存的1/4
cache_mem 64 MB

#允许用户下载最大文件大小
reply_body_max_size 10 MB

#允许保存到缓存空间的站点对象大小
maximum_object_size 4096 KB
#添加程序用户
cache_effective_user squid

#添加用户组
cache_effective_group squid

#检查配置文件语法
[root@squid squid-3.4.6]# squid -k parse

#初始化缓存目录
[root@squid squid-3.4.6]# squid -z

#启动服务
[root@squid squid-3.4.6]# squid

#查看服务端口状态
[root@squid squid-3.4.6]# netstat -ntap | grep squid
tcp6       0      0 :::3128                 :::*                    LISTEN      31862/(squid-1) 

#切换启动进程目录
[root@squid squid-3.4.6]# cd /etc/init.d

#创建启动脚本
[root@squid init.d]# vim squid
#!/bin/bash
#chkconfig: 2345 90 25
PID="/usr/local/squid/var/run/squid.pid"
CONF="/etc/squid.conf"
CMD="/usr/local/squid/sbin/squid"

case "$1" in
start)
        netstat -ntap | grep squid &> /dev/null
        if [ $? -eq 0 ]
        then 
         echo "squid is running"
         else
         echo "正在启动 squid...." 
         $CMD
        fi
        ;;
stop)
        $CMD -k kill &> /dev/null
        rm -rf $PID &> /dev/null
        ;;
status)
        [ -f $PID ] &> /dev/null
         if [ $? -eq 0 ]
                then
                 netstat -ntap | grep squid
                else
                 echo "squid is not running"
        fi
        ;;
restart)
        $0 stop &> /dev/null
        echo "正在关闭 squid..."
        $0 start &> /dev/null
        echo "正在启动 squid..."
        ;;
reload)
        $CMD -k reconfigure
        ;;
check)
        $CMD -k parse
        ;;
*)
        echo "用法:$0{start|stop|reload|status|check|restart}"
        ;;
esac

#授予脚本执行权限
[root@squid init.d]# chmod +x squid

#添加脚本到service管理器
[root@squid init.d]# chkconfig --add squid 

#添加服务开机自启动
[root@squid init.d]# chkconfig --level 35 squid on

#使用脚本可管理squid服务
[root@squid init.d]# service squid stop
[root@squid init.d]# service squid start 
正在启动 squid....
[root@squid init.d]# netstat -ntap | grep squid
tcp6       0      0 :::3128                 :::*                    LISTEN      48115/(squid-1) 

#清除防火墙所有规则
[root@squid init.d]# iptables -F

#关闭增强型安全功能
[root@squid init.d]# setenforce 0

#设着防火策略,用以放通3128端口
[root@squid init.d]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

구성 웹 사이트 서버를 : 두에게 단계

[root@web ~]# systemctl stop firewalld.service 
[root@web ~]# setenforce 0
[root@web ~]# yum install httpd -y
[root@web ~]# systemctl start httpd

세 번째 단계 : 클라이언트 액세스 웹 페이지를 사용하여

액세스 192.168.142.139로 브라우저를 사용하여
그림 삽입 설명 여기

네 단계 : 구성에 프록시 서버를 사용하도록 클라이언트를 프록시 서비스를 확인

1. 브라우저 작업 메뉴에서 "인터넷 옵션"을 선택
그림 삽입 설명 여기2. "LAN 설정", "사용자 LAN에 프록시 서버 사용"을 선택 "및 서버 주소와 포트 지정
그림 삽입 설명 여기
을 다시 3. 액세스 192.168.142.139을
그림 삽입 설명 여기

프록시 서버의보기 서비스 로그에 웹 서버에 5 위로 눈에 보이는 기록이 방문 주소

[root@web ~]# vim /etc/httpd/logs/access_log 
192.168.142.131 - - [04/Dec/2019:19:04:28 +0800] "GET /noindex/css/fonts/ExtraBold/OpenSans-ExtraBold.eot? HTTP/1.1" 404 248 "http://192.168.142.139/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"

이이 서버를 지정하는 데 필요한 때 기존의 기관, 인터넷에 대한 액세스 웹 서비스 프록시 서버의 주소를 사용하고 있음을 보여줍니다!

오징어가 더 전통적인 대행 서비스보다,의 투명 프록시 서비스를 구성 할 수


설정 투명 프록시

첫 번째 단계 : 구성 프록시 카드

1. 수정 ens33 카드 정보

[root@squid ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
#修改dhcp为static
BOOTPROTO=static

#末行追加IP地址、子网掩码和网关
IPADDR=192.168.100.1
NETMASK=255.255.255.0

[root@squid ~]# service network restart 
Restarting network (via systemctl):                        [  确定  ]

두 번째 카드 및 카드 정보 수정 ens36를 추가합니다

[root@squid ~]# cd /etc/sysconfig/network-scripts/
[root@squid network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36
[root@squid network-scripts]# vim ifcfg-ens36
#将33替换成36,并删除UUID条目
IPADDR=12.0.0.1
NETMASK=255.255.255.0

[root@squid network-scripts]# service network restart 
Restarting network (via systemctl):                        [  确定  ]

게이트웨이 서버로 패킷 전송 기능을 추가 3

[root@squid network-scripts]# echo "1" >/proc/sys/net/ipv4/ip_forward

4. 방화벽 정책 설정

#放通80端口,并重定向到3128代理端口
[root@squid network-scripts]# iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128

##放通https的443端口,并重定向到3128代理端口
[root@squid network-scripts]# iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128

5. 수정 프로필 이는 squid.conf

[root@squid ~]# vim /etc/squid.conf
#将原3128端口条目替换成以下条目,用以支持透明模式
http_port 192.168.100.1:3128 transparent

6. 과부하 대행 서비스

[root@squid network-scripts]# service squid reload

단계 : 웹 서버 카드 정보

[root@web ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 

#修改dhcp为static
BOOTPROTO=static

#末行追加IP地址、子网掩码和网关
IPADDR=12.0.0.12
NETMASK=255.255.255.0
GATEWAY=12.0.0.1

[root@web ~]# service network restart
Restarting network (via systemctl):                        [  确定  ]

세 번째 단계 : 사용 클라이언트 액세스

주소를 수정 (1)

그림 삽입 설명 여기
설정하기 전에 2. 프록시 서비스 옵션을 취소
그림 삽입 설명 여기
액세스 12.0.0.12에 브라우저를 사용합니다

그림 삽입 설명 여기

웹 서버 4. 돌아 가기 서비스 로그를 볼, 눈에 보이는 기록은 네트워크 카드 이외의 주소를 방문

12.0.0.1 - - [04/Dec/2019:22:41:39 +0800] "GET /noindex/css/fonts/ExtraBold/OpenSans-ExtraBold.eot? HTTP/1.1" 404 248 "http://12.0.0.12/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"

따라서, 투명 프록시는 방향 핸들에서 웹에 액세스하기 위해 프록시 서버로 라우팅 및 방화벽 정책 중매를 통해 액세스 웹 서비스에 네트워크 카드 외부의 주소를 사용하고 있습니다!

읽어 주셔서 감사합니다!

추천

출처blog.51cto.com/14449521/2456213