Linux iptables NAT 설정 및 관리하기
1. 개요
iptables는 리눅스에서 패킷 필터링 및 네트워크 주소 변환(NAT)을 수행하는 강력한 방화벽 도구입니다. 이 글에서는 NAT(Network Address Translation) 기능을 활용하여 특정 포트로 들어오는 트래픽을 다른 주소로 전달하는 방법과 잘못 추가된 규칙을 수정하는 방법을 설명합니다.
2. NAT를 활용한 포트 포워딩
리눅스 방화벽을 설정할 때, PREROUTING 체인을 활용하여 특정 포트로 들어오는 트래픽을 다른 내부 서버로 전달할 수 있습니다. 다음 명령을 실행하면 특정 포트로 접근하는 패킷이 내부 네트워크의 지정된 주소로 전달됩니다.
iptables -t nat -A PREROUTING -p tcp --dport [외부_포트] -j DNAT --to-destination [내부_주소]:[내부_포트]
또한, POSTROUTING 체인에서 NAT 처리를 위해 MASQUERADE를 설정해야 정상적인 통신이 가능합니다.
iptables -t nat -A POSTROUTING -j MASQUERADE
이렇게 설정하면 외부에서 특정 포트로 접속한 트래픽이 내부 네트워크의 다른 서버로 전달됩니다.
3. 현재 NAT 규칙 확인
현재 적용된 iptables의 NAT 규칙을 확인하려면 다음 명령을 실행합니다.
iptables -t nat -L -n -v
또는, PREROUTING 체인의 규칙을 라인 번호와 함께 확인할 수도 있습니다.
iptables -t nat -L PREROUTING --line-numbers
이 명령을 실행하면 현재 등록된 포트 포워딩 및 NAT 규칙을 확인할 수 있습니다.
4. 특정 NAT 규칙 삭제
만약 잘못된 NAT 규칙을 추가했다면, 해당 규칙의 라인 번호(line number) 를 확인한 후 삭제할 수 있습니다.
iptables -t nat -D PREROUTING [라인_번호]
예를 들어, PREROUTING 체인의 4번째 규칙을 삭제하려면 다음과 같이 실행합니다.
iptables -t nat -D PREROUTING 4
이 방법을 사용하면 특정 규칙만 제거할 수 있으며, 불필요한 NAT 규칙을 정리하는 데 유용합니다.
5. 모든 NAT 규칙 초기화 (주의)
모든 NAT 체인의 규칙을 초기화하려면 다음 명령을 실행합니다.
iptables -t nat -F
이 명령을 실행하면 PREROUTING, POSTROUTING 및 OUTPUT 체인의 모든 NAT 규칙이 제거되므로, 신중하게 사용해야 합니다.
6. 변경 사항 영구 저장
일반적으로 iptables 규칙은 시스템이 재부팅되면 초기화됩니다. 변경 사항을 영구적으로 저장하려면 다음 명령을 실행하세요.
CentOS / RHEL 계열
service iptables save
Ubuntu / Debian 계열
iptables-save > /etc/iptables/rules.v4
이후 시스템이 재부팅되더라도 NAT 규칙이 유지됩니다.
'Linux' 카테고리의 다른 글
| SSH (Secure Shell)을 이해해보자 (0) | 2025.06.12 |
|---|---|
| 리눅스에 자바 깔기 (0) | 2025.03.13 |
| ls -la 생각보다 많이쓰는데 잘모른다. (0) | 2025.02.28 |
| alias 영구저장하기 (0) | 2025.02.27 |
| alias + SSH KEY 로 편하게 서버 접속하기 (0) | 2025.02.27 |