Unborn 8.0 Yellow Pointer
본문 바로가기
42 SEOUL/1_Born2beroot

[42Seoul/B2br] 프로젝트 소개

by 에삐니 2022. 6. 27.
728x90

1. 프로젝트 소개

이 프로젝트는 여러분에게 가상화의 멋진 세계를 소개하는 것을 목표로 합니다. 특정 지침에 따라 VirtualBox(VirtualBox를 사용할 수 없는 경우 UTM)에서 첫 번째 시스템을 생성합니다. 그러면 이 프로젝트가 끝나면 엄격한 규칙을 구현하면서 자신만의 운영 체제를 설정할 수 있습니다.

 

2. 규칙

  • VirtualBox(또는 VirtualBox를 사용할 수 없는 경우 UTM)의 사용은 필수입니다. 
  • 저장소의 루트에 있는 signature.txt 파일만 제출하면 됩니다. 컴퓨터의 가상 디스크 서명을 붙여 넣어야 합니다. 제출로 이동하고 자세한 내용은 동료 평가를 참조하십시오.

 

3. 필수

이 프로젝트는 특정 규칙에 따라 첫 번째 서버를 설정하는 작업으로 구성됩니다. 

최소한의 서비스로 서버를 설정해야 하기 때문에 그래픽 인터페이스를 설치하는 것은 금지되어 있습니다. 그렇지 않으면 0점 처리됩니다.

운영 체제로 Debian의 최신 안정 버전(테스트/불안정 버전 없음) 또는 CentOS의 최신 안정 버전을 선택해야 합니다. 시스템 관리를 처음 하는 경우 Debian을 사용하는 것이 좋습니다.

 

1. LVM을 사용하여 암호화된 파티션을 2개 이상 생성해야 합니다.

방어하는 동안, 당신은 다음과 같은 몇 가지 질문을 받게 될 것입니다. 예를 들어 다음을 알아야 합니다. aptitude와 apt의 차이점 또는 SELinux 또는 AppArmor이 무엇인지 알아야 합니다.

 

2. SSH 서비스는 포트 4242에서만 실행됩니다. 보안상의 이유로 SSH를 루트로 사용하여 연결할 수 없어야 합니다. 

SSH의 사용은 방어 중에 새로운 설정을 통해 테스트됩니다. 계정. 따라서 작동 방식을 이해해야 합니다.

 

3. UFW 방화벽으로 운영 체제를 구성해야 하므로 포트 4242만 열려 있습니다.

가상 시스템을 시작할 때 방화벽이 활성화되어 있어야 합니다. CentOS의 경우 기본 방화벽 대신 UFW를 사용해야 합니다. 그것을 설치하려면 아마도 DNF가 필요할 것입니다.
  • 가상 시스템의 호스트 이름은 42로 끝나는 로그인(예: wil42)이어야 합니다. 평가 중에 이 호스트 이름을 수정해야 합니다.
  • 강력한 암호 정책을 구현해야 합니다.
  • 엄격한 규칙에 따라 sudo를 설치하고 구성해야 합니다.
  • 루트 사용자 외에도 사용자 이름으로 로그인한 사용자가 있어야 합니다.
  • 이 사용자는 user42 및 sudo 그룹에 속해 있어야 합니다.
방어하는 동안 새 사용자를 만들고 그룹에 할당해야 합니다.

강력한 암호 정책을 설정하려면 다음 요구 사항을 준수해야 합니다.

  • 암호는 30일마다 만료되어야 합니다.
  • 암호를 수정하기 전에 허용되는 최소 일 수는 2일로 설정됩니다.
  • 사용자는 암호가 만료되기 7일 전에 경고 메시지를 받아야 합니다.
  • 암호는 10자 이상이어야 합니다. 대문자 및 숫자를 포함해야 합니다. 또한 연속적으로 동일한 문자를 3자 이상 사용할 수 없습니다.
  • 암호에는 사용자 이름을 포함할 수 없습니다.
  • 다음 규칙은 루트 암호에는 적용되지 않습니다. 암호는 이전 암호의 일부가 아닌 7자 이상이어야 합니다.
  • 물론 루트 암호는 이 정책을 준수해야 합니다.
구성 파일을 설정한 후에는 루트 계정을 포함하여 가상 시스템에 있는 계정의 모든 암호를 변경해야 합니다.

 

4. sudo 그룹에 대한 강력한 구성을 설정하려면 다음 요구 사항을 준수해야 합니다.

  • sudo를 이용한 인증은 비밀번호가 잘못되었을 경우 3회까지로 제한되어야 합니다.
  • sudo 사용 시 잘못된 비밀번호로 인한 오류가 발생할 경우 원하는 사용자 지정 메시지가 표시되어야 합니다.
  • sudo를 사용하는 각 작업은 입력과 출력 모두 보관해야 합니다. 로그 파일은 /var/log/sudo/ 폴더에 저장해야 합니다.
  • 보안상의 이유로 TTY 모드를 활성화해야 합니다.
  • 보안상의 이유로 sudo에서 사용할 수 있는 경로도 제한해야 합니다. 예: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/snap/bin

 

5. 마지막으로, 당신은 monitoring.sh이라는 간단한 스크립트를 만들어야 합니다. 그것은 bash로 개발되어야 합니다.

서버 시작 시 스크립트는 10분마다 모든 터미널에 일부 정보(아래 목록)를 표시합니다. 배너는 선택 사항입니다. 오류가 표시되지 않아야 합니다. 

스크립트는 항상 다음 정보를 표시할 수 있어야 합니다.

  • 운영 체제 및 커널 버전의 아키텍처입니다.
  • 물리적 프로세서 수입니다.
  • 가상 프로세서 수입니다.
  • 서버에서 현재 사용 가능한 RAM 및 사용률(백분율)입니다.
  • 서버에서 현재 사용 가능한 메모리와 사용률(백분율)입니다.
  • 프로세서의 현재 사용률(백분율)입니다.
  • 마지막으로 재부팅한 날짜 및 시간입니다.
  • LVM이 활성 상태인지 여부입니다.
  • 활성 연결 수입니다.
  • 서버를 사용하는 사용자 수입니다.
  • 서버의 IPv4 주소와 MAC(미디어 액세스 제어) 주소입니다.
  • sudo 프로그램으로 실행된 명령 수입니다.
변호하는 동안 이 스크립트가 어떻게 작동하는지 설명하라는 메시지가 표시됩니다. 당신은 또한 그것을 수정하지 않고 그것을 중단해야 합니다. cron을 보세요.

다음은 스크립트 작동 방식의 예입니다.

다음은 주제의 일부 요구 사항을 확인하는 데 사용할 수 있는 두 가지 명령입니다.

 

4. 보너스

  • 아래 구조와 유사한 구조를 얻을 수 있도록 파티션을 올바르게 설정하십시오.

  • lighttpd, MariaDB 및 PHP 서비스를 사용하여 WordPress 웹 사이트를 설정합니다.
  • 유용하다고 생각되는 서비스를 설정합니다(NGINX/Apache2 제외!). 변호하는 동안, 당신은 당신의 선택을 정당화해야 할 것입니다.
보너스 부분을 완료하기 위해 추가 서비스를 설정할 수 있습니다. 이 경우 필요에 따라 포트를 더 열 수 있습니다. 물론 UFW 규칙은 그에 따라 조정되어야 합니다.
보너스 부분은 필수 부분이 PERFECT 인 경우에만 평가됩니다. 완벽 함은 필수 부품이 통합되어 오작동 없이 작동 함을 의미합니다. 모든 필수 요건을 통과하지 못한 경우 보너스 부분은 전혀 평가되지 않습니다.

 

5. 제출 및 동료 평가

Git 리포지토리의 루트에 있는 txt 파일 서명만 제출하면 됩니다. 시스템 가상 디스크의 서명을 여기에 붙여 넣어야 합니다. 이 서명을 받으려면 먼저 기본 설치 폴더(VM이 저장되는 폴더)를 열어야 합니다.

  • Windows: %HOMEDRIVE%%HOMEPATH%\VirtualBox VMs\
  • Linux: ~/VirtualBox VMs/
  • MacM1: ~/Library/Containers/com.utmapp.UTM/Data/Documents/
  • MacOS: ~/VirtualBox VMs/

그런 다음 가상 시스템의 ".vdi" 파일(또는 UTM' 사용자의 경우 ".qcow2")에서 sha1 형식으로 서명을 검색합니다. 다음은 centos_serv.vdi 파일에 대한 4가지 명령 예제입니다.

  • Windows: certUtil -hashfile centos_serv.vdi sha1
  • Linux: sha1sum centos_serv.vdi
  • For Mac M1: shasum Centos.utm/Images/disk-0.qcow2
  • MacOS: shasum centos_serv.vdi

This is an example of what kind of output you will get:

다음은 어떤 종류의 출력을 얻을 것인지를 보여 주는 예입니다.

  • 6e657c4619944be17df3c31faa030c25e43e40af
첫 번째 평가 후, 가상 머신의 서명이 변경될 수 있습니다. 이 문제를 해결하려면 가상 머신을 복제하거나 상태 저장을 사용하십시오.
물론 Git 저장소에서 가상 머신을 설정하는 것은 금지되어 있습니다. 방어 중에 signature.txt 파일의 서명이 가상 머신의 서명과 비교됩니다. 두 개가 동일하지 않으면 점수가 0이 됩니다.

 

728x90
반응형

'42 SEOUL > 1_Born2beroot' 카테고리의 다른 글

[42Seoul/B2br] Bonus Part  (0) 2022.07.04
[42Seoul/B2br] 기본 설정  (0) 2022.06.30
[42Seoul/B2br] 데비안 11.0 설치  (0) 2022.06.27

댓글