🛠️ 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, 로드밸런스를 공부해 보았다
'Linux' 카테고리의 다른 글
Rocky Linux에서 데이터베이스(DB) 복제하기 (Master-Slave Replication) (0) | 2025.03.10 |
---|---|
리눅스(Rocky Linux)로 nfs서버 만들기 (0) | 2025.02.25 |
리눅스(Rocky Linux)로 메일서버 만들기 (0) | 2025.02.24 |
리눅스(Rocky Linux)로 DNS서버 역방향 조회 및 인증 설정 (0) | 2025.02.23 |
리눅스(Rocky Linux)로 DNS서버 만들기 (0) | 2025.02.20 |