방화벽 + 오징어 : 프록시 설정 방법

방화벽 + 오징어 : 프록시 설정 방법

IP xxxx(인터넷 연결 없음)를 사용하는 infra-server는 다음 요청을 수행합니다.

$ 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.

프록시 서버(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 트래픽이 표시되지 않습니다.

내가 오징어 구성에서 변경한 것은 다음과 같습니다.

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

시스템 측면에서 SElinux는 허용으로 설정됩니다.

# getenforce
Permissive

방화벽 구성 방법은 다음과 같습니다.

# 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로 전달하는 규칙만 있으면 됩니다.

관련 정보