Linux 시스템에서 iptables
를 사용하여 네트워크 트래픽을 관리할 때 "마스커레이드(Masquerade)"는 특히 NAT (Network Address Translation) 설정에서 중요한 역할을 합니다. 마스커레이드는 내부 네트워크(예: 프라이빗 IP 주소를 사용하는 로컬 네트워크)의 여러 기기가 하나의 공용 IP 주소를 공유하여 인터넷에 접근할 수 있도록 해주는 기술입니다.
다음은 iptables를 사용하여 마스커레이드를 설정하는 기본적인 명령어입니다. 이 설정은 내부 네트워크에서 인터넷으로의 접근을 허용하며, 외부 네트워크로부터의 직접적인 접근은 차단합니다.
# NAT 테이블의 POSTROUTING 체인에 규칙 추가
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 포워딩 설정 활성화 (내부 네트워크에서 외부로의 인터넷 접근 허용)
sudo sysctl -w net.ipv4.ip_forward=1
여기서 -t nat
는 NAT 테이블을 대상으로 한다는 것을 의미하고, -A POSTROUTING
는 POSTROUTING 체인에 규칙을 추가한다는 것을 나타냅니다. -o eth0
는 이 규칙이 적용될 네트워크 인터페이스(예: eth0)를 지정합니다. -j MASQUERADE
는 이 규칙을 마스커레이드 동작에 적용하겠다는 것을 의미합니다.
이 설정을 통해, 내부 네트워크의 모든 기기는 공용 IP 주소를 통해 외부와 통신할 수 있으며, 외부에서는 이 기기들의 실제 IP 주소를 알 수 없습니다.