Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

基於 Debian + Squid + iptables 實現企業級 ADSL 共享上網方案

編輯:Linux 教學

案例背景

小型企業 20 台終端,無專用伺服器,需共享 ADSL 上網並實現上網權限控制。利用閒置賽揚 466/128MB 老舊電腦改造為代理/防火牆伺服器。考量硬體性能、維護成本、授權合規,選擇 Debian Linux + Squid + iptables 開源方案。

核心技術選型理由

  • Debian: 極致精簡、穩定、APT 包管理強大、硬體需求極低(同配置可支撐 50 客戶端)、病毒/攻擊面遠小於 Windows。
  • Squid: 成熟代理/緩存服務器,支援 HTTP/FTP/HTTPS/IPv6,靈活 ACL 控制,兼具 Web 加速與上網行為管理。
  • iptables: 內核級防火牆,實現 NAT 共享與流量過濾。

關鍵配置流程

1. 系統安裝與網絡接口規劃

  • 下載 Debian 安裝鏡像(如 Etch 4.0r0)刻盤安裝。
  • 雙網卡規劃:eth0 連 ADSL Modem (WAN),eth1 連內網交換機 (LAN)。注意: 系統命名 eth0/eth1 不一定對應物理插槽,網不通時嘗試交換網線。
  • 內網卡靜態 IP 配置(/etc/network/interfaces):
iface eth1 inet static
address 10.152.16.3
netmask 255.255.255.0
# 禁用 DHCP,確保客戶端能穩定找到代理伺服器

2. ADSL 自動撥號

# pppoeconf  # 圖形向導配置,開機自動撥號

3. Squid 3.x 源碼編譯安裝(啟用進階特性)

# 下載穩定版源碼
wget https://www.squid-cache.org/Versions/v3/3.5/squid-3.5.27.tar.gz
tar xzf squid-3.5.27.tar.gz
cd squid-3.5.27

./configure --prefix=/var/squid \
            --sysconfdir=/etc \
            --enable-arp-acl \
            --enable-linux-netfilter \
            --enable-pthreads \
            --enable-err-language="Simplify_Chinese" \
            --enable-default-err-language="Simplify_Chinese" \
            --enable-storeio=ufs,null \
            --enable-auth="basic" \
            --enable-basic-auth-helpers="NCSA" \
            --enable-underscore
make && make install

關鍵編譯參數: --enable-arp-acl 防 MAC 欺騙;--enable-linux-netfilter 支援透明代理;--enable-underscore 允許 URL 含底線。

4. Squid 核心配置 /etc/squid/squid.conf 實戰範例

http_port 10.152.16.3:8080
cache_mgr admin@company.com
cache_dir null /tmp              # 僅作代理,不緩存
cache_access_log /var/squid/access.log
cache_log /var/squid/cache.log

# ACL 定義
acl advance arp 00:01:02:1f:2c:3e 00:01:02:3c:1a:8b  # 高權組 MAC
acl normal proxy_auth REQUIRED                          # 普通組需認證
acl all src 0.0.0.0/0
acl mmxfile urlpath_regex \.mp3$ \.avi$ \.exe$          # 多媒體/可執行檔
acl conncount maxconn 3                                 # 最大並發連接數
acl worktime time MTWHF 8:30-12:00 14:00-18:00         # 工作時間
acl sinapage dstdomain ok.sina.com.cn                   # 黑名單域名
acl qq dstdomain .tcccent.com.cn

# 存取控制規則(順序敏感)
http_access allow advance          # 高權組無限制
http_access deny conncount normal  # 普通組限並發
http_access deny !worktime         # 非工作時間禁網
http_access deny mmxfile           # 禁下載類型
http_access deny sinapage          # 禁特定站點
http_access deny qq                # 禁 QQ 相關
http_access allow normal           # 允許普通組其餘請求

5. iptables NAT 共享上網

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

將此規則寫入 /etc/ppp/ip-up.d/ 腳本實現撥號後自動生效。

方案價值

零授權成本、低硬體門檻、高安全性、靈活權限控制、易於腳本化維護。Squid 亦可反向作為 Web 前端加速器,一軟多用。

Copyright © Windows教程網 All Rights Reserved