b2br - OS (Debian vs CentOS)

hni1124·2022년 4월 7일
0
post-thumbnail

목표 : 가상머신의 시그네쳐를 제출할 것.

요구 사항
1. 보안 모듈이 요구사항에 맞게 시작과 동시에 켜져야함
2. LVM을 이용해 파티션 2개이상을 만들어야 한다
3. SSH는 4242포트에서만 접속. 새로운 계정 속에서 동작해야함. 루트에서는 접근할 수 없도록 해야함
4. UFW 방화벽을 통해 4242포트만을 열어둬야 함. 시작과 동시에 활성화 되어야 함
5. 초기 호스트 명은 nhwang42여야 하고 테스트 중에 조작가능해야함 42로 끝나도록
6. 강한 비밀번호 정책사용 (디테일 하단)
7. sudo를 설치해야하고, 이해하고 있어야함
루트 사용자 이외에도 다른 사용자가 있어야 하고 이 유저는 user42와 sudo그룹에 속해야함
ㄴ>새로운 유저 만들고 그룹을 할당할 수 있어야함
8. 루트 사용자를 포함한 모든 사용자에 대해 비밀번호를 바꿔야함.
9. sudo 인증에는 3번까지 허용된다 (비번)
ㄴ잘못된 비번 시 메시지 띄우기
10. sudo의 모든 액션(인풋/아웃풋)은 /var/log/sudo/에 로그 파일 남겨야함
11. TTY mode 실행되어야함
12. sudo에 의해 사용될 수 있는 경로는 제한. 예) /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
13. 모니터링 쉘스크립트 만들어야 함 (10분마다 정보를 출력함)
ㄴ 평가중 조작없이 종료해야 함

선행지식
CentOS vs Debian
SELinux vs AppArmor (보안 모듈)
LVM
apt vs aptitude
SSH
UFW
sudo
TTY


항상 프로젝트의 의도가 제일 궁금하기에 먼저 운영체제에 대해 잘 몰랐기에 OS > 리눅스 개념부터 시작.

OS란?
최종적으로 인간이 작성한 명령어를 하드웨어인 기계에게 번역해서 전달해 주는것.
기계와 인간의 일종의 인터페이스같은 것.

프로그래머가 요리사라면 OS는 원재료를 주는 업체. (MAC, WIN, And, IOS만큼은 완제품의 비유가 맞을듯)
원재료를 가공해주는 업체가 없다면 요리사는 닭요리를 하기 위해
요리와 별개로 병아리부터 닭을 키워내야함.

커널이란?
OS의 핵심 소프트웨어.
대표기능

CPU등 하드웨어로의 접근
프로세스의 우선순위 관리
프로세스의 할당
메모리 관리

커널은 곧 OS라고 봐도 무방하다.(사실은 아니지만)
OS가 칼이라면 커널은 칼날이다.

이 커널이 핵심이라 커널이라는 큰 틀은 같지만 나머지 소프트웨어에서 분기한 것이
리눅스 배포판이다. (우분투, Debian, CentOS 등등..)

리눅스는 왜 대중적일까?
프로그래머가 요리사라면
맥, 윈도우, 안드로이드, IOS는 모두 일반유저의 사용성을 높히기 위한 잘 완성된 완제품이다.(GUI)
일반유저가 사용하는 기능을 미리 만들어 놓고 그것위주로만 사용할 수 있기 때문
> 직접 요리를 하고 싶은 경우에는 오픈소스라 개선의 자유도(쉽게말해 커스터마이징이다)가 높고 무료인 이유에서 리눅스를 사용한다.

서버 프로그래머의 입장에서 보면 서버 또한 컴퓨터인데,
결국 OS가 필요하다. 비싼 맥을 서버로 쓸수는 없고 윈도우도 정품구입을 해야하는 단점과 함께
위에 언급한 자유도의 측면에서도 리눅스가 강점이 있기에 프로그래머와 친하다.
리눅스 디렉토리 설명

프로젝트가 그냥 밑도 끝도 없이 가상머신으로 그냥 Linux기반 OS를 겪어봐라일까?
-내가 추측한 이번 프로젝트의 진정한 의도 :
서버를 다룰때 보통 Linux기반을 다룰 텐데, 지금은 직접 다루기에 한계가 있으니
가상머신을 통해 겪어보는 프로젝트라고 생각된다.


Debian / CentOS 모두 리눅스 기반

Debian
패키지 관리가 쉽다. 빠른 업데이트 주기 등
대신 시장 선호도가 낮다
오픈 소스 랭귀지에 대한 호환 업데이트가 가능하다

CentOS
커뮤니티가 크고 더 안정성이 있어 시장선호가 있다.
상대적으로 안정성이 큰 이유? > 업데이트가 늦기 때문이라는 평가. Debian vs CentOS
주로 중요한 프로젝트에 쓰인다.
단점은 업데이트 주기가 늦기 때문에 호환되는 버전도 낮아야 한다.
예를들어 CentOS5 에서는 MySql 5.1만 호환된다. 즉 소프트웨어가 최신화 되면 따라가지 못한다.

프로젝트 요구사항에서의 방화벽 설치 등 패키지 사용이 필요한 것으로 보여 초보자 입장에서 나아보이는Debian으로 결정.

profile
42Seoul / 알고리즘 공부 중

0개의 댓글