리눅스에서 포트 포워딩(Port Forwarding) 을 설정하면 외부에서 특정 포트로 접속 시 내부 네트워크의 특정 서버나 포트로 연결할 수 있습니다.
예를 들어, 외부에서 5432 포트로 접근하면 내부 서버 10.0.1.7의 5432 포트로 전달하는 방식입니다.
1️⃣ 포트 포워딩 기능 활성화
기본적으로 리눅스에서는 IP 포워딩 기능이 비활성화되어 있습니다.
포트 포워딩을 설정하려면 먼저 IP 포워딩이 활성화되어 있는지 확인해야 합니다.
🔹 현재 설정 확인
출력 예시:
✅ 1이면 포트 포워딩이 활성화된 상태
❌ 0이면 비활성화 상태이므로 아래 명령으로 활성화해야 함
2️⃣ IP 포워딩 활성화
비활성화(0) 상태라면 아래 명령을 실행하여 활성화합니다.
또는, 설정을 영구적으로 적용하려면:
파일의 끝에 다음 내용을 추가:
변경 사항 적용:
3️⃣ 현재 네트워크 인터페이스 및 Zone 확인
리눅스의 방화벽(Firewalld)에서는 Zone 기반으로 포트 포워딩을 설정해야 합니다.
현재 활성화된 인터페이스의 Zone을 확인하는 명령어:
출력 예시:
✅ eth0 인터페이스가 public Zone에 속해 있음
✅ 이 정보를 기반으로 이후 설정을 진행
4️⃣ 방화벽에서 허용할 포트 추가
외부에서 접근할 포트를 허용해야 합니다.
예를 들어, 외부에서 65535번 포트와 5432번 포트를 열고 싶다면:
✅ --permanent → 설정을 영구적으로 저장
✅ --zone=public → 현재 활성화된 Zone을 지정
설정 확인:
5️⃣ 포트 포워딩 설정
이제 외부에서 특정 포트로 접근하면 내부 서버로 전달하는 규칙을 추가합니다.
✅ 외부에서 65535 포트로 접근하면 내부 서버 211.114.237.223의 33890 포트로 전달
또는, 내부 네트워크에 있는 서버(10.0.1.7)로 5432 포트를 포워딩하려면:
✅ 외부에서 5432 포트로 접근하면 내부 서버 10.0.1.7의 5432 포트로 전달
설정 적용:
설정 확인:
6️⃣ Masquerade(소스 NAT) 활성화
포트 포워딩이 정상적으로 작동하려면 Masquerade(소스 NAT) 기능을 활성화해야 합니다.
✅ Masquerade는 외부에서 내부 네트워크로 패킷을 전달할 때 IP 주소를 자동 변환하는 역할을 함
7️⃣ 포트 포워딩 설정 확인
위의 설정이 적용되었는지 확인하는 방법:
출력 예시:
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports: 5432/tcp
forward-ports:
port=5432:proto=tcp:toport=5432:toaddr=10.0.1.7
masquerade: yes
source-ports:
icmp-blocks:
rich rules:
✅ 포트 5432가 10.0.1.7로 포워딩됨
✅ Masquerade 활성화됨
8️⃣ 접속 테스트
설정이 완료되었으면, 외부에서 해당 포트로 접속이 가능한지 확인합니다.
또는, netcat(nc) 명령어를 사용하여 테스트:
출력 예시:
✅ "succeeded!" 메시지가 나오면 정상적으로 포트 포워딩이 적용된 것
'IT > 리눅스' 카테고리의 다른 글
리눅스 NTP(Network Time Protocol) 설정 및 동기화 방법 (0) | 2025.02.15 |
---|---|
리눅스 커널 파라미터 설정 (sysctl.conf) (0) | 2025.02.15 |
리눅스 Active Directory(AD) 조인 설정 가이드 (0) | 2025.02.15 |
내부망 레포지토리 서버 구축 및 원격지 설정 (0) | 2025.02.15 |
Crontab을 이용한 자동 스케줄링 설정 및 로그 관리 (0) | 2025.02.15 |