squid反向代理安全控制
squid
Squidcache(簡稱為Squid)是一個流行的自由軟體(GNU通用公共許可證)的代理伺服器和Web快取伺服器。Squid有廣泛的用途,從作為網頁伺服器的前置cache伺服器快取相關請求來提高Web伺服器的速度,到為一組人共享網路資源而快取全球資訊網,域名系統和其他網路搜尋,到通過過濾流量幫助網路安全,到區域網通過代理上網。(70年代出現)
對於Web使用者來說,Squid是一個高效能的代理快取伺服器,可以加快內部網瀏覽Internet的速度,提高客戶機的訪問命中率。Squid不僅支援HTTP協議,還支援FTP、gopher、SSL和WAIS等協議。和一般的代理快取軟體不同,Squid用一個單獨的、非模組化的、I/O驅動的程式來處理所有的客戶端請求。(主要資料存放在磁碟)
nginx
Nginx(“enginex”)是一個高效能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP代理伺服器。Nginx是由IgorSysoev為俄羅斯訪問量第二的Rambler.ru站點開發的,第一個公開版本0.1.0釋出於2004年10月4日。其將原始碼以類BSD許可證的形式釋出,因它的穩定性、豐富的功能集、示例配置檔案和低系統資源的消耗而聞名。2011年6月1日,nginx1.0.4釋出。Nginx作為負載均衡伺服器:Nginx既可以在內部直接支援Rails和PHP程式對外進行服務,也可以支援作為HTTP代理伺服器對外進行服務。Nginx採用C進行編寫,不論是系統資源開銷還是CPU使用效率都比Perlbal要好很多。
varnish
Varnish是一款高效能的開源HTTP加速器,挪威最大的線上報紙VerdensGang使用3臺Varnish代替了原來的12臺Squid,效能比以前更好(反向代理加速連線數目多的多快取可以放在磁碟,也可以放在記憶體中)
Varnish與一般伺服器軟體類似,分為master(management)程式和child(worker,主要做cache的工作)程式。master程式讀入命令,進行一些初始化,然後fork並監控child程式。child程式分配若干執行緒進行工作,主要包括一些管理執行緒和很多woker執行緒
Squid代理伺服器(正向代理,反向代理安全控制)
正向
Lan———–interner
1.nat改變頭部資訊同一個資料包改變來源地址
層次網路層
安全控制網路傳輸層
網路層資訊地址(來源目標)
傳輸層協議(tcpudp)埠(源埠目標埠)標誌位(tcpsynackfinrst)
只能對網路進行控制,
支援應用多nat好用
2.代理伺服器不改變資料包的頭部資訊
Squid3128埠
代理伺服器是有快取
安全控制層次————-》應用層isa(internetsecurityaccelerate)
Squid是一款軟體
安全控制網路傳輸層應用層
網路層資訊地址來源目標
傳輸層協議(tcpudp)埠號碼(源埠目標埠)標誌位(tcpsynackfinrst)
應用層協議(httpftppopsmtp…..p2p)內容(url域名)
—————》應用層閘道器代理伺服器防火牆
—-支援應用少———-》缺陷httpftpmail
代理伺服器安全
結合nat+代理伺服器
安裝squid
環境:squid-2.6.STABLE21-3.el5.i386.rpm
步驟:
1.rpm–ivhsquid-2.6.STABLE21-3.el5.i386.rpm
2.vim/etc/squid/squid.confsquid的配置檔案
圖1
伺服器埠是3128
Cache_dirufs(快取資料的儲存格式)/var/spool/squid100(為快取目錄分配的磁碟空間)16(快取空間的一級目錄個數)256(快取目錄的二級子目錄個數)通過二叉樹來查詢
Cache_mem64MB來存放描述符
Maximum_object_size4096KB最大的快取物件是4096KB
Reply_body_max_size10240000allowall應答給客戶不能超出1G
Access_log/var/log/squid/access.logsquid日誌存放位置
Visible_hostnameproxy.test.com返回給使用者出錯資訊的頁面
squid–kparse測試squid的語法
tail–f/var/log/squid/access.logsquid的日誌檔案
TCP_MISS快取沒有成為丟失
TCP_DENIED拒絕
TCP_HIT快取存在的命中
安全控制:
在這裡可以應用正規表示式
元素acl元素名稱型別引數
aclaclnamearpmac-address…(xx:xx:xx:xx:xx:xxnotation)可以基於mac來控制
在原始碼安裝的時候需要加上–enable-arp-acl,想用得需要原始碼安裝才可以使用.
aclaclnamesrcip-address/netmask…(clientsIPaddress)
aclaclnamesrcaddr1-addr2/netmask…(rangeofaddresses)
aclaclnamedstip-address/netmask…(URLhost`sIPaddress)
aclaclnamemyipip-address/netmask…(localsocketIPaddress)
時間限制:
aclaclnametime[day-abbrevs][h1:m1-h2:m2]
h1:m1mustbelessthanh2:m2其實時間必須小於結束時間
aclworktimetime8:00-18:00
aclofftimetime18:01-23.5900:00-07:59或者!8:00-18:00限制使用者時間上網
aclbadpcsrc192.168.2.200/255.255.255.255限制192.168.2.200使用者不能上網
aclbadpcsrc192.168.2.200-192.168.2.210/255.255.255.255限制這個這個網段不能上網
地址控制
aclbadsiturl_regex–Ihttp://www.sina.com.cn拒絕這個網站地址
aclbadsiturl_regex–Ihttp://*.sina.com.cn
aclbadsiturl_regex–Ihttp://*.sina.*
內容過濾
aclbadcontenturlpath_regex–I.jpg$
aclsinadstdomain.sina.com.cn基於域名來進行過濾
aclsinadstdom_regex–I.*sina.*表示式引用
aclaclnamebrowser[-i]regexp…限制客戶端的瀏覽器器
策略:http_access動作策略元素
http_accessdenybadpc
http_accessdenybadpcwortime
http_accessdenybadsit
http_accessdenybadcontent
http_accessdenysina
透明代理
公司的內部網路,在連線internet的時候可以自動配置代理伺服器的地址及NAT轉換出去,稱為透明代理.
1.埠重定向——-》代理埠3128
3.DNS解析——–》snat
Prerouting地址前的轉換dnat
Postrouting地址後的轉換snat
首先做nat轉換
1.vim/etc/sysctl.conf
2.圖2
3.iptables-tnat-RPOSTROUTING1-s192.168.2.0/24-pudp–dport53-oeht1-jSNAT–to192.168.1.4當使用者通過192.168.2.0網路到了伺服器之後,準備把包發出去,需要把源地址更換成192.168.1.4
4.iptables-tnat-L-v–line-number檢視資料包是否有匹配的資訊
5.iptables-tnat-APREROUTING-s192.168.2.0/24-ptcp–dport80-jREDIRECT–to-port3128重定向到3128埠
6.vim/etc/squid/squid.conf
7.圖3
8.squid–kparse
9.servicesquidrestart
反向代理
1.客戶端無法去訪問你的3128,因此需要改變成80埠,你也可以加入那個埠的地址也可以
2.vhost
3.假如後方有許多伺服器,在這裡我們只需要把這幾行重新複製一下就可以,在這裡也可以使用weight來設定它的權重
4.serversquidstart
相關文章
- squid 反向代理且需要賬號、密碼驗證UI密碼
- 反向代理的安全性高嗎?
- 網站漏洞檢測 squid反向代理存在遠端程式碼執行漏洞網站UI
- 四層反向代理和七層反向代理
- 正向代理與反向代理
- 反向代理與正向代理
- 正向代理和反向代理
- nginx正向代理、反向代理Nginx
- squid代理伺服器UI伺服器
- 【代理】正向代理、反向代理、透明代理
- Nginx反向代理Nginx
- nginx 反向代理Nginx
- RHEL6下squid代理之正向代理UI
- CentOS搭建squid正向代理教程。CentOSUI
- Nginx 配置:反向代理Nginx
- Nginx 配置反向代理Nginx
- [Nginx] TCP 反向代理NginxTCP
- apache配置反向代理Apache
- 反向代理是啥?
- Nginx 反向代理 websocketNginxWeb
- Nginx之路--配置正向代理、反向代理Nginx
- 反向代理和正向代理區別
- 正向代理與反向代理總結
- 圖解正向代理與反向代理圖解
- Nginx正向代理和反向代理配置Nginx
- 圖解正向代理、反向代理、透明代理圖解
- 反向代理學習筆記(一) Nginx與反向代理緒論筆記Nginx
- 正向代理和反向代理的形象理解
- 反向代理與正向代理差異分析
- 什麼是正向代理和反向代理?
- 圖文總結:正向代理與反向代理
- 反向代理的有趣用法
- nginx 反向代理 swoole 使用Nginx
- history 模式反向代理配置模式
- PgSql on Docker with HaProxy 反向代理SQLDocker
- Apache反向代理的配置Apache
- nginx 反向代理設定Nginx
- Nginx四層反向代理Nginx