본문 바로가기
42Seoul

Born2beroot 평가 준비

by 멍진 2022. 3. 30.

1. 가상 머신의 기본 기능

물리적 컴퓨터와 동일한 기능을 제공하는 가상의 소프트웨어 컴퓨터.

 

2. debain vs CentOS

 

- 둘다  linux  운영체제

- 센토스는 레드햇이 공개한 RHEL을 가져와서 레드햇의 브랜드와 로고만 제거하고 배포한 배포본. 무료 사용 가능하지만 문제 발생시 레드햇이 아닌 커뮤니티 통해 지원되므로 패치가 다소 느린 감이 있다.

- 데비안은 커뮤니티에서 만들어진 배포판이라 사용법이 온라인 웹사이트나 커뮤니티에 자세히 기술되어 있다. 패키지 업데이트나 의존성 및 보안 관련 업데이트를 자동으로 수행한다.

- 패키지 관리 : 센토스는 RPM 포맷과 YUM/DNF 패키지 매니저 사용. 데비안은 DEB 포맷과 dpkg/APT 매니저 사용

- 센토스는 기업용, 데비안은 개인

 

3. apt와 aptitude의 차이

 

우분투에서 패키지를 관리하는 툴에는 apt, dpkg, aptitude가 있다.​

 

 apt

apt는 온라인 리포지토리에서 패키지를 다운로드받고 설치하는데 사용된다.

실질적으로 apt는 dpkg와 함께 작동한다. 하지만 필요한 소프트웨어의 검색, 다운로드 , 설치, 업그레이드, 검사 등 대부분의 패키지 관리작업은 apt 단독으로 가능하다.

dpkg

dpkg는 cd룸이나 다른 디스크 장치에 있는 .deb 파일을 제어하는 경우에 일반적으로 사용되며, dpkg 명령어는 시스템 소프트웨어 대한 설정이나 설치 및 정보를 얻는데 사용되는 옵션을 가진다. apt 보다는 낮은 수준에서 수행된다. apt는 우분투의 소프트웨어를 관리하기 위해 내부적으로 dpkg를 사용한다. 보통 apt 명령만으로 충분하지만 시스템에 있는 특정 파일이 어떤 패티지에 포함되는지 등의 확인 작업을 수행하기 위해 dpkg 명령이 필요하다.

aptitude

dpkg와 apt의 경우 제대로 사용하기 위해서는 좀 더 많은 지식이 요구된다. 그에 비해 aptitude는 주요 패키지 작업 과정을 자동화하여 가능한 쉽게 작업할 수 있도록 해주므로 보다 쉽다. 사용하지 않는 패키지를 자동적으로 제거해주기도 한다. apt-get 외에 apt-chche, apt-mark와 같은 툴도 같이 사용한다. aptitude는 설치, 제거, 업데이트 과정에서 충돌이 있는 경우 다른 대안을 제시해줌. apt는 그냥 안 된다고만 함.

 

4. AppArmor란

AppArmor는 시스템 관리자가 프로그램 프로필 별로 프로그램의 역량을 제한 할 수 있게 해주는 리눅스 보안 모듈이다. 앱 아머는 정책 파일을 통해 어떤 어플리케이션이 어떤 파일/경로에 접근 가능한지 허용해준다.

enforce 모드와 complain모드 두가지가 존재한다. enforce 모드는 허가되지 않은 파일에 접근하는 것을 거부하는 모드, complain모드는 실질적으로 보안을 제공하는 것은 아니고, 어플리케이션이 해야할 행동이 아닌 다른 행동을 하는경우에 앱 아머는 로그를 남겨준다.

sudo aa-status : apparmor 상태확인

 

5. Simple setup

- 가상머신 그래픽 환경 없는지 확인

- 가상머신 연결 시도 시 비밀번호 요구하는지 확인

 

 

- ssh로 root 계정 외 user로 로그인 ( 보안 상 ssh로 root 계정으로는 바로 접속 불가능 하도록 설정 )

 

4242 포트에서만 돌아가야 함
root로 접속은 거부

 

 

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

 

- 가상 시스템을 시작할 때 방화벽이 활성 상태인지 확인

 

 

 

6. 강력한 암호 정책 구현

- 비밀 번호는 30일마다 만료 되어야함

- 비밀번호 수정 전 허용되는 최소 일 수는 2

- 사용자는 비밀번호 만료 7일 전에 경고 메세지를 받아야 함

- 비밀번호는 최소 10자 이상, 대문자 & 숫자 포함 / 연속 동일한 문자를 3개 이상 포함 x

- 비밀번호에는 사용자 이름 안됨

- 암호는 이전 암호의 일부가 아닌 7자 이상이어야한다.(루트는 예외)

 

vi /etc/login.defs
vi /etc/pam.d/common-password

 

 

 

7. User

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

이 사용자는 user42 && sudo 그룹에 속해야한다.

 

id <유저 이름>

usermod -g(or G) <그룹 이름> <유저 이름>     -> 유저를 그룹에 추가

 

 

평가자의 이름으로 새로운 유저를 생성하고, 위에 설정한 비밀번호 설정 시 규칙이 적용되는지 확인

- useradd <유저 이름>  -> 유저 생성

- passwd <유저 이름>   -> 비밀번호 설정

 

 

 

8. Sudo

 

- sudo를 이용한 인증은 비밀번호가 잘못된 경우 3번으로 제한되어야 한다.

 

- sudo 사용 시 잘못된 비밀번호로 인한 오류 발생 시 원하는 사용자 지정 메시지가 표시되어야 한다.

 

- 보안상의 이유로, sudo가 사용할 수 있는 경로는 제한되어야 한다.

         -> 서브젝트 명시 : /usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/snap/bin

 

- 보안상의 이유로 TTY 모드를 활성화해야 한다. tty에 연결되지 않은 채로 sudo 를 실행하는 것을 금지

         -> Defaults requiretty

 

visudo

 

- Sudo를 사용하는 각 조치는 입력과 출력 모두 보관해야 합니다. 로그 파일은 /var/log/sudo/ 폴더에 저장해야 한다.

 

cat /var/log/sudo/00/00/01/log

 

 

 

9. Script monitoring

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

배너는 선택 사항. 오류를 볼 수 없어야 한다.

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

 

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

• 물리적 프로세서의 수

• 가상 프로세서 수

• 서버의 현재 사용 가능한 RAM과 활용률(백분율)

• 서버의 현재 가용 메모리와 활용률(백분율)

• 프로세서의 현재 활용률(백분율)

• 마지막으로 재부팅한 날짜 및 시간.

• LVM의 활성 여부

• 활성 연결 수

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

• 서버의 IPv4 주소와 MAC(Media Access Control) 주소.

• sudo 프로그램으로 실행된 명령의 수

 

vi monitoring.sh

crontab -e 팝업시간 변경 가능 ( 원활한 평가를 위해)

 

crontab -e

 

What is cron?

유닉스 계열 컴퓨터 운영 체제의 시간 기반 잡 스케줄러이다. 소프트웨어 환경을 설정하고 관리하는 사람들은 작업을 고정된 시간, 날짜, 간격에 주기적으로 실행할 수 있도록 스케줄링하기 위해 cron을 사용한다.

 

 

10 . lsblk

 

 

What is LVM?

 

reference : https://tech.cloud.nongshim.co.kr/2018/11/23/lvmlogical-volume-manager-1-%EA%B0%9C%EB%85%90/

 

 

'42Seoul' 카테고리의 다른 글

42Philosophers  (0) 2022.05.19
MiniLibX를 공부해보자 - 42Seoul [so_long]  (5) 2022.03.22

댓글