MongoDB 보안 설정 상세 설명

6728 단어 MongoDB보안 설정
0x 00 MongoDB 권한 소개
1.MongoDB 를 설치 할 때 인 자 를 추가 하지 않 습 니 다.기본적으로 인증 할 수 있 는 권한 이 없습니다.로그 인 한 사용 자 는 데이터 베 이 스 를 임의로 조작 할 수 있 고 데이터 베 이 스 를 원 격 으로 방문 할 수 있 습 니 다.-auth 매개 변수 로 시작 해 야 합 니 다.
2.설치 가 끝 났 을 때 MongoDB 는 기본적으로 admin 데이터 베 이 스 를 가지 고 있 었 습 니 다.이때 admin 데이터 베 이 스 는 비어 있 고 권한 과 관련 된 정 보 를 기록 하지 않 았 습 니 다.admin.system.users 에 사용자 가 한 명도 없 을 때 mongod 가 시 작 될 때--auth 인 자 를 추가 하 더 라 도 admin 데이터베이스 에 사용 자 를 추가 하지 않 았 다 면 인증 을 하지 않 아 도 모든 작업 을 할 수 있 습 니 다.admin.system.users 에 사용 자 를 추가 할 때 까지.
3.MongoDB 의 접근 은 연결 과 권한 검증 으로 나 뉘 는데--auth 매개 변수 로 시작 하 더 라 도 사용자 이름 으로 데이터 베 이 스 를 연결 하지 않 아 도 되 지만 어떠한 조작 도 할 수 있 는 권한 이 없습니다.
4.admin 데이터베이스 에 있 는 사용자 이름 은 모든 데이터 베 이 스 를 관리 할 수 있 고 다른 데이터베이스 에 있 는 사용 자 는 데이터베이스 만 관리 할 수 있 습 니 다.
5.2.4 이전 버 전에 서 사용자 의 권한 은 읽 기 전용 과 모든 권한 을 가 진 것 으로 나 뉜 다.2.4 버 전의 권한 관 리 는 주로 데이터 뱅 크 의 조작 권한,데이터 뱅 크 사용자 의 관리 권한,클 러 스 터 의 관리 권한 으로 나 뉘 는데 슈퍼 사용자 가 admin 데이터 베이스 에서 이 사용 자 를 관리 하 는 것 을 권장 합 니 다.그러나 2.4 버 전의 사용자 관리 방법 은 여전히 호 환 된다.
0x 01 MongoDB 에서 사용자 의 역할 설명
1.캐릭터 읽 기
데이터베이스 읽 기 전용 권한:

aggregate,checkShardingIndex,cloneCollectionAsCapped,collStats,count,dataSize,dbHash,dbStats,distinct,filemd5,mapReduce (inline output only.),text (beta feature.)geoNear,geoSearch,geoWalk,group
2.readWrite 캐릭터
데이터베이스 읽 기와 쓰기 권한:
read 캐릭터 의 모든 권한

cloneCollection (as the target database.),convertToCapped,create (and to create collections implicitly.),renameCollection (within the same database.)findAndModify,mapReduce (output to a collection.)
drop(),dropIndexes,emptycapped,ensureIndex()
3.dbAdmin 역할
데이터베이스 관리 권한:

clean,collMod,collStats,compact,convertToCappe
create,db.createCollection(),dbStats,drop(),dropIndexes
ensureIndex(),indexStats,profile,reIndex
renameCollection (within a single database.),validate
4.userAdmin 역할
데이터베이스 사용자 관리 권한
5.clusterAdmin 역할
클 러 스 터 관리 권한(던 전 집합,필름 분할,주종 등 관련 관리)은 다음 을 포함한다.

addShard,closeAllDatabases,connPoolStats,connPoolSync,_cpuProfilerStart_cpuProfilerStop,cursorInfo,diagLogging,dropDatabase
shardingState,shutdown,splitChunk,splitVector,split,top,touchresync
serverStatus,setParameter,setShardVersion,shardCollection
replSetMaintenance,replSetReconfig,replSetStepDown,replSetSyncFrom
repairDatabase,replSetFreeze,replSetGetStatus,replSetInitiate
logRotate,moveChunk,movePrimary,netstat,removeShard,unsetSharding
hostInfo,db.currentOp(),db.killOp(),listDatabases,listShardsgetCmdLineOpts,getLog,getParameter,getShardMap,getShardVersion
enableSharding,flushRouterConfig,fsync,db.fsyncUnlock()
6.readAnyDatabase 역할
모든 데이터베이스 의 읽 기 전용 권한(read 와 비슷)
7.readWriteAnyDatabase 캐릭터
모든 데이터베이스 의 읽 기와 쓰기 권한(readWrite 와 비슷 함)
8.userAdminAnyDatabase 캐릭터
모든 데이터베이스 사용자 의 관리 권한(userAdmin 과 유사)
9.dbAdminAnyDatabase 캐릭터
모든 데이터베이스 관리 권한(dbAdmin 유사)
0x 02 MongoDB 설치 주의사항
1.설치 할 때 추가--auth
추가--auth 이후 MongoDB 는 검증 이 필요 합 니 다.
2.추가--nohttpinterface 필요
28017 포트 감청 이 추가 되 지 않 습 니 다.웹 페이지 를 통 해 mongodb 를 관리 할 수 있 습 니 다.제거 할 필요 가 없습니다.
3.추가 가능-bidip
추가 후 접근 제한 ip
4.추가 가능-port
추가 후 포트 를 다시 만 들 수 있 습 니 다.기본 값 은 27017 입 니 다.
5.설치 후 즉시 admin 데이터베이스 에 사용 자 를 추가 해 야 합 니 다.
admin 데이터베이스 에 사용 자 를 추가 해 야 인증 이 유효 합 니 다.
주:설치 과정 은 사실 하나의 서 비 스 를 추가 하고 시작 할 때의 인 자 를 지정 하 는 것 입 니 다.
0x 03 사용자 권한 부여
1.2.4 이전 버 전의 사용자 관리 방식
1.1.admin 에 들 어가 관리 계 정 을 만 듭 니 다.

use admin
db.addUser("test","test")
1.2 사용 할 데이터베이스 에 들 어가 서 사용 자 를 위 한 프로그램 을 만 듭 니 다.

use test
db.addUser("test","test")
db.addUser("test","test",True)
2.2.4 버 전의 사용자 관리,이전 버 전의 방식 도 사용 가능
2.1 admin 에 들 어가 관리 계 정 을 만 듭 니 다.

use admin
db.addUser("test","test")
2.2 admin 에 들 어가 서 사용 하 는 데이터베이스 test 에 데이터베이스 와 로그 에 읽 기와 쓰기 권한 을 가 진 계 정 을 만 듭 니 다.

use admin
db.addUser({
    "user": "test",
    "pwd": "test",
    "roles": [ ],
    "otherDBRoles": {
        "test": [
            "readWrite"
        ],
        "test_log": [
            "readWrite"
        ]
    }
})
0x 04 보안 설정 방안
1.설치 할 때 auth 를 추가 하고 admin 데이터베이스 에 사용 자 를 만 듭 니 다.
기본적으로 MongoDB 는 검증 이 필요 없 기 때문에 중요 한 단계 입 니 다.
2.설치 할 때 포트 를 수정 하고 ip 에 접근 하 는 것 을 고려 할 수 있 습 니 다.
구체 적 으로 실제 상황 에 따라 설정 할 수도 있 고 서버 방화벽 에서 직접 할 수도 있다.
3.설치 할 때 기본 웹 관리 방식 을 취소 하 는 것 을 권장 합 니 다.
기본 웹 관 리 는 일반적으로 사용 하지 않 으 며,많은 사람들 이 모 르 므 로 닫 는 것 이 좋 습 니 다.
4.사용자 관리
admin 에 관리 계 정 을 만들어 야 하기 때문에 강 한 암 호 를 설정 하 는 것 이 좋 지만 다른 프로그램 에 사용 하지 않 는 것 이 좋 습 니 다.
5.MongoDB 서비스 운영 계 정
windows 에 서 는 network service 를 사용 하거나 새 사용 자 를 만 들 수 있 습 니 다.기본 USERS 그룹 을 사용 한 다음 데이터베이스 파일 및 로그 저장 디 렉 터 리 에 대한 쓰기 권한 을 추가 하고 cmd 등 프로그램 에 대한 실행 권한 을 취소 하 는 것 을 권장 합 니 다.
Liux 다음 새 계 정 은 프로그램의 실행 권한 과 데이터베이스 파일 및 로그 디 렉 터 리 에 대한 읽 기와 쓰기 권한 을 부여 하고 sh 등 프로그램 에 대한 실행 권한 을 취소 하 는 것 을 권장 합 니 다.
6.사이트 나 다른 프로그램 에서 사용 하 는 연결 사용자 권한 제어
사이트 나 다른 프로그램 에서 사용 하 는 사용 자 는 라 이브 러 리 에 대한 권한 만 부여 하고 admin 데이터베이스 에 있 는 관리 계 정 을 사용 하지 마 십시오.
0x 05 상용 명령
1.설치

mongod --dbpath d:\mongodb\data --logpath d:\mongodb\log\mongodb.log ----nohttpinterface --auth --install
2.사용자 추가

use admin
db.addUser("test","test")
3.모든 데이터베이스 보이 기

show dbs
4.데이터베이스 사용

use test
5.데이터베이스 연결

mongo test -uroot -p123456
6.사용자 인증 추가

db.auth("username","password")
7.사용자 보기

db.system.users.find()
몇 가지 기본 적 인 것 만 쓰 고 다른 인터넷 은 많 거나 도구 로 연결 해서 조작 합 니 다.
0x 06 관리 도구
1. MongoVUE
클 라 이언 트 형식의 관리 도구
2. rockmongo
php 기반 웹 관리
부족 한 점 은 큰 소의 지적 을 바 랍 니 다!

좋은 웹페이지 즐겨찾기