Squid代理服務 html
1、本章結構 前端
2、代理服務器概述 web
3、squid簡介 vim
Squid是一個在GNU/GPL協議下發布的既可做爲代理服務器,同時也可做爲Web緩存守護進程的應用軟件。Squid主要是支持像HTTP和FTP那樣的協議,可是對其它的協議好比HTTPS,SSL,TLS等一樣也能支持。其特色是Web緩存守護進程經過從常常上訪問的網站裏緩存Web和DNS數據,從而讓上網速度更快。Squid支持全部的主流平臺,包括Linux,UNIX,微軟公司的Windows和蘋果公司的Mac。 瀏覽器
每一臺代理服務器上都有若干顆硬盤,每一個硬盤又分割成多個分區,每個分區又可創建多個目錄,目錄下存放文件,squid稱這些文件爲object。 緩存
查詢方式: 安全
4、代理的基本類型 服務器
①傳統代理:適用於Internet,需明確指定服務端 併發
[傳統代理] dom
②透明代理:適用於共享上網網關,不需指定服務端
[透明代理]
透明代理的意思是客戶端根本不須要知道有代理服務器的存在。
③反向代理:位於網站前端,代理web接受客戶端的請求
5、使用代理的好處
①提升web訪問速度
②隱藏客戶機的真實IP地址
6、代理服務器概述
7、常見配置
http_port 3128 #代理服務器的端口
access_log /var/log/squid/access.log squid #squid記錄的日誌
cache_mem 64 MB #緩存程序所使用的空間
cache_dir ufs /var/spool/squid 100 16 256
visible_hostname proxy.wdd.com #告訴squid它的主機名,必須寫
dns_testnames www.google.com www.163.com#能夠測試squid是否可用
maximum_object_size 4096 KB #限制squid可以在本地緩存的文件的大小
reply_body_max_size 10 MB #用戶經過squid可以下載的最大文件大小
error_directory /usr/share/squid/errors/Simplify_Chinese #中文錯誤信息
hierarchy_stoplist cgi-bin ? #用來強制某些特定的對象不被緩存,主要是處於安全的目的
coredump_dir /var/log/squid #定義dump的目錄
refresh_partern #刷新緩存的規則
8、acl訪問控制
①ACL(Access Control List,訪問控制列表):根據源地址、目標URL、文件類型等定義列表。
acl 列表名稱 列表類型 列表內容 …
②針對已定義的acl列表進行限制
http_access allow或deny 列表名稱 …
③訪問規則
以下所示:
#vim /etc/squid/squid.conf
….
acl all src 192.168.131.0/24
http_access deny all
#service squid reload
④列表類型
src |
源地址 |
dst |
目標地址 |
port |
目標端口 |
dstdomain |
目標域 |
time |
訪問時間 |
maxconn |
最大併發鏈接數 |
url_regex |
目標URL地址 |
urlpath_regex |
整個目標URL路徑 |
以下所示
#vim /etc/squid/squid.conf
…
acl all src 0.0.0.0/0.0.0.0
acl MYLAN src 192.168.1.0/24 192.168.4.0/24
acl WORKTIME time MTWHF 08:30-17:30
http_access allow MYLAN WORKTIME
http_access deny all
#service squid reload
注:HTTP_PROXY 爲HTTP協議提供代理
HTTPS_PROXY 爲HTTPS協議提供代理
FTP_PROXY 爲FTP協議提供代理
NO_PROXY 添加不使用代理的客戶機地址
2、傳統代理
試驗準備:主機A、B、C,IP地址分別爲192.168.131.137、192.168.131.130、192.168.131.136,主機B和主機C操做系統爲RHEL6.4 x86_64,爲最小化安裝,主機A爲桌面化安裝。主機A、B、C均在同一個網段,主機A做爲客戶端,主機B做爲squid服務器,主機C做爲網站服務器。
均關閉防火牆和SELINUX。
1、主機C操做
#yum –y install httpd
#service httpd start
#vim /var/www/html/index.html
I am host c
2、主機B操做
# yum -y install squid
# vim /etc/squid/squid.conf
http_port 3128
visible_hostname www.taobao.com #必定要填寫
# service squid start
3、主機A操做
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
#service NetworkManager stop
#ifdown eth0
#ifup eth0
#ifconfig
3、客戶端測試
①圖形化測試
修改火狐瀏覽器設置:"Edit"—"Preferences"—"Advanced"—"Network"—"Settings"—"Manual proxy configuration",填寫好代理服務器端口和3128端口,以下
點擊"ok"便可。
將squid代理服務器停掉
#service squid stop
發現訪問不了了
從新啓動squid
#service squid start
又能夠訪問了
②字符界面測試
# yum -y install elinks #安裝字符瀏覽器
#vim /etc/profile
HTTP_PROXY=http://192.168.131.130:3128
export HTTP_PROXY
# elinks 192.168.131.136
中止squid服務器
#service squid stop
在訪問192.168.131.130,鏈接被拒絕
3、透明代理
實驗準備:主機A做爲內網測試機,IP地址爲192.168.10.2,主機B做爲代理服務器,兩塊網卡,第一張網卡eth0於主機A在同一個網段,IP地址爲192.168.10.1;第二張網卡IP地址爲200.200.200.1,主機C在同一個網段。主機C做爲外網服務器,其IP地址爲200.200.200.2。三臺主機均清楚防火牆和禁用SLEINUX。
1、主機A操做
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
#指定網關
#service NetworkManager stop
#ifdown eth0
#ifup eth0
2、主機C操做
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
#service network restart
#yum –y install httpd
#service httpd start
#vim /var/www/html/index.html
3、主機B操做
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
#vim /etc/sysconfig/network-scripts/ifcfg-eth1
#service network restart
#vim /etc/sysctl.conf
#sysctl –p
#yum –y install squid
#vim /etc/squid/squid.conf
#service squid start
#iptables –F #清楚防火牆策略
#iptables –t nat -A PREROUTING –I eth0 –s 192.168.10.0/24 –p tcp –dport 80 –j REDIRECT –to-ports 3128
#配置防火牆策略 iptables -t nat -I PREROUTING -i 內網接口名 -s 內網網段 -p tcp --dport 80 -j REDIRECT --to-ports 3128
4、測試
①用內網測試機,訪問外網
把代理服務器停掉
#service squid stop
發現沒法訪問了
②限制下載大小
代理服務器
#vim /etc/squid/squid.conf
reply_body_max_size 10 MB #10和MB之間是有空格的,不然報錯
#service squid reload #從新加載配置文件
網站服務器
#dd if=/dev/zero of=/var/www/html/wdd.txt bs=1M count=15
客戶端測試
在瀏覽器輸入http://200.200.200.2/wdd.txt
4、反向代理
試驗準備:主機A、B、C、D,主機A做爲外網客戶端,IP地址爲200.200.200.2,主機B爲代理服務器,雙網卡,第一張網卡eth0與內網主機C和主機D在同一個網段,IP地址爲192.168.10.1;第二張網卡與外網主機在同一網段,IP地址爲200.200.200.1;主機C和主機D做爲網站服務器,其IP地址分別爲192.168.10.2和192.168.10.3,均關閉防火牆和SELINUX。主機A爲圖形化安裝,主機B、C、D爲最小化安裝,操做系統爲RHEL6.4 x86_64。
1、主機A操做
#vim /etc/sysconfig/network-ifcfg-eth0
#service NetworkManager stop
#ifdown eth0
#Ifup eth0
2、主機C操做
#vim /etc/sysconfig/network-ifcfg-eth0
#ifdown eth0
#ifup eth0
#yum -y install httpd
#service httpd start
#vim /var/www/html/index.html
I am web1
3、主機C操做
#vim /etc/sysconfig/network-ifcfg-eth0
#ifdown eth0
#ifup eth0
#yum -y install httpd
#service httpd start
#vim /var/www/html/index.html
I am web2
4、主機B操做
#vim /etc/sysconfig/network-ifcfg-eth0
#vim /etc/sysconfig/network-ifcfg-eth1
#service network restart
#yum –y install squid
#vim /etc/squid/squid.conf
acl wan src 200.200.200.0/24
http_access allow wan
http_port 200.200.200.1:80 vhost
visiable_hoatname www.taobao.com
cache_peer 192.168.10.2 parent 80 0 originserver round-robin weight=1
cache_peer 192.168.10.3 parent 80 0 originserver round-robin weight=1
#service squid start
5、測試
在外網主機輸入http://200.200.200.1,按F5刷新獲得以下結果