본문 바로가기

리눅스

iptables를 사용하여 포트 포워딩을 설정하는 일반적인 방법

반응형

iptables를 사용하여 포트 포워딩을 설정하는 일반적인 방법

1. 포트 포워딩 활성화

포트 포워딩을위한 IP 패킷 라우팅을 활성화합니다.

sudo sysctl net.ipv4.ip_forward=1

또는

echo 1 > /proc/sys/net/ipv4/ip_forward

2. 포트 포워딩 규칙 추가

80번 포트를 8080 포트로 포워딩하는 방법을 보여줍니다.

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

3. 규칙 저장

규칙을 설정한 후에는 변경 사항을 저장하여 부팅 시에도 적용되도록 해야 합니다. iptables-persistent 패키지를 사용하거나 iptables-save와 iptables-restore 명령어를 사용하여 설정을 저장할 수 있습니다.

4. 포트 포워딩 검증

포트 포워딩이 올바르게 설정되었는지 확인하려면 특정 포트로의 연결을 테스트하십시오.

 

iptables를 사용한 포트 포워딩은 복잡한 네트워크 구성을 다루는 데 유용하며, 다중 포트 포워딩 및 서버 내부 서비스 라우팅과 같은 고급 기능을 구현할 수 있습니다.


  • 80 및 443의 들어오는 트래픽을 프록시 서버로 전달하도록 설정
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 프록시서버IP:포트
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 프록시서버IP:포트
  • 목적지 IP 주소와 포트에 따라 트래픽을 다르게 설정
# 로컬 대역(172.30.0.0/16)에서 기본 게이트웨이로 통신 (포트 80 및 443)
iptables -A FORWARD -d 172.30.0.0/16 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -d 172.30.0.0/16 -p tcp --dport 443 -j ACCEPT

# 외부 IP 주소(172.30.0.0/16을 제외한 아이피)에서 프록시 서버로 통신 (포트 80 및 443)
iptables -A FORWARD -d ! 172.30.0.0/16 -p tcp --dport 80 -j DNAT --to-destination 프록시서버IP:80
iptables -A FORWARD -d ! 172.30.0.0/16 -p tcp --dport 443 -j DNAT --to-destination 프록시서버IP:80
  • 로컬 대역과 외부 IP 주소 간의 포트 포워딩을 설정
# 172.30.0.0/16 로컬 대역에서 로컬 게이트웨이(172.30.0.1)로의 포트 80 및 443 트래픽 허용
iptables -A FORWARD -i eth0 -o eth0 -s 172.30.0.0/16 -d 172.30.0.1 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth0 -s 172.30.0.0/16 -d 172.30.0.1 -p tcp --dport 443 -j ACCEPT

# 외부 IP 주소에서 프록시 서버로의 포트 80 및 443 트래픽 포워딩
iptables -t nat -A PREROUTING -i eth0 -d 0.0.0.0/0 -p tcp --dport 80 -j DNAT --to-destination 프록시서버IP:80
iptables -t nat -A PREROUTING -i eth0 -d 0.0.0.0/0 -p tcp --dport 443 -j DNAT --to-destination 프록시서버IP:80

 

iptables -A FORWARD -d 172.30.0.0/16 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -d 172.30.0.0/16 -p tcp --dport 443 -j ACCEPT

iptables -A FORWARD -d ! 172.30.0.0/16 -p tcp --dport 80 -j DNAT --to-destination 프록시서버IP(squid):3128
iptables -A FORWARD -d ! 172.30.0.0/16 -p tcp --dport 443 -j DNAT --to-destination 프록시서버IP(squid):3128

 

iptables -A FORWARD -d 172.30.0.0/16 -j ACCEPT
iptables -A FORWARD -d ! 172.30.0.0/16 -p tcp --dport 80 -j DNAT --to-destination 프록시서버IP(squid):3128
iptables -A FORWARD -d ! 172.30.0.0/16 -p tcp --dport 443 -j DNAT --to-destination 프록시서버IP(squid):3128

 

참고URL

- Ubuntu Official Documentation : IptablesHowTo

- Rocky Linux Documentation : iptables 가이드 - firewalld 소개

 

728x90
반응형