Iptables
使用透明代理設置阻止 HTTPS 流量
我正在開發一個強制門戶系統,並且(現在),我想知道是否有任何方法可以阻止透明代理設置上的 HTTPS 流量。
**這是我所擁有的:**一個 GNU/Linux 路由器 (Netfilter),執行 Squid v3.4.8,其介面配置如下。
eth2(區域網路): 192.168.0.0/24、172.16.255.1/27、10.255.255.0/24
eth1(廣域網): 192.168.100.0/24
這是我現在擁有的防火牆規則,即使我使用這樣的規則,對於特定的 IP,它也不起作用:
-A INPUT -i eth2 -p tcp -s 192.168.0.11 --dport 443 -j REJECT
我可能錯過了一些重要的東西(對不起,如果我太盲目了……)。我只是想不通,為什麼我不能簡單地拒絕對來自我網路的特定 IP 的目標埠 443 的訪問。
我正在使用
PREROUTING
規則,但它們都將目標流量路由到 80 (HTTP) 到 3128 (Squid)。*nat :PREROUTING ACCEPT [19:2473] :INPUT ACCEPT [13:2173] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] ######### SQUID (Transparent Proxy Rules) ######### -A PREROUTING -i eth2 -s 192.168.0.0/24 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3128 -A PREROUTING -i eth2 -s 172.16.255.0/27 -p tcp --dport 80 -j DNAT --to-destination 172.16.255.1:3128 -A PREROUTING -i eth2 -s 10.255.255.0/26 -p tcp --dport 80 -j DNAT --to-destination 10.255.255.1:3128 -A POSTROUTING -o eth1 -j MASQUERADE -A PREROUTING -i eth1 -p tcp --sport 80 -j REDIRECT --to-port 3128 ################################################### COMMIT *filter :INPUT ACCEPT [18:2650] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [33:3188] ########## Basic Setup + Network Traffic ######### ### Default Policies -P INPUT DROP -P OUTPUT ACCEPT -P FORWARD DROP ### ICMP (all interfaces) -A INPUT -p icmp --icmp-type echo-request -j ACCEPT -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT ### Allow Traffic (loopback/localhost/127.0.0.1) -A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT ### Allow Traffic (LAN) -A INPUT -i eth2 -j ACCEPT -A OUTPUT -o eth2 -j ACCEPT #################################################### ################ Essential Services ################ ### SSH (Access to Server Shell - Command Line) -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT -A INPUT -i eth2 -p tcp --dport 22 -j ACCEPT ### DNS (Translation of Names to IP Addresses) -A INPUT -i eth1 -p udp --sport 53 -j ACCEPT -A INPUT -i eth1 -p tcp --sport 53 -j ACCEPT ### NTP (Server Clock and DHCP Clock) -A INPUT -i eth1 -p udp --sport 123 -j ACCEPT ### SAMBA (File Server) # WAN -A INPUT -i eth1 -p udp --dport 137 -j ACCEPT -A INPUT -i eth1 -p tcp -m state --state NEW --dport 137 -j ACCEPT -A INPUT -i eth1 -p udp --dport 138 -j ACCEPT -A INPUT -i eth1 -p tcp -m state --state NEW --dport 138 -j ACCEPT -A INPUT -i eth1 -p udp --dport 139 -j ACCEPT -A INPUT -i eth1 -p tcp -m state --state NEW --dport 139 -j ACCEPT -A INPUT -i eth1 -p udp --dport 445 -j ACCEPT -A INPUT -i eth1 -p tcp -m state --state NEW --dport 445 -j ACCEPT # LAN -A INPUT -i eth2 -p udp --dport 137 -j ACCEPT -A INPUT -i eth2 -p tcp --dport 137 -j ACCEPT -A INPUT -i eth2 -p udp --dport 138 -j ACCEPT -A INPUT -i eth2 -p tcp --dport 138 -j ACCEPT -A INPUT -i eth2 -p udp --dport 139 -j ACCEPT -A INPUT -i eth2 -p tcp --dport 139 -j ACCEPT -A INPUT -i eth2 -p udp --dport 445 -j ACCEPT -A INPUT -i eth2 -p tcp --dport 445 -j ACCEPT ### EMAIL # SMTP -A INPUT -i eth2 -p tcp --sport 25 -j ACCEPT -A INPUT -i eth2 -p tcp --sport 587 -j ACCEPT # POP/POP over SSL -A INPUT -i eth2 -p tcp --sport 110 -j ACCEPT -A INPUT -i eth2 -p tcp --sport 995 -j ACCEPT # IMAP/IMAP over SSL -A INPUT -i eth2 -p tcp --sport 143 -j ACCEPT -A INPUT -i eth2 -p tcp --sport 993 -j ACCEPT ### Ubiquiti -A INPUT -i eth2 -p tcp --dport 8080 -j ACCEPT -A INPUT -i eth2 -p tcp --dport 8081 -j ACCEPT -A INPUT -i eth2 -p tcp --dport 8443 -j ACCEPT -A INPUT -i eth2 -p tcp --dport 8880 -j ACCEPT -A INPUT -i eth2 -p tcp --dport 8843 -j ACCEPT -A INPUT -i eth2 -p tcp --dport 27117 -j ACCEPT -A INPUT -i eth2 -p tcp --sport 8080 -j ACCEPT -A INPUT -i eth2 -p tcp --sport 8081 -j ACCEPT -A INPUT -i eth2 -p tcp --sport 8443 -j ACCEPT -A INPUT -i eth2 -p tcp --sport 8880 -j ACCEPT -A INPUT -i eth2 -p tcp --sport 8843 -j ACCEPT -A INPUT -i eth2 -p tcp --sport 27117 -j ACCEPT #################################################### ############### Additional Services ################ ### VNC -A INPUT -i eth1 -p tcp --dport 5800 -j ACCEPT -A INPUT -i eth2 -p tcp --dport 5900 -j ACCEPT ### DROPBOX # LanSync -A INPUT -i eth2 -p udp --dport 17500 -j ACCEPT -A INPUT -i eth2 -p tcp --dport 17500 -j ACCEPT # OpenButton -A INPUT -i eth2 -p udp --dport 17600 -j ACCEPT -A INPUT -i eth2 -p tcp --dport 17600 -j ACCEPT -A INPUT -i eth2 -p udp --dport 17603 -j ACCEPT -A INPUT -i eth2 -p tcp --dport 17603 -j ACCEPT ### Apple Services # APNS (Apple Push Notification Service - iCloud) -A INPUT -i eth2 -p tcp --dport 5223 -j ACCEPT #################################################### ######## Network Traffic + Logging + Router ######## ### Allow Traffic for Opened Connections (ESTABLISHED, RELATED) -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ### Log All Traffic (syslog) -A INPUT -j LOG --log-prefix "[netfilter] " ### Routing Configuration (eth2 [LAN] <-> [WAN] eth1) -A FORWARD -i eth2 -o eth1 -j ACCEPT -A FORWARD -i eth1 -o eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT #################################################### COMMIT
任何幫助將非常感激。
嗯…關於您的 iptables 規則有很多話要說(例如,狀態 ESTABLISHED 應該是第一個)…但是關於您所要求的具體問題,請記住 INPUT 是針對本地結束的傳入流量,而不是針對流量經歷,你應該為此使用 FORWARD。
我建議阻止使用 squid acl。我以前曾使用 squid 阻塞過一個埠。
acl block_port port 443 acl block_port_ip src 192.168.0.11 http_access deny block_port block_port_ip