squid代理伺服器隱藏ip
㈠ 代理伺服器的主要功能有哪些
在不使用代理伺服器的情況下,用戶使用網路瀏覽器直接連接其他Internet站點取得網路信息時,須發出請求信號來得到回答,然後對方再把信息以數據流方式傳送回來。
有了代理伺服器之後,瀏覽器向代理伺服器發出請求,當代理伺服器接收請求信息號,再由代理伺服器來取回瀏覽器所需要的信息並傳送給終端用戶的瀏覽器。代理伺服器的作用如下。
1、共享網路
如通過Squid、sygate、wingate、isa、ccproxy以及NT系統自帶的網路共享等代理伺服器訪問外部站點的信息。這些代理伺服器也都能提供企業級的文件緩存、復制和地址過來等服務。
充分利用區域網出口的有限帶寬,加快內網用戶的訪問速度,能解決僅僅有一條線路一個公有IP,在這種公有IP資源嚴重不足的情況下,滿足區域網眾多用戶同時共享上網的需求。
2、訪問代理
現在的網路環境中常常會出現網路擁擠或網路故障。用戶通常都會通過代理伺服器繞道訪問目的站點;另外,代理伺服器中通常會備份有相當數量的緩存文件。
如果當前所訪問的數據在代理伺服器的緩存文件中,則可直接讀取,而無需再連接到遠端Web伺服器。這樣可以達到加快訪問網站速度,節約通信帶寬的目的。
3、提高速度
提高下載速度,突破一個IP、一個下載線程的限制以敬含及電信和聯通的用戶互上對方的電影網站下載的限制。
4、突破限制
互聯網上有許多開放的代理伺服器,客戶在訪問許可權受到限制時,而這些代理伺服器的訪問許可權是不受限制的,剛好代理伺服器在客戶的訪問范圍之內。
那麼客戶通過代理伺服器訪問目標網站就成為可能。通過代理伺服器,國內高校使用教育網就能實現訪問網際網路,這就是高校內代理伺服器流向的原因所在。
5、防止攻擊
通過代理伺服器完成內部主機的訪問使主機地址等信息不會發送到外部,隱藏了自己的真實地址信息,還可隱藏自己的IP。更有效地保護了內部主機。
6、充當防火牆
因為所有使用代理伺服器的用戶都必須通過代理伺服器訪問遠程站點,因此在代理伺服器上就可以設置相應的限制,以過濾或屏蔽某些信息。
7、方便對用戶管理
通過代理伺服器,管理員可以設置用戶驗證和記賬功能,對用戶進行登記,並對用戶的訪問時間、訪問地點、信息瀏覽磨稿喚進行統計。沒有登記的用戶無權通過代理伺服器訪問Internet
8、隱藏身份
代理伺服器使用內部用戶訪問Interner時受到保護,內部網的用戶要對外發布信息就需要使用代理伺服器的反向代瞎凱理功能。這樣就不會影響到內部網路的安全性能,起到隱藏身份的目的。
(1)squid代理伺服器隱藏ip擴展閱讀:
代理伺服器使用特點:
代理伺服器是介於瀏覽器和Web伺服器之間的一台伺服器,有了它之後,瀏覽器不是直接到Web伺服器去取回網頁而是向代理伺服器發出請求,Request信號會先送到代理伺服器,由代理伺服器來取回瀏覽器所需要的信息並傳送給瀏覽器。
而且,大部分代理伺服器都具有緩沖的功能,就好像一個大的Cache,它有很大的存儲空間,它不斷將新取得數據儲存到它本機的存儲器上,如果瀏覽器所請求的數據在它本機的存儲器上已經存在而且是最新的,那麼它就不重新從Web伺服器取數據。
而直接將存儲器上的數據傳送給用戶的瀏覽器,這樣就能顯著提高瀏覽速度和效率(速度會隨著代理伺服器地理位置的不同以及網路傳輸情況而改變),而且國外的網路大部分都是沒有限制訪問網站或者所限制的不同,所以我們有很大的機會通過代理伺服器去訪問那些原本不能夠去的網站。
更重要的是:Proxy Server (代理伺服器)是Internet鏈路級網關所提供的一種重要的安全功能,它的工作主要在開放系統互聯(OSI) 模型的對話層。
參考資料來源:網路-代理伺服器
㈡ 代理伺服器工作原理是什麼
在HTTP通信鏈上,客戶端和目標伺服器之間通常存在某些中轉代理伺服器,它們提供對目標資源的中轉訪問。一個HTTP請求可能被多個代理伺服器轉發,後面的伺服器稱為前面伺服器的上游伺服器。代理伺服器按照其使用方式和作用,分為正向代理伺服器,反向代理伺服器和透明代理伺服器。
正向代理要求客戶端自己設置代理伺服器的地址。客戶的每次請求都將直接發送到該代理伺服器,並由代理伺服器來請求目標資源。比如處於防火牆內的區域網機器要訪問Internet,或者要訪問一些被屏蔽掉的國外網站,就需要使用正向代理伺服器。
反向代理則被設置在伺服器端,因而客戶端無需進行任何設置。反向代理是指用代理伺服器來接收Internet上的連接請求,然後將請求轉發給內部網路上的伺服器,並將從內部伺服器上得到的結果返回給客戶端。這種情況下,代理伺服器對外就表現為一個真實的伺服器。各大網站通常分區域設置了多個代理伺服器,所以在不同的地方同一個域名可能得到不同的IP地址,因為這些IP地址實際上是代理伺服器的IP地址。
HTTP代理伺服器的工作原理
如圖所示,正向代理伺服器和客戶端主機處於同一個邏輯網路中。該邏輯網路可以是一個本地LAN,也可以是一個更大的網路。反向代理伺服器和真正的Web伺服器也位於同一個邏輯網路中,這通常由提供網站的公司來配置和管理。
透明代理只能設置在網關上。用戶訪問Internet的數據報必然都經過網關,如果在網關上設置代理,則該代理對用戶來說顯然是透明的。透明代理可以看作正向代理的一種特殊情況。
代理伺服器通常還提供緩存目標資源的功能,這樣用戶下次訪問同一資源時速度將很快。優秀的開源軟體squid,varnish都是提供了緩存能力的代理伺服器軟體,其中squid支持所有代理方式,而varnish僅能用作反向代理。
㈢ 正向代理和反向代理
代理主要用在網路連接方面,不同類型的代理用於不同類型的連接。有一些代理用於隱藏用戶的身份,而另外一些代理用於隱藏伺服器的信息。常見的代理類型有正向代理和反向代理。這兩種代理的名字有些相近,不過差別卻非常大。
正向代理也就是大家常說的「代理」。用戶向代理伺服器發送請求,代理伺服器從網路中檢索數據。正向代理最典型的應用場景就是繞過網路限制。比如你們學校或公司的網路限制訪問抖音,可以通過設置一台代理伺服器,然後不直接連接抖音的服務,而是走代理,讓代理來訪問抖音的服務。
目的服務收到的請求來源IP會是代理伺服器的IP,而不是用戶的IP。這使得代理伺服器可以提供一定的匿名性。
與正向代理功能相近的是NAT,兩者都可以通過私有IP地址提供互聯網訪問。不過這兩種技術在TCP/IP協議棧中的位置不同。NAT工作在網路層,而代理工作在應用層。對使用者來說,NAT對各種應用程序都是透明的;而使用代理則必須在應用程序中指定代理伺服器的主機地址。
比如,使用NAT訪問網頁,不需要在瀏覽器上進行任何配置;而要使用代理訪問網頁,必須要在瀏覽器中指定代理的IP地址,如果代理僅支持HTTP協議,則只能通過代理訪問Web伺服器,不能訪問ftp伺服器。
由於NAT並非針對應用程序,因此在訪問互聯網時,NAT提供了比代理更高的可伸縮性。不過,NAT無法提供基於用戶名和密碼的身份驗證。而代理支持身份驗證,可以配置代理伺服器僅允許特定用戶訪問互聯網。
Web代理是最常用的正向代理,用於代理HTTP請求。除了會把完整的url傳遞過去外,來自客戶端的請求與常規HTTP請求幾乎沒有什麼兩樣。下面是一個請求的例子:
代理伺服器收到請求後,向目標伺服器發起請求,並且返回響應,比如:
上面的例子只對HTTP協議生效。有一些Web代理允許通過HTTP CONNECT方法建立通信隧道,利用這個隧道,代理伺服器可以轉發任意TCP數據包。
通過CONNECT方法,客戶端要求HTTP代理伺服器將TCP連接轉發到所需的目的地;然後,伺服器代表客戶端向目標伺服器發起連接。伺服器建立連接後,代理伺服器將繼續與客戶端之間來回代理TCP數據流。在上面的過程中,只有初始的連接請求是HTTP,之後伺服器僅代理建立的TCP連接。
客戶端連接到代理伺服器,在請求中指定主機和埠,例子如下:
如果代理伺服器允許連接並且連接到指定的主機,返回2XX成功響應:
現在,客戶端發送到代理伺服器的所有數據都蔣被轉發給遠程主機。
流行的HTTP代理伺服器軟體有Haproxy、Apache、Squid等。
反向代理一般用於控制對專用網路上伺服器的訪問。它代表一個客戶端從一個或多個伺服器檢索資源,然後將這些資源返回給客戶端,好像資源源自代理伺服器本身一樣。
流行的Web伺服器經常使用反向代理功能,從而屏蔽HTTP功能「較弱」的應用程序框架。這里的「較弱」主要指的是處理大量負載能力比較弱,以及處理不同形式的請求格式的能力比較弱,比如HTTP協議就有HTTP(S)1.x,HTTP(S) 2.x多個版本。反向代理可以將HTTPS請求轉換為HTTP請求、暫時緩存請求以保護後端伺服器、處理一些cookie和會話數據等等。
反向代理是非常有用的。常見用途如下:
與正向代理充當關聯的客戶端與任意伺服器中介不同,反向代理是任意客戶端與關聯伺服器的中介。換句話說,正向代理代表客戶端,而反向代理代表伺服器。
㈣ 搭建Squid3 密碼賬號IP代理
上文中,說明了 Squid3 IP Proxy 隱藏原IP ,這里就搭建Squid 3密碼賬號IP代理進行整理,涉及環境 Ubuntu 18.04。
htpasswd和htdigest工具是用於生成Squid密碼的,直接安裝命令
安裝完成後,使用命令如下所示
創建的密碼在/etc/squid/.squid_users裡面存儲,我們可以再增加一個用戶
這里可以「查看」一下剛才創建的2個賬號
驗證賬號密碼用這個腳本–防止我們遺忘密碼賬號
basic_ncsa_auth 配置密碼文件路徑 /etc/squid/.squid_users
auth_param basic children 5 指明了這里最多開放5個賬號
auth_param basic casesensitive off 大小寫不明感
acl auth_users proxy_auth xifarm runwulink
開啟Squid測試
wget命令為例
這里會報407錯誤:密碼賬號沒有設置原因。
㈤ 1000分!我想搞網站(下載類網站),請問怎樣搭建伺服器
Squid是Linux下最為流行的代理伺服器軟體,它功能強大,支持對HTTP、FTP、Gopher、SSL、WAIS等協議的代理; 設置簡單,只需對配置文件稍稍改動就可使代理伺服器運轉起來。此外,Squid具有頁面緩存功能,它接受用戶的下載申請,並自動處理所下載的數據。
前期准備
Squid對硬體的要求是: 內存不應小於128M,硬碟轉速越快越好,最好使用伺服器專用SCSI硬碟,對CPU的要求不高,400MHz以上即可。筆者所管理的代理伺服器是Inter2150,安裝了Red Hat Linux 7.2,安裝時就帶有Squid。有兩塊網卡,一塊eth0配外部地址(比如211.88.99.66),一塊eth1配內網地址(比如192.168.5.1)。如果安裝了Gnome或其他圖形界面,就可以在netconfig中給兩塊網卡配置IP地址,不然的話,可在/etc/sysconfig/network-script路徑下更改文件ifcfg-eth0和ifcfg-eth1。
首先編輯ifcfg-eht0,有以下幾項:
DEVICE=eth0 (表示用哪塊網卡)
IPADDR=211.88.99.66 (設置該網卡的IP地址)
NETMASK=255.255.255.252 (設置子網掩碼)
同樣編輯ifcfg-eth1,然後運行命令network restart就可以使配置生效了。對eth0、eth1進行配置後,可以用ifconfig命令來查看是不是配置成功。
如果伺服器只有一張網卡,也不用擔心,Linux可以在一塊網卡上綁定多個IP地址。在圖形界面下配置很簡單,不贅述。如果在文本狀態下配置,可以將ifcfg-eth0復制並命名為ifcfg-eth0:1,把它完全當成兩塊網卡來配就可以了。
Squid的安裝
1. 安裝Linux
安裝Linux在硬碟分區時要注意,最好不要讓系統自己分區,而是手動分區。通常,在Linux系統中有且僅有一個交換分區(在文件系統形式中選擇Linux swap),它用做虛擬內存,建議將交換分區的大小設置為內存的兩倍。當硬碟的大小超過了8G,要再建立一個128M(稍稍大一點,不會出錯)的boot分區,這是為了避免將系統內核文件放到1024磁軌以外,如果將boot作為root分區的一個子目錄,內核文件就會安裝在root分區的任何地方。因為要用做代理伺服器,建議再分一個分區「var」,作為Squid的緩沖區,所以根據磁碟大小盡量分配大一點,最後將硬碟的剩餘空間全部分給root分區。
2. 安裝Squid
新手安裝Squid,建議在安裝Linux時就選中Squid,它並不是默認選中項,而且也不在選擇的大類中,要在詳細列表中查找。如果沒有安裝,又不想重裝系統,可以從www.squid-cache.org下載Squid軟體。
Squid代理伺服器的設置
安裝好Squid後幾乎就可以用了,用編輯器打開/etc/squid/squid.conf文件(以root登錄),Squid的配置文件共有125個配置項,但是一般來說,只要修改幾個配置項即可。找到「http_access deny all」並改為「http_access allow all」令所有的電腦都能通過代理服務訪問互聯網資源。其實只要修改該項,Squid服務就可以啟動了。
為了更好地控制代理伺服器的行為,還有幾個可配置項需要考慮:
1. cache_mem: 設置代理服務使用的內存大小,一般推薦為物理內存的三分之一。
2. cache_dir:設定緩存的位置、大小。一般格式如下:
cache_dir /var/spool/squid/cache 100 16 256
cache_dir指定cache目錄的路徑,默認為/var/spool/squid/cache。
/var/spool/squid/cache代表緩存的位置,使用squid -z指令會在這個目錄下建立存儲交換文件(swap files)的目錄。100表示緩存最大為100M,16和256代表一級和二級目錄數。實際使用時,100M是不夠的,如果硬碟夠大,可以增加存儲空間,比如:cache_dir /var/spool/squid/cache 2000 16 256。
3. http_port:代理服務使用的埠號,默認為3128,可以使用其他的埠,注意將前面的注釋符號「#」去掉。另外,使用埠不能和其他的服務重復,如果使用1024以下的埠,Squid必須以root身份運行。
4. maximum_object_size: 指定Squid可以接收的最大對象的大小。Squid預設值為4M,可以根據自己的需要進行設定。
啟動Squid
Squid可以設置為自動啟動。運行命令setup,在System services選項中選中Squid。設置後每次重新開機,都會自動執行Squid。
如果是第一次啟動,要建立/var/spool/squid下的暫存資料目錄,先輸入squid -z,再啟動Squid(直接運行Squid即可)。
啟動Squid後,在另一台Windows電腦上(以Internet Explorer 5.0為例)運行IE,單擊「工具」,接著單擊「Internet選項」,再單擊「連接」選項卡,選擇「區域網設置」。在「區域網設置」窗口中的「地址」處填上Squid伺服器的IP地址,在「埠」處填上「3218」(Squid軟體默認代理的埠號),確定後退出。接下來,隨意瀏覽一些網站檢查Squid的運行情況,也可以查看logs下的access.log和cache.log,看看代理是否運行正常。
代理伺服器的安全
代理伺服器是一個單位對外的門戶,安全至關重要。因此,應該採取必要的防護手段。
1. 防火牆的配置
為了保證代理伺服器的安全,最好加上防火牆,可以用IPchains或IPtable。
要使用ftp代理,還必須載入相關模塊。可以使用以下命令:
modprobe ip_comtrack_ftp
modprobe命令會自動載入指定模塊及其相關模塊。iptables_filter模塊會在運行時自動載入。
下面用IPtables一步一步地來建立包過濾防火牆,需要說明的是,在這個例子中,主要是對內部的各種伺服器提供保護。
給IPtables規則設置一個存儲路徑: iptables -restroe /etc/sysconfig/iptables。
現在開始考慮規則。在這里需要注意的是,伺服器/客戶機交互是雙向的,所以不僅僅要設置數據包出去的規則,還要設置數據包返回的規則,下面先建立針對來自Internet數據包的過濾規則。
1. 首先禁止轉發任何包,然後再一步步設置允許通過的包。
2. 先允許源為內網的所有埠的TCP包。
3. 再允許目的為內部網(192.168.5.0/24)的FTP數據包。
4. 允許目的為內網的來自Internet的非連接請求TCP包。
5. 最後一條接收所有UDP包,主要是針對oicq等使用UDP的服務。
6. icmp包通常用於網路測試等,故允許所有的icmp包通過。但是黑客常常採用icmp進行攻擊,如「ping of death」等,所以我們採用limit匹配擴展加以限制。對不管來自哪裡的icmp包都進行限制,允許每秒通過一個包,該限制觸發的條件是10個包。
不需要允許WWW服務的包,所有WWW服務由Squid代理。
iptables -P FORWARD DROP
iptables -A FORWARD -p tcp -s 198.168.5.2 -i eth0 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 --sport ftp-data -d 198.168.5.0/24 -i eth0 -j ACCEPT
iptables -A FORWARD -p tcp -d 198.168.80.0/24 ! -syn -i eth0 -j ACCEPT
iptables -A FORWARD -p udp -d 198.168.80.0/24 -i eth0 -j ACCEPT
iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
說明:
-A加入(append) 一個新規則到一個鏈 (-A)的最後。(用-I可以插入一條規則,插入位置序號寫在Forward後,-D在鏈內某個位置刪除(delete) 一條規則,-R在鏈內某個位置替換(replace) 一條規則 )。
Forward鏈、Input鏈和Output鏈的區別如下:
1. 如果數據包的目的地址是本機,則系統將數據包送往Input鏈。如果通過規則檢查,則該包被發給相應的本地進程處理;如果沒有通過規則檢查,系統就會將這個包丟掉。
2. 如果數據包的目的地址不是本機,也就是說,這個包將被轉發,則系統將數據包送往Forward鏈。如果通過規則檢查,則該包被發給相應的本地進程處理; 如果沒有通過規則檢查,系統就會將這個包丟掉。
3. 如果數據包是由本地系統進程產生的,則系統將其送往Output鏈。如果通過規則檢查,則該包被發給相應的本地進程處理;如果沒有通過規則檢查,系統就會將這個包丟掉。
-s指定源地址,-d指定目的地址。
-p 指定協議,比如-p tcp。
-i或-o指定網路介面。需要注意的是,對於Input鏈來說,只可能有-i,也即只會有進入的包;同理,對於Output鏈來說,只可能有-o,也即只會有出去的包。只有Forward鏈既可以有-i的網路介面,也可以有-o的網路介面。
Drop表示符合規則就丟棄包,Accept相反。
然後,執行命令IPtables -L,可以查看已經建立的規則,並用命令IPtables -save將規則寫入文件。
通過以上步驟,我們建立了一個相對完整的防火牆,只對外開放了有限的幾個埠,同時提供了客戶對Internet的無縫訪問。
2. 其他建議
為了安全,最好不要在一台機器上運行太多服務。為了方便調試,一般都會提供telnet和ftp服務,但這往往是安全隱患,可以在/etc/host.allow和/etc/host.deny中進行限制。比如:區域網的內網網段為: 192.168.0.0,可以在hosts.allow文件中加入一行: telnet:192.168.0.0/255.255.0.0。在hosts.deny中加入一行:all:all。因為是先執行host.allow,再執行host.deny。所以上面就只打開了內網網段的telnet服務,而對外關閉。如果想打開其他服務,可以再加。如果還想加上機器名,可以在IP後加上「@abc」(abc代表某機器名)。想關閉所有服務、所有IP、所有機器名,可以在host.deny中寫上「all:all@all」。配置好了運行命令xinetd.d,配置就生效了。如果想遠程訪問代理伺服器,最好用SSH(因為telnet是明碼傳送,所以很不安全,SSH可以理解為加密的telnet),它的配置和應用比較簡單,不贅述