방화벽 SNAT를 사용하여 IP 주소를 기록하는 방법은 무엇입니까?

방화벽 SNAT를 사용하여 IP 주소를 기록하는 방법은 무엇입니까?

NAT 라우터가 아래와 같이 보이도록 CentOS 8 PC에서 방화벽을 사용하여 SNAT를 설정하려고 합니다.

사용자는 CentOS8을 통해 웹 서버에 액세스합니다.

[UserPC]---(192.168.0.0/24)---[CentOS 8]---(10.0.0.0/24)---[Web Server]

방화벽 장치처럼 한 행에 4개의 IP 주소를 기록하고 싶습니다.

  1. 사용자 PC
  2. 네트워크 서버
  3. 사용자 PC(NAT 이후)
  4. 웹 서버(NAT 이후, 이 경우에는 DNAT를 사용하지 않습니다.)

/var/log/firewall 파일에서 1.UserPC와 2.WebServer를 찾았습니다. 그런데 "3.UserPC(NAT 후)"와 "4.Web Server(NAT 후)"는 로그할 수 없습니다.

내 CentOS8 PC에는 2개의 네트워크 카드가 있습니다.

  • 내부 인터페이스: 192.168.0.1/24
  • 외부 I/F: 10.0.0.1/24, 10.0.0.2/24, 10.0.0.3/24(IP 주소 3개)

내 방화벽 명령 규칙은 다음과 같습니다.

ipv4 filter FORWARD 0 -i <Internal I/F> -o <External I/F> -j ACCEPT
ipv4 filter FORWARD 0 -m tcp -p tcp -j LOG --log-prefix 'FORWARD LOG:'
ipv4 filter FORWARD 0 -i <External I/F> -o <Internal I/F> -m state --state RELATED,ESTABLISHED -j ACCEPT
ipv4 nat PREROUTING 0 -m tcp -p tcp -j LOG --log-prefix 'PREROUTING LOG:'
ipv4 nat POSTROUTING 0 -s 192.168.0.0/24 -o <External I/F> -j SNAT --to-source 10.0.0.3
ipv4 nat POSTROUTING 0 -m tcp -p tcp -j LOG --log-prefix 'POSTROUTING LOG:'
ipv4 nat OUTPUT 0 -m tcp -p tcp -j LOG --log-prefix 'OUTPUT LOG:'

WebServer에서 access.log를 확인했는데 소스 IP 주소가 "10.0.0.3"입니다. 방화벽 규칙의 순서가 잘못된 줄 몰랐고, 규칙의 순서를 변경했습니다. 하지만 효과는 좋지 않습니다.

다음으로 nft 목록 규칙 세트를 확인하고 다음 규칙을 찾았습니다.

table ip nat {
    chain PREROUTING{
        blahblahblah
    }
    chain INPUT{
        blahblahblah
    }
    chain POSTROUTING{
        type nat hoook postrouting priority srcnat; policy accept;
        oifname "External I/F" ip saddr 192.168.0.0/24 counter packets 2 bytes 120 snat to 10.0.0.1
        meta l4proto tcp counter packets 100 bytes 0 log prefix "POSTROUTING LOG:"
    }
}

내 생각에는 몇 가지 진술이나 키워드 등을 추가해야 할 것 같습니다. 이 메타 행에 어떻게, 무엇을 추가해야 합니까? 내 생각이 맞나요?

누구든지 나에게 말해 줄 수 있다면 나는 매우 감사할 것입니다. 감사해요.

관련 정보