티스토리 뷰
2. UNIX/Linux 기본 학습
(1) 시스템 기본
1) 시스템 접근
(가) 로그인 과정
① 계정과 패스워드 입력 시 /etc/passwd 파일의 해당 필드를 비교(유닉스는 별개의 프로그램으로 실행)
② 패스워드 확인 후 로그인 프로그램은 쉘이 사용할 변수들을 근거로 초기 환경을 설정
HOME, SHELL, USER, LOGNAME 변수들은 /etc/passwd 파일에 기록된 정보로 값이 설정
- HOME : 사용자의 홈 디렉터리 지정
- SHELL : 로그인 쉘 지정
- USER 또는 LOGNAME : 사용자의 사용자 계정을 지정
③ 모든 절차가 끝나면 로그인 쉘 실행
④ 로그인 쉘(/bin/sh, /bin/csh, /bin/ksh 등)은 일반적으로 /etc/passwd 파일의 마지막필드에 정의, 쉘은 사용자가 입력
한 명령어를 해석하고 처리하는 기능
(나) 로그아웃
① UNIX 시스템에서 로그아웃 시 명령어 logout, exit, 조합키 [Ctrl+d]
2) 사용자 정보
(가) /etc/passwd 파일
① UNIX는 시스템 관리자가 사용자 계정을 만들 때마다 정보를 /etc/passwd 파일에 저장
② passwd 파일에는 UNIX 시스템을 이용하는데 필요한 기본 정보들이 담겨 있고 구분자 ':'를 이용하여 7개의 필드로
구분
③ 형식
[user_account]:[user_password]:[user_ID]:[group_ID]:[comment]:[home_directory]:[login_shell]
ex) root : x : 0 : 0 : root : /root :/bin/bash
- user_account : 사용자 계정명
- x : 사용자 패스워드(x는 shadow 패스워드를 사용한다는 의미)
- 0 : 사용자 ID(UID)
- 0 : 기본 그룹 ID(GID)
- root : 사용자 관련 기타 정보(코멘트)
- /root : 로그인에 성공한 후에 사용자가 위치할 홈 디렉터리
- /bin/bash : 로그인 쉘
④ 해킹 시 주로 [user_ID], [group_ID]을 0으로 변경 ([user_ID], [group_ID] 값이 0 일 경우 root 권한)
⑤ [user_ID], [group_ID]이 0으로 변경 된 계정이 있는지 주기적으로 확인, [login_shell]을 변경하여 로그인시 악성 쉘이
실행 되게 하는 경우 주의
(나) 사용자 확인
① UNIX 시스템에 접속 중인 사용자 확인 명령어 id(Identification), 실행 시 UID, GID 출력
② 입력 문법
- 문법 : id [user_account]
- 예문 : $id /* 명령을 실행한 사용자 확인 */
$id hacker /* hacker 사용자 확인 */
(다) 패스워드 변경
① 명령어 passwd
② 일반사용자는 자신의 패스워드만, root는 자신 포함 모든 사용자 패스워드 변경 가능
③ 입력 문법
- 문법 : passwd [user_account]
- 예시 : $passwd /* 명령을 실행한 사용자 본인의 패스워드 변경 */
$passwd hacker /* root가 hacker의 패스워드 변경 */
3) 그룹 정보
(가) 그룹명과 그룹 ID
① UNIX 시스템은 자원에 대한 접근 권한 및 보안 등의 관리를 위하여 사용자와 사용자가 소속된 그룹에 대한 식별이
필요
② 사용자 ID와 그룹 ID는 사용자와 그룹을 식별하는 식별자로 시스템에 유일한 정 수 값으로 기술
(나) 기본 그룹과 보조 그룹
① UNIX 시스템은 자원의 소유주가 소속된 그룹에 별도의 접근권한을 지정, 같은 그룹에 소속된 사용자는 자원에 대하
여 동일한 접근권한을 갖는다.
② UNIX 시스템의 사용자 계정은 하나의 기본 그룹과 복수의 보조 그룹에 소속될 수 있음
③ 기본 그룹은 사용자가 자원 생성 시 해당 자원의 소유그룹을 지정하는데 사용되며 /etc/passwd 파일의 4번째 필드에
명시
(다) /etc/group 파일
① /etc/group 파일은 현재 시스템에 정의되어 있는 모든 그룹의 정보를 저장(/etc/passwd 파일에 담긴 GID의 정보)
② 형식
[group_name]:[unvariable]:[group_ID]:[user_account_entry_in_group]
ex) bin : x : 1 : root,bin,daemon
- bin : 그룹명
- x : 그룹의 암호화된 패스워드(사용안함)
- 1 : 기본 그룹 ID(GID)로 그룹명을 대신하는 정수형 숫자
- root, bin, daemon : 소속된 사용자 계정들
4) 입출력 재지정(I/O Redirection)
① 입출력 대상으로 표준 입력, 표준 출력, 표준 에러를 사용하지 않고 다른 경로인 파일로 재지정하는 것
② 키보드(표준 입력)에서 들어오는 입력을 파일에서 받도록 대체하는 것을 입력 재지정(Input Redirection)
③ 명령의 실행 결과나 에러 상황을 화면(표준 출력, 표준에러)에 출력하지 않고 파일로 대체하는 것을
출력 재지정(Out Redirection)
④ 입력 문법
- 문법 : command [0]< file_name (입력 재지정)
command [1 or 2]>file_name (출력 재지정, 1:표준 출력, 2: 표준에러, 미지정시 표준출력)
- 예문 : $who -l > who.txt /* > : 출력 재지정(출력 파일 존재 시 새롭게 출력)*/
$who -l >> who.txt /* >>: 출력 재지정(출력 파일 존재 시 추가하여 출력)*/
5) 파이브(Pipe)
① 둘 이상의 명령을 함께 묶어 출력의 결과를 다른 프로그램의 입력으로 전환하는 기능
② 명령어와 명령어 연결은 "|" 기호를 사용하며, 선행 명령의 출력 데이터가 후행 명령의 입력 데이터로 전달
③ 입력 문법
- 문법 : command1 | command2 [ | command3 ....]
- 예문 : $ls -l | more /* ls -l 명령 결과를 끊어서 보여줌(more) */
$ps -ef | grep vsftpd /* ps -ef 명령 결과에서 필터링 기능 수행(grep) */
6) 특수문자(Metacharacter)
① Shell Metacharacter는 쉘 명령에서 사전에 정의된 특별한 기능이 있는 특수 문자
- ~ : 홈 디렉터리
- . : 현재 디렉터리
- .. : 상위 디렉터리
- # : 주석
- $ : 쉘 변수
- & : 백그라운드 작업
- * : 문자열 와일드카드
- ? : 한 문자 와일드카드
- ; : 쉘 명령 구분자
- | : 파이프
- < : 입력 재지정
- > : 출력 재지정
(2) 파일시스템 응용
1) 파일시스템 개요
(가) 개요
① 물리적인 저장장치에 파일을 생성, 저장, 관리하기 위한 논리적인 자료구조를 파일시스템이라 한다.
② 물리적인 디스크는 논리적인 파티션으로 나누어지며, 각 파티션별로 고유한 파일시스템을 생성
(ex. NTFS, EXT2, EXT3, EXT4)
(나) 파일시스템 구성
① 부트 블럭(Boot block)
- 운영체제를 부팅하거나 초기화하기 위한 부트스트랩 코드를 담고 있는 블럭
② 슈퍼 블럭(Super block)
- 파일 시스템을 관리하기 위한 정보를 담고 있는 블럭
③ 아이노드 리스트
속성 | 설명 |
inode nember | 파일시스템 내에서 해당 파일을 식별하기 위한 고유한 식별자 |
파일타입 | 일반파일, 디렉터리, 장치파일 등 파일 유형 |
접근권한 | 파일에 대한 접근권한 |
link count | 해당 inode를 참조하는 링크 개수(하드링크 카운트) |
소유자 | 파일의 소유자/UID |
소유그룹 | 파일의 소유그룹/GID |
파일크기 | 파일의 크기 |
MAC Time | ①last Modification Time - 파일의 내용을 마지막으로 수정한 시간 ②last Access Time - 파일을 마지막으로 접근한 시간 ③last Change Time - 파일의 속성을 마지막으로 변경한 시간 - 파일의 속성은 inode 정보를 의미. 즉 소유자, 접근권한 등의 속성이 변경되면 last Change Time이 변경 |
Block index | Data blocks에 저장되어 있는 파일 내용에 대한 색인 정보 |
- 파일들에 대한 속성정보를 담고 있는 inode 구조체 리스트로 이루어여 있다.
- inode에는 파일명이 없으며 파일명은 디렉터리를 통해 관리된다.
- 침해 사고가 발생하게 되면 피해 시스템 파일에 대한 무결성 확인을 위한 타임라인 분석을 수행, inode 이 때 구조체
의 MAC Time을 점검
- 특정 파일의 inode에 대한 속성정보는 stat(Linux) 명령을 통해 확인 가능
④ Data blocks
- 실제 파일의 내용(데이터)이 저장되는 블럭
- 고정크기 block들로 이루어져있다.
'공부 > 정보보안기사' 카테고리의 다른 글
01. 시스템 기본 학습(1) (0) | 2020.11.19 |
---|