[Linux] iptables를 사용한 포트 포워드

iptables를 사용한 포트 포워드 


 iptables는 시스템 관리자가 리눅스 커널 방화벽이 제공하는 테이블들과 그것을 저장하는 체인, 규칙들을 구성할 수 있게 해주는 사용자 공간 응용 프로그램입니다.

iptables를 이용해서 bastion host에 포트 포워딩 설정이 가능합니다.


Bastion Host 란 보안을 위해 만들어진 Host로 외부 네트워크와 내부 네트워크 사이에서 일종의 게이트웨이 역할을 수행하는 호스트를 말합니다




인스턴스에 접속해서 패킷 포워딩을 먼저 활성화를 해보겠습니다 . 



1. root 권한으로 접속합니다 . 








2. 패킷 포워딩 활성화

# sysctl -w net.ipv4.ip_forward=1








이후 서버 재시작 시에도 적용될 수 있도록 “/etc/sysctl.conf” 파일 내용을 수정합니다.











맨 아래 행에 다음 행을 추가합니다 . 

# net.ipv4.conf.default.rp_filter = 1




3. MASQUEERADE any 설정하기

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


4. iptables NAT 테이블 추가하기

# iptables -t nat -A PREROUTING -p tcp --dport [포트번호] -j DNAT --to-[destination 대상_ip:22]


도메인이름을 대상 ip 로 설정 할 수 없기 때문에 도메인으로 엔드포인트를 제공하는 서비스인 RDS의 경우 RDS를 nslookup 하여 반환되는 IP를 iptables의 destination으로 지정해야 합니다 . 


4. iptables 저장

# service iptables save


5. 확인

# iptables -t nat -D preRouting 1



















6. 설정된 iptables 상태 저장하기

# iptables-save > /home/iptable.config

댓글