天天看點

代理伺服器

 代理伺服器英文全稱是Proxy Server,功能就是它幫助我們去取得網絡資源,然後,将資訊發給我們并且自己保留一份在緩沖中,當使用者再來通路時,它将緩沖中的資訊直接發給我們。

它主要的特點:

1、突破自身IP通路限制。我們在通路外部資源時,代理伺服器首先檢視自己的緩沖區,如果有就将資料發給我們,如果沒有,它會以它的ip去通路網絡資源,然後發給我們。

2、提高通路速度:通常代理伺服器都設定一個較大的硬碟緩沖區,當有外界的資訊通過時,同時也将其儲存到緩沖區中,當其他使用者再通路相同的資訊時, 則直接由緩沖區中取出資訊,傳給使用者,以提高通路速度。

代理伺服器&nat

它們都能夠支援網絡層(ip位址的控制)、傳輸層(端口号的轉換)。

另外代理伺服器能夠支援應用層。

Nat 應用多,然而,安全性差。

代理伺服器 應用少,安全性高。

下面我們來看看三個案例:

一、正向代理

也就是說,我們通過代理伺服器通路外網。

拓撲圖:

代理伺服器

1、開啟代理伺服器的路由功能

[root@zlj ~]# vim /etc/sysctl.conf 

代理伺服器

讓這些參數生效

[root@zlj ~]# sysctl -p

代理伺服器

2、安裝squid

[root@zlj Server]# rpm -ivh squid-2.6.STABLE21-3.el5.i386.rpm 

代理伺服器

3、配置檔案

 對于出錯頁面給予辨別

 visible_hostname 192.169.1.254

代理伺服器

設定權限

代理伺服器

文法檢測 ,當沒有資訊時說明是正确的

[root@zlj Server]# squid -k parse

啟動

[root@zlj Server]# service squid start

代理伺服器

4、設定本地浏覽器

點選浏覽器,右鍵屬性

代理伺服器

點選連接配接,選擇區域網路設定

代理伺服器

選擇為lan使用代理伺服器

代理伺服器

位址填代理伺服器ip(如 192.168.1.254),端口填3128

5、測試

通路外網

觀察代理伺服器的日志

[root@zlj Server]# tail -f /var/log/squid/access.log 

代理伺服器

6、特殊設定

 6.1 acl aclname src      ip-address/netmask ... (clients IP address)

基于ip的限制

例如 :

acl badip src 192.168.1.1/255.255.255.255

http_access deny badip

不為192.168.1.1的主機代理

代理伺服器

測試2

代理伺服器

檢視日志

代理伺服器

 6.2  acl aclname src      addr1-addr2/netmask ... (range of addresses)

控制一段位址範圍

例如:

acl badip src 192.168.1.1-192.168.1.110/255.255.255.255

代理伺服器

測試

代理伺服器
代理伺服器

6.3 acl aclname dst      ip-address/netmask ... (URL host's IP address)

 根據目的ip控制

acl badip dst 61.130.130.1/255.255.255.255

代理伺服器

測試:

代理伺服器
代理伺服器

  6.4  acl aclname myip     ip-address/netmask ... (local socket IP address)

 控制本地ip

   6.5 acl aclname arp      mac-address ... (xx:xx:xx:xx:xx:xx notation)

根據arp控制      

6.6 acl aclname srcdomain   .foo.com ...    # reverse lookup, client IP

根據原域名控制     

6.7acl aclname dstdomain   .foo.com ...    # Destination server from URL

根據目标域名含有某些字的控制

acl badip dstdomain .abc.com 

6.8   acl aclname srcdom_regex [-i] xxx ...   # regex matching client name

根據目的域名控制

acl badip srcdom_regex -i .abc.com

-i忽略大小寫

   6.9  acl aclname dstdom_regex [-i] xxx ...   # regex matching server

     根據原域名含有某些字的控制

6.10 acl aclname time     [day-abbrevs]  [h1:m1-h2:m2]

day-abbrevs:

            S - Sunday 

            M - Monday

             T - Tuesday

            W - Wednesday

           H - Thursday

            F - Friday

              A - Saturday

基于時間的

acl worktime time MTWHFA 08:00-22:00

http_access deny all worktime

代理伺服器
代理伺服器

6.11 acl aclname url_regex [-i] ^http:// ... # regex matching on whole URL

基于某些字控制

acl badweb url_regex -i sina

http_access deny all badweb

代理伺服器

6.12 acl aclname urlpath_regex [-i] \.gif$ ...       # regex matching on URL path

基于圖檔控制

acl badweb urlpath_regex -i \.jpg$

将拒絕jpg格式的圖檔

二、透明代理

  透明代理就是客戶不用設定任何東西,然而,要在網關的地方做。

代理伺服器

1、開啟端口轉換功能

[root@zlj squid]# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

當通路到80端口時,它會給它轉換到3128端口

代理伺服器

2、編輯配置檔案

[root@zlj ~]# vim /etc/squid/squid.conf

http_port 3128  transparent  #添加

代理伺服器

重新開機服務

[root@zlj ~]# service squid restart

3、測試

直接通路

代理伺服器

三、反向伺服器代理

就是讓外網通路内網時,給它加速

代理伺服器

1、修改配置檔案

http_port 61.130.130.254:80 vhost

cache_peer 192.168.1.1:80       parent    80     0    originserver

代理伺服器
代理伺服器

2、測試,啟用

[root@zlj ~]# squid -k parse  #檢查文法

[root@zlj ~]# service squid restart #重新開機服務

代理伺服器

外網通路内網

代理伺服器

提示:

ERROR

The requested URL could not be retrieved

說明我們的配置限制外網使用者了。

設定 權限

http_access allow all

http_access deny all

代理伺服器

再次通路

如果還是不行,建議重新開機伺服器

代理伺服器

能夠代理到内網

代理伺服器

可以看到從61.130.130.1來的主機以get方式通路61.130.130.254,代理伺服器給網際網路上的使用者代理,給我們伺服器加速,同時,我們伺服器也得到了安全保證。

繼續閱讀