[정보 보안] 운영체제 별 보안설정

Cookie·2024년 9월 26일
0

정보보안

목록 보기
5/40
post-thumbnail

오늘은 보안을 공부하면서 암기요소중의 하나인 운영체제별로 로그파일, 설정파일 및 정책을 어떻게 작성하고 변경하는지 알아보고자 함

  • 오늘 알아볼 운영체제 목록 :
    • SOLARIS
    • LINUX
    • AIX
    • HP-UX
    • UNIX(SunOS)




root 원격 접속 제한


SOLARIS

파일 위치
/etc/default/login

  • 접속 제한 예시 코드
CONSOLE=/dev/console
  • 설명 :
    CONSOLE 라인을 통해 root의 원격 접속을 제한할 수 있음

    • 접속 허용
      : CONSOLE라인에 #을 통한 주석처리로 외부에서 root 계정 원격접속 가능
    • 접속 제한
      : CONSOLE라인을 주석처리없이 작성 시, 외부에서 root 계정 원격접속 불가능



LINUX

파일 위치
/etc/pam.d/login

  • 접속 제한 예시 코드
auth required /lib/security/pam_securetty.so
  • 설명 :
    LINUX의 경우 PAM(Pluggable Authentication Module)을 활용하여 root 계정의 원격 접속을 제한할 수 있음

    • 접속 제한
      : 터미널 접속 시 /etc/securetty 파일에 등록되어있는 터미널이 아니면 root의 접속을 허용하지 않도록 PAM을 설정

      /etc/securetty 파일 : pam_securetty.so 모듈이 사용하는 파일로 터미널 접속 시 root 접근 제한 설정 파일



AIX

파일 위치
/etc/security/user

  • 접속 제한 예시 코드
rlogin = false
  • 설명 :
    rlogin 설정을 true 또는 false 로 설정하므로써 root 계정의 접속제한 설정이 가능함

    • 접속 허용
      : rlogin = true
    • 접속 제한
      : rlogin = false



HP-UX

파일 위치
/etc/securetty

  • 접속 제한 예시 코드
console
  • 설명 :
    console 라인을 통해 root의 원격 접속을 제한할 수 있음

    • 접속 허용
      : console라인에 #을 통한 주석처리로 외부에서 root 계정 원격접속 가능
    • 접속 제한
      : console라인을 주석처리없이 작성 시, 콘솔에서만 접속 가능




계정 잠금 임계값 설정


SOLARIS

파일 위치
/etc/default/login

  • 잠금 임계값 설정 예시 코드
RETRIES=5

# 5.9 이상 버전일 경우 추가적으로 "/etc/security/policy.conf" 파일 확인
LOCK_AFTER_RETRISE=YES



LINUX

파일 위치
/etc/pam.d/system-auth

  • 잠금 임계값 설정 예시 코드
auth required /lib/securuty/pam_tally.so deny=5
unlock_time=120 no_magic_root
account required /lib/security/pam_tally.so no_magic_root reset
  • no_magic_root : root 계정은 패스워드 잠금 설정을 적용하지 않음
  • reset : 접속 시도 성공 시 실패한 횟수를 초기화 함



AIX

파일 위치
/etc/security/user

  • 잠금 임계값 설정 예시 코드
loginretries=5



HP-UX

파일 위치
/tcb/files/auth/system/default

  • 잠금 임계값 설정 예시 코드
u_maxtries#5

# 11.v3 이상일 경우 "/etc/default/security" 파일 확인
AUTH_MAXTRIES=5




root 계정 su제한 설정

wheel 그룹이 su 명령어 사용그룹이라고 예시를 들어 작성

Step 1

wheel그룹 및 그룹 내 구성원 존재 여부 확인

cat /etc/group
wheel:x:10:root,admin

Step 2

wheel그룹이 su 명령어를 사용할 수 있는지 설정 여부 확인


SOLARIS

ls -al /usr/bin/su
chgrp sucrity su
chmod 4750 su

LINUX

PAM 모듈을 사용

cat /etc/pam.d/su
auth required /lib/security/pam_wheel.so debug group=wheel
# 또는 
auth required /lib/security/$ISA/pam_wheel.so use_id

AIX

cat /etc/security/user # default의
sugroup=staff          # sugroup=staff 설정 확인

HP-UX

vi /etc/default/security
SU_ROOT_GROUP=wheel      # SU_ROOT_GROUP=wheel 설정 확인

Step 3

파일 권한 확인

ls -l /usr/bin/su
-rwsr-x--- usr/bin/su

# 파일 권한이 4750인 경우 양호




패스워드 정책 설정


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




패스워드 보안 점검


SOLARIS, LINUX

Step1

shadow 파일의 패스워드 암호화 존재 확인

cat /etc/shadow
root:$5iqxyJTZL$ZaX2ktsXRvvZpXsjbKitVS0Q0.Mc8PXCf6rodghI9w6:19553:::7:::

Step2

/etc/passwd 파일 내 두번째 필드가 x로 표시되어 있는지 확인

cat /etc/passwd
root:x:0:0:root:/root:/bin/bash

패스워드 정책 변경 명령어

  • pwconv : shadow 패스워드 정책으로 변경하는 명령어
  • pwunconv : 일반 패스워드 정책으로 변경하는 명령어



AIX

  1. /etc/security/passdw파일 내 패스워드 암호화 여부 확인
    • AIX는 기본적으로 /etc/security/passdw 파일에 패스워드를 암호화하여 저장함



HP-UX

  1. Trust Mode로 전환하면 패스워드를 암호화하여 /tcb/files/auth디렉터리에 계정 이니셜과 계정이름에 따라 파일로 저장 ,관리함

    • Trust Mode 설정 여부 확인
      • /tcb 디렉터리 존재 여부 확인
      • /etc/passwd 파일 내 두번째 필드가 x로 표시되어 있는지 확인
    • Trust Mode 관련 명령어
      • 설정 : /etc/tsconvert
      • 해제 : /etc/tsconvert -r2




LINUX, UNIX 주요 로그 파일

history, secure, messages, dmesg, boot.log, xferlog, crom, maillog 이 8가지의 로그 파일들은 UNIX에서 필수적이지 않거나, 시스템에 따라 파일의 위치나 이름이 다를 수 있으므로 추가적인 설명은 생략하겠음


utmp

현재 로그인한 사용자의 상태 정보를 담고 있는 로그파일

  • binary 파일로 존재
  • 명령어 : w, who, finger

파일 위치

  • LINUX : /var/run/utmp
  • UNIX(SunOS) : /var/adm/utmpx



wtmp

사용자의 성공한 로그인/로그아웃 정보, 시스템의 Boot/Shutdown정보에 대한 히스토리를 담고 있는 로그파일

  • binary 파일로 존재
  • 명령어 : last

  • 계정명, 터미널 타입, 접속 주소, 로그인 시간, 로그아웃 시간 등을 확인 할 수 있음

파일 위치

  • LINUX : /var/log/wtmp
  • UNIX(SunOS) : /var/adm/wtmpx



lastlog

가장 최근에 성공한 로그인 기록을 담고 있는 로그파일

  • binary 파일로 존재
  • 명령어 : lastlog(Linux), finger(Linux, Unix(SunOS))

  • 옵션
    • lastlog -u [계정명]
    • lastlog -t [일수] (해당 일 이내에 접속한 기록)

파일 위치

  • LINUX : /var/log/lastlog
  • UNIX(SunOS) : /var/adm/lastlog



btmp, loginlog

실패 로그인 시도에 대한 기록을 담고 있는 로그파일
btmp는 Linux, loginlog는 Unix(SunOS)의 로그 파일

btmp

  • 바이너리 파일로 존재
  • 명령어 : lastb
    파일 위치 : /var/log/btmp

loginlog

  • 텍스트 파일로 존재하기 때문에 특별한 명령어가 없음
    파일 위치 : /var/adm/loginlog

    SunOS를 포함한 Systme V 계열 유닉스에서는 5회 이상 로그인 실패 시 기록을 남김

sulog

su(switch user) 명령을 사용한 결과를 저장한 파일

  • 텍스트 파일로 존재

파일 위치

  • LINUX : /var/adm/sulog
  • UNIX(SunOS) : /var/log/secure
cat /var/adm/sulog | tail -5
SU 02/28 00:48 + pts/4 test99-test88
SU 02/28 00:48 + pts/4 test99-root
SU 02/28 00:49 - pts/4 test99-root
  • + 기호는 su 명령이 성공했음을, -기호는 실패 했음을 의미함

acct/pacct

시스템에 로그인한 모든 사용자가 로그아웃할 때까지 입력한 명령어와 터미널의 종류, 프로세스 시작 시간 등을 저장한 로그

  • binary 파일로 존재
  • 명령어 : lastcomm

파일 위치

  • LINUX : /var/account/pacct
    • 기본 생성 로그파일이 아니므로 accton /var/account/pacct 명령 실행 필요

  • UNIX(SunOS) : /var/adm/pacct
    • 기본 생성 로그파일이 아니므로 /usr/lib/acct/accon /var/adm/pacct 명령 실행 필요

플래그

  • S : 슈퍼 유저/root에 의해 실행
  • F : exec 없이 fork에 의해 실행
  • X : SIGTERM 시그널에 의해 종료
    ...등

history

계정별로 실행한 명령어에 대한 기록을 저장한 파일로 계정별 홈 디렉터리에 존재함

  • 텍스트 파일로 존재함
  • .쉘종류_history 형식으로 생성

vi등의 편집기 또는 history명령을 이용하여 확인가능

vi .bash_history
# 또는
history | head -5

secure⭐

사용자/그룹의 생성/삭제, 로그인 등의 사용자 인증에 대한 정보를 기록하고 있는 로그파일로 서버 보안에 아주 민감하고 중요함

  • 원격 접속 및 su 명령 수행 내역 등이 저장됨

파일 위치

  • LINUX : /var/log/secure

messages

리눅스 시스템의 가장 기본적인 시스템 로그파일로 시스템 운영에 대한 전반적인 메시지를 저장

  • 시스템 데몬들의 실행상황과 내역, 사용자들의 접속 정보, TCP Wrapper 접근 제어 정보 등

파일 위치

  • LINUX : /var/log/messages

로그 메시지 형식

|       1      |   2   |   3   | 4 |             5            |
Jan 13 00:26:26 CentOS8S system [1]: Starting Vsftpd ftp deamon
  1. 메시지 생성 일시
  2. 메시지를 생성한 호스트 이름
  3. 메시지를 발생시킨 프로세스(서비스) 이름
  4. 메시지를 발생시킨 프로세스 ID(PID)
  5. 프로세스가 생성한 메시지

dmesg

리눅스가 부팅될 때 출력되는 모든 메시지를 기록
부팅 시의 에러나 조치사항을 살펴볼 수 있음

  • 텍스트 형식으로 존재
  • 명령어 : dmesg

파일 위치

  • LINUX : /var/log/dmesg

boot.log

리눅스가 부팅될 때 파일 시스템에 대한 체크, 서비스 데몬들의 실행 상태 등을 기록
성공 [ OK ] / 실패 [ FAILED ] 여부를 확인할 수 있음

파일 위치

  • LINUX : /var/log/boot.log

xferlog

리눅스 시스템의 FTP 서비스 로그파일
vsFTP, ProFTP 등 다양한 FTP 서버 프로그램에서 버시스 내역을 기록

  • 접속 일시, 원격 호스트와 사용자 정보, 업로드/다운로드한 파일 등

파일 위치

  • LINUX : /var/log/xferlog

필드 종류

  • a : 전송 날짜 및 시간
  • b : 전송 소요 시간
  • c : 원격 호스트 주소
  • d : 전송 파일 크기
  • e : 전송 파일명
  • f : 전송 유형
    • a : ascii(아스키/텍스트)
    • b : binary(바이너리)
  • g : 액션 플래그
    • _ : underbar(액션 없음)
    • C : compressed(파일이 압축됨)
    • U : uncompressed(압축된 파일이 해제됨)
    • T : archived(tar)(파일아 아카이브됨(tar로 묶임))
  • h : 전송 방향
    • i : incoming(서버로부터 파일 업로드)
    • o : outgoing(서버로부터 파일 다운로드)
    • d : delete(서버에 있는 파일 삭제)
  • i : 접근 방식
    • r : real(로컬)
    • a : anonymous(익명)
    • g : guest(게스트)
  • j : 사용자 명
  • k : 서비스 명
  • l : 인증 방법
    • 0 : 없음
    • 1 : RFC 931 인증
  • m : 인증된 사용자 ID
      • : 이용이 불가능한 상태
  • n : 완료 상태
    • c : complete(성공)
    • i : incomplete(실패)

cron

시스템에서 동작 중인 cron 데몬이 수행한 정기적인 작업을 기록

파일 위치

  • LINUX : /var/log/cron

maillog

시스템에서 동작 둥인 메일 서버의 메일 송수신 관련 작업 기록

파일 위치

  • LINUX : /var/log/maillog
profile
나만의 공부 일지... [임시 休]

0개의 댓글