어렵당

2. 리눅스/유닉스 기본 본문

학습/알기사 정보보안기사 정리

2. 리눅스/유닉스 기본

It는어려워 2024. 10. 4. 22:04

프로세스

: 가상메모리에 할당되며 크게 사용자영역과 커널영역으로 구분

: 프로세스가 생성되면 커널은 프로세스별 관리정보(프로세스 ID 등)를 담고 있는 프로세스 제어 블록(PCB)가 생성

 

Init 프로세스 : 시스템 런 레벨(운영모드)에 따른 시스템 초기화, 대리모 프로세스 역활 수행

( 대리모 프로세스 : 부모 프로세스가 죽어서 고아 프로세스가 된 프로세스의 부모 프로세스가 되어준다 )

런 레벨 0 : (Halt) 시스템 중지 

런 레벨 1 : (Single user mode) 단일 사용자 모드

런 레벨 2 : (Multiuser withous NFS) 네트워크를 사용하지 않는 다중 사용자 모드

런 레벨 3 : (Full Multiuser mode) 네트워크를 지원하는 다중 사용자 모드

런 레벨 4 : (Unused) 사용 안함

런 레벨 5 : (X11) X-Windows(GUI 환경)를 사용하는 다중 사용자 모드

런 레벨 6 : (Reboot) 시스템 재부팅

 

좀비 프로세스 : 프로세스가 수행을 종료했지만 커널오류 또는 부모 프로세스가 자식 프로세스에 대한 종료 상태정보를 처리하지 않은 경우 등으로 소멸하지 않고 남아있는 상태를 좀비 프로세스라고 한다

제거방법 : 좀비 프로세스의 부모 프로세스를 종료하여 init이 부모가 되어주면서 소멸시키거나 시스템을 재기동하여 커널정보를 초기화하여 제거 할 수 있다.(좀비 프로세스는 kill 시그널을 통해서도 소멸하지 않음)

 

 

IPC(Inter-Process Communication)

: 프로세스 간 통신

: 프로세스는 운영체제(커널)의 도움 없이는 서로 공간을 공유해서 통신하는건 불가능

: 운영체제(커널)의 도움으로 아래와 같은 방법으로 통신 가능

1. 파이프 : |

: 명령어 실행결과를 다른 명령어의 입력으로 전달하여 처리하도록 하는 기능

ex ) cat /etc/passwd | grep root

2. 공유 메모리

3. 메시지 큐

4. 세마포어

5. 소켓

6. 시그널

: 커널 또는 프로세스가 다른 프로세스에 약속된 신호를 전달하여 통신하는 목적으로 사용

* 주요 시그널

SIGKILL (9) : 시그널을 받은 프로세스는 무조건 종료한다

SIGSTOP (19) : 시그널을 받은 프로세스는 무조건 정지한다

명령어 : kill -kill/stop(또는 번호) 프로세스ID

ex : kill -kill 4552

ex : kill -9 7884

 

프로세스 실행권한(SUID, SGID)

RUID(Real User ID) : 프로세스를 실행시킨 사용자의 UID

RGID(Real Group ID) : 프로세스를 실행시킨 사용자의 GID

EUID(Effective User ID) : 프로세스가 실행중인 동안 부여되는 UID

EGID(Effective Group ID) : 프로세스가 실행중인 동안 부여되는 GID

SUID : 프로세스가 실행중인 동안 해당 파일의 소유자 권한으로 자원에 접근할 수 있도록 하는 권한(EUID가 변경됨)

SGID : 프로세스가 실행중인 동안 해당 파일의 소유그룹 권한으로 자원에 접근할 수 있도록 하는 권한(GUID가 변경됨)

 

 

디렉터리 접근권한(Sticky-bit)

: 일반적으로 공유 디렉터리에 모든 사용자가 이용할 수 있도록 777권한을 부여하는데 다른 사용자가 다른 사용자의 파일을 제거하거나 파일명 변경을 할 수 있는 문제점이 있는데 sticky-bit 설정 시 삭제 및 파일명 변경은 소유자만이 가능하다.

ex) chmod 1777 /tmp   or   o+t (유닉스는 u+t) 로 설정 가능

 

 

심볼릭 링크(Symbolic Link)

: 윈도우의 바로가기와 비슷한 기능, 원본파일이 사라지면 해당 파일에 접근할 수 없다

설정방법) ln -s 원본파일명 심볼릭링크파일명

 

 

하드 링크(Hard Link)

: 윈도우의 바로가기와 비슷한 기능, inode가 같고 원본파일이 사라져도 하드 링크된 파일은 유지된다

설정방법) ln 원본파일명 심볼릭링크파일명

 

-------------------------------------

유닉스 파일 시스템 구성

 

부트 블록(Boot block) : 운영체제를 부팅하거나 초기화하기 위한 부트스트랩 코드를 담고 있는 블록

슈퍼 블록(Super block) : 해당 파일시스템을 관리하기 위한 정보를 담고 있는 블록

아이노드(inode) 리스트 : 해당 파일시스템의 파일들에 대한 속성 정보를 담고있는 아이노드 구조체 리스트

데이터 블록 : 실제 파일의 내용이 저장되는 블록

 

* 유닉스 시스템의 세가지 핵심 컴포넌트 : 커널, , 파일시스템

 

* 저널링(Journaling) : EXT2 -> EXT3 업데이트 간 추가된 기능, 복구 시간을 fsck보다 빠르고 안정적으로 단축

-------------------------------------

링크(Link)

: 프로그램 내에서 라이브러리에 있는 함수를 호출할 때 호출된 함수와 라이브러리에 있는 함수 코드를 연결해 주는 과정

 

정적 링크(Static Link)

: 컴파일 시 정적 라이브러리를 사용하여 실행 파일 내에 있는 라이브러리 함수가 모두 포함되도록 링크하는 방식

 

동적 링크(Dynamic Link)

: 컴파일 시 공유 라이브러리를 사용하여 프로그램 실행 시에 외부 공유 라이브러리 함수를 동적으로 링크하는 방식

: 동적 링크 방식으로 컴파일된 실행파일은 실행 시 외부 공유 라이브러리에 있는 함수 주소를 찾아내는 과정이 필요하며 이때 PLT와 GOT 테이블을 참조한다

* PLT : 외부 공유 라이브러리 함수를 사용할 수 있도록 주소를 연결해 주는 테이블

* GOT : PLT에서 호출하는 resolve()함수를 통해 찾아낸 함수의 실제 주소가 저장되어 있는 테이블

 

-------------------------------------

입출력 재지정

표준 입력 : 0

표준 출력 : 1

표준 에러 : 2

id 1> id.dat (표준 출력은 기본이라 생략하여 > 라고만 명시해도 됨)

id >> id.dat (id.dat파일에 추가하여 쓰기)

id 2> /dev/null (오류내용은 /dev/null 로 출력-오류는 버린다는 뜻)

batch1.sh 1>/dev/null 2>&1 (표준출력과 표준에러 모두 버린다는 뜻)

 

-------------------------------------

특수 문자

~ : 홈 디렉터리

. : 현재 디렉터리

.. : 상위 디렉터리

* : 임의의 0개 이상 문자 대체

? : 임의의 1개 문자 대체

# : 주석

& : 백그라운드 모드로 실행

$ : 쉘 변수

; : 쉘 명령 구분자

> : 출력 재지정

< : 입력 재지정

| : 파이프

-------------------------------------

Cron 서비스

: 유닉스/리눅스 작업 스케쥴링 서비스

 

데몬 : crond

작업 등록 파일 : /etc/crontab

분   시   일   월   요일   계정명   작업

20   6     *     *     *         algisa    /work/batch.sh

 

개별 사용자 작업 등록 파일: /var/spool/cron/사용자 계정명

개별 사용자는 명령어로만 수정 가능 : crontab -u algisa -e

crontab 명령 접근제어 기능 : /etc/cron.allow, /etc/cron.deny (둘다 설정되어있을 경우 cron.allow 적용)

-------------------------------------

/etc/passwd 구조

사용자 계정 : 패스워드 : UID : GID : comment : home 디렉터리 : 로그인 쉘예시) root:x:0:0:root:/root:/bin/bash

 

/etc/shadow 구조

사용자 계정 : 암호화된 패스워드 : 마지막으로 패스워드를 변경한 날 : 패스워드 최소 사용기간 : 패스워드 최대 사용기간 : 패스워드 만료 이전 경고 일수 : 패스워드 만료 이후 계정이 잠기기 전까지 비활성 일수 : (1970.1.1) 기준 계정 만료일 일수

예시) root:$1$nL6Pk6b$6AWSQj165A1SSs91:16544:1:90:7:::

* 암호화된 패스워드$일방향 해시 알고리즘 식별ID $Salt $암호화된 패스워드 형식

 

전체 패스워드 정책 설정파일 : /etc/login.defs

PASS_MAX_DAYS    90

PASS_MIN_DAYS     1

PASS_MIN_LEN       8

PASS_WARN_AGE  7

 

개별 패스워드 정책 설정

chage -l kiwi99 (kiwi99 계정 패스워드 정책 확인)

chage -M 90 kiwi99 (비밀번호 최대 사용일수)

chage -m 1 kiwi99 (비밀번호 최소 사용일수)

chage -W 7 kiwi99 (만료이전 경고일수)

chage -I 7 kiwi99 (패스워드 만료 이후 계정이 잠기기 전까지 비활성 일수)

 

패스워드 저장 정책 변경 명령어

pwconv : 일반 패스워드 정책(passwd 파일 내 패스워드 저장) -> shadow 패스워드 정책(shadow 파일에 암호화되어 별도 저장)

pwunconv : shadow 패스워드 정책(shadow 파일에 암호화되어 별도 저장) -> 일반 패스워드 정책(passwd 파일 내 패스워드 저장)

 

-------------------------------------

inetd.conf

: 개별 서비스별로 서버 프로세스(데몬)가 동작하며 빠르지만 서버자원 많이 점유

설정파일 : /etc/inetd.conf

 

TCP Wrapper
: TCP Wrapper 서비스를 사용할 경우 해당 서비스 실행경로에 /usr/sbin/tpcd 를 명시
: /etc/hosts.allow, /etc/hosts.deny 를 통해서 허용/금지(hosts.allow 우선, allow/deny 설정이 없을경우 default 허용)

 

/etc/hosts.allow, /etc/hosts.deny 설정 형식 : service list : client list : shell command

 

 

xinetd.conf = inetd + TCP Wrapper + a

: 슈퍼 데몬으로 개별 서비스들을 동작시키는 방식으로 상대적으로 느리지만 서버자원 절약 가능

 

설정 파일

: /etc/xinetd.conf - 모든 서비스에 적용되는 xinetd 설정 파일

: /etc/xinetd.conf/서비스별 설정파일 - 개별 서비스에 적용되는 xinetd 설정 파일

 

* 설정파일 형식

( 변경 후 xinetd 데몬 재기동이 필요하다 )

( 대역은 192.168.1.0/24 와 같이 입력 )

( 공백을 구분자로 사용 )

disable = yes : 불필요 서비스 비활성화

only_from = 192.168.10.10 : 접근을 허용할 IP

no_access = 192.168.20.0/24 : 접근을 차단할 IP

access_times = 09:00-12:00 13:00-18:00 : 접근을 허용할 시간범위

cps = 50 10 : (connection per second) 초당 최대 연결 개수 설정(10초당 50개 까지만 허용)

instances = 100 : 최대 서비스 개수

per_source = 10 : 출발지 IP별 최대 연결 개수

-------------------------------------

PAM : 장착형 인증 모듈

 

PAM을 사용한 인증 절차

1. 각 프로그램(login, telnet, ftp 등)은 인증이 필요한 부분에 PAM 라이브러리를 호출

2. PAM 라이브러리가 호출되면 해당 프로그램의 PAM 설정 파일을 참조하여 등록된 여러 PAM 모듈들을 수행하고 그 결과를 프로그램에 반환

3. 프로그램은 반환된 결과를 이용하여 인증 여부를 결정

 

* PAM 설정 파일 : /etc/pam.d/서비스명

1. type(PAM 모듈 종류)

- account : 계정 유효성 검증

- auth : 계정의 패스워드 검증, 다른 인증모듈과의 연동 등 사용자 신원 확인

- password : 비밀번호 설정 조건, 비밀번호 변경조건

- session : 인증 처리 전후에 수행할 작업을 지정

 

2. control(모듈 실행 후 성공 또는 실패에 따른 행동 결정)

- requisite : 인증 실패 시 즉시 인증 거부

- required : 인증 실패 시 다음 라인 모듈을 실행하지만 최종 결과는 인증 실패

- sufficient : 이전 모듈이 실패하더라도 여기서 성공하면 PAM 인증 성공(required 성공 시)

 

3. module-path(PAM에서 사용할 모듈 - /lib/security 에서 해당 모듈을 찾는다)

 

4. module-arguments(모듈에 전달되는 인수)

 

 

(PAM 활용) root 계정 원격 접속 제한

1. /etc/pam.d/remote(또는 login 서비스) 설정파일에

auth     required     pam_securetty.so 

설정

2. /etc/securetty 파일에 'pts/~' 터미널을 모두 제거 또는 주석 처리

(pts - telnet, 터미널등을 통해 접속하는 가상 터미널)
(tty - 키보드,모니터를 통해 콘솔로 직접 로그인)

 

 

SSH root 원격 접속 제한(SSH는 PAM으로 설정불가)

/etc/ssh/sshd_configPermitRootLogin no 설정 후 SSH 데몬 재기동

 

 

 

(PAM 활용) 계정 잠금 임계값 설정(권장 5회 이하)

설정 파일 : /etc/pam.d/system-auth

(pam_tally2.so 모듈로, deny-5회 입력 실패 시 unlock_time-120초 잠금)

* no_magic_root : root 계정은 패스워드 잠금 설정을 적용하지 않는다

* rest : 접속 시도 성송 기 실패한 횟수 초기화

 

(PAM 활용) root 계정 su(switch user) 제한

: pam_wheel.so 모듈을 이용하여 wheel 보조그룹에 su명령어를 사용할 사용자는 추가하여 관리

: usermod -G wheel kiwi99 명령어로 whell 보조그룹 추가(보조그룹은 여러개 설정 가능)

 

/etc/pam.d/su 설정파일에 아래와 같이 설정

auth     required     pam_wheel.so    use_uid debug

 

 

 

sudo(root 권한으로 명령어를 실행)

 

sudo 명령 설정 파일 : /etc/sudoers

 

설정 예시)

kiwi99      ALL=(ALL)      ALL( kiwi99 계정에게 모든IP로부터 모든 계정권한으로 모든 명령어를 실행 할 수 있다 )

kiwi99      192.168.10.100=(ALL)      NOPASSWD: ALL

( kiwi99 계정에게 192.168.10.100 IP로부터 모든 계정권한으로 비밀번호 입력 없이 모든 명령어를 실행 할 수 있다 )

kiwi99      ALL=(root, kiwi100)      /batch/batch_log.sh

( kiwi99 계정에게 모든 IP로부터 root와 kiwi100 계정권한으로 /batch/batch_log.sh 명령어를 실행 할 수 있다 )

 

명령 사용 예시)

sudo /batch/batch_log.sh (root 권한으로 실행)sudo -u kiwi99 /batch/batch_log.sh (kiwi99 권한으로 실행)


-------------------------------------

root 의외의 UID 0 금지

: root의외의 계정의 UID가 0이되면 root와 동일한 권한으로 시스템 접근이 가능하여 /etc/passwd 점검이 필요하다

cat /etc/passwd | cut -d ":" -f 3 | grep "0"

 

불필요한/취약한 서비스 비활성화

r계열 서비스(rlogin, rsh, rexec 등..)과 rpc서비스, 기타 불필요한 서비스 비활성화

/etc/inetd.conf 설정파일에서 불필요한 서비스 주석(#)처리

 

* 불필요한 RPC 서비스 종류

- rstatd : CPU와 가상메모리 사용 통계, 네트워크 가동시간, 하드디스크 정보를 제공(반환)

- walld : 네트워크의 모든 사용자에게 메시지를 전송

- sadmind : 원격에서 시스템 관리/모니터링

- rexd : 원격에서 서버 명령어를 실행

- ruserd : 현재 네트워크에 있는 사용자 리스트를 반환

등등

 

 

불필요 계정 점검

로그인이 불필요한 계정(시스템 및 애플리케이션 계정)은 /etc/passwd파일 로그인 쉘을 /sbin/nologin 또는 /bin/false 로 설정

 

공격자가 root와 동일한 UID=0, GID=0 계정 생성하는 방법

useradd -o -u 0 -g 0 -d /root eve

(UID중복 허용 옵션 : -o )

 

사용자 계정 UID 변경/제거 방법

(( 리눅스, SOLARIS, HP-UX ))

usermod -u 531 -g 529 -d /home/eve eve

userdel -r eve (eve 계정 제거명령, -r 옵션은 디렉터리같은 해당 계정 잔여파일도 전부 삭제)

(( AIX ))

chuser id=100 eve

rmuser eve

-------------------------------------

패스워드 복잡성 설정 방법

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

: 2종류 이상 조합 최소 10자리 이상 / 3종류 이상 조합 최소 8자리 이상

 

PAM을 이용한 설정방법

pam_cracklib.so 모듈 : 패스워드 설정 시 복잡성 검사를 위해 사용하는 PAM 모듈

설정파일 경로 : /etc/pam.d/system-auth

설정 예시)

password   requisite   pam_cracklib.so   try_first_pass   retry=3   minlen=8   icredit=-1   ucredit=-1   dcredit=-1   ocredit=-1   difok=5

(설정 옵션)

lcredit=-1 (lower case)

: 최소 1자 이상의 소문자 요구

ucredit=-1 (upper case)

: 최소 1자 이상의 대문자 요구

dcredit=-1 (digit)

: 최소 1자 이상의 숫자 요구

ocredit=-1 (other character)

: 최소 1자 이상의 특수문자 요구

minlen=8

: 최소 8자리 이상 요구

difok=N

: 새 비밀번호가 이전비밀번호와 달라야 하는 문자 개수

 

OS별 패스워드 정책 설정(필요성 같은거 생각하지말고 그냥 무조건 무식하게 외우기)

(( 리눅스(Linux) ))

설정파일 : /etc/login.defs

패스워드 최소 길이 설정 : PASS_MIN_LEN 8

패스워드 최소 사용기간 : PASS_MIN_DAYS 1 (일 단위)

패스워드 최대 사용기간 : PASS_MAX_DAYS 90 (일 단위)

 

(( 솔라리스(SOLARIS) ))

설정파일 :  /etc/default/passwd

패스워드 최소 길이 설정 : PASSLENGTH=8

패스워드 최소 사용기간 : MINWEEKS=1 (주 단위)

패스워드 최대 사용기간 : MAXWEEKS=12 (주 단위)

 

(( HP-UX ))

설정파일 :  /etc/default/security

패스워드 최소 길이 설정 : MIN_PASSWORD_LENGTH=8

패스워드 최소 사용기간 : PASSWORD_MINDAYS=1 (일 단위)

패스워드 최대 사용기간 : PASSWORD_MAXDAYS=90 (일 단위)

 

(( AIX ))

설정파일 :  /etc/security/user

패스워드 최소 길이 설정 : minlen=8

패스워드 최소 사용기간 : minage=1 (주 단위)

패스워드 최대 사용기간 : maxage=12 (주 단위)

 

 

-------------------------------------

OS별 패스워드 파일/암호화 확인

 

(( 리눅스 / 솔라리스(SOLARIS) ))

1. /etc/shadow 파일 내 패스워드 암호화 여부 확인

2. /etc/passwd 파일 내 두번째 필드 x여부 확인

 

일반 패스워드 정책 -> shadow 정책 전환 명령어 : pwconv 

shadow 정책 -> 일반 패스워드 정책 전환 명령어: pwunconv

 

(( AIX ))

1. /etc/security/passwd 파일 내 패스워드 암호화 여부 확인

 

(( HP-UX ))

1. Trust mode 설정 여부 확인

(Trust mode는 패스워드를 암호화하여 /tcb/files/auth 디렉터리에 저장)

- /tcb 디렉터리 존재 여부 확인

2. /etc/passwd 파일 내 두번째 필드 x여부 확인

일반 패스워드 정책 -> TrustMode 정책 변환 명령어 : /etc/tsconvert

TrustMode 정책 -> 일반 패스워드 정책 변환 명령어 : /etc/tsconvert -r2

 

 

-------------------------------------

세션 타임아웃 설정

: 아무 입력없이 일정 시간 경과 시 연결을 종료하는 설정

 

(( 리눅스 / 솔라리스(SOLARIS) / AIX / HP-UX ))

 

(( sh, ksh, bash 쉘 사용 시))

환경설정 파일 : /etc/profile

TMOUT=600

export TMOUT

(초단위로 600은 10분을 의미, 쉘 변수는 export명령을 통해 자식쉘까지도 모두 사용할 수 있는 환경변수로 만들어야 함)

( TMOUT=600; export TMOUT 으로도 쓸 수 있음)

( export TMOUT=600 으로도 쓸 수 있음)

 

* 개별 사용자 설정 시(/etc/profile설정 되어있어도 개별사용자에 설정 시 개별사용자 설정이 우선시 됨)

bash 쉘 : ~/.bash_profile

 

(( csh 쉘 사용 시))

환경설정 파일 : /etc/csh.login 또는 /etc/csh.cshrc

set autologout=10

-------------------------------------

PATH 환경변수

: 경로없이 명령어나 프로그램을 실행했을때 그 프로그램을 검색하기 위한 경로정보를 담고있는 환경변수

 

* 환경변수 확인 명령어 : echo $PATH

 

/etc/profilePATH=.:$PATH 와 같이 '.' 가 추가되어있으면 현재 디렉터리에 있는 명령어를 경로 지정없이 실행가능

하지만 /bin 또는 /sbin 등 관리자 명령어들이 있는 디렉터리보다 '.'이 우선하여 PATH환경변수에 있으면 공격자가 악의적으로 현재 디렉터리에 명령어를 삽입하여 관리자가 명령어 입력 시 변조된 명령어가 실행될 수 있는 취약점이 있다.

 

해결방법 : '.' 를 제거하거나 '.' 순서를 가장 마지막으로 변경해야 한다

 

-------------------------------------

root 소유 SUID, SGID 실행파일

: root 소유의 SUID, SGID가 설정된 파일은 root권한으로자원에 접근할 수 있기에 악용되지 않도록 점검이 필요하다

SUID, SGID가 설정된 파일 찾는 명령어

find / -user root -type f \( -perm -4000 -o -perm -2000 \) -exec ls -al {} \;

 

 

소유자/소유그룹이 존재하지 않는 파일/디렉터리

: 소유자/소유그룹이 존재하지 않는 파일/디렉터리는 UID/GID 가 소유자/소유그룹 대신 표시된다. 공격자가 계정을 해당 파일/디렉터리의 UID/GID로 악의적으로 변경할경우 해당 파일에 접근할 수 있는 위협이 발생할 수 있다.

: 퇴직등의 사유 또는 관리소홀로 인해 생성되었을 가능성이 높다

소유자/소유그룹이 존재하지 않는 파일/디렉터리 찾는 명령어

find / \( -nouser -o -nogroup \) -exec ls -al {} \;

( -o 는 or, -a 또는 없으면 and, ();는 쉘에서 다른용도로 사용하고 있기 때문에 \백슬래시를 앞에 추가해야한다 )

 

해결방법 : 필요 없는경우 rm/rmdir 명령어를 이용해서 제거, 필요한경우 chown/chgrp 명령으로 소유자/소유그룹을 변경한다

 

-------------------------------------

World Writable 파일

: 소유자/소유그룹이 아닌 모든 사용자(Others)에 쓰기가 허용된 파일을 의미

: 비인가자에 의해 악의적으로 파일이 변경되는 위협이 발생할 수 있다

 

World Writable 파일 찾는 명령어

find / -type f -perm -2 -exec ls -la {} \;

(-perm -2 는 -perm -0002와 동일)

 

해결방법 : 필요 없는경우 rm 명령어를 이용해서 파일 제거, 필요한경우 chmod 명령으로 others 쓰기권한 제거

 

-------------------------------------

주요 파일 권한 권장설정

 

/etc/passwd

root 소유의 644 이하 권장

-rw-r--r-- 1 root root 2323 2024-02-02 00:00 /etc/passwd

 

/etc/shadow

root 소유의 400 이하 권장

-r-------- 1 root root 2323 2024-02-02 00:00 /etc/shadow

 

/etc/hosts

: IP주소에 대한 호스트명(도메인명) 정보를 저장하고 있는 파일(DNS 이전 참조)

: hosts파일을 변조시켜 악성 사이트로 접속을 유도하는 파밍(Pharming) 공격 등에 악용될 수 있음root 소유의 600 이하 권장-rw------- 1 root root 2323 2024-02-02 00:00 /etc/hosts

 

/etc/inetd.conf 또는 /etc/xinetd.conf

: inetd/xinetd 슈퍼 데몬 설정 파일

root 소유의 600 이하 권장

-rw------- 1 root root 2323 2024-02-02 00:00 /etc/inetd.conf

 

 

/etc/syslog.conf 또는 /etc/rsyslog.conf

: 서비스별 로그파일에 대한 설정 정보

root 소유(또는 시스템 계정)의 640 이하 권장

-rw-r----- 1 root root 2323 2024-02-02 00:00 /etc/syslog.conf

 

 

/etc/services

: 서비스 관리정보(서비스별 프로토콜 및 포트 번호 정보)를 담고 있는 파일

root 소유(또는 시스템 계정)의 644 이하 권장

-rw-r--r-- 1 root root 2323 2024-02-02 00:00 /etc/services

 

-------------------------------------

hosts.equiv / .rhost(rlogin,rsh,rexec 등 r계열 서비스) 관리

: 트러스트 관계 설정파일에 명시된 사용자는 ID/PW없이 접근이 가능하게끔 하는 서비스

 

대응방법

: 시스템 간 트러스트 설정을 사용하지 않는다(r계열 서비스 사용 X)

: 반드시 사용해야 할 경우 트러스트된 시스템의 MAC주소를 정적(Static)으로 구성하여 IP를 위조한 IP스푸핑을 차단한다.

$HOME/.rhosts, hosts.equiv 사용을 금지해야하나 불가피하게 사용해야 할 경우 적절한 보안조치를 해야함

보안조치

- /etc/hosts.equiv 및 $HOME/.rhost 파일 소유자를 root 계정으로 변경

- /etc/hosts.equiv 및 $HOME/.rhost 파일 권한을 600 이하로 변경

- /etc/hosts.equiv 및 $HOME/.rhost 파일에서 "+"(전체 호스트 또는 전체 IP 설정)를 제거하고 반드시 필요한 호스트 및 계정만 등록

 

-------------------------------------

명령어

sort : 정렬 (sort -r : 역순 정렬)

 

uniq : 중복 제거 (uniq -c : 몇개였는지 카운트 후 중복제거)

 

cut, awk : 원하는 문자열 추출

ex) cut -d ":" -f 3

( :로 구분된 것중 3번째)

ex) awk -F ":" '{print $3}'

( :로 구분된 것중 3번째)

 

ngrep : 패킷 캡처 도구

ex) ngrep -qtW byline

-q : quiet 모드(quite모드 안넣으면 시간의 경과를 #로 표시)

-t :time stamp 표시

-W : 덤프포맷 (byline 선택-개행 처리를 해준다)

 

-------------------------------------

 

 

 

 

'학습 > 알기사 정보보안기사 정리' 카테고리의 다른 글

6. 애플리케이션 보안  (0) 2024.10.13
5. 네트워크 보안  (1) 2024.10.05
4. 시스템 보안  (1) 2024.10.04
1. 윈도우 보안  (0) 2024.10.03
3. 리눅스/유닉스 로그파일  (3) 2024.10.03