본문 바로가기
정보보안기사, 정보보안산업기사

[정보보안기사/산업기사] 리눅스시스템 정리

by 시스코킹 2020. 10. 11.
반응형

 

[정보보안기사] 리눅스시스템 과목 요약 정리

 

<리눅스 시스템>

[정보보안기사] 리눅스시스템 과목 요약 정리

 

* /root/.bash_history

-사용자가 최초 로그인 시 생성

-사용자가 셸에 입력한 명령어를 모두 기록

 

 

* 좀비 프로세스 찾기

top -b -n 1 | grep zombie

ps -ef | grep defunct

 

 

* 좀비 프로세스 죽이기

ps -ef | grep defunt | awk '{print $3}' | xargs kill -9

 

 

* iptables 저장

# service iptables save

 

-현재 정책을 별도 파일로 저장 명령어

# iptables -save > etc/iptables.conf

 

-불러오기

# iptables-restore < firewall.sh

* iptables 사용법

# iptables  [-t 테이블] [액션] [체인] [매치] [-j 타겟]

 

 

* iptables 테이블(Table)

filter, nat, mangle, raw

명시하지 않으면 기본적으로 filter이다.

 

 

* iptables 액션 (Action)

-A : APPEND : 맨 아래 새로운 정책 추가

-I : INSERT : 위치를 선택하여 정책 삽입

-D : DELETE : 위치를 선택하여 정책 삭제

-R : REPLACE : 위치를 선택하여 정책 교체

-F : FLUSH : 모든 정책 삭제

-P : POLICY : 기본 정책을 설정

-L : LIST : 정책 나열

 

 

* iptables 체인 (Chain)

INPUT 들어오는

OUTPUT 나가는

FORWARD 전달하는

PREROUTING

POSTROUTING

 

 

* iptables 매치 (Match)

-s : 출발지 매칭. 도메인, IP 주소, 넷마스크 값을 이용하여 표기(––source, ––src)

-d : 목적지 매칭. 도메인, IP 주소, 넷마스크 값을 이용하여 표기(––destination, ––dst)

-p : 프로토콜과 매칭. TCP, UDP, ICMP 와 같은 이름을 사용하고 대소문자는 구분하지 않음

-i : 입력 인터페이스와 매칭(––in-interface)

-o : 출력 인터페이스와 매칭(––out-interface)

-j : 매치되는 패킷을 어떻게 처리할지 지정 (--jump)

 

 

* iptables 타겟 (target)

-패킷이 규칙과 일치할 때 취하는 동작을 지정한다.

ACCEPT : 패킷을 허용한다.

DROP : 패킷을 버린다. (패킷이 전송된 적이 없던 것처럼) 응답 X

REJECT : 패킷을 버리고 이와 동시에 적절한 응답 패킷을 전송한다.

LOG : 패킷을 syslog에 기록한다.

SNAT --to [주소] : 소스 IP [변환(NAT)|NAT]한다.

DNAT --to [주소] : 목적지 IP를 변환(NAT)한다.

RETURN : 호출 체인 내에서 패킷 처리를 계속한다.

 

 

* 새로 생성되는 유저에 대한 기본 설정파일

-패스워드의 사용기간 만료, 패스워드 최대 사용기간, 패스워드의 최소 변경기간 등의 패스워드 정책을 설정

위치: /etc/login.defs

 

 

* 리눅스 패스워드 복잡도

/etc/security/pwquality.conf     (CentOS 7)

/etc/pam.d/system-auth        (CentOS 6)

 

- 패스워드 복잡도 설정 옵션 ( u: 대문자 / l: 소문자 / d: 숫자 / o: 특수문자)

retry=5 : 패스워드 입력 실패 시 재시도 가능 횟수

difok=10 : 기존 패스워드와 비교하는 정도. 기본값 10 (50%)

minlen=5 : 패스워드의 최소 길이

dcredit=-1 : 숫자를 최소 1자 이상 사용

ucredit=-1 : 영어 대문자를 최소 1자 이상 사용

lcredit=-1 : 영어 소문자를 최소 1자 이상 사용

ocredit=-1 : 숫자, 영어대/소문자를 제외한 기타문자(특수문자) 1자 이상 사용

 

 

* rlogin

-remote login의 약어로 호스트에 원격으로 로그인할 때 사용하는 명령

.rhosts파일 또는 /etc/hosts.equiv 파일에 호스트가 미리 등록되어 있어야 한다

 

- rlogin 사용법

rlogin [option] [host]

 

 

* 사용자들의 기본적인 정보가 저장되어 있는 파일

-위치 : /etc/passwd

 

-내용

# cat /etc/passwd

root : x : 0 : 0 : root : /root : /bin/bash

 

7개의 필드

1.  root : 사용자명(ID)

2.  x : 패스워드. x로 되어 있는건  /etc/shadow파일에 암호화하여 저장되어 있다는 뜻

3.  0 : 사용자 계정 uid

4.  0 : 사용자 계정 gid

5.  root : 사용자 계정 이름(정보)

6.  /root : 사용자 계정 홈 디렉토리

7.  /bin/bash : 사용자 계정 로그인 쉘

 

 

 

* 사용자들의 비밀번호가 암호화되어 저장돼 있는 파일

-비밀번호 외에도 패스워드 수정일, 계정 만료일 등 많은 정보들을 포함한다.

-위치 : /etc/shadow

 

 

* /etc/shadow 내용

# cat /etc/shadow

Itwiki : $6$7sqr8$b6...Qk0t/ : 17132 : 0 : 99999 : 7 :  :  :

9개의 필드

1. 사용자명(ID): Itwiki

2. 암호화된 패스워드 앞에 ! 가 있으면 잠긴 상태이다. : $6$7sqr8$b6...Qk0t/

3. 패스워드 최종 수정일 (1970-01-01로부터의 일수) : 17132

4. 패스워드 최소 유지기간 (마지막으로 변경할 날 이후로 변경할 수 없는 일수) : 0

5. 패스워드 최대 유지기간 (패스워드 만료일. 마지막으로 변경할 날 이후로 사용 가능한 일수) : 99999

6. 패스워드 만료 경고 기간 (패스워드 만료 전 경고 메세지가 나오는 일수) : 7

(만료일이 90일이고, 만료 경고기간이 7일이면 83일부터 90일까지 7일동안 경고메세지가 나오다 91일째 만료된다.)

7. 계정 잠김으로 부터 남은 일수 (패스워드 만료 후 계정이 잠기는 일수)

8. 계정 만료 일자 (비어있으면 만료 없음)

9. 예약 필드(사용하지 않음)

 

 

* Tcp_wrapper   

/etc/hosts.allow          /etc/hosts.deny

 

 

* 리눅스 유저 로그

-wtmp

경로: /var/log/wtmp

성공한 로그인, 로그아웃, 재부팅 한 정보를 가지고 있다.

last 명령어에 사용된다.

 

-utmp

시스템에 현재 로그인한 사용자들에 대한 상태정보를 가지고 있다. who 명령어에 사용된다.

 

-btmp

5번 이상 로그인에 실패했을 경우에 로그인 실패 정보를 기록. lastb 명령어로 확인가능

 

-pacct

사용자가 로그인한 후부터 로그아웃 할 때까지 입력한 명령과 시간, 작동된 tty 등에 대한 정보를 가지고 있다.

binary 파일로 되어 있으며 그 내용을 확인하기 위해서 lastcomm 명령을 사용한다.

 

-lastlog

사용자별로 가장 마지막에 로그인한 시간과 접속 IP, tty 등에 대한 정보를 가지고 있다.

 

-sulog

Switch User를 사용한 로그가 기록되어 있다.

 

 

* nohup

nohup command 형식으로 이루어져 해당 command 를 수행하고 이 command hangup 신호와 terminal 신호를 무시하여 로그아웃 상태에서도 해당 command 의 프로세스가 수행 가능하게 하는 명령어.

 

 

* I-node (아이노드)

-유닉스 & 리눅스 계열 운영체제 파일시스템에서 파일에 부여되는 고유한 번호

-파일 이름, 파일 내용을 제외한 파일에 대한 모든 정보를 가진다.

 

- I-node 포함 정보

파일 유형

파일 크기

파일 위치

접근 권한

하드링크 개수

소유자

소유 그룹

MAC Time

Block Index

* PAM (Pluggable Authentication Module)

개요:

-리눅스에서 플러그인 방식으로 적용할 수 있는 인증 모듈

-인증 모듈을 별도로 개발하지 않고 공유 라이브러리 형태로 적용시킬 수 있다.

-관리자가 인증을 중앙에서 통제할 수 있게 해 준다.

-PAM을 적용하기 위해 프로그램 재컴파일 할 필요는 없다.

 

 

* PAM 동작순서:

1. 사용자나 프로세스가 애플리케이션의 접근(Access)을 요청한다.

2. 해당 애플리케이션의 PAM 설정 파일을 확인한다.

3. 스택의 PAM모듈이 리스트상의 순서대로 호출된다.

4. PAM모듈은 성공 또는 실패 상태를 반환(Return)한다.

5. 스택은 계속해서 순서대로 확인되며, 실패 상태를 반환한다 해서 중단되지 않는다.

6. 모든 PAM모듈의 상태 결과가 종합되어 전체 인증 과정의 성공 또는 실패 상태를 반환한다.

 

 

 

* find [경로] [옵션] [대상]

주요옵션:

-name [파일명] : 지정된 이름의 파일을 찾는다.

-user [유저명] : user 소유의 파일을 찾는다.

-type [bcdfls] : 지정된 형식의 파일을 찾는다.

b : 블록파일

c : 문자

d : 디렉터리

f : 파일

l : 링크파일

s : 소켓

 

-size [+/-]숫자[bckw] : 지정된 크기의 파일을 찾는다.

+n : n보다 크다

-n : n보다 작다

n : n이다

b : 512-byte

c : byte

k : kilobytes

w : 2-byte

 

 

-mtime [+/-]숫자

+n : n일 전에 수정된 파일을 찾는다.

-n : n일 동안 수정된 파일을 찾는다.

 

 

-atime [+/-]숫자

엑세스 타임을 기준으로 찾는다. 사용법 mtime과 동일

-inum number : 지정한 아이노드 번호와 파일을 찾는다.

 

-print : 표준출력으로 검색된 파일명을 출력한다.

 

-exec command { } \; : 찾은 각 파일에 대해 지정된 명령을 실행한다.

 

-ok command { } \; : 실행 여부를 사용자에게 확인한 후 명령을 실행한다.

 

- find 사용예제:

# find / -mtime -10 -print > /tmp/find.out

최근 10일동안 변경된 파일을 찾아서 /tmp/find.out 에 저장한다.

 

# find / -type f -perm -4000

특수권한 파일 찾기- 전체 디렉터리에서 정규 파일 중 Set-UID가 설정된 파일을 찾는다.

-perm 4000 으로 하면 Set-UID만 설정된 파일을 검색하고

-perm -4000 으로 하면 Set-UID가 포함된 파일을 검색한다.

Set-GID 2000, Sticky-bit 1000 이다.

 

 

 

* chmod

a - all

u - user

g -group

o - others

+ 추가 - 제거 = 지정,기존 속성값은 사라짐

 

 

* cron 테이블 양식

   : 0-59

   : 0-23

   : 1-31

   : 1-12

   요일 : 0-6( 0: 일요일)

 

로그 : /var/log/cron

환경설정 파일 : /etc/default/cron

처리할 작업 목록이 정의: /etc/crontab

 

 

 

* 리눅스 디렉토리 목록

/ : 최상위 디렉토리(루트 디렉토리)

/bin : binary의 약자로 실행파일 모음. 일반적으로 사용하는 mv, cat등 명령어 프로그램들이 있음

/boot : 부팅과 관련된 파일들이 모여있음

/dev : device의 약자로 물리적인 장치들이 파일화 되어 있다.

/etc : 각종 환경 설정 파일들이 모여 있음

/home : 개인사용자들 디렉토리

/lib : 각종 라이브러리 저장 디렉토리

/mnt : CD-ROM, 네트워크 파일 시스템 등을 마운트 할때 사용되는 디렉토리

/proc : 현재 실행되고 있는 프로세스들이 파일화 되어서 저장되는 디렉토리

/root : root계정의 홈 디렉토리

/sbin : System-binary의 약자로, 주로 시스템 관리자가 쓰는 시스템 관련 명령어 프로그램들이 모여있다.

/tmp : 임시 저장 디렉토리. 일반적으로 모든 사용자들에게 열려 있음

/usr : 주로 새로 설치되는 프로그램들이 저장된다. '명령어' 보다는 '프로그램'이라고 부르는게 더 익숙한 놈들이 저장된다. 윈도우의 Program Files같은 폴더

/var : 시스템 로그, 스풀링 파일 들이 저장된다. 메일 서버로 운영될 경우 메일이 여기 저장된다.

 

 

 

 

 

반응형

댓글