Redis는 고성능 인메모리 데이터베이스로 널리 사용되지만, 기본적으로 보안이 강하게 설정되어 있지는 않습니다. 특히 네트워크를 통해 접근할 경우, 잘못된 설정으로 인해 데이터 유출, 해킹, 서비스 장애 등의 문제가 발생할 수 있습니다.
이번 글에서는 Redis의 네트워크 보안을 강화하는 방법과 주요 설정들을 초심자도 쉽게 이해할 수 있도록 설명하겠습니다. Redis를 안전하게 운영하려면 어떤 설정을 확인해야 하는지 하나씩 살펴봅시다.
1. Redis를 외부에서 접근하지 못하도록 제한하기
✅ 1-1. 특정 IP에서만 접근 허용 (bind
설정)
Redis는 기본적으로 모든 네트워크 인터페이스에서 연결을 받을 수 있습니다. 즉, 아무런 설정이 없으면 누구나 Redis 서버에 접근할 가능성이 있습니다.
이를 방지하려면 bind
설정을 이용해 특정 IP 주소에서만 접근하도록 제한해야 합니다.
📌 예제: 로컬(127.0.0.1)에서만 접근 허용
bind 127.0.0.1 -::1
위와 같이 설정하면, 같은 서버 내에서 실행된 클라이언트만 Redis에 접근할 수 있습니다.
📌 만약 외부 IP에서 접근해야 한다면?
외부 IP에서도 접근이 필요하다면, 특정 IP만 허용하도록 설정할 수 있습니다.
bind 192.168.1.100 10.0.0.1
이렇게 하면 192.168.1.100, 10.0.0.1 두 개의 IP에서만 Redis에 접속할 수 있습니다.
✅ 1-2. 보호 모드 (protected-mode
) 설정
Redis는 보안을 강화하기 위해 보호 모드(protected mode) 기능을 제공합니다. 보호 모드가 활성화된 상태에서는 비밀번호 없이 외부에서 접근할 수 없습니다.
📌 보호 모드 활성화
protected-mode yes
이렇게 설정하면, Redis는 127.0.0.1 (로컬)에서만 접속 가능합니다.
2. Redis의 네트워크 포트 및 연결 제한
✅ 2-1. Redis가 수신할 포트 (port
) 설정
Redis는 기본적으로 6379번 포트에서 실행됩니다.
port 6379
만약 TCP 소켓이 아닌 Unix 소켓으로만 사용하고 싶다면, 포트를 0으로 설정하면 됩니다.
port 0
✅ 2-2. 특정 포트에서만 통신하도록 설정 (bind-source-addr
)
Redis에서 발신 연결(복제본이 마스터에 연결, 클러스터 간 통신 등)은 기본적으로 특정 네트워크 인터페이스에 바인딩되지 않습니다.
bind-source-addr 10.0.0.1
이렇게 설정하면 Redis가 10.0.0.1 인터페이스를 통해서만 외부 Redis 서버와 통신합니다.
3. 네트워크 연결의 안정성을 위한 설정
✅ 3-1. TCP 연결 대기열 크기 (tcp-backlog
)
tcp-backlog 511
🔹 높은 트래픽을 처리하는 서버에서는 이 값을 1,024 또는 4,096으로 설정하는 것이 좋습니다.
✅ 3-2. 클라이언트 비활성화 시간 (timeout
)
timeout 300
클라이언트가 5분 동안 아무 작업도 하지 않으면 자동으로 연결이 종료됩니다.
4. 보안 강화를 위한 추가 설정
✅ 4-1. 위험한 명령어 차단 (enable-debug-command
)
일부 Redis 명령어(DEBUG
, MODULE LOAD
등)는 보안상 위험할 수 있습니다.
enable-debug-command no
enable-module-command no
이렇게 하면 잠재적으로 위험한 명령어를 실행할 수 없도록 제한됩니다.
5. 정리: Redis 네트워크 보안 설정 체크리스트
- ✔ 특정 IP에서만 Redis에 접근하도록 설정 (
bind
) - ✔ 보호 모드(
protected-mode
)를 활성화하여 외부 접근 차단 - ✔ TCP 포트 설정 (
port
)을 통해 불필요한 접근 제한 - ✔ 클라이언트 비활성화 타이머 (
timeout
) 설정하여 유휴 연결 차단 - ✔ Keepalive 설정 (
tcp-keepalive
)을 통해 네트워크 연결 유지 - ✔ 위험한 명령어 차단 (
enable-debug-command no
)으로 보안 강화
Redis는 네트워크 보안이 중요한 데이터베이스입니다. 위 설정들을 꼼꼼하게 적용하면 해킹과 데이터 유출을 예방할 수 있습니다! Redis 서버를 운영 중이라면, 지금 바로 보안 설정을 확인해보세요. 🔐🚀

Add a New Comment