FreeBSD에서 natd 플래그를 사용한 리디렉션

FreeBSD에서 natd 플래그를 사용한 리디렉션

기본 NAT 서버를 설정하려고 합니다. 외부 세계에서 NAT 서버로 들어오는 모든 트래픽을 다른 시스템으로 리디렉션하고, 여기서 이 트래픽을 구문 분석하기 위해 lipcap 서비스를 실행하고 있습니다.

rc.conf의 natd_flags 부분에서 -redirect_port 및 -redirect_address를 시도했지만 아무 것도 작동하지 않습니다. 어떤 생각이 있으신가요?

답변1

사용자 공간이 활성화 natd되어야 합니다 ipfw. IPFW는 패킷을 포착하여 natd주소를 변환하는 경로로 리디렉션합니다. 하지만 요즘에는 ipfw에 내장된 커널 NAT를 사용할 수 있습니다.

IPFW 엔진을 활성화해 보겠습니다.

# /etc/rc.conf
. . . . .
gateway_enable="YES"
firewall_enable="YES"
firewall_nat_enable="YES"
firewall_script="/etc/rc.ipfw"
. . . . .

그리고 커널 리디렉션을 구성해 보겠습니다.

# /etc/rc.ipfw
. . . . .
oip="1.2.3.4"   # Outer IP looking to the internet
tip="10.0.0.100 # Target host
ipfw nat 1 config redirect_addr ${tip} ${oip}
. . . . . 

그게 다야.

답변2

PF 방화벽에는 NAT 및 리디렉션이 바로 내장되어 있습니다. 이것을 /etc/rc.conf에 추가하십시오:

gateway_enable="YES"
pf_enable="YES"

그리고 방화벽을 구성하세요. /etc/pf.conf에 다음 줄을 추가합니다.

ext_if=em0
ext_addr = N.N.N.N  (your external IP)

int_if=em1
int_net=10.0.0.0/8
int_addr=10.0.0.1
libcap_host=10.0.0.2

nat on $ext_if from $int_net to any -> $ext_addr
rdr on $ext_if from any to $ext_addr -> $libcap_host

NAT 규칙은 예상한 대로 인터넷 네트워크에서 생성된 모든 트래픽을 게이트웨이의 외부 IP를 통해 전 세계로 보냅니다. rdr 규칙은 들어오는 모든 연결을 대상 호스트로 라우팅합니다.

관련 정보