728x90
01. 리눅스 구조
1) 커널(kernel)
- 주기억장치(Main Memory)에 상주하면서 사용자 프로그램을 관리하는 운영체제의 핵심 역할
- 커널은 프로세스 스케줄링, 기억장치 관리, 파일 관리, 입출력(I/O), 시스템 호출 등을 수행
시스템 호출 : 사용자 프로그램이 커널에 접근하는 인터페이스를 제공
2) 셸(Shell)
- 명령어 해석기 역할
3) 파일 시스템(File System)
- 계층적인 트리 구조 형태
02. 리눅스 파일 시스템
1) 파일 시스템 구조
- 부트블록(Boot Block) : 컴퓨터 시스템 부팅
- 슈퍼블록(Super Block) : 파일 시스템의 크기, 여유 공간(빈 블록 리스트), 파일 시스템 이름 등의 정보
- i-node : 소유자, 파일 크기, 데이터블록 주소, 변경정보, 생성시간 → 파일의 이름과 내용은 저장X
- 데이터 블록(Data Block) : 실제 데이터 저장
2) 파일 시스템 생성
- fdisk : 하드 디스크 초기화 및 파티션 생성
- mkfs : 파일시스템 생성
- fsck : 파일 시스템의 무결성 검사
- mount : 특정 디렉터리 연결
3) 파일시스템 종류
- ext2 : 캐시의 데이터를 디스크에 저장 중 오류 발생 시 파일 시스템에 손상
- ext3 : 저널링 기능 추가 → 파일시스템 변경 시 저널에 먼저 수정 내용 기록(빠르게 오류 복구)
- ext4 : 단편화를 억제, 지연된 할당 파일 시스템을 지원
03. 프로세스
- swapper (PID 0) : 부팅시간 동안 운영체제에 의해 생성
- init (PID 1) : 시스템의 모든 프로세스는 init의 자손 프로세스
- pagedaemon (PID 2) : 커널에서 영구적으로 실행되는 프로세스
- 고아 프로세스 : 부모 프로세스가 자식 프로세스보다 먼저 종료되었을 때 발생
- 좀비 프로세스 : 프로세스가 종료되었지만 부모 프로세스가 확인하지 못한 경우
04. 리눅스 Booting
- 리눅스 Boot master
- 로더(Loader) : 보조기억장치에 있는 OS의 커널을 주기억장치에 올리는 것 → LILO, GRUB
- init 프로세스의 작업 수행은 리눅스의 Run Level에 따라 다르게 부팅
- 리눅스 Booting 단계 (Run Level)
0 : PROM 모드
1 : 사용자 접근 불가, 관리 단계
2 : 공유 불가능, 다중 사용자
3 : 공유 가능, 다중 사용자 → 기본
5 : X-Window 실행
6 : 재부팅
05. 패스워드 파일
- /etc/passwd : 시스템 관리자가 사용자 계정을 만들 때마다 사용자와 관련된 정보 저장
- 패스워드 파일에 x값이 있으면 사용자 패스워드는 shadow 파일에 있는 것
- UID : 100번 이하는 시스템, 0번은 시스템 관리자가 사용
- 로그인이 불필요한 계정의 셸은
/sbin/nologin
,/bin/false
로 지정 - passwd 명령어를 이용하여 패스워드 변경
- /etc/shadow : 암호화된 패스워드가 저장되도록 하고 관리자만이 읽을 수 있도록 제한
- /etc/shadow 파일에 패스워드를 저장하고 싶으면 pwconv 명령 실행 ↔ pwunconv
- 패스워드 크래킹
- John the ripper, L0phtCrack, hydra, pwdump
06. 리눅스 권한 관리
- 디폴트 권한 umask(022)
- 파일은 666, 디렉터리는 777에서 빼기
- 권한 부여 및 변경 chmod
chmod 764 Limbest.txt Limbest.txt
chmod u+x, h+w, o-r Limbest.txt
- 특수권한 관리 : setUID, setGID0, Sticky-bit
- setUID : 실행 시 소유자의 권한으로 실행 → 4000 (실행 부분 x→s)
- setGID : 실행 시 그룹의 권한으로 실행 → 2000 (실행부분 x→s)
- Sticky bit : 공용 디렉터리→ 1000 (실행부분 x→t)
- 실행파일이 아닌데 setUID를 설정하면 대문자 S가 되고 실행 X
- 모든 사용자가 사용할 수 있지만, 삭제는 소유자만 가능
07. 리눅스 로그파일
- utmp : 현재 로그인 사용자
w, who
- wtmp : 로그인 및 로그아웃 last
- btmp : 로그인 실패
lastb
- lastlog : 마지막 로그인
- xferlog : ftp 사용 정보 로그 파일
- Sulog : su 명령 로그
- secure : 원격 접속 정보
- messages : 시스템 운영에 대한 전반적인 로그
- acct/pacct : 시스템에 로그인한 모든 사용자가 수행한 프로그램에 대한 정보, 바이너리 형태
- dmesg : 리눅스가 부팅될 때 출력되는 모든 메시지 기록
- .sh_history : 실행한 명령에 대한 기록이
[셀 종류]_history
형식으로 홈 디렉터리에 저장 - syslog : 모든 로그
- kern.* : kernel 수준의 모든 로그를 기록
- mail.err : 메일에서 발생되는 로그 중 에러 메시지를 로그파일에 기록
- 시스템 위험성에 다라 우선순위 결정 ( emerg > alert > crit > err > warn > notice > info > debug
08. 작업 스케줄 관리
- corn (/etc/crontab)
- 분 시 일 월 요일 사용자 실행 명령
30 3 * * 2 root /home/clean.sh
: 매주 화요일 3시 30분에 /home/clean.sh 명령 실행- crontab 옵션
- -l : 현재 로그인된 계정에 잡혀있는 작업 스케줄 확인
- -e : 현재 로그인 중인 계정에 작업 등록
- -r : 현재 crontab에 등록된 작업 삭제
09. 리눅스 악성코드 감지
- find
- 파일명으로 검색 →
find .-name *.php
: 현재 디렉터리에서 확장자가 php인 파일 찾기 - 특정 권한이 부여된 파일 검색 →
find / -perm 6000
: setUID와 setGID가 부여된 파일 찾기 - 특성 시간 이후 변경된 파일 검색
find / -mtime +5
: 최근 5일 동안 변경되지 않은 파일 찾기find / -mtime -1
: 최근 1일 동안 변경된 파일 찾기- atime : 파일에 접근한 시간, mtime : 파일이 변경된 시간, ctime : 파일 속성이 변경된 시간)
- 소유자 기준으로 파일 검색 →
find / -user root
: root 소유자 파일 찾기
- 파일명으로 검색 →
- tripwird : Checksum을 데이터베이스화 하여 파일에 대한 변경 여부를 판단하여 무결성 검사
10. 리눅스 방화벽 iptables
- 특정 패킷을 분석하여 패킷을 차단하거나 허용
- iptables 체인의 종류
- INPUT : 리눅스로 들어오는 패킷
- FORWARD : INPUT과 OUTPUT 역할, 라우터에 방화벽을 적용할 때 쓰임
- OUTPUT : 외부로 나가는 패킷
- 규칙 추가(-A)
- 체인의 규칙 상태 보기(-L)
- 등록된 체인 제거(-F)
- 입력 인터페이스(-i)
- 출력 인터페이스(-o)
- 출발지 ip주소(-s)
- 목적지 ip주소(-d)
- 프로토콜(-p)
iptables -A INPUT -s 192.168.0.3 -j DROP
: 리눅스로 들어오는 특정 패킷 차단
728x90
'InfoSec > 정보보안기사' 카테고리의 다른 글
Window 인증 및 SID (Security ID) (0) | 2024.03.10 |
---|---|
네트워크 보안 03. 네트워크 대응 기술 및 응용 (0) | 2022.09.20 |
네트워크 보안 02. 네트워크 기반 공격 기술의 이해 및 대응 (1) | 2022.09.19 |
네트워크 보안 01. 네트워크 활용(TCP/IP 구조) (2) | 2022.09.19 |