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

[ born2beroot ] 0. 과제 이해하기

by saniii 2022. 2. 4.

Borntoberoot

직접 서버를 만드는 과제

관리 시스템을 위해서 centOSDebian을 골라야합니다. 당신이 시스템 관리에 처음이라면 데비안이 더 추천됩니다.

- 저장소의 루트에있는 signature.txt 파일 만 제출하면 된다. 시스템 가상 디스크의 서명을 붙여 넣어야한다.

 

 

[Mandatory part]

 

- 이 프로젝트는 규칙에 따라 첫번째 서버를 설정하는 것으로 구성된다.

버추얼박스를 이용해서 직접 최소한의 서비스를 제공하는 서버를 만드세용. 따라서 그래픽적인 요소는 들어가지 않습니다. , xorg나 다른 그래픽 서버 장치(X.org ... 등등)를 사용하면 빵점입니다.

# x.org : 
윈도우 운영체제와 같이 리눅스(유닉스 계열 운영체제)에서 그래픽 환경을 제공해주는 시스템 소프트웨어
리눅스에서 GUI는 선택사항의 응용프로그램일 뿐 필수요소는 아닙니당. 
디스플레이 장치에 창을 표시하여 마우스와 키보드 등의 입력장치의 상호작용 등을 관리해 GUI환경의 구현을 위한 기본적인 프레임워크 제공

2022.02.04 - [42_san (42seoul)/born2beroot] - [ born2beroot ] 1. 가상머신 (Virtual Box)

 

- 운영 체제로 데비안의 최신 안정 버전, 또는 Cent OS의 최신 안정 버전을 선택해야합니당.

- 데비안용 AppArmor도 시작시 실행되어야합니다.

CentOS 선택시 KDump는 할 필요없다는 말에 대하여 KDump란?
# KDump : 터널 crash 덤프 메커니즘
- 커널 충돌이 발생 시 시스템에서 정보를 수집하여 충돌 원인을 규명하는 자료 제공
- 시스템 운영 중 장애를 확인하기 위해 사용하는 기능 

 

- LVM을 사용하여 암호화된 파티션을 2개 이상 만들어야합니다. 

2022.02.04 - [42_san (42seoul)/born2beroot] - [ born2beroot ] 5. 리눅스 파일 시스템과 파티션

디펜스 동안 선택한 운영체제에 대해 몇가지 질문을 받게 됩니다. 예를 들어, aptitude와 apt의 차이점 또는 SELinux 또는 AppArmor가 무엇인지 알아야합니다. 당신이 사용하는 운영체제를 이해하시라. 

2022.02.04 - [42_san (42seoul)/born2beroot] - [ born2beroot ] 2. 운영체제 (Debian, CentOS)

 

- SSH 서비스는 포트 4242에서만 실행된다. 보안상의 이유로 root로 SSH를 사용하여 연결할 수 없어야한다. 

새 계정을 설정하여  방어 중에 SSH사용을 테스트합니다. 따라서 작동 방식을 이해해야한다. 

2022.02.04 - [42_san (42seoul)/born2beroot] - [ born2beroot ] 3. SSH에 대하여

 

- UFW 방화벽으로 운영 체제를 구성해야하므로 포트 4242만 열어두어야 한다.

 가상 머신을 시작할 때 방화벽이 활성화되어 있어야한다. 
CentOS의 경우 기본 방화벽 대신 UFW를 사용해야하며 설치하려면 DNF가 필요하다. 

2022.02.04 - [42_san (42seoul)/born2beroot] - [ born2beroot ] 4. 방화벽에 대하여

 

 

–  가상 머신의 hostname 42로 끝나야한다.

   ex) san42 // 평가 중에 호스트 이름을 수정해야한다. 

–  강력한 비밀번호 정책을 세워야한다.

엄격한 규칙으로 sudo를 규정하고 설치해야한다.

- 루트 사용자 외에 사용자 이름으로 로그인 한 사용자가 있어야 한다. 

   > 이 사용자는 user42 및 sudo 그룹에 속해야 한다. 
디펜스 동안 새 사용자를 생성하여 그룹에 배치해야 합니당.

 

# 강력한 암호 정책을 위한 준수사항

–  패스워드는 30일마다 만료되어야한다.

–  패스워드는 수정된 뒤로 2일 동안 못 바꾼다.

–  사용자는 패스워드가 만료되기 7일 전에 알림을 받는다.

–  패스워드는 10글자 이상이어야 하고 대문자와 숫자를 포함해야한다. 또한 연이어 3번 동일한 문자를 쓸 수 없다.

–  패스워드는 사용자의 이름을 포함해서는 안된다.

–  다음 패스워드 규칙은 root 비밀번호에는 적용되지 않는다 : 패스워드는 최소 7글자이고, 이전 비밀번호와 달라야함.

–  물론 루트 비밀번호는 이 규칙을 따라야한다.

 configuration file을 설정한 후에는 루트 계정을 포함하여 가상 머신에 있는 계정의 모든 비밀번호를 변경해야한다. 

 

# 강력한 그룹 구성을 위한 준수사항

- sudo를 사용하기 위한 인증에서 오류는 3번까지 가능합니다. 

- sudo를 사용할 때 잘못된 암호로 인한 오류가 발행하면 custom 메시지가 표시되어야 합니다.

- sudo를 사용하는 각 작업은 입력 및 출력 모두를 보관해야합니다.

   로그파일은 /var/log/sudo/ 폴더에 저장하세영.

- 보안상의 이유로 TTY 모드를 활성해야 합니다요.

- 보안상의 이유로 sudo에서 사용할 수 있는 경로를 제한해야 합니다.

Ex)  /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

 

 

마지막으로 monitoring.sh 라는 간단한 스크립트를 만들어야 합니다. bash에서 개발하세영.

- 서버 시작시에 스크립트는 10분마다 모든 터미널에 (아래 나열된)일부 정보를 표시합니다.... 

   배너는 선택사항입니다. 오류는 표시되지 않아야합니다.

 

# 스크립트에 표시될 정보

- 운영체제의 아키텍처 및 커널 버전

- 물리적 프로세서의 개수

- 가상 프로세서의 개수

- 서버에서 현재 사용 가능한 RAM 및 (백분율로 된)사용률

- 서버에서 현재 사용 가능한 메모리와 (백분율로 된)사용률

- 프로세서의 현재 (역시 백분율로 된)사용률

- 마지막 재부팅 날짜 및 시간

- LVM의 활성 상태 여부

- 활성 연결 개수

- 서버를 사용하는 사용자 수

- 서버의 IPv4 주소와 MAC 주소

- sudo 프로그램으로 실행된 명령 개수

 

 

디펜스 동안 스크립트의 작동 방식을 설명해야 합니다. 또한 수정하지 않고 중단해야합니다. cron을 보세영.

 

스크립트 작동 방식의 예

 

 

과제의 일부 요구 상항을 확인하는 데 사용할 수 있는 방법 (데비안 버전)

 

 

 

보너스는 ..... 안하겠습니다.....

 

 

 

하지만 아직 안내가 더 남음.....

[Submission and peer-evaluation]

 

git 저장소의 루트에 있는 signature.txt 파일만 제출하면 된다. 시스템 가상 디스크의 서명을 붙여 넣어야 한다.

이 서명을 받으려면 먼저 VM이 저장된 기본 설치 폴더를 열어야 한다.

 

그런 다음 .vdi 파일에서 서명을 검색한다. sha1형식의 가상머신.

출력의 예는 다음과 같다. 

• 6e657c4619944be17df3c31faa030c25e43e40af

가상 머신의 서명은 첫번째 평가 후에 변경될 수 있다. 이 문제는 가상머신을 복제하거나, 저장상태를 사용하여 해결할 수 있다. git 저장소에서 가상 머신을 설정하는 것은 금지되어 있다. 디펜스 중에 signature.txt 파일의 서명이 가상 머신의 서명과 비교된다. 두 사람이 동일하지 않으면 빵점이다. 

 

 

 

 

 

 

https://kit2013.tistory.com/199

# 마운트(in Linux) : 디스크와 같은 물리적인 장치를 특정 위치(디렉토리)에 연결시켜주는 것.
:
보조기억장치(CD-ROM, HDD...)나 파일시스템이 다른 디스크를 / 의 하위

디렉토리로 연결하여 사용 가능하게 해주는 명령어. - https://jhnyang.tistory.com/12

#리눅스파일시스템구조 :리눅스는윈도우와다르게모든저장공간(폴더)이하나의디렉에서시 작된다(뿌리가 하나!). => single directory tree 구조.

(윈도우는 드라이브당 하나의 디렉터리 트리 구조를 갖는다.) # ext4 :

- https://ddongwon.tistory.com/66
디펜스동안 내가 고른 관리시스템에 대한 질문을 받아야한다. 예를 들면 aptitudeapt의 차

이점, SELinux가 뭔지, AppArmor가 뭔지, ... 내가 사용하는것을 이해하고 있어야한다.

# aptitude, apt, apt-get의 차이점 :

A SSH service will be running on port 4242 only. For security reasons, it must not be possible to connect using SSH as root.

You have to configure your operating system with the UFW firewall and thus leave only port 4242 open.

# UFW : 우분투의 기본적인 방화벽. iptables를 좀 더 쉽게 설정한 것(사용자 친화적).

  •  
  • Dfsdf

 

 

 

 

 

 

 

 

 

 

 

 

댓글