MongoDB 보안 인증을 설정 했을때 Key 파일 생성 및 적용 방법

 

MongoDB 보안 인증을 설정 했을때 Key 파일 생성 및 적용 방법

MongoDB를 디폴트로 설치했을 경우 보안에 대한 아무런 조치가 되어 있지 않기 때문에 그냥 기본 값으로 사용하면 해킹 쉽게 노출된다고 할 수 있습니다. 27017 에대한 포트 스캔을 이용하여 접근하면 username/password 없이도 DB에 admin 권한으로 접근할 수 있기 때문에, 해커들이 DB의 내용 전부 삭제해버리고 데이터는 자신이 보관하고 있으니 비트코인을 입금하라는 경우도 있을 정도로 보안에 위약합니다.

반드시 admin 계정 생성을 하고 security.authorization: enabled 을 설정해서 사용하시기 바랍니다. admin 계정을 생성하는 법은 아래 링크를 참고하시기 바랍니다.

security.authorization: enabled를 설정하게 되면 레프리카 셋이나 샤드 클러스터를 설정하는데, 암호화된 key를 필요로 하게 됩니다.

MongoDB의 레플리카 셋에 사용할 key를 생성해보록 하겠습니다.

openssl rand -base64 756 > <path-to-keyfile>
chmod 400 <path-to-keyfile>

일단 기본 명령은 위와 같습니다. openssl 패키지를 이용하여 생성합니다.

chmod 명령을 이용해 권한을 400 으로 바꿔주고, 생성된 키파일을 각각의 레프리카 셋 멤버의 노드에 복사 해줍니다.

아래는 생성부터 배포까지 예제 입니다.

$ openssl rand -base64 756 > /var/lib/mongo/mongo_repl.key
$ chmod 400 /var/lib/mongo/mongo_repl.key

세컨더리로 키 배포
$ scp /var/lib/mongo/mongo_repl.key mongo-rs02:/var/lib/mongo/
$ scp /var/lib/mongo/mongo_repl.key mongo-rs03:/var/lib/mongo/

2번 노드
$ chmod 400 /var/lib/mongo/mongo_repl.key
$ chown mongod.mongod /var/lib/mongo/mongo_repl.key

3번 노드
$ chmod 400 /var/lib/mongo/mongo_repl.key
$ chown mongod.mongod /var/lib/mongo/mongo_repl.key

각각의 노드에서 설정 파일에 키를 적용합니다. 레플리카 셋의 모든 멤버에 설정을 해줘야 합니다.

vi /etc/mongod.conf

security:
  authorization: enabled
  keyFile: /var/lib/mongo/mongo_repl.key

이런식으로 키를 설정해줘야만 보안 설정이 된 상태에서 레플리카셋 또는 샤드 클러스터를 생성할 수 있습니다.

 

 

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다