본문 바로가기

정보보안기사 실기

정보보안기사 _ 8일차 _ Unix/Linux 서버 취약점 _ 계정관리

1. 계정관리

  1) root 이외의 UID가 0 금지

    - cat/etc/passwd | egrep "^root|^algisa" (|이 or이라는 뜻)

       egrep 쓸 때에는 "이런 문자 뒤에 ^를 붙여야 그걸 찾으라고 인식 안하고 or 함수 쓸거라고 인식되나봐

       무튼 위와 같이 하든 cat/etc/passwd로 다 보든 유저명:x:0:0::/home/algisa:/bin/bash 이런식으로 되어있으면

        root외에는 잘못된 것이야. UID, GID 모두 마찬가지겠지? 아니 GID 는 괜찮아보이기도 하고...

     - 근데 설명에 Telnet을 통해 algisa 계정 접속 시 root 계정으로 접속한 것과 동일한 권한을 가진다고 하네

     - 콘솔 접속시에는 안 그런가부지??...

 

     - 해결방안 : solaris, linux, hp-ux 에서는 usermod -u 2016 algisa

        solaris, hp-ux는 100 이상, Linux 는 500 이상으로 uid 설정

        aix는 chuser id=2016 algisa uid 를 100 이상 설정

        무튼 서술형 나오면 안전빵으로 1001으로 해야지 나는.... 

        리눅스만 500이상, 나머지 애들은 100이상

 

  2) 패스워드 복잡성 설정

     - 사용자 계정(root 및 일반 계정 모두 해당) 암호가 쉬우면 비인가자 시스템 접근 허용과 같은 위험

     - 사전에 나오는 단어 혹은 그 조합, 길이가 너무 짧거나 공백 패스워드, 키보드 자판 순, 계정정보로 유추가능한 것

     - 영문숫자특수문자 조합해 복잡도 높이고 계정명과 상이한 8자 이상의 패스워드

       다음문자 2조합은 10자리 이상, 3조합은 8자리 이상

        영문대문자 소문자 숫자 특수문자

      - 시스템마다 다른 패스워드 사용하고, 기록할거면 변형해서 기록

      - 자주 변경해주기

 

  3) 패스워드 최소길이 설정

     - 패스워드 무차별공격이나 추측공격을 피하기 위해 최소 길이 설정 필요

       SOLARIS #cat /etc/default/passwd 에서 PASSLENGTH=8

       LINUX #cat /etc/login.defs 에서 PASS_MIN_LEN 8

       AIX #cat /etc/security/user 에서 minlen=8

       HP-UX #cat /etc/default/security 에서 MIN_PASSWORD_LENGTH=8

       이런걸 외우는 답이 나오면... 그냥 틀려도 슬퍼하지 말자 8이라는 것만 기억하자 

 

  4) 패스워드 최대 사용기간 설정

      SOLARIS #cat /etc/default/passwd 에서 MAXWEEKS=12(단위:주)

      LINUX #cat /etc/login.defs 에서 PASS_MAX_DAYS 90

      AIX #cat /etc/security/user에서 maxage=12 (단위:주)

      HP-UX #cat /etc/default/security 에서 PASSWORD_MAXDAYS=90(단위:일)


  5) 패스워드 최소 사용기간 설정

      SOLARIS #cat /etc/default/passwd 에서 MINWEEKS=1

      LINUX #cat /etc/login.defs 에서 PASS_MIN_DAYS 1

      AIX #cat /etc/security/user 에서 minage=1

      HP-UX #cat /etc/default/security 에서 PASSWORD_MINDAYS=1

 

  6) 패스워드 파일 보호

     패스워드 정보를 평문으로 저장하는 경우 정보 유출 피해 발생 가능, 암호화하여 보호해야 함

     shadow 패스워드를 사용하여 /etc/shadow 파일에 암호화된 패스워드가 저장되도록 하고 권한이 있는 사용자만 읽을수있게 해야 함 (원래 그렇게 되어있자너?)... 이건 정리 안할래

 

     말로 때우면 솔라리스 리눅스는 etc/passwd 파일 내 두번째 필드가 x인지 확인(그르면 etc/shadow에 암호화되니깐)

     etc/shadow 의 존재유무 확인

     AIX 는 원래 /etc/security/passwd 파일에 암호화해서 저장한대

     HP-UX는 /tcp 디렉터리 존재유무 확인, /etc/passwd 두번째 필드 x인지 확인

     얘는 Trusted Mode가 존재해서 전환할 경우 패스워드 암호화해서 /tcb/files/auth 디렉터리에 이니셜과 계정 이름에 따라 파일로 저장한대. 그럼 그 모드 전엔 다 평문으로 돌아다니니....??

 

  7) Session Timeout 설정

    계정이 접속된 상태로 방치될 경우 권한 없는 사용자에게 중요시스템 노출되어 악용될 수 있으므로

    일정 시간 이후 어떤 이벤트도 없을때 연결을 종료하는 Session Timeout 설정 필요

    이건 OS별로 가 아니라 쉘별로 구분되네

    <sh, ksh, bash 사용시>

    #cat /etc/profile(.profile)

     TMOUT=600

     export TMOUT

  

     <csh 사용시>

     #cat /etc/csh.login 또는 cat /etc/csh.cshrc

       set autologout=10(분)

 

      점검방법

 

자체 문제출제(3-5)

  SOLARIS 에서 패스워드 최소길이를 설정하는 파일은? 그리고 최소길이, 최대 및 최소 사용기간 설정 변수와 값은?\

    /etc/default/passwd

    PASSLENGTH=8

    MAXWEEKS=12

    MINWEEKS=1

  LINUX 에서 패스워드 최소길이를 설정하는 파일은? 그리고 최소길이, 최대 및 최소 사용기간 설정 변수와 값은?

    /etc/login.defs

    PASS_MIN_LEN 8

    PASS_MAX_DAYS 90

    PASS_MIN_DAYS 1

  AIX에서 패스워드 최소길이를 설정하는 파일은? 그리고 최소길이, 최대 및 최소 사용기간 설정 변수와 값은?

    /etc/security/user

    minlen=8

    maxage=12

    minage=1

  HP-UX에서 패스워드 최소길이를 설정하는 파일은? 그리고 최소길이, 최대 및 최소 사용기간 설정 변수와 값은?

     /etc/default/security

     MIN_PASSWORD_LENGTH=8

     PASSWORD_MAXDAYS=90

     PASSWORD_MINDAYS=1