블로그 이미지
루미넌스
There are only 10 types of people, those who understand binary and those who do not.

calendar

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      
2011/03/11 16:11 Dev 노트
갑자기 궁금해서 조사해봤다.. 자주 들락거리는 몇개 사이트에 대해서...
놀라운 사이트는 스크롤 좀 내려야 있음;;

다음 6~32자리

네이버 6~16자리

모바일미 6~32자리

SKT Tworld 6~20자리에 심지어 기호문자는 7가지로 제한.


KT QOOK 6~16자리

KT SHOW 6-16 자리

비번하고 상관없는거지만
KT나 SKT 춈 병맛인게..
이동통신, 인터넷회선, IPTV 사이트 아이디 비번 다 따로따로다.. 그러면서 뭘 합쳤다는 건지..;
심지어 (구)하나로통신인 SKT B(브로드밴드, 인터넷회선상품)사이트는 액티브X를 깔지 않으면 로그인도 못한다. 샹..

자.. 이제 놀라운 사이트 ㄷㄷ

트위터: 아마 무제한...248자리도 그냥 쿨하게 바꿔주더라.. 더 긴건 귀찮아서 패스;


페이스북도 248자리 비번으로 쿨하게 바꿔주더라..


구글은 100자리 받아주더라..ㅡ,.ㅡㅋ

길다고 보안성이 좋은건 아니지만 분명 작지않은 상관관계는 있다..
현실적으로 30자 넘는 비번을 쓰기도 어렵긴 하지만..ㅋ

저작자 표시 비영리 변경 금지
Creative Commons License
posted by 루미넌스
TAG 기초, 보안,
2008/04/18 13:22 miscellaneous
리퍼러로그에 http://www.samsung.net/service/ml/RecvController 요런게 있더구만..
최근 몇시간동안 몇명이 저곳에 있는 링크를 타고 들어왔는데.. 삼성화재도메인인듯..

어쩌다 내 블로그가 삼성화재 직원게시판에 링크가 걸린겨;;;
삼성화재 댕기시는분.. 쫌 알려주심 안될까요? ㅡㅡㅋ

이참에 리퍼러에 뜨는 각 업체의 직원용 내부게시판 주소나 정리해봐야겠다..ㅋㅋ
리퍼러계의 롱테일-_-
리퍼러의 80%는 20%의 도메인(보통은 검색사이트, 메타사이트)이 차지하고..

뭐라는거야..ㅡ_ㅡ

보안개념은 안드로메다로 소풍 보내버리신분들..
인트라넷 게시판에 그냥 막 링크 적어두시는...

전 범죄자는 아니니까 들어가볼려고 시도는 하지 않습니다만..쩝..
samsung.net 대문페이지

samsung.net 대문페이지


Creative Commons License
posted by 루미넌스
2007/06/21 20:05 Dev 노트
이 글은 http://lumitech.tistory.com/entry/sudoAndSudoer 로 이동하였습니다.

--------
인터넷을 통한 서비스를 위하여 설치된 서버에는 반드시 OS설치시부터 관리자 계정(root 또는 administrator)이 만들어져 있다. 이 계정의 권한은 직원이라 하더라도 함부로 알려줘서는 안되며, 관리자 권한이 필요한 업무를 보는 사람에게, 제한적으로 권한을 수행할 수 있도록 허용하는 보안정책이 필요하다. 작업용 공용계정을 사용하는 경우도 마찬가지이다.(하지만 작업용 공용계정을 없애는것이 보안의 첫걸음이다.)
이 기능을 훌륭히 수행해주는 sudo의 사용법에 대하여 요약해 보았다.

sudo

  • 개발, 운영 등의 작업을 수행함에 있어, 로그인계정 외의 다른 계정의 권한이 요구될 때, 그 계정을 직접 사용하지 않고(혹은, 패스워드를 알아내지 않고), 본인의 로그인계정의 인증을 통해 해당 계정의 권한으로 작업을 수행할 수 있다.
  • 용법
사용자 삽입 이미지

  • 가장 간단한 방법은 sudo <command>이다. 이렇게 하면 <command>에 적은 쉘커맨드가 root권한으로 수행된다.
  • root 계정이 아닌 다른 계정의 권한이 필요한 경우엔, sudo -u username <command> 로 수행하면 username 계정의 권한으로 <command>를 수행한다.
    • sudo -u #uid <command> 와 같이 uid값을 사용할 수도 있다.
    • 이 유저를 Runas user라고 한다.
  • sudo로 su - (root계정의 로그인쉘 얻기)를 수행한 예
사용자 삽입 이미지

sudoers

  • sudo를 사용하여 권한을 부여할 구체적인 설정을 하는 파일이 ''sudoers'' 파일이다. 시스템에 따라 약간씩 위치는 다르나, 이 파일을 편집할 권한을 얻으면  시스템의 모든 권한을 얻을 수도 있기 때문에 매우 높은 보안 레벨로 보호되어야 한다.
  • sudo su - 또는 sudo visudo등의 커맨드를 허용하는 것은 매우 신중해야 한다.
  • 이 파일의 편집은 visudo 명령을 실행하여 편집한다. visudo의 기본 편집기(보통은 vi 또는 nano)가 sudoers파일을 열은채로 실행된다.
  • visudo가 사용할 기본 편집기 역시 sudoers파일에 설정할 수 있다.
  • 각 Alias 설정은 문자열 단위로 매치시키기 때문에 주의깊게 작성해야 한다.
  • sudo /usr/bin/su 는 가능하나, cd /usr/bin; sudo ./su는 불가능할 수 있다.

How to Write sudoers

  • Alias 정의 섹션, Default 정의 섹션, Privilege정의 섹션으로 나누어 볼 수 있다.
  • 라인당 하나의 정의
  • Aliases
    • Alias에는 User_Alias, Runas_Alias, Host_Alias, Cmnd_Alias의 4가지 Alias_Type이 있다.
    • 모든 Alias에 대해 ALL은 항상 매치되는 와일드카드로 미리 정의되어 있다(아래 예제 참조)
    • 각 Alias는 NAME = LIST의 형태로 만든다.
      • NAME은 알파벳 대문자로 시작하여야 하고, 두번째 글자부터는 알파벳 대소문자와 숫자, 언더스코어문자('_')를 쓸 수 있다.
      • LIST는 콤마(,)로 구분되고 공백은 무시된다.
      • LIST의 item앞에 '!'(negate operator)를 쓰면 리스트에서 해당 아이템만을 배제시킨다.
        예:[CODE]ALL, !/bin/su    # "/bin/su를 제외한 모두"라는 의미
        ALL, !!/bin/su    # "모두"의 의미, 짝수번 negate 의미 없다.[/CODE]
      • 같은 종류의 Alias는 콜론(:)으로 묶을 수 있다. 다른 라인에 새로운 정의로 포함시킬수도 있다.
    • Alias는 다음과 같은 형태가 된다.
      • Alias_Type NAME = item1, item2, item3, item4
      • Alias_Type NAME = item1, item2, item3 : Name = item4, item5
    • User_Alias
      • sudo 권한을 적용할 유저의 집합을 정의한다.
      • (sudoer 그룹명) = (List of login names)
      • 유저명 대신 %<group> 을 사용할 수도 있다.
        • 예: %admin # admin 그룹에 속하는 모든 유저
    • Runas_Alias
      • 어떤 유저 또는 그룹의 권한으로 명령을 수행할지를 지정할 수 있다.
      • 정의 방법은 User_Alias와 동일하나, #<uid> 의 형태도 사용할 수 있다.
      • 주의: root#0은 동일한 유저이지만, 문자열 매치를 하기 때문에 다른 것으로 간주된다. root, %0도 마찬가지.
    • Host_Alias
      • hostname, IP address, Network address, 다른 Host_Alias를 묶어 호스트 집합을 만들 수 있다.
    • Cmnd_Alias
      • 권한을 허용할 커맨드를 나열하여 집합으로 만든다.
      • 커맨드는 full path로 적는다. 디렉토리명을 커맨드로 지정할 수 있다. 디렉토리를 지정하면 그 디렉토리이하의 모든 커맨드에 대해 허용된다.
  • Defaults : 권한 부여의 기본 옵션을 지정한다.
    • 라인당 하나의 Default_Entry를 정의 한다.
    • Default_Entry는 Default_Type Parameter_List로 정의한다.
    • Default_Type는 다음의 4가지 정의 방법이 있다.
      • Defaults
      • Defaults@Host_Alias
      • Defaults:User_Alias
      • Defaults>runas_username
    • Parameter_List는 Parameter의 리스트를 적는다. Parameter는 다음과 같은 형태가 있다.
      • flag
      • !flag
      • flag=value
      • flag+=value
      • flag-=value
      • other Parameter_Lists
    • 여기서는 유용한 몇개 flag만 소개한다. 자세한 flags는 SUDOERS(5)를 참조한다 (이말을 쓰기 싫어서 작성한 문서에 쓸수 밖에 없다니;;;)
      • lecture: 앞절의 예제 이미지와 같이 타인의 권한으로 수행할때 기억해야 할 것에 대한 짧은 경고문.
        lecture=(never, once, always 중 하나)
      • lecture_file: lecture를 보여줄 때, 이 파일을 보여준다.
        lecture_file=(full path of lecture_file)
      • timestamp_timeout: sudo를 수행한 후 다시 수행할 때, 패스워드를 다시 물어볼지를 결정하는 타임아웃값. 0이면 항상 물어본다.
        timestamp_timeour=(분 단위 정수)
      • editor: visudo에서 사용할 기본 에디터
        editor=(/usr/bin/vim 등의 에디터 full path)
      • passwd_tries: 비밀번호를 틀렸을 경우 다시 물어보는 횟수.
        passwd_tries=(정수)
      • passwd_timeout: 비밀번호 입력대기시간 타임아웃값. 0이면 무한정 기다린다.
        passwd_timeout=(분 단위 정수)
      • fqdn: Host 이름에 Fully Qualified Domain Name을 사용할 것인지의 여부. 이 플래그를 사용하면, sudo수행시에 hostname을 DNS에 쿼리한다.
        fqdn (또는 !fqdn)
      • set_logname: runas user(타겟 유저라고도 함)의 LOGNAME과 USER 환경변수값을 가져오지 않고 현재 값을 유지한다.
        set_logname (또는 !set_logname)
  • User privilege specification
    • 앞서 정의한 Alias들의 조합으로 권한을 부여한다.
    • User_Alias (Host_Alias) = Cmnd_Alias의 형태로 정의한다.
    • Tag_Spec과 Runas_Spec을 사용하는 방법은 역시  SUDOERS(5)를 참조한다. (또.;; 그치만 많이 써본적은 없으므로 필요할때 읽어볼 것.)

sample

  • 가장 소극적인 보안책으로 사용할수 있는 sudoers 예제
    [CODE type=config]# 아무런 Alias를 정의하지 않고,
    # admin group에 속한 계정 전체에 대해서
    # 모든 커맨드를 root권한으로 수행할수 있도록 허용함
    # sudo를 사용하기 위해서 항상 패스워드를 물어본다.

    # Host alias specification

    # User alias specification

    #Cmnd alias specification

    # Defaults
    Defaults   lecture=always,tty_tickets,!fqdn,timestamp_timeout=0,editor=/usr/bin/vi

    # User privilege specification
    root    ALL=(ALL) ALL

    # Members of the admin group may gain root privileges
    %admin ALL=(ALL) ALL
    [/CODE]
  • 다양한 용법과 문법의 예
    [CODE type=config]# User alias specification
    # 3가지의 유저셋을 정의한다.
    User_Alias     FULLTIMERS = millert, mikef, dowdy
    User_Alias     PARTTIMERS = bostley, jwfox, crawl
    User_Alias     WEBMASTERS = will, wendy, wim

    # Runas alias specification
    # 2가지 Runas 유저셋을 정의한다.
    Runas_Alias    OP = root, operator
    Runas_Alias    DB = oracle, sybase

    # Host alias specification
    # 4가지 호스트셋을 정의한다.

    # IP/NETMASK 지정방법, 호스트명 지정방법의 예가 모두 나와있다.
    Host_Alias     CUNETS = 128.138.0.0/255.255.0.0
    Host_Alias     CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0
    Host_Alias     SERVERS = master, mail, www, ns
    Host_Alias     CDROM = orion, perseus, hercules

    # Cmnd alias specification
    # 커맨드셋을 정의한다.
    Cmnd_Alias     DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,\
                           /usr/sbin/restore, /usr/sbin/rrestore
    Cmnd_Alias     KILL = /usr/bin/kill
    Cmnd_Alias     SHUTDOWN = /usr/sbin/shutdown
    Cmnd_Alias     HALT = /usr/sbin/halt
    Cmnd_Alias     REBOOT = /usr/sbin/reboot
    Cmnd_Alias     SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \
                            /usr/local/bin/tcsh, /usr/bin/rsh, \
                            /usr/local/bin/zsh
    Cmnd_Alias     SU = /usr/bin/su

    # Override built-in defaults
    # 기본 옵션을 지정한다.
    # lecture를 항상 보여준다. fqdn 사용하지 않는다. 3분내에 다시 sudo하면 패스워드를 물어보지 않는다. visudo의 편집기로 /usr/bin/vi를 사용한다.
    Defaults   lecture=always,!fqdn,timestamp_timeout=3,editor=/usr/bin/vi

    # runas user가 root가 될때는 set_logname 하지 않는다.
    # 즉, root 의 환경을 가져오지 않는다
    Defaults>root          !set_logname

    # FULLTIMER에게는 lecture를 보여주지 않는다.
    Defaults:FULLTIMERS    !lecture

    # SERVERS에서는 패스워드 입력을 1분내로 해야 한다. sudo 로그 파일을 별도로 지정한다.
    Defaults@SERVERS       passwd_timeout=1, logfile=/var/log/sudo.log

    # User privileges
    # root도 sudo를 수행할 수 있다.
    root           ALL = (ALL) ALL

    # wheel그룹에 속한 모든 유저는 sudo를 통해 모든 명령을 수행할 수 있다.
    %wheel         ALL = (ALL) ALL

    # FULLTIMERS에게는 패스워드를 물어보지 않는다.
    FULLTIMERS     ALL = NOPASSWD: ALL

    # PARTTIMERS에게는 패스워드를 물어본다.
    PARTTIMERS     ALL = ALL

    # operator에게는 패스워드를 물어보고, 지정된 커맨드셋을 허용한다.
    operator       ALL = DUMPS, KILL, SHUTDOWN, HALT, REBOOT, PRINTING,\
                   sudoedit /etc/printcap, /usr/oper/bin/

    # joe는 operator가 될수 있다.
    joe            ALL = /usr/bin/su operator

    # fred는 DB 유저권한이 필요할때에만 패스워드를 물어보지 않고 모든 권한이 허용된다.
    fred           ALL = (DB) NOPASSWD: ALL

    # john은 SERVERS호스트셋에서 옵션없이 su를 수행할 수 있다. su에 옵션을 줄수 없고 root로의 su는 불허한다.
    john           SERVERS = /usr/bin/su [!-]*, !/usr/bin/su *root*

    # jen은 SERVERS호스트셋을 제외한 모든 호스트에서 모든 권한을 패스워드를 물어본후 얻을 수 있다.
    jen            ALL, !SERVERS = ALL
    [/CODE]

참고

man pages; SUDO(8), VISUDO(8), SUDOERS(5)

Creative Commons License
posted by 루미넌스
prev 1 next