Post

Linux File System

로그 및 데이터 파일



운영 체제 및 서비스의 로그와 각종 문서가 저장되는 위치

  • /var/www : 웹 문서 및 기타 웹 서버에서 사용되는 파일을 저장.

  • /var/lib : 시스템의 각종 서비스에서 자료를 저장할 때 사용, 데이터베이스 등이 이에 해당.

  • /var/lib/mysql : MySQL 데이터베이스의 데이터가 저장됨.

  • /var/log : 시스템 서비스 등의 로그를 저장할 때 사용, 웹 서버 로그가 보통 여기에 위치.

  • /var/cache : 캐시 데이터 저장, 삭제되어도 재생성 가능.

  • /media : 제거 가능한 장치를 마운트할 때 주로 사용하는 디렉토리

  • /mnt : 기타 파일 시스템을 임시로 마운트할 때 사용하는 디렉토리






설정 파일



운영 체제 및 서비스를 구성하는 설정 파일

  • /etc : 운영체제 초기 부팅 시 필요한 최소한의 명령어를 구현하는 프로그램 파일을 저장

  • /etc/apache2, /etc/httpd : Apache 웹 서버의 설정 정보를 저장

  • /etc/nginx, /etc/mysql : nginx 웹 서버, mysql 데이터베이스 서버 설정 정보 저장

  • /opt/etc : 추가적으로 설치된 프로그램의 설정 정보를 저장

  • /etc/mysql/my.cnf : mysql 데이터베이스 서버의 주 설정파일

  • /etc/hostname : 현재 시스템의 호스트네임 저장

  • /etc/hosts : 호스트네임의 실주소를 탐색할 때 사용되는 정적 순람표

  • /etc/fstab : 현재 시스템에 등록할 파일시스템의 목록 저장



일반 권한으로 접근 가능한 설정 파일

  • .htaccess : apache 웹 서버에서 웹 문서 디렉터리 내 서버 설정 제어

  • ~/.bashrc, ~/.profile : 사용자 로그온 시 실행되는 셸 명령을 지정

  • ~/.ssh/authorized_keys
    • 해당 사용자에 로그인할 수 있는 SSH 공개키를 지정
    • 공격자의 SSH 공개키를 추가하면 공격자가 시스템에 로그인할 수 있게됨
  • ~/.ssh/config
    • SSH 클라이언트 설정 파일.
    • 접속할 Host 등을 지정하여 악의적인 Host로 리다이렉트 할 수 있음.


~/.profile~/.ssh/authorized_keys는 관리자가 로그인 하는 계정과 웹 서버의 계정이 같을 때 사용 가능하다.



루트 권한으로 공격 시 이용 가능한 파일

  • /boot/initramfs-X.Y.Z.img
    • 부팅 시 초기에 사용되는 파일을 저장한 이미지 파일
    • 부팅 중 시스템 파티션으로 전환되면서 삭제되기 때문에 악성 코드 등이 삽입되면 관리자가 탐지하지 못하는 경우도 있음
  • /etc/rc.local : 시스템 부팅 시 실행되는 명령을 지정

  • /etc/crontab : 시스템 부팅 후 주기적으로 실행되는 명령을 지정

  • /etc/profile : 사용자가 로그인 할 때마다 실행되는 명령을 지정

  • /etc/profile.d : 사용자가 로그인 할 때마다 실행되는 명령을 지정하는 스크립트를 저장하는 디렉터리






장치 및 가상 파일



운영 체제를 구성하기 위한 파일, 각각의 파일은 커널 기능과 밀접한 관련이 있음.

  • /dev : 각종 디스크 및 장치 파일을 제공

  • /sys : 하드웨어 및 플랫폼에 접근할 수 있도록 함

  • /proc : 프로세스 및 시스템 정보를 제공하는 가상 파일시스템이 위치

  • /proc/sys : 운영체제의 동작을 제어할 수 있는 각종 파라미터가 위치

  • /proc/self/net, /proc/net : 운영체제 네트워크 계층의 다양한 정보 저장


/proc 파일 시스템 구성 요소
sonseungha.tistory.com/412






프로그램 및 라이브러리



프로그램의 명령어가 저장된 위치와 이들을 실행하기 위한 라이브러리의 위치

  • /bin, /sbin : 운영체제 초기 부팅 시 필요한 최소한의 명령어를 구현하는 프로그램 파일을 저장

  • /boot : 커널이나 부트로더 옵션 등 부팅에 필요한 파일을 저장

  • /lib, /lib64, /libx32 : 운영체제 초기 부팅 시 필요한 최소한의 라이브러리 파일을 저장

  • /opt : 추가적인 프로그램 저장

  • /usr/bin : 각종 명령어 및 프로그램 파일을 저장

  • /usr/sbin : 시스템 관리자가 주로 사용하는 각종 명령어 및 프로그램 파일을 저장

  • /usr/lib, /usr/lib64, /usr/libx32 : 시스템에서 공유되는 라이브러리 파일 저장

  • /usr/share : 기타 시스템에서 공유되는 라이브러리 파일 저장






임시 파일



운영 체제 및 서비스에서 사용하는 임시 디렉터리 또는 파일을 의미

  • /tmp
    • 임시 파일을 저장, 시스템 재시작 시 저장한 파일이 삭제될 수 있으며, 용량에 상당한 제한이 있을 수 있음.
    • 디스크 또는 메모리 상(tmpfs)에 존재할 수 있음.
  • /var/tmp : 임시 파일을 저장, 시스템 재시작 시에도 일반적으로 유지됨.






출처



출처
dreamhack.io/lecture/courses/282






This post is licensed under CC BY 4.0 by the author.