2017-11-06 1 views
0

올해 초, lots of MongoDB databases were hacked입니다. 여기에는 제 데이터베이스도 포함되어 있습니다. 어제는 인증이 활성화 된 새 데이터베이스가 해킹 된 것으로 나타났습니다. 사용자 이름과 암호는 매우 안전합니다 (임의 문자와 기호가있는 16 자 이상의 암호).MongoDB 데이터베이스를 안전하게 잠그는 방법은 무엇입니까?

이제 완전히 안전하게하기로했지만 솔직히 어디로 진행해야할지 모르겠다. 나는 이미 가지고있다 :

그리고 충분해야한다 (sudo service mongod restart 후에). 나는 1 명의 데이터베이스와 관리 사용자가 없지만 원격 연결에서 익명 액세스는 여전히 허용됩니다. 나는 여러 장소를 계속 읽으며, 나는 몽고를 mongod --auth처럼 실행해야하지만, 위에서 한 것처럼 권한을 부여하는 것과 동일하다.

이 시점에서 나는 서버에서 익명 인증을 사용하지 않으려 고 고심하고 있습니다. 내가 놓친 게 무엇입니까? 계정없이 인증 할 수있는 이유는 무엇입니까?

+0

'security.authorization' 설정 지시어는'--auth' 명령 행과 같습니다. 'mongo' 쉘을 통해 보안이 가능함을 확인할 수 있습니까?'db.serverCmdLineOpts(). parsed.security.authorization'의 결과는'enabled'이어야합니다. 어떤 특정 버전의 MongoDB를 사용하고 있습니까? 초기 사용자를 어떻게 만들었습니까? [초기 사용자 생성] (https://docs.mongodb.com/manual/tutorial/enable-authentication/#create-the-user-administrator) 인증을 사용하도록 설정 한 경우 (일반적으로 사용자 admin 역할이 있어야 함)), 익명 액세스는 더 이상 허용되지 않습니다. – Stennie

+0

@Stennie 명령을 실행하면'인증이 정의되지 않았습니다. '라고 그냥 말할 것입니다. '--auth'가 활성화되어 있지 않고'mongod.conf' 파일이 올바르게로드되지 않습니다. 새로운 관리자 ('use admin','db.createUser()')를 만들었고'sudo service mongod restart'를 사용하여 재시작했지만 익명으로 로그인 할 수 있습니다. – MortenMoulder

+0

MongoDB 서버의 어떤 O/S 및 버전을 사용하고 있습니까? '인증이 정의되지 않았다면'예상 된 설정 파일이 사용되지 않는 것처럼 들린다. 'mongo' 쉘에서'db.serverCmdLineOpts() .parsed'를 실행하면 설정 파일 경로 ('db.serverCmdLineOpts(). parsed.config')를 포함한 모든 명령 행 옵션이 반환됩니다. – Stennie

답변

0

보안을 활성화하려면 MongoDB 웹 사이트의 Security Checklist을 따라야합니다.

Here you are provided with role based authorization and authentication instructions. 또한 모든 이더넷 인터페이스를 듣지 못하게하고 MongoDB 포트를 노출시키고 자하는 인터페이스에 바인딩하는 것이 좋습니다.

For a guide to network hardening, you will want to review these instructions, 그러나 가장 중요한 측면은 원하지 않는 네트워크 노출을 피하는 것입니다. 방화벽 또는 보안 그룹 (클라우드에있는 경우) 사용을 고려하십시오.

+0

'mongod.conf'가 인증 플래그를 활성화하지 않는 것 같습니다. 'sudo service mongod start'가 실제로 mongod.conf 파일을 사용하는지 어떻게 확인합니까? – MortenMoulder

+0

이것은 OS 배포판에 따라 다릅니다. OS 및 시작 정보가있는 위치를 읽는 것이 좋습니다. IE : https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/ –

관련 문제