본문 바로가기
42seoul/circle-1

[ born2beroot ] 2. 운영체제 (Debian, CentOS)

by saniii 2022. 2. 4.

[ 운영체제 ]

사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어 

우리가 실행하는 대부분의 프로그램은 운영체제에서 관리, 제어한다. 

 

 

[ Linux ]

- 오픈 소스 운영체제

   > 소스코드 및 모든 관련 자료가 공개되어 있다.

- 멀티유저, 멀티태스킹 운영체제

- 다중 스레드를 지원하는 네트워크 운영체제

- 여러 종류의 파일 시스템을 지원

- 유닉스와 완벽하게 호환 가능

- 하드웨어 기능을 효과적으로 사용

   > 적은 양의 메모리를 필요로 함

   > 램이 부족할 경우 SWAP방식을 통해 swap영역을 늘려 메모리의 효율성을 높일 수 있다.

- 보안상의 취약점이 쉽게 노출될 가능성이 있다. 

   > 꾸준한 기술 개발로 보완 중 

 

+ 리눅스 디렉터리 종류와 특징

- 리눅스 디렉터리 : 최상위 디렉터리( / )를 기준으로 하위 디렉터리들이 존재하는 계층적 트리 구조로 구성

 

+ 리눅스 배포판

: 리눅스 전체 시스템을 구성하는 소프트웨어 패키지

- 리눅스 커널, GNU 소프트웨어 및 여러가지 자유 소프트웨어로 구성된 운영체제

운영체제는 리눅스 커널과 GNU 프로젝트에서 가져온 라이브러리 유틸리티, X윈도우 시스템의 그래픽으로 구성.
워드프로세서, 스프레드시트, 미디어 플레이어, 데이터베이스 등 여러가지 소프트웨어 애플리케이션들도 포함한다. 

- 대표적인 배포판 : 슬랙웨어, 데비안, 레드햇 ....

 

[ Debian ]

- 1994년 이안머독에 의해 비영리 조직으로 데비안 프로젝트 설립

- 데비안 프로젝트에서 만들어 배포하는 공개 운영체제로 GNU의 공식적인 후원을 받고 있는 유일한 배포판

- 리눅스 커널을 탑재한 데비안 GNU/리눅스(현재 정식판 존재), GNU hurd 커널을 탑재한 데비안 GNU/허드, FreeBSD 커널을 탑재한 데비안 GNU/KFreeBSD, NetBSD 커널을 탑재한 데비안 GNU/NetBSD등으로 나뉜다.

- 넓은 유저층을 가지고 있어 사용법이 온라인 웹사이트나 커뮤니티에 자세히 기술되어 있다는 점이 진입장벽을 낮추어 초보 리눅스유저들이 접근하기 쉬운 OS

- 데비안은 패키지 설치 및 업그레이드의 과정이 단순하다. Install 후 패키지 매니저인 apt등을 이용하면 소프트웨어의 설치나 업데이트에서 다른 패키지와의 의존성 확인, 보안관련 업데이트 등을 자동으로 해준다. 

 

# GNU (GNU's Not Unix)
GNU는 유닉스가 아니다 - 의 약자
GNU 프로젝트를 통해 개발한 유닉스 계열 컴퓨터 운영체제로 완전한 유닉스 호환 소프트웨어 시스템이 되는 것이 목표
# 자유 소프트웨어 재단 (FSF, Free Software Foundation)
- 사용자가 소프트웨어를 실행하고, 복제, 배포, 학습, 개작, 향상시킬 수 있는 소프트웨어
[ 특징 ]
- 어떤 목적이든 원하는 대로 프로그램을 실행시킬 수 있는 자유
- 무료 또는 유료로 프로그램 복제물을 재배포할 수 있는 자유
- 필요에 따라 프로그램을 개작할 수 있는 자유
- 공동체 전체가 개선된 이익을 나눌 수 있게 개작한 프로그램을 배포할 수 있는 자유
# BSD (Berkeley Software Distribution) 라이센스

 

[ CentOS ]

- 업스트림 소스인 레드햇 엔터프라이즈 리눅스에서 레드햇의 로고, 브랜드를 제거하고 배포한 무료버전

- 레드햇 엔터프라이즈 리눅스와 완벽하게 호환되는 무료 기업용 컴퓨팅 운영체제

- 플랫폼을 제공할 목적으로 만들어진 리눅스계 운영체제

- 레드햇의 기술 지원을 받지 않고 자체 커뮤니티에 의해 관리되고 있다. > 패치가 다소 느리다.

- 기본적으로 포함되는 소프트웨어와 업데이트되는 소프트웨어를 아울러 이전 파일에 대해 상위판과 100%에 가까운 호환성을 유지하는 것을 원칙으로 한다. 

- 서버용 운영체제로 인기가 많다. 

 

 

 

[ AppArmor & SELinux ]

: 시스템 관리자가 프로그램 프로필별로 프로그램의 역량을 제한할 수 있게 해주는 리눅스 커널 보안 모듈(LSM)

  > 정책 파일을 통해 각 애플리케이션이 접근할 수 있는 파일과 경로를 제한한다.   

  > 개발자가 프로세스에서 수행할 수 있는 작업을 제한할 수 있다. 

- 강제 접근 통제(MAC, 필수 엑세스 제어)를 제공(하여 전통적인 유닉스의 임의적 접근 통제 모델(DAC)을 지원한다.)

- 웹 브라우저, 서버 소프트웨어와 같이 악용될 수 있는 소프트웨어를 제한하는데 유용하다. 

# MAC (Mandatory Access Control, 강제 접근 통제)
- 정의된 정책을 활용하여 사용자와 프로세스의 행동을 제어
- 파일의 유형, 사용자의 역할, 프로그램의 기능과 신뢰도, 데이터의 민감성과 무결성을 고려
# DAC (Discretionary Access Control, 임의 접근 통제)
- 소유자가 사용자 또는 그룹이 자원에 접근하는 것을 조절할 수 있음
- 소유자가 파일을 제어
- 계정과 소유권에만 기반
# LSM (Linux Security Modules, 리눅스 보안 모듈)

 

+ AppArmor (Application Armor)

- Debian , Ubuntu , Synology (DEB-base)

- 개별 응용프로그램을 보호하는 일에 집중한다.

- 응용 프로그램 단위의 보안 모델을 구현한다.

- 정책 파일을 기반으로 작동한다.

- 파일 경로를 통해 작동한다. 

 

+ SELinux (Security-Enhanced Linux)

- Red Hat, Fedora, CentOS (RPM-based)

- 시스템 전체에 보안 설정

- AppArmor에 비해 설정이 복잡하다. 

- 정책파일에 올바른 파일 시스템 레이블이 필요하다.

- 파일에 라벨을 적용한다. 

 

 

[ apt .vs. aptitude ]

+ apt (Advanced Package Tool)

- 데비안 리눅스의 소프트웨어 설치와 제거를 위한 패키지 관리 툴

  (apt-get과 거의 비슷하지만, apt-get이 지원하는 옵션이 더 많긴 하다.)

- 패키지 관련 정보를 확인하거나 패키지 설치 시 발생할 수 있는 의존성과 충돌문제를 해결하기 위해 '/etc/apt/source.list' 파일을 사용

  > 어떤 패키지를 설치할 때 종속성 문제를 고민하지 않아도 된다.

- 매우 유연하여 사용자가 패키지를 검색하기 위해 새 소스 추가, 적절한 고정, 즉 시스템 업그레이드 중에 사용할 수없는 패키지를 표시하여 현재 버전이 설치된 최종 버전의 다양한 구성을 쉽게 제어 할 수 있습니다.

 

+ aptitude 

- 주요 패키지 작업 과정을 자동화하여 가능한 쉽게 작업할 수 있도록 한다. 

- 기능에 사용자 인터페이스를 추가하여 사용자가 대화형으로 패키지를 검색하고 설치 또는 제거 할 수 있는 고급 패키징 도구

 

apt .vs. aptitude 차이점

apt aptitude
- 다른 상위 수준의 패키지 관리자가 사용할 수있는 하위 수준의 패키지 관리자

- apt-get이 모든 패키지 설치, 업그레이드, 시스템 업그레이드, 패키지 제거, 종속성 해결 등을 처리

- 명령 줄로만 제한

- 설치된 패키지를 제거시에 사용자가 추가 옵션을 추가하거나  명시적으로 지정

- 패키지의 설치 또는 제거와 관련하여 충돌하는 작업의 경우에는 죽을 수 있음
- 상위 수준의 패키지 관리자

- apt-mark 및 apt-cache의 기능을 포함하여 apt보다 훨씬 많은 작업을 처리. 설치된 패키지 목록, 패키지가 자동 또는 수동으로 설치되도록 표시하고, 패키지를 보관하여 업그레이드 할 수 없도록 만드는 등의 작업을 수행

- 필요한 명령을 입력하여 명령 줄 작업 옵션과 함께 (기본 텍스트 전용) 대화형 인터페이스

- 설치된 패키지를 제거하는 동안 사용하지 않는 패키지를 자동으로 제거

- 특정 조치가 차단되는 이유 또는 특정 조치를 취해야하는 이유 또는 이유에 대해 자세히 조사하기 위해 why 및 why-not 명령을 제공

- 패키지의 설치 또는 제거와 관련하여 충돌하는 작업의 경우에 해당 충돌을 제거하기위한 가능한 조치를 제안 할 수 있음

 

 

 

 

 

댓글