▪ 리눅스 특징
▪ 리눅스 시스템 로그
▪ 리눅스 로그 관리
1. 리눅스 특성
▪ 오픈소스 운영체제
▪ 다중 사용자 환경
▪ 다중작업 및 가상 터미널 환경
▪ GUI 방식의 X Windows
▪ CPU의 종류에 구애받지 않는 운영체제
▪ 강력한 네트워크 지원
▪ 다양한 드라이버 지원
▪ 명령어 기반
✓ 모든 입ㆍ출력은 문자를 기반으로 수행
✓ 운영체제의 핵심인 커널이 명령어 기반의 입ㆍ출력을 하도록 작성
✓ 리눅스 GUI 환경 : X 윈도(GNOME, KDE) : 그래픽 등에 소모되는 시스템의 자원을 절약하기 위해 X 윈도를 쓰지 않는 경우가 많음
▪ 디렉터리
✓ 드라이브 문자가 없음, 필요한 파일 시스템을 마운트 하여 사용
✓ 디렉터리 구분자로는 “/”를 사용
✓ 디렉터리 이름의 대ㆍ소문자를 구분, 최대 255글자까지 사용
✓ 최상위 디렉터리로 루트 디렉터리가 존재하며 "/"로 표시
✓ “.” : 현재 디렉터리, “..” : 상위 디렉터리
✓ “.”으로 시작하는 디렉터리명 : 숨겨진 디렉터리--> 별도의 옵션을 사용하지 않는 경우 사용자에게 보이지 않음
▪ 디렉터리 종류
▪ / : 루트 디렉터리
▪ /bin : ls, cp와 같은 기본 명령어가 저장
▪ /boot : 시스템 부팅 시 필요한 파일 저장
▪ /dev : 시스템의 장치 파일 저장
▪ /etc : 시스템 설정 파일 저장
▪ /home : 사용자의 기본 디렉터리 저장
▪ /lib : 시스템의 공유 라이브러리 저장
▪ /lost+found : fsck 명령어가 사용하는 디렉터리, 특정 파일의 위치를 결정할 수 없는 경우 이 디렉터리에 보관
↳ fsck : 파일 시스템의 이상 여부를 진단하고 복구
▪ /mnt : 다른 장치를 마운트 하기 위한 디렉터리
▪ /proc : 가상 파일시스템, 실제로 디스크에 저장되지 않음, 프로세스에 대한 정보를 저장
▪ /usr : 사용자가 설치한 응용 프로그램, 소스코드, 도움말 파일 등이 저장
▪ /root : 슈퍼 유저인 root의 홈 디렉터리
▪ /sbin : 슈퍼 유저가 사용하는 명령어가 저장
▪ /var : 로그 파일, 프린터 스풀 파일, 시스템 동작 중에 변화하는 파일 저장
▪ 파일 특성
✓ 실행 파일의 확장자 제한 없음. 리눅스 시스템은 파일의 권한을 통해 실행 여부를 결정
✓ 대ㆍ소문자를 구분, 최대 255글자까지 사용
✓ “.”으로 시작하는 파일 : 숨김 속성
✓ 특수 파일 : 씸볼릭 링크 파일, 하드 링크 파일
✓ 씸볼릭 링크(Symbolic Link)
- 윈도 시스템의 바로가기 파일과 유사
- “forensic “ 파일은 씸볼릭 링크로써 ”/root/forensic.txt"를 가리키고 있다.
- 씸볼릭 링크는 원본 파일이 삭제되면 함께 지워진다.
✓ 하드 링크(Hard Link)
- 하드 링크는 원본을 복사하여 사본을 생성
- 하드 링크 파일 수정 시 원본과 사본 모두 영향을 받음
- 원본 파일 삭제 시 하드 링크 파일 삭제되지 않음
- 여러 시스템에서 파일을 공유하면서 안전하게 보관하고자 할 때 이용
2. linux 시스템 로그
1) /var/log/dmesg
▪ 시스템이 부팅할 때 출력하는 메시지를 기록하는 로그 파일
▪ 시스템의 하드웨어 설정 및 로드된 디바이스 드라이버 등을 확인
2) 작업 스케줄링(crontab)
▪ crontab은 리눅스 시스템에서 사용하는 작업 스케줄링 데몬
▪ 작업 스케줄링 정보는 /etc/crontab 파일 내에 정의
✓Min : 0~59분
✓Hour : 0~23시
✓Day : 1~31일
✓Month : 1~12 혹은 Jan~Dec
✓DayOfWeek : 0 또는 7은 일요일, 1=월요일, 2=화요일 ··· 혹은 Sun~Sat
✓Command : 실행하고자 하는 명령어 또는 스크립트
3) /var/log/messages
▪ 시스템에서 발생하는 각종 로그를 기록한 파일
▪ 운영체제가 동작하며 발생하는 하드웨어 및 소프트웨어의 이벤트와 에러를 기록
4) /var/log/secure
▪ telnet, ssh 접속에 대한 유저 로그인 인증 기록
▪ SSH 로그인 정보(성공+실패)를 가진 로그 파일
▪ 이외에 useradd, userdel, su 기록 등 계정 조작 기록도 남음
5) xferlog
▪ /var/log/xferlog
▪ 리눅스 전송 로그
▪ 리눅스 FTP 로그 파일
▪ proftpd, vsftpd 등 FTP 서비스 내역 로그
▪ FTP 로그인, 업로드/다운로드 기록
6) maillog
▪ /var/log/maillog
▪ 메일 발송 로그 파일
3. linux 시스템 로그 관리
1) 로그 순환
▪ Loglotate
✓ 로그 파일(시스템 로그)을 rotates, compresses, and mails을 할 수 있음
✓ 설정 파일을 변경해도 관련 프로세스를 새로 시작할 필요 없이 cron 데몬이 주기적으로 실행시켜 줌
4. linux 파일 시스템
1) 리눅스 파일 시스템의 구조
▪ 개요
✓ 각각의 파일시스템들은 파일 시스템만의 독특한 시스템 특징을 가지고 있음.
✓ 대체적으로 대부분의 리눅스 파일 시스템은 비슷한 구조를 가지고 있음.
▪ 리눅스 파일 시스템의 구성요소
✓ 슈퍼 블록(Super Block): 파일시스템의 전체적인 정보를 기록. 파일시스템의 크기, 매직넘버, 마운트 횟수, 블록그룹번호, 블록 크기, 첫 번째 inode 등이 해당
✓ 아이노드(Inode) : 아이노드는 파일의 이름을 제외한 해당 파일의 모든 정보를 가지고 있으며 각 파일 이름에 부여되는 고유한 번호
✓ 디엔트리(Dentry) : 파일 시스템의 계층 구조를 표현하기 위한 오프젝트
-사용자가 임의의 디렉터리에 위치한 파일을 접근하게 되면 Linux는 해당 파일을 표현하기 위한 디엔트리를 생성,
- 해당 디엔트리는 해당 파일의 아이노드와 상위 디렉터리의 디엔트리 등을 포함
-디엔트리는 실제 파일시스템에는 저장되지 않고 최적화를 위해 파일 시스템 접근 시 메모리에만 존재
✓ 파일(file)
- Linux는 프로세스가 사용하는 파일들을 파일 오브젝트로 관리
- 프로세스는 파일에 대한 일관성 있는 접근이 가능, 파일의 현재 오프셋 등과 같은 정보들을 유지
- Data Block의 위치정보, File형태, 크기, 타임스탬프, File의 소유자, inode의 모드 등에 관한 정보를 가지며, Inode로 이루어진 테이블에서 이 번호를 가지고 찾아 정보를 알려줌
- 일반적으로 시스템에서는 파일이름으로 처리하는 것이 아니라 이 inode 처리함
'서버 보안 > 리눅스 이론' 카테고리의 다른 글
Unix 운영체제_unix 기반 시스템 (0) | 2023.03.30 |
---|---|
리눅스 기본 명령어 모음 (0) | 2023.03.28 |
RAID에 대해 공부(feat. linux, chatGPT) (0) | 2023.03.17 |
리눅스의 개요(feat. 유닉스, 커널) (2) | 2023.03.14 |
RWX (0) | 2023.03.07 |