-
[보안기사]01. 리눅스#00. 보안기사 2020. 11. 7. 22:00
정보보안기사 자격증 취득 시 공부했던 내용(정리본)을 올려두려한다.
묶여봤자 쓸데도 없고 종이가 너덜너덜하다.
리눅스-Default
1. 리눅스 운영체제 핵심구성요소
1) 커널: 주 기억장치에 위치, 프로세스, 메모리, I/O, 파일관리 등을 수행
2) 셀: 사용자명령의 입출력 수행(명령어 해석기/번역기)
3) 파일시스템: 여러정보를 저장하는 기본적 구조로 트리형태
2. 리눅스 디렉터리 구조
1) /bin : 기본적인 실행파일
2) /boot: 리눅스 부팅프로그램인 LILO(LInux LOarder)파일을 보관
3) /etc: 환경설정 관련파일로 passwd, shadow, protocol, services 등이 존재
4) /dev: 장치파일
5) /proc: 실행중인 리눅스 프로세스 정보
3. 기본 명령어들과 파일
1) 명령어
i. umask: 디폴트권한 022일 경우 디렉터리는 755, 파일은 744로 설정된다.
파일 기본이 666인 경우는 임의의 텍스트 파일이 쉘명령으로 잘못 인식되는 것을 막기 위해서,
디렉터리는 안으로 들어갈 수 있어야하기에 실행권한이 부여된다.
ii. chmod: 파일권한변경 명령어로, chmod 4755 jjadmin.txt 혹은 chmod u+r, g+w, o-r jjadmin.txt와 같이 사용
특수권한은 setuid(4000), setgid(2000), stickybit(1000)이다.
setuid(실행파일 설정 시 s이며, 실행하면 해당 파일의 소유자 권한으로 실행)
stickybit(tmp폴더와 같이 생성은 마음대로이다 삭제는 막을 때 사용)
iii. find: 파일을 찾을 때 사용하며 find [directory] [option]형식으로 사용한다.
find / -perm 4000 -print : setuid 권한이 있는 파일을 출력
find / -name “[A-Z]*” : 루트디렉터리부터 파일명 첫글짜가 대문자인 것 찾기
find / -name “* *” -exec rm -f {}\; : 루트디렉터리부터 파일 이름에 공백이 들어간 모든 문자 삭제
find / -mtime -10 -print : 10일 안에 수정된 파일 찾기
find / -user root : 소유자가 root 인 파일 찾기
find / -nouser -o -nogroup : 소유자나 그룹이 없는 파일 찾기
- MAC time
M time: 파일이나 디렉터리의 생성, 복사, 수정, 삭제, 파일의 내용 등 변경된 시간
A time: 파일을 열거나 접근한 시간
C time: 리눅스에서 inode 변경시간, 권한변경 등으로 파일의 속성(권한, 소유자 등)이 마지막으로 변경된 시간
- A time freeze
chattr +i 사용 시 Access time(Atime)이 변경되지 않으며 관리자도 해당파일 삭제가 불가능하다.
chattr +a 는 해당파일과 내부 디렉터리의 Access time을 변경하지 않겠다.
(chattr -i [파일명] 을 하면 속성을 변경할 수 있다)
4. 로그
1) 로그인한 사용자 확인
: w명령어나 who 명령어를 사용하며, 로그인 사용자 ID, 사용터미널, 로그인 시간 출력(users 명령어도 가능)
: 관련파일은 /var/run/utmp
2) 로그인 로그아웃 정보
: last 명령어를 사용하며, 사용자로그인/로그아웃 정보, 시스템종료 및 부팅정보, 재부팅정보, telnet/FTP이용한 로그인 정보 출력
: 관련파일은 /var/log/wtmp
3) 로그인 실패정보
: lastb 명령어를 사용하며, 로그인 시도 id, 시간, 터미널 확인 가능
: 관련파일은 /var/log/btmp
4) 가장 최근 로그인 성공정보
: lastlog 명령어를 사용
: 관련파일은 /var/log/lastlog
5) syslog
- syslog는 주제별로 kern, mail, lpr, daemon, auth(로그인인증시스템) 등이 있다.
- syslog 강도순서는 다음과 같다.
emerge > alert > crit > err > warn > notice > info > debug(이얼크에 워노라는 인디밴드가 있다)
5. 배치(crontab)
1) 반복적인 배치작업을 돌릴 때 사용한다. 보안관점으로는 공격자가 악성코드를 crontab을 사용하여 반복실행한다.
2) cron [분/시/일/월/요일(0~7)] [명령어] 와 같은 형태로 사용한다.
cron 30 * * * * /home/user/testcode : 매 시 30분마다 testcode 파일 실행
cron */10 * * * * /home/user/testcode : 10분마다 testcode 파일 실행
cron 10 2-5 * * * /home/user/testcode : 2시부터 5시까지 10분에 testcode 파일 실행
cron 0 7 1 1-10/2 * /home/user/testcode : 매년 1월에서 10월까지 두달주기로 1월 오전 7시에 testcode 파일 실행
3) 옵션
-l : 현재 로그인한 계정의 crontab(작업스케쥴) 확인
-e : 현재 로그인한 계정에 작업 등록
-r : 등록된 작업 삭제
-u [user명] : 작업을 실행시킬 유저명
4) 한번만 실행할 경우 at 명령어를 사용한다.
6. /etc/passwd 와 /etc/shadow
1) /etc/passwd
- root : x : 0 : 0 : root : /root :/bin/bash
- Loginname : pw : uid : gid : comment : home directory : loginshell(로그인 안하려면 nologin)
2) /etc/shadow
- root : $1$ Dnskd923$G/ : 14806 : 0 : 99999 : 7
- LoginName: pw encryption 값 : last change(1970년 1월1일 기준): pw 변경 전 최소사용을 : 최대사용일 : pw만료 전 경고메시지 알림일
: login 접속차단일 수 : 로그인 사용금지하는 일 수
'#00. 보안기사' 카테고리의 다른 글
2019.03.29 대형 포털사이트 워터링 홀 (0) 2019.03.31 2019.02.28 신용카드 노리는 극성 범죄자들, 구글 애널리틱스와 앵귤러 흉내 (0) 2019.03.04 2019.02.21 GDPR을 리스크로 인지하는 서구 시장, 보험 상품도 등장 (0) 2019.02.21 2019.02.13 불법사이트 HTTPS 차단 정책! (0) 2019.02.20 2019.01.28 원격 데스크톰 프로토콜 RDP (0) 2019.01.31 댓글