用Linux下的代理服務器保護主干網
代理服務器有什么用?
代理服務器的用途很廣泛,一般用戶可以用它來提高訪問某些網絡 (比如教育網,國外的網絡) 的速度。而我們學校用它主要是讓實驗室里的電腦可以上網的同時又將它們與主干網絡隔離開來。對于一些流量比較大的網站,代理服務器還可以起到Web加速的作用,比如一些在線視頻分享網站,掃描其80端口,會發現它運行的服務是http-proxy而不是http。我用nmap來掃描www.56.com的80端口,輸入下面的命令[root@localhost ~]# nmap -PN -sV -p80 www.56.com,可以得到如圖1所示的結果,原來56.com是使用代理服務器將信息傳給用戶的,這樣做不但安全,而且還大大提高了訪問速度。可能有些朋友要問為什么加上代理服務器就能提高訪問速度,這是因為代理服務器可以將用戶經常訪問的東西放在內存里,當用戶需要時,可直接將信息傳給用戶,而像Apache這樣的Web服務器是從磁盤中將信息讀到內存中,然后才將信息傳給用戶的,這樣做明顯沒有用代理的速度快,當然,一個很大的內存是十分必要的。
安裝前的準備
在安裝squid和Socks5之前,先要創建一個單獨的分區來保存緩存文件,還要創建一個專門的用戶來啟動squid和Socks5,即使黑客利用了這兩個軟件的漏洞,他也沒有Root權限。
1)查看服務器所掛硬盤的名稱
[root@localhost ~]#fdisk -l
顯示Disk /dev/hda,說明這臺服務器硬盤的設備名是/dev/hda。
2)創建一個新的squid緩存分區
因為squid要將緩存文件保存在硬盤里,這樣會頻繁讀寫硬盤,所以要單獨建一個分區,最好是單獨用一塊硬盤。輸入命令:
[root@localhost ~]#fdisk /dev/hda
接著按m取得幫助,從幫助中可以看出按n是創建一個新的分區,接著按l是增加邏輯分區。
當顯示“First cylinder (731-2431, default 731):”,是要求我們輸入起始柱面,直接按回車就行了。當顯示:
Using default value 731
Last cylinder or +size or +sizeM or +sizeK (731-1176, default 1176):
這是要求我們輸入結束柱面,輸入+2000M后回車,表示創建一個大小為2G的分區。
3)格式化分區為ext3格式
[root@localhost ~]#mke2fs -j -L "logical" /dev/hda5
4)掛載剛才創建的分區
[root@localhost ~]#mkdir /mnt/cache
[root@localhost ~]#mount /dev/hda5 /mnt/cache
命令執行完畢后,在/etc/fstab中添加一行:“/dev/hda5 /mnt/cache/ ext3 defaults 0 0”,可以讓系統啟動時能自動掛載分區。
5)創建一個proxy用戶
[root@localhost ~]#useradd proxy
6)設置用戶密碼
[root@localhost ~]#passwd proxy
接著輸入兩次密碼即可。
7)配置服務器ip
服務器上有兩塊網卡:eth0連接內網,網段為192.168.1.0/24;eth1連接外網。
執行命令配置eth0的ip:
[root@localhost ~]# ifconfig eth0 192.168.1.1 netmask 255.255.255.0
再執行命令配置eth1的ip:
[root@localhost ~]# ifconfig eth1 a.a.a.a netmask 255.255.255.0
其中a.a.a.a為公網ip地址。之后再添加一條路由,x.x.x.x為公網的網關:
[root@localhost ~]#route add -net 0.0.0.0 gw x.x.x.x eth1
安裝squid
1)安裝squid的rpm包,命令如下。
[root@localhost ~]#rpm -ivh squid-2.6.STABLE6-3.el5.i386.rpm
2)修改squid的配置文件
[root@localhost ~]#vim /etc/squid/squid.conf
squid.conf里的配置菜單如下,其它選項可以使用默認值。
http_port 3128 #監聽端口為3128
cache_mem 700MB #設置squid的高速緩存大小。因為物理內存為1G,文本模式啟動系統只占內存65M,加上squid、Socks5和iptables的守護進程占部分內存,故700M比較合適
maximum_object_size 4096 KB
#超過4M的文件不保存到硬盤上,否則硬盤的緩存空間很快會被占滿
maximum_object_size_in_memory 1024 KB
#超過1MB的文件不保存到內存里
ipcache_size 1024
#DNS解析后的IP放在緩存中,可免去重復查詢DNS,提高訪問速度
ipcache_low 90
ipcache_high 95
fqdncache_size 1024
#IP與主機名稱的記錄
visible_hostname 你的計算機名
#不設置有時無法啟動
squid logfile_rotate 6
#設置日志輪轉,6表示會生成0~6共7個日志文件,這個設置非常重要,后面要講到它
cache_dir ufs /mnt/cache 2000 16 256
#/mnt/cache為squid緩存分區的掛載點,2000是緩存分區的大小,與剛才新建的分區一樣大
cache_swap_low 90 cache_swap_high 95
#當高速緩存占用到95%時,自動減小到90%
cache_effective_user proxy cache_effective_group proxy
#將squid的擁有者設成前面新建的那個用戶
proxy acl safe_ports port 80 8000 8080 443 http_access allow safe_ports http_access deny !safe_ports
#可訪問的遠程計算機的端口
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解