firewalld+squid:如何設定代理

firewalld+squid:如何設定代理

IP xxxx 的基礎設施伺服器(沒有網際網路連線)執行以下請求:

$ wget http://google.com
--2016-11-04 09:32:55--  http://google.com/
Resolving google.com (google.com)... 172.217.22.110, 2a00:1450:4001:81d::200e
Connecting to google.com (google.com)|172.217.22.110|:8888... failed: Connection timed out.

代理伺服器(squid 偵聽8888)具有以下介面: eth1: 1.1.1.1,其中所有來自基礎伺服器的傳入請求均來自eth2: 2.2.2.2,該介面具有預設路由(80,443) 的網際網路連接,因為其位址是翻譯為防火牆(網關)

透過在代理伺服器和 eth1(傳入介面)上執行 tcpdump,我可以正確看到到達的流量:

09:49:10.033951 IP  x.x.x.x.45977 > 1.1.1.1.8888: Flags [S], seq 258250387, win 29200, options [mss 1460,sackOK,TS val 3204336400 ecr 0,nop,wscale 7], length 0
09:49:11.034310 IP  x.x.x.x.45977 > 1.1.1.1.8888: Flags [S], seq 258250387, win 29200, options [mss 1460,sackOK,TS val 3204337402 ecr 0,nop,wscale 7], length 0
09:49:13.042720 IP  x.x.x.x.45977 > 1.1.1.1.8888: Flags [S], seq 258250387, win 29200, options [mss 1460,sackOK,TS val 3204339408 ecr 0,nop,wscale 7], length 0
09:49:17.047283 IP  x.x.x.x.45977 > 1.1.1.1.8888: Flags [S], seq 258250387, win 29200, options [mss 1460,sackOK,TS val 3204343416 ecr 0,nop,wscale 7], length 0
09:49:22.303238 IP  x.x.x.x.45977 > 1.1.1.1.8888: Flags [R], seq 258250387, win 1400, length 0
09:49:25.060419 IP  x.x.x.x.45977 > 1.1.1.1.8888: Flags [S], seq 258250387, win 29200, options [mss 1460,sackOK,TS val 3204351424 ecr 0,nop,wscale 7], length 0
09:49:30.321096 IP  x.x.x.x.45977 > 1.1.1.1.8888: Flags [R], seq 258250387, win 1400, length 0

透過在代理伺服器和 eth2(傳出介面)上執行 tcpdump,我沒有看到任何傳出 http 流量

我在squid的配置中更改的只是以下內容:

acl infra-server src x.x.x.x/32
http_access allow infra-server
http_port 1.1.1.1:8888

就係統而言,SElinux 設定為寬容:

# getenforce
Permissive

以及firewalld的配置方式是:

# firewall-cmd --list-all --zone=internal
internal (active)
  interfaces: eth1
  sources: 
  services: dhcpv6-client ipp-client mdns samba-client ssh
  ports: 8888/tcp
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

# firewall-cmd --list-all --zone=external
external (active)
  interfaces: eth2
  sources: 
  services: http https ssh
  ports: 
  masquerade: yes
  forward-ports: 
  icmp-blocks: 
  rich rules: 

我只需要將流量從 eth1 轉送到 eth2 的規則(我認為)。

相關內容