본문 바로가기

Linux Unix/RHEL

[ RHEL ] firewall-cmd - Port 포워딩 설정하기

반응형

RHEL(Red Hat Enterprise Linux)에서 포트 포워딩을 설정하려면 firewalldiptables를 사용할 수 있습니다. 아래는 firewalld를 사용하는 방법을 설명합니다. iptables를 사용하려면 별도로 설정해야 합니다.

 

1. firewalld를 이용한 포트 포워딩 설정

  1. firewalld 서비스 활성화 및 확인
  2. 먼저 firewalld 서비스가 활성화되어 있는지 확인하세요.
   sudo systemctl status firewalld

만약 서비스가 실행 중이지 않다면, 다음 명령어로 시작할 수 있습니다.

   sudo systemctl start firewalld
   sudo systemctl enable firewalld
  1. 포트 포워딩 설정
  2. 예를 들어, 외부에서 8080 포트로 접속하면 내부 서버의 80번 포트로 전달되는 포트 포워딩을 설정하려면, 다음 명령어를 실행합니다.
   sudo firewall-cmd --zone=public --add-forward-port=port=8080:proto=tcp:toport=80
  1. 영구적인 설정으로 저장
  2. 위 명령어는 일시적인 설정입니다. 시스템 재부팅 후에도 설정을 유지하려면, --permanent 옵션을 추가하고 다시 reload 명령어를 실행해야 합니다.
   sudo firewall-cmd --zone=public --add-forward-port=port=8080:proto=tcp:toport=80 --permanent
   sudo firewall-cmd --reload
  1. 포트 포워딩 확인
  2. 설정한 포트 포워딩이 제대로 적용되었는지 확인하려면 다음 명령어를 사용합니다.
   sudo firewall-cmd --zone=public --query-forward-port=port=8080:proto=tcp:toport=80

 

2. iptables를 이용한 포트 포워딩 설정

만약 firewalld를 사용하지 않고 iptables를 사용하고 있다면, 다음 방법으로 포트 포워딩을 설정할 수 있습니다.

  1. iptables 명령어로 포트 포워딩 설정
  2. 다음 명령어는 8080 포트에서 들어오는 트래픽을 80번 포트로 포워딩합니다.
   sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
   sudo iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 80 -j ACCEPT

여기서 192.168.1.100은 내부 서버의 IP 주소입니다.

  1. iptables 설정을 영구적으로 저장
  2. RHEL 7 이상에서는 firewalld가 기본 방화벽 관리 도구이지만, iptables를 사용하려면 iptables-services 패키지를 설치하고 iptables를 활성화해야 합니다.
   sudo yum install iptables-services
   sudo systemctl enable iptables
   sudo systemctl start iptables

이후 설정을 저장하려면:

   sudo service iptables save

 

3. sysctl을 사용하여 포트 포워딩을 허용하는 설정

포트 포워딩을 활성화하려면 sysctl 설정에서 net.ipv4.ip_forward 값을 1로 변경해야 합니다.

sudo sysctl -w net.ipv4.ip_forward=1

이 설정을 영구적으로 적용하려면 /etc/sysctl.conf 파일에 다음 줄을 추가합니다.

net.ipv4.ip_forward = 1

그 후, 다음 명령어로 변경 사항을 적용합니다.

sudo sysctl -p

이제 RHEL에서 포트 포워딩이 설정되었습니다.

반응형