반응형
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
반응형
'리눅스' 카테고리의 다른 글
우분투에서 Let's Encrypt와 Nginx를 사용하여 SSL 인증서를 설정하는 방법 (0) | 2023.11.13 |
---|---|
SSH 로그인 시 Google OTP를 사용하는 2차 인증을 적용하는 방법 (0) | 2023.11.08 |
우분투에서 multipathd 서비스를 중지하는 방법 (0) | 2023.11.08 |
우분투에서 UFW를 사용하여 방화벽 설정하는 방법 (0) | 2023.11.07 |
리눅스에서 SSH 액세스를 특정 사용자 또는 그룹에 대해 허용하거나 거부하는 방법 (0) | 2023.11.06 |