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 서버를 운영 중이라면, 지금 바로 보안 설정을 확인해보세요. 🔐🚀

Redis network security settings