歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux文化

Rehl 4 多VLAN透明代理上網


我們公司有接近500台機器上網,使用Rehl 4 +squid+iptables透明代理上網,現將配置貼出,共同研究一下: squid配置: http_port 3128

cache_mem 512 M cache_swap_low 75 cache_swap_high 95 maximum_object_size 1024 KB cache_dir ufs /usr/local/squid/cache 60000 16 256 cache_access_log /var/squid/logs/access.log cache_log /dev/null cache_store_log none

acl net1 src 192.168.1.0/24 acl net2 src 192.168.2.0/24 acl net4 src 192.168.4.0/24 acl net5 src 192.168.5.0/24 acl net13 src 192.168.13.0/24 acl net16 src 192.168.16.0/24

# And finally deny all other access to this proxy http_access allow localhost http_access allow net1 http_access allow net2 http_access allow net4 http_access allow net5 http_access allow net13 http_access allow net16 http_access deny all

visible_hostname proxy

httpd_accel_port 80 httpd_accel_host virtual httpd_accel_with_proxy on httpd_accel_uses_host_header on

#acl acl_type_deny urlpath_regex -i \.rm$ #acl acl_type_deny urlpath_regex -i \.mp3$ #acl acl_type_deny urlpath_regex -i \.wma$ #acl acl_type_deny urlpath_regex -i \.asf$ #acl acl_type_deny urlpath_regex -i \.avi$ #acl acl_type_deny urlpath_regex -i \.ram$ #acl acl_type_deny urlpath_regex -i \.mpeg$ #acl acl_type_deny urlpath_regex -i \.torrent$

#禁止下載以上類型文件

IPtables配置: # /etc/sysconfig/iptables 文件 # #======================= 開始 =======================

# # mangle 段 *mangle REROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] COMMIT #

# # nat 段 *nat REROUTING ACCEPT [0:0] OSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] # # 為使用 SQUID 作“透明代理”而設定! # # 沒有指定 網卡、地址: [0:0] -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 # # 指定 網卡、地址: [0:0] -A PREROUTING -s 192.168.0.0/255.255.0.0 -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 [0:0] -A PREROUTING -s 192.168.0.0/255.255.0.0 -i eth0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3128

[0:0] -A POSTROUTING -s 192.168.0.0/16 -o eth0 -j SNAT --to 192.168.2.253 [0:0] -A PREROUTING -i eth0 -p tcp -s 192.168.0.0/16 --dport 80 -j REDIRECT --to-port 3128

# 將 對於 80、443 端口的訪問 重定向到 3128 端口。 # # # 這些機器可以走這個機器做網關上 Internet 網。 # 需要在 /etc/sysctl.conf 文件裡面修改成 net.ipv4.ip_forward = 1 # 或者 echo 1 > /proc/sys/net/ipv4/ip_forward # 由於利用 SQUID 實現了“透明代理”,Masq 取消相應的客戶地址。 # 這裡,只剩下幾個需要利用“IP偽裝”來上網的機器(可以上 QQ、雅虎通、msn 之類的): # #[0:0] -A POSTROUTING -s 192.168.20.3 -j MASQUERADE #[0:0] -A POSTROUTING -s 192.168.20.10 -j MASQUERADE [0:0] -A POSTROUTING -s 192.168.0.0/255.255.0.0 -j MASQUERADE # 若你的 公網的 IP 地址是固定的,使用這個語句似乎更好些: [0:0] -A POSTROUTING -s 192.168.0.0/255.255.0.0 -j SNAT --to 211.57.143.190

COMMIT #

# # filter 段 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0]

# # 屏蔽 來自 microsoft 的站點: [0:0] -A INPUT -s 207.46.0.0/255.255.0.0 -j DROP [0:0] -A INPUT -d 207.46.0.0/255.255.0.0 -j DROP #

# 防止IP欺騙: # 所謂的IP欺騙就是指在IP包中存在著不可能的IP源地址或目標地址。 # eth1是一個與外部Internet相連,而192.168.0.0則是內部網的網絡號, # 也就是說,如果有一個包從eth1進入主機,而說自己的源地址是屬於 # 192.168.0.0網絡,或者說它的目標地址是屬於這個網絡的,那麼這顯 # 然是一種IP欺騙,所以我們使用DROP將這個包丟棄。 [0:0] -A INPUT -d 192.168.0.0/255.255.0.0 -i eth1 -j DROP [0:0] -A INPUT -s 192.168.0.0/255.255.0.0 -i eth1 -j DROP # # 同樣的,如果有包要通過eth1向Internet,而且它的源地址或目標地址是屬於 # 網絡192.168.0.0,那麼顯然也是不可能的。我們仍然使用DROP將它丟棄。 [0:0] -A OUTPUT -d 192.168.0.0/255.255.0.0 -o eth1 -j DROP [0:0] -A OUTPUT -s 192.168.0.0/255.255.0.0 -o eth1 -j DROP #

# 防止廣播包從IP代理服務器進入局域網: #[0:0] -A INPUT -s 255.255.255.255 -i eth0 -j DROP #[0:0] -A INPUT -s 224.0.0.0/224.0.0.0 -i eth0 -j DROP #[0:0] -A INPUT -d 0.0.0.0 -i eth0 -j DROP # 當包的源地址是255.255.255.255或目標地址是0.0.0.0,則說明它是一個 # 廣播包,當廣播包想進入eth0時,我們就應該DENY,丟棄它。而240.0.0.0/3 # 則是國際標准的多目廣播地址,當有一個源地址是屬於多目廣播地址的包, # 我們將用DROP策略,丟棄它。

# # 屏蔽 windows xp 的 5000 端口(這個端口是莫名其妙的 !) #[0:0] -A INPUT -p tcp -m tcp --sport 5000 -j DROP #[0:0] -A INPUT -p udp -m udp --sport 5000 -j DROP #[0:0] -A OUTPUT -p tcp -m tcp --dport 5000 -j DROP #[0:0] -A OUTPUT -p udp -m udp --dport 5000 -j DROP # 原來是用來跑 vpn 的,呵呵,我誤解了。 #

# # 防止 Internet 網的用戶訪問 SAMBA 服務器: [0:0] -A INPUT -s 211.57.143.177 -i eth1 -p tcp -m tcp --dport 137:139 -j DROP [0:0] -A INPUT -s 211.57.143.177 -i eth1 -p udp -m udp --dport 137:139 -j DROP [0:0] -A INPUT -s 192.168.0.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 137:139 -j ACCEPT [0:0] -A INPUT -s 192.168.0.0/255.255.255.0 -i eth0 -p udp -m udp --dport 137:139 -j ACCEPT [0:0] -A INPUT -s 211.57.143.177/255.255.255.240 -i eth1 -p tcp -m tcp --dport 137:139 -j ACCEPT [0:0] -A INPUT -s 211.57.143.177/255.255.255.240 -i eth1 -p udp -m udp --dport 137:139 -j ACCEPT [0:0] -A INPUT -p tcp -m tcp --dport 137:139 -j DROP [0:0] -A INPUT -p udp -m udp --dport 137:139 -j DROP #

# # 對於本局域網用戶不拒絕訪問: [0:0] -A INPUT -s 192.168.0.0/255.255.0.0 -i eth0 -p tcp -j ACCEPT [0:0] -A INPUT -s 192.168.0.0/255.255.0.0 -i eth0 -p udp -j ACCEPT #

# #[0:0] -A INPUT -i eth1 -p udp -m udp --dport 3 -j DROP #[0:0] -A INPUT -i eth1 -p tcp -m tcp --dport 3 -j DROP #[0:0] -A INPUT -i eth1 -p tcp -m tcp --dport 111 -j DROP #[0:0] -A INPUT -i eth1 -p udp -m udp --dport 111 -j DROP #

# #[0:0] -A INPUT -i eth1 -p udp -m udp --dport 587 -j DROP #[0:0] -A INPUT -i eth1 -p tcp -m tcp --dport 587 -j DROP #

# 防止 Internet 用戶訪問 SQUID 的 3128 端口: [0:0] -A INPUT -s 211.57.143.177 -i eth1 -p tcp -m tcp --dport 3128 -j DROP [0:0] -A INPUT -s 192.168.0.0/255.255.0.0 -i eth0 -p tcp -m tcp --dport 3128 -j ACCEPT

[0:0] -A INPUT -s 211.57.143.177/255.255.255.240 -i eth1 -p tcp -m tcp --dport 3128 -j ACCEPT [0:0] -A INPUT -p tcp -m tcp --dport 3128 -j DROP #

# 讓人家 ping 不通我 ! [0:0] -A INPUT -i eth1 -s 192.168.0.0/16 -p icmp -m icmp --icmp-type 8 -j ACCEPT [0:0] -A INPUT -i eth1 -s 211.57.143.177/28 -p icmp -m icmp --icmp-type 8 -j ACCEPT [0:0] -A INPUT -i eth1 -p icmp -m icmp --icmp-type 8 -j DROP #

COMMIT # ======================= 結束 =======================

Copyright © Linux教程網 All Rights Reserved