복붙노트

[MONGODB] MongoDB의 서버는 여전히 인증없이 액세스 할 수 있습니다

MONGODB

MongoDB의 서버는 여전히 인증없이 액세스 할 수 있습니다

나는 내 컴퓨터에서 신선한의 MongoDB를 서버 (2.6.0)을하고 난 다음 설정 파일로 mongod 인스턴스를 시작 :

dbpath = c:\mongo\data\db
port = 27017
logpath = c:\mongo\data\logs\mongo.log
auth = true

나중에, 나는 몽고 쉘을 통해이 mongod 인스턴스에 연결하고 관리 사용자를 만들었습니다 :

use admin
db.createUser(
  {
    user: "tugberk",
    pwd: "12345678",
    roles:
    [
      {
        role: "userAdminAnyDatabase",
        db: "admin"
      }
    ]
  }
)

그럼, 다음 명령을 사용하여 쉘과 다시 연결에서 로그 아웃 :

mongo --host localhost --port 27017 -u tugberk -p 12345678 --authenticationDatabase admin

그럼, 루트 액세스 권한이있는 사용자를 만들었습니다 :

use admin
db.createUser(
    {
      user: "tugberkRoot",
      pwd: "12345678",
      roles: [ "root" ]
    }
)

마지막 단계는 여기에 필요한 것은 아니지만 익명 액세스는 이제 완전히 비활성화되어 있어야합니다. (난 아무것도 할 수있는 액세스 권한이없는 경우에도) 그러나, 나는 여전히 익명으로 몽고 쉘을 통해 연결할 수 있습니다 :

나는 어떤 익명 연결을 방지하기 위해 무엇을해야합니까?

해결법

  1. ==============================

    1.데이터베이스에 대한 작업을 수행에서 인증 방지를 (스크린 샷에서 볼 수 있듯이 - 당신이 할 수없는 경우에도 목록 데이터베이스), 그것은 연결을 방지하지 않습니다 - 모든 후, 당신은 인증 할 수 연결할 수 있어야합니다.

    데이터베이스에 대한 작업을 수행에서 인증 방지를 (스크린 샷에서 볼 수 있듯이 - 당신이 할 수없는 경우에도 목록 데이터베이스), 그것은 연결을 방지하지 않습니다 - 모든 후, 당신은 인증 할 수 연결할 수 있어야합니다.

    이 시간 제한을 추가하는 기능 요청이 있지만 지금은이 서버가 동작하기위한 것입니다 본질적 방법이다.

    등 클라이언트가 아닌 서버에서입니다 : "연결"텍스트가 시작 표시 - 당신이 뭔가를 수행하려고 할 때까지 최대를 지적 그것의 가치는, 이것은 단지 텔넷으로 포트에 연결하는 것보다 정말 다르지 않습니다. 이 인증되지 않은 아무것도 할 심지어 서버 경고를 나열하려고으로 충분한 권한이 없기 때문에 즉시 오류가 발생합니다.

    당신이 연결의 관점에서 사물을 봉쇄 할 경우 MongoDB의 관점에서 유일한 옵션은 bindIp 옵션을 사용 (기본값은 모든입니다)가에 수신하는 IP 주소를 제한하는 것입니다. 127.0.0.1을 사용하면 예를 들어 지역의 사용으로 잠글 것이다 (하지만 당신은 원격 호스트에서 연결하지 못할 것이다) 바운드 주소를 선택할 때 문제가 있으므로 조심 복제를한다.

    MongoDB를 외부에서는 방화벽의 관점에서 사물을 잠그는 봐야한다. 리눅스에이가 iptables, UFW는 hosts.allow에 / 거부하거나 유사 할 것입니다. 윈도우 방화벽 내 전문 분야되지 않습니다,하지만 난 당신이 비슷한 할 수있는 상상에 맡기겠습니다.

  2. ==============================

    2.이 같은 mongo.conf 파일의 보안 섹션에서 인증을 활성화하여 데이터베이스를 보호 할 수 있지만 :

    이 같은 mongo.conf 파일의 보안 섹션에서 인증을 활성화하여 데이터베이스를 보호 할 수 있지만 :

    security:
      authorization: enabled
    
  3. from https://stackoverflow.com/questions/23387689/mongodb-server-can-still-be-accessed-without-credentials by cc-by-sa and MIT license