반응형

리눅스 서버 취약점 보안

취약점 점검항목: 6. 관리자 계정에 대한 로그인 성공/실패 기록 설정

 

 

취약점 점검기준

  - 양호기준: 로그인 기록을 설정할 경우 안전합니다.
  - 취약기준: 로그인 기록을 설정하지 않을 경우 취약합니다.

 

 

취약점 점검방법

  - sudo 권한이 있는 아이디 쉘 접속 후 루트 권한을 얻어서 작업하시길 바랍니다.
    $sudo su -

 

  - LINUX: /var/log/wtmp 파일이 존재할 경우 안전합니다.

    #ls -alL /var/log/wtmp

/var/log/wtmp 조회


  - HP-UX, AIX: /var/adm/wtmp 파일이 존재할 경우 안전합니다.
    #ls -alL /var/adm/wtmp

  - SunOS: /var/adm/wtmpx 파일이 존재할 경우 안전합니다.
    #ls -alL /var/adm/wtmpx

 

※ wtmp 파일 방법은 바이너리로 저장되어 있어 cat으로 읽을 수 없습니다. last 명령어로 조회할 수 있습니다.

    #last

last 로그인 기록 조회

 

 

 

 

취약점 조치방법

  - loginlog 파일 생성 후, 관리자에게 읽기/쓰기권한을 부여해줌
    #touch /var/log/wtmp
    #chown root:utmp /var/log/wtmp
    #chmod 600 /var/log/wtmp

 

※ 소유자(root)외에 그룹과 사용자 계정에서도 last를 사용하고 싶으신 경우 chmod 644 /var/log/wtmp 로 설정

 

 

리눅스(유닉스) 취약점 점검 전체보기

 

'리눅스(유닉스) 취약점 점검' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형
반응형

리눅스 서버 취약점 보안

취약점 점검항목: 5. /etc/hosts 600 권한 설정

 

 

취약점 점검기준

  - 양호기준: /etc/hosts 파일의 소유자가 root이고, 권한이 600인 경우 양호합니다.
  - 취약기준: /etc/hosts 파일의 소유자가 root가 아니거나, 권한이 600이 아닌 경우 취약합니다.

   ※ 서버 이용에 필수적으로 644권한이 필요한 경우 예외적으로 인정하기도 합니다.

 

 

취약점 점검방법

  - sudo 권한이 있는 아이디 쉘 접속 후 루트 권한을 얻어서 작업하시길 바랍니다.
    $sudo su -

 

  - ls -al /etc/hosts 명령어로 파일의 소유가 root이고 권한이 600인지 확인 합니다.

    #ls -al /etc/hosts

ls -l /etc/hosts

 

 

 

 

취약점 조치방법

   - /etc/hosts/의 소유자를 root로 변경합니다.

    #chown root /etc/hosts

   - /etc/hosts/의 권한을 600으로 변경합니다.

    #chmod 600 /etc/hosts

 

 

리눅스(유닉스) 취약점 점검 전체보기

 

'리눅스(유닉스) 취약점 점검' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형
반응형

리눅스 서버 취약점 보안

취약점 점검항목: 4. 로그인 실패 횟수 제한

 

 

취약점 점검기준

  - 양호기준: 계정 잠금 임계값이 5이하의 값으로 설정되어 있는 경우 양호합니다.
  - 취약기준: 계정 잠금 임계값이 설정되어 있지 않거나, 6이상의 값으로 설정되어 있는 경우 취약합니다.

 

 

취약점 점검 및 조치방법

  - sudo 권한이 있는 아이디 쉘 접속 후 루트 권한을 얻어서 작업하시길 바랍니다.
    $sudo su -

 

  - SSH 로그인 실패 횟수 설정 확인: /etc/ssh/sshd_config 파일에 MaxAuthTries 5 이하로 설정합니다.

    #vi /etc/ssh/sshd_config

#vi /etc/ssh/sshd_config

 

  - 리눅스(방법1) O/S: /etc/login.defs 파일에 LOGIN_RETRIES 5 이하 설정합니다.

    #vi /etc/login.defs

   ※ 내용이 많아서 보기 어려운 경우 | grep LOGIN_RETRIES 로 확인합니다.

    #cat /etc/login.defs | grep LOGIN_RETRIES

리눅스(데미안) 로그인 실패 횟수 설정값 확인

 

  - 리눅스(방법2) O/S: /etc/pam.d/system-auth, /etc/pam.d/password-auth 파일에 아래와 같이 설정합니다.

    #vi /etc/pam.d/system-auth (콘솔 통한 로그인 실패 횟수 설정값 확인하기)

    #vi /etc/pam.d/password-auth (X-Window, ssh 통한 로그인 실패 횟수 설정값 확인하기)

    pam_tally.so 인 경우

    auth       required     pam_tally.so deny=5 unlock_time=120 no_magic_root

    account   required    pam_tally.so no_magic_root reset

    pam_tally2.so 인 경우

    auth       required     pam_tally2.so deny=5 unlock_time=120 no_magic_root

    account   required    pam_tally2.so no_magic_root reset

    pam_faillock.so 인 경우

    auth        required         pam_faillock.so preauth silent audit deny=5 unlock_time=120

    auth        [default=die]   pam_faillock.so authfail audit deny=5 unlock_time=120

    account   required         pam_faillock.so

 

   ※ 옵션설명
    no_magic_root : root에게는 패스워드 잠금 설정을 적용하지 않음
    deny=5 : 5회 입력 실패 시 패스워드 잠금
    unlock_time=120 : 계정 잠김 후 마지막 계정 실패 시간부터 설정된 시간(120초)가 지나면 자동 계정잠김 해제
    reset : 접속 시도 성공시 실패한 횟수 초기화

 

 

 

  - HP-UX:  /tcb/files/auth/system/default 파일을 연 후 아래와 같이 수정 또는, 신규 삽입 합니다.

    #vi /tcb/files/auth/system/default
    (수정 전) u_maxtries# 
    (수정 후) u_maxtries#5 
   ※ HP-UX 서버에 계정 잠금 정책 설정을 위해서는 HP-UX 서버가 Trusted Mode로 동작하고 있어야하므로 Trusted Mode로 전환한 후 잠금 정책 적용 

 

  - AIX: /etc/security/user 파일을 연 후 아래와 같이 수정 또는, 신규 삽입 합니다.

    #vi /etc/security/user
    (수정 전) loginretries = 0
    (수정 후) loginretries = 5

  - SunOS 8 이하 버전: /etc/default/login 파일을 연 후 아래와 같이 수정 또는, 신규 삽입 합니다.

   #vi /etc/default/login
   (수정 전) #RETRIES=2
   (수정 후) RETRIES=5

 

  - SunOS 9 이상 버전: /etc/security/policy.conf 파일을 연 후 아래와 같이 수정 또는, 신규 삽입 합니다.

   #vi /etc/security/policy.conf
   (수정 전) #LOCK_AFTER_RETRIES=NO
   (수정 후) LOCK_AFTER_RETRIES=YES

 

 

※ 로그인 실패 횟수 제한 방법은 O/S마다 다르고, 같은 O/S라도 버전마다 다르고, 같은 버전이라도 pam에 따라 다릅니다. 설정 후 정상 잠김이 작동하는지 테스트를 해봐야 하며 정상 잠기지 않을 시 다른 방법을 찾아보시기 바랍니다.

 

 

리눅스(유닉스) 취약점 점검 전체보기

 

'리눅스(유닉스) 취약점 점검' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형
반응형

리눅스 서버 취약점 보안

취약점 점검항목: 3. 디폴트 시스템 계정 제거

 

 

취약점 점검기준

  - 양호기준: 불필요한 계정이 존재하지 않는 경우 양호합니다.
  - 취약기준: 불필요한 계정이 존재하는 경우 취약합니다.

 

 

취약점 점검방법
  - sudo 권한이 있는 아이디 쉘 접속 후 루트 권한을 얻어서 작업하시길 바랍니다.
    $sudo su -

 

  - #cat /etc/passwd 명령어로 불필요한 기본 계정이 존재하는 지 확인합니다.

    #cat /etc/passwd

리눅스 계정 확인 #cat /etc/passwd

  - 기본차단 계정 목록

    adm: 시스템 관리자를 위한 별도의 계정 입니다.

    lp: 로컬 프린터 서버 계정입니다.

    sync: 원격지 서버 동기화 계정입니다.

    shutdown: 시스템 종료 계정입니다.

    halt: 강제 시스템 종료 계정입니다.

    news: 뉴스그룹 서버용 계정입니다 (nntp를 사용하는 경우가 아니면 불필요합니다)

    uucp: 유닉스 시스템과 파일 복사를 위한 프로토콜 계정입니다.

    operator: 특수 목적용 계정으로, 시스템 백업 등 여러사용자가 시스템을 공통 관리하기 위해 사용되는 계정입니다.

    games: X11(X윈도우) 화면에서 게임을 할 때 사용하는 계정입니다.

    gopher: www(웹) 서비스가 나오기전 서비스입니다. gopher 사이트에 접속해 웹서핑을 하는데 사용하는 계정입니다.

    nfsnobody NFS(Network File System)을 이용할 수 있는 기본 계정입니다.

    squid: 프록시서버 계정입니다.

 

  ※ 기본차단 계정 중 사용이 불가피한 경우는 예외로 계정을 살려둡니다.

     기본차단 계정 목록 외 불필요한 계정 또한 삭제 합니다.

 

  - 90일 동안 로그인 하지 않은 계정이 있는지 확인하는 명령어를 입력합니다.

    #lastlog -b 90

리눅스 90일 동안 미접속 계정 확인 #lastlog -b 90

  ※ 90일 이상 로그인 하지 않은 계정 중 사용이 불가피한 경우는 예외로 계정을 살려둡니다.

 

 

 

 

취약점 조치 방법

  - userdel 명령으로 불필요한 사용자 계정을 삭제 합니다.

    #userdel (계정명)

 

예) test계정을 삭제하는 경우

    #userdel test

 

PS: 리눅스 OS가 AIX의 경우는 명령어가 다릅니다.

  - rmuser 명령으로 불필요한 사용자 계정을 삭제 합니다.

    #rmuser (계정명)

 

예) test계정을 삭제하는 경우

    #rmuser test

 

 

리눅스(유닉스) 취약점 점검 전체보기

 

'리눅스(유닉스) 취약점 점검' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형
반응형

리눅스 서버 취약점 보안

취약점 점검항목: 2. root 계정 외에 UID와 GID가 0인 계정이 없는지 점검

 
취약점 점검기준
  - 양호기준: root 계정과 동일한 UID를 갖는 계정이 존재하지 않는 경우 양호합니다.
  - 취약기준: root 계정과 동일한 UID를 갖는 계정이 존재하는 경우 취약합니다.

 
취약점 점검방법
  - sudo 권한이 있는 아이디 쉘 접속 후 루트 권한을 얻어서 작업하시길 바랍니다.
    $sudo su -

  - #cat /etc/passwd 명령어로 세번째 필드의 값이 root와 동일한 값을 가진 계정이 존재하는지 확인합니다

    #cat /etc/passwd

#cat /etc/passwd

 

 

 

 

취약점 조치방법
  - usermod 명령으로 UID가 루트와 같은 0인 일반 계정의 UID를 다른 숫자로 수정

   ※ SunOS, HP-UX의 경우 100 이상 ,§ LINUX의 경우 500 이상으로 수정하면 됩니다.

 

예) test계정을 UID, GID를 1001로 변경하는 경우

    #usermod -u 1001 test


   ※ 각 OS별로 사용자 UID 체계가 달라 시스템 계정 및 일반 사용자 계정이 부여받는 값의 범위에 차이가 있습니다.

      공통적으로 관리자는 "UID=0"을 부여받습니다.

 

PS: IBM서버를 사용하시고 OS가 AIX의 경우는 명령어가 다릅니다.

  - chuser 명령으로 UID를 수정합니다. UID 숫자는 100이상으로 수정하는것을 권합니다.

    #chuser id=(100이상의 숫자) (계정명)

  - chuser 명령으로 UID를 수정합니다. 

    #chgroup id=(100이상의 숫자) (계정명)

 

예) test계정을 UID, GID를 1001로 변경하는 경우

    #chuser id=1001 test

    #chgroup id=1001 test

 

 

리눅스(유닉스) 취약점 점검 전체보기

 

'리눅스(유닉스) 취약점 점검' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형