로컬 보안 정책으로 설정할 수 있는 부분이 참 많다고 말씀드렸는데, 로컬 그룹 정책은 대부분 레지스트리로 설정이 가능하지만 로컬 보안 정책은 그렇지 않기 때문에, 다수의 서버에 동일한 설정을 적용해야 하는 경우 매우 난감할 것입니다. 일일이 마우스로 하나 하나 설정하다 보면 엄청난 시간이 소요되겠죠.

하지만 윈도우에서 마우스로 가능한 설정은 대부분 커맨드로도 가능하다는 점 명심하시기 바랍니다. 단지 몰라서 활용하지 못할 뿐이지요.

오늘은 로컬 보안 정책을 secedit 명령어를 통해 설정해 보겠습니다.



위 보안 설정을 커맨드로 처리해볼까요? 우선 secedit으로 현재 설정을 추출해봅시다.

예제) secedit /export /cfg c:\test.inf

이렇게 하시면 C 드라이브 루트에 test.inf 파일이 생성되겠죠? 이 파일을 열어서 쭈욱 보시면... 위 보안 정책들이 고스란히 들어있음을 알 수 있습니다.

크게 보면 4가지 섹션으로 구성되어 있는데요

[System Access]
[Event Audit]
[Registry Values]
[Privilege Rights]

계정 정책은 System Access에 들어있고, 감사 정책은 Event Audit에 들어있고, 사용자 권한 할당은 Privilege Rights에 들어있습니다. 보안 옵션은 Registry Values에도 들어있고,  System Access에도 일부 들어있습니다. 그런데 보안 옵션은 대부분 레지스트리 값으로 구성되어 있기 때문에, 굳이 secedit 커맨드를 사용하지 않아도 레지스트리로 설정이 가능합니다.

그렇다면 우리의 타겟은 바로 계정 정책, 감사 정책, 사용자 권한 할당이 되겠습니다. 저는 이 글에서 계정 정책만 가지고 예제를 구성해 보겠습니다.

예를 들어 위 그림에 나온 내용과 같이 설정하고 싶다면

암호는 복잡성을 만족해야 함 : 사용
최근 암호 기억 : 3개
최대 암호 사용 기간 : 31일
최소 암호 길이 : 8문자
최소 암호 사용 기간 : 1일
계정 잠금 기간 : 30분
계정 잠금 임계값 : 5번
다음 시간 후 계정 잠금 수를 원래대로 설정 : 30분


설정 파일 중에 설정에 필요한 부분만 골라서 남겨주시면 되는데, 마지막 [Version] 부분은 넣어줘야 오류가 나지 않더군요. 즉 위 내용을 설정 파일로 구성하면 아래와 같습니다.

[System Access]
MinimumPasswordAge = 1
MaximumPasswordAge = 31
MinimumPasswordLength = 8
PasswordComplexity = 1
PasswordHistorySize = 3
LockoutBadCount = 5
ResetLockoutCount = 30
LockoutDuration = 30
[Version]
signature="$CHICAGO$"
Revision=1


위 내용을 예를 들어 C 드라이브 루트에 test.inf 파일로 저장했다고 가정하겠습니다. 그리고 이 설정파일을 가지고 이제 각 서버에 들어가서 일괄적으로 적용하면 되겠죠?

예제) secedit /configure /db C:\test.sdb /cfg C:\test.inf

사실 /db 부분을 왜 꼭 지정해야 하는지는 잘 모르겠습니다만... 저는 임시 파일 정도로 취급하기로 했습니다. 작업 후 db 파일은 그냥 삭제해도 아무런 지장이 없더군요.

나머지 설명드리지 않은 감사 정책과 사용자 권한 할당 부분도 응용해서 활용하실 수 있겠죠? 사용자 권한 할당의 경우도 예를 들어 바로 앞 글에서 보여드렸던 시스템 종료 권한을 snoopy에게만 주고 싶다면

[Privilege Rights]
SeShutdownPrivilege = snoopy

정도가 되겠습니다.


서버나 보안 이야기 재미가 없으시죠? 일반 사용자에겐 거의 무의미한 이야기로 들릴 것인데, 저는 업무상 관련이 있기 때문에 누군가 저와 비슷한 일을 하는 분이 계시다면 도움이 될까 싶어 올려드리고 있습니다.

개인적으로 다수의 서버에 동일한 설정을 마우스 클릭 반복으로 처리하는 행위는 매우 소모적이라 생각하기 때문에, 항상 자동화 스크립트를 짜고 웬만한 설정은 다 스크립트로 처리하려 노력하고 있습니다. 예를 들어 위에서 진행했던 보안 설정들을 배치파일 하나로 만들어 볼까요?

@echo off
echo [System Access] > test.inf
echo MinimumPasswordAge = 1 >> test.inf
echo MaximumPasswordAge = 31 >> test.inf
echo MinimumPasswordLength = 8 >> test.inf
echo PasswordComplexity = 1 >> test.inf
echo PasswordHistorySize = 3 >> test.inf
echo LockoutBadCount = 5 >> test.inf
echo ResetLockoutCount = 30 >> test.inf
echo LockoutDuration = 30 >> test.inf
echo [Version] >> test.inf
echo signature="$CHICAGO$" >> test.inf
echo Revision=1 >> test.inf
secedit /configure /db test.sdb /cfg test.inf
del test.sdb
del test.inf
exit

위 내용을 CMD 파일로 저장해서 실행하면 보안 설정이 그대로 적용되겠죠? 저는 요즘 회사에서 이런거 만들면서 놀고(?) 있습니다. ^^

  1. 이전 댓글 더보기
  2. BlogIcon hongyang
    2011.08.05 08:17 신고

    질문 있는데요.
    스누피님은 help 명령어에 나온 명령어를 그대로 다 치셨죠?
    저는 엄두도 못 낼 일이네요.. ㅋ

  3. 컴박사
    2011.08.05 10:23 신고

    아 좋겠다 난 회사에서 팀장님 구박을 받으며 사는 남자 ㅋㅋ


  4. 2011.08.06 13:01

    비밀댓글입니다

  5. 권기현
    2011.08.06 19:15 신고

    이번에 노트북을 새로 샀는데요... 아무리 노력하고 인터넷 찾아봐도
    스누피고스트가 제대로 작동을 안해요..ㅠㅠ
    D 드라이브 놔두고 ghost.gho 파일이 계속 C드라이브에 저장되네요...
    혹시 시간 나실때 원격으로 도와주실수잇을까요...?
    아니면 해결책 아시면 답글 달아주시면 감사하겠습니다

    원격 가능하시면 010-구구82-604일 문자 주세요!

  6. 까꿍
    2011.08.10 05:09 신고

    도메인 보안 정책은 어떻게 해야 하나요? 가끔 도메인은 보안정책 커맨드가 무얼까 고민했었는데 궁금해서 여쭤 봅니다

  7. BlogIcon 염선영
    2011.10.26 15:37 신고

    담아갑니다 좋은 정보 감사해요 ^^

  8. 김기명
    2011.12.06 10:39 신고

    완전 유익합니다.
    감사합니다~

  9. man1as
    2011.12.13 13:09 신고

    저도 보안 옵션 ui 말구 레지스트리로 하면 쉬울거 같아서 찾고 있다가
    도움말 줄 secedit 를 찾아서 검색하다 왔는데 이것도 좋네요^^
    좋은 정보 감사합니다.

  10. Rkwlc
    2012.09.28 16:19 신고

    좋은글잘보았습니다.
    다름이아니라 위의 내용중에
    MinimumPasswordAge 와같은 이름은 어트게확인하는지 알수있을까요..??

  11. dkf
    2012.12.06 02:25 신고

    이거 윈도우 8도 적용이 될까요??

  12. 아크
    2013.01.26 10:56 신고

    많은 도움되었습니다 감사합니다.


  13. 2013.05.09 15:58

    비밀댓글입니다

  14. 올라
    2014.04.30 17:14 신고

    스눕님 덕에 원하는 정보는 얻어 유용하게 쓰고 있네요^^;
    혹시 익스플로러의 설정과, 화면보호기 설정은 위와 같은 방법으로는 안될까요???

  15. 스누피찬양
    2014.12.10 11:08 신고

    스누피님 감사합니다 찬양합니다 +_+

  16. hwani
    2015.01.23 15:48 신고

    고급감사 정책은 어떻게 적용해야 할까요?

  17. seungmi
    2015.04.14 14:15 신고

    글 잘 읽었습니다. 정말 유용한 정보였어요! test.inf 파일에 수정하고 싶은 보안설정 cmd 만 넣어주면 되는건가요? 아님 디폴트값도 모두 담겨져있어야 하는 건가요?

  18. 임광훈
    2015.07.02 11:06 신고

    암호는 복잡성을 만족해야 함 : 사용
    사용안함 명령어가 어떤건가요?ㅠㅠ

  19. 윈도우 8.1 K
    2015.07.26 04:21 신고

    로컬 보안 정책이 없는 8.1 K 사용자입니다 ㅠㅠ 겨우 해답을 찾았네요 감사합니다!!

  20. Sonmyeong
    2015.10.31 23:44 신고

    항상 많은 도움을 받고 있습니다^^ 감사해요~

    패스워드 보호 공유폴더 용으로 계정을 하나 만들고
    이 계정의 로그온을 막아 보려고 하다가 (물론 CMD 파일로)

    사용자 권한 할당 항목 을 이렇게
    [Privilege Rights]
    SeDenyInteractiveLogonRight = 해당계정
    적어 CMD 파일로 만들고 적용했습니다만
    항목값이 overwrite 되어 기존있던 계정은 없어지고
    위에서 추가한 '해당계정' 만 남습니다

    뭐.. 정상적인 결과이지만 복잡해지는 군요...
    신규계정만 추가 시키는 간단한 방법이 없을까요?

  21. 에베라겔
    2015.12.08 14:46 신고

    한글로 추출하는 방법은 없을까요^^?