日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Squid+iptables的透明代理配置 - CIN的日志 - 網易博客

 jan_hf 2009-11-02

Squid+iptables的透明代理配置

默認分類   2008-02-24 01:37   閱讀57   評論0  
字號:    

Squid+iptables的透明代理配置

Firer2000

2003-06-27

硬件環(huán)境:兼容機 雙網卡

軟件環(huán)境:linux7.1+squid-2.3.STABLE4-src.tar

一.squid的安裝配置

1.下載squid

可以從squid主站下載:http://www.

2.編譯安裝squid

第一步:[root@www root]#tar xzvf squid-2.3.STABLE4-src.tar.gz

第二步:[root@www root]#cd squid-2.3.STABLE4

第三步:[root@www squid-2.3.STABLE4]#./configure --prefix=/usr/localsquid enable-ipf-transparent

/*指定squid的安裝目錄和啟用透明代理*/

第四步:[root@www squid-2.3.STABLE4]#make all

第五步:[root@www squid-2.3.STABLE4]#make install

以上五步執(zhí)行完畢,squid整個程序就會被安裝在/usr/local/squid目錄下.接下來再執(zhí)行以下幾步:

第六步:進入目錄/usr/local,以root身份執(zhí)行下面的命令,創(chuàng)建cache目錄和改變整個squid目錄的所有者為

nobody.nobody:

[root@www squid-2.3.STABLE4]#cd /usr/local/squid

[root@www squid]# mkdir cache

[root@www squid]# cd ..

[root@www local]# chown nobody.nobody -R squid

第七步:改變用戶為nobody,進入/usr/local/squid/bin目錄,執(zhí)行./squid -z創(chuàng)建cache交換目錄

[root@www local]# su nobody

[root@www local]$cd /usr/local/squid/bin

[root@www local]$./squid -z

第八步:修改squid.conf文件,確保以下配置:

httpd_accel_host virtual(記得把一句加上,我用的這個squid版本沒有這一句)

httpd_accel_port 80

httpd_accel_with_proxy on

httpd_accel_uses_host_header on

cache_effective_user nobody

cache_effective_group nobody

http_access allow all

cache_dir ufs /usr/local/squid/cache 100 16 256

...

最后啟動squid:

[root@www local]#/usr/local/squid/bin/squid

查看進程列表:

[root@www local]#px ax

應該出現如下幾個進程:

......... usr/local/squid

......... squid

......... unlink

并且系統(tǒng)中應該有如端口被監(jiān)聽:

tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN

udp 0 0 0.0.0.0:3130 0.0.0.0:*

這些說明squid正常啟動了.

###如果squid不能正常工作,可能是域名的設置問題,需要設置域名。

讓系統(tǒng)啟動時自動運行squid

編輯/ect/rc.d/local文件,在末尾加上:

su nobody -c "/usr/local/squid/bin/squid"

------------------------------------------------------------------------------------------------

OK,通過以上設置我們就以就squid代理上網了.

可以在ie瀏覽器中設置使用代理服務器,添入192.168.0.101:3128就可以上網了.

但這一步還沒有實現透明代理,接下來我們開始設置iptables

二.設置iptables

1、 首先使用linuxconf工具將enable routing 項打開。在configure linuxconf modules 里選擇firewall的項。

2、 #setup

進入services 去掉ipchains。

3、在/etc/rc.d/目錄下用touch命令建立firewall文件,執(zhí)行chmod u+x firewall以改變文件屬性,編輯

/etc/rc.d/rc.local文件,在末尾加上/etc/rc.d/firewall以確保開機時能自動運行該腳本.

firewall內容為:

modprobe ip_tables

modprobe ip_nat_ftp

modprobe ip_conntrack

modprobe ip_conntrack_ftp

echo 1>/proc/sys/net/ipv4/ip_forward

iptables -t nat -A PREROUTING -i eht1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

iptables -t nat -A POSTROUTING -s 172.16.0.0/23 -o eth0 -j SNAT --to 211.141.67.10

##############################################################################

下面是原文給出的firewall腳本,共參考

#!/bin/sh

echo "Enable IP Forwarding..."

echo "1">/proc/sys/net/ipv4/ip_forward

echo "Starting iptables rules..."

/sbin/modprobe iptable_filter

/sbin/modprobe ip_tables

/sbin/modprobe iptable_nat

#Refresh all chains

/sbin/iptables -F -t nat

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to a.b.c.d

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#######################################################################################

其中,eth1是內部網卡,eth0是外部網卡。

內網ip地址為172.16.0.0/23

eth0對應的ip地址為:211.141.67.10

結束.

然后設置網關和dns后就可上網了.

如需要還可以添加一些防火墻以增強安全性,具體參考本站:

http://www./engineer/bye2000/doc/iptables1.htm

http://www./engineer/bye2000/doc/iptables2.htm

三:設置squid支持用戶認證:

說明:透明代理和用戶認證功能不能同時應用。否則用戶認證功能不起作用。

假定squid source目錄在/tmp/ squid-2.3.STABLE4

2. # cd /tmp/ squid-2.3.STABLE4/auth_modules/NCSA

# make ncsa_auth

3. 拷貝生成的執(zhí)行文件ncsa_auth到squid執(zhí)行文件目錄

# cp ncsa_auth /usr/local/squid/bin

4. 從Apache軟件包中得到程序htpasswd

假設apache軟件安裝在/var/www目錄下

#cd /usr/www/bin

5.用htpasswd生成供Squid利用的用戶名和密碼認證數據庫文件

生成的密碼文件放在/usr/local/squid/etc 下。

[root@mail bin]# ./htpasswd -c /usr/local/squid/etc/passwd test

New password:

Re-type new password:

Adding password for user test

這時在/usr/local/squid下就生成了passwd文件,并且加入了用戶test。

6. 加其它更多的用戶

#htpasswd /usr/loal/squid/etc/passwd newuser

7. 修改squid.conf,enable ncsa_auth用戶認證功能

[root@linux etc]# more squid.conf | grep ncsa_auth

authenticate_program /usr/local/squid/bin/ncsa_auth /usr/local/squid/etc/passwd

8.修改ACL部分,象下面這樣:

定義相關的用戶類

acl auth_user proxy_auth REQUIRED

注意,REQUIRED關鍵字指明了接收所有合法用戶的訪問。

7.設置http_access

http_access allow auth_user

注意,如果你在改行中指定了多個允許訪問的用戶類的話,應該把要認證的用戶類放在第一個。如下所示:

錯誤的配置:http_access allow auth_user all manager

正確的配置:http_access allow auth_user manager all

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多