본문 바로가기
서버 보안/리눅스 이론

리눅스(linux) 운영체제_linux 기반 시스템

by 어깨 :) 2023. 3. 30.
728x90

▪    리눅스 특징
▪    리눅스 시스템 로그
▪    리눅스 로그 관리

 

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 처리함

728x90

'서버 보안 > 리눅스 이론' 카테고리의 다른 글

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