Linux

Rocky Linux로 NAT, 베스천 서버, 로드 밸런싱 구축하기: 네트워크 보안과 트래픽 분산 완벽 구현!

kkuniyo 2025. 3. 10. 13:53
반응형

🛠️ Rocky Linux로 NAT, 베스천 서버, 로드 밸런싱 구축하기: 네트워크 보안과 트래픽 분산 완벽 구현!

대규모 네트워크 환경에서는 보안과 성능을 동시에 고려해야 합니다.
**NAT(Network Address Translation)**을 이용해 내부 서버를 보호하고,
베스천(Bastion) 서버를 통해 보안 강화를 하면서,
**로드 밸런서(Load Balancer)**를 활용하여 트래픽을 효율적으로 분산하는 것이 중요합니다.

📌 이 글에서는 Rocky Linux를 사용하여 NAT 게이트웨이를 구축하고, 베스천 서버를 설정하며, 로드 밸런싱을 통해 네트워크 성능을 최적화하는 방법을 설명합니다. 🚀


📌 1. NAT(Network Address Translation)란?

NAT란?
➡ 내부(사설) 네트워크의 IP 주소를 공인 IP로 변환하여 인터넷과 통신할 수 있도록 하는 기술입니다.
➡ NAT는 방화벽 역할도 수행하며, 외부에서 내부 네트워크로의 직접적인 접근을 차단하여 보안성을 높입니다.

NAT의 주요 기능
내부 IP 주소를 외부 IP로 변환하여 인터넷 접속 가능
외부에서 내부 네트워크로의 직접 접근 차단 (보안 강화)
하나의 공인 IP를 여러 내부 장치가 공유할 수 있도록 지원

📌 쉽게 말해?

"NAT는 내부 네트워크(IP)를 숨기고, 외부 인터넷과 안전하게 연결해 주는 역할을 한다!"


📌 2. 베스천(Bastion) 서버란?

베스천(Bastion) 서버란?
내부 네트워크로의 직접 접근을 막고, 특정 게이트웨이를 통해서만 접근을 허용하는 보안 강화 서버입니다.
➡ SSH, RDP 등 원격 접속을 위한 경유지 역할을 하며, 중요한 내부 서버로의 직접 접근을 방지합니다.

베스천 서버의 주요 기능
외부 사용자가 내부 서버에 직접 접근하는 것을 차단
로그 기록 및 접근 제어를 통해 보안 강화
멀티 팩터 인증(MFA)과 연동 가능 (보안 극대화)

📌 쉽게 말해?

"베스천 서버는 내부 시스템을 보호하는 보안 게이트 역할을 한다!"


📌 3. 로드 밸런싱(Load Balancing)이란?

로드 밸런싱이란?
➡ 하나의 서버에 집중되는 트래픽을 여러 서버로 분산하여 성능과 안정성을 높이는 기술입니다.
웹 서버, 데이터베이스, 애플리케이션 서버 등 다양한 서버 환경에서 사용됩니다.

로드 밸런싱 방식
📌 L4 (네트워크 계층 기반, IP & 포트 분산)

  • IP 주소 및 포트 기반 트래픽 분배
  • 예: IP 해시 기반 분배, 라운드 로빈

📌 L7 (애플리케이션 계층 기반, HTTP 요청 분석)

  • HTTP/HTTPS 요청을 분석하여 특정 서버로 트래픽 분배
  • 예: 쿠키 기반 세션 유지, 특정 URL 요청 분배

📌 로드 밸런서를 사용하면?
트래픽 부하를 균등하게 분산하여 서버 과부하 방지
장애가 발생한 서버를 자동으로 감지하고 제거 (Failover 지원)
서비스 가용성을 높여 웹사이트 속도 개선


📌 4. Rocky Linux에서 NAT, 베스천 서버, 로드 밸런싱 구축하기

설치할 환경:

  • Rocky Linux 9 (NAT 및 베스천 서버, 로드 밸런서로 사용)
  • 사설 네트워크 구성 (192.168.0.11/24)(10.0.0.11)
  • 공인 인터넷 연결 (eth0), 내부 네트워크 연결 (eth1)

📌 설치 및 설정 절차 개요

🔹 1. NAT 게이트웨이 서버 구축
🔹 2. 베스천 서버 구성 및 SSH 보안 강화
🔹 3. 로드 밸런서(Nginx) 구축 및 부하 분산
🔹 4. 클라이언트(내부 서버) NAT 및 로드 밸런싱 테스트

오늘의 목표

네트워크는 기본적으로 아래의 사진과 같이 구현할 것이다

 

윈도우 cmd에서 ysjang이라는 key를 만든다

dir로 확인해 보면 잘 만들어진 것을 확인할 수 있다

config로 들어가서

ysjang key를 디폴트로 설정한다

설정을 안할시 ssh -i 키경로 서버아이디@아이피로 접속을 한다

scp -i ysjang ysjang root@192.168.0.11:/root/.ssh/id_rsa를 하면 따로 vi설정을 할 필요가 없을 것 이

이제 key를 리눅스서버로 넘긴다

이건  ssh설정에서 확인해 보면 

디폴트가 .ssh/authorized_keys로 돼있기에 저장을 authorized_keys로 한 것이다

이제 권한을 읽기와 쓰기를 주고

key를 9-2와 9-3으로 넘긴다

9-1에서도 윈도우와 같이 디폴트를 설정해 접속을 편히 하게 한다

 

이제 접속되는 것을 확인했으니 NAT설정을 하러 간다

네트워크 카드를 잘 확인을 하고 방화벽 정책을 설정해 준다

9-2와 9-3의 게이트웨이를 10.0.0.11로 설정해 준다

Rocky9-2인데 인터넷이 잘 되는 것을 확인할 수 있다

그럼 9-3도 확인해 보도록 하자

 

이제 외부인터넷이 연결되었으니 로드밸런싱을 해보도록 하자

9-1에 haproxy를 다운로드한다

다운로드한 후 설정으로 들어간다

이런 식으로 바꿔주고

80번 포트를 열어준다

그리고 haproxy를 실행시킨다

이제 9-1에서의 설정은 끝이 났으니 9-2 로가서 웹서버를 구축해 보자

9-2는 nginx를 사용하여 웹서버를 만들 거니 nginx를 설치해 준다

위의 경로로 들어가서 설정을 바꿔준다

65080 포트로 접속하는 것이 목표이므로 저 부분만 65080으로 바꿔준다

 

그리고 nginx는 기본 index파일이 있기에 그걸 잠시 바꾸고 우리가 보기 편한 걸로 바꾼다

웹서버는 간단하게 만들어준다

만든 후 포트를 열어주고 시스템을 실행시킨다

 

이제 9-3은 아파치를 이용하여 웹서버를 간단하게 만든다

이렇게 간단하게 웹서버를 만든 후

http 포트를 설정에서 바꿔준다

설정 후에 방화벽 포트를 열어주고 시스템을 시작한다

 

이제 잘 로드밸런싱도 되는지 확인해 본다

 

두 개 다 잘 나오는 것을 확인할 수 있다

오늘은 리눅스에서 베스천과 NAT, 로드밸런스를 공부해 보았다

반응형