Born2beroot

taeskim·2021년 6월 22일
1

1. 학습목표

  • virtualization을 이해하고 활용할 수 있다.

2. 가이드라인

  • VirtualBox를 사용하라.(mandatory)
  • machine의 virtual disk signature를 signature.txt에 저장하여 제출하라.

3. Mandatory

  • 규칙에 따라 서버를 셋업
  • OS는 Debian으로 선택
  • LVM을 사용하는 최소 2가지의 encrypted 파티션을 만들기(아래의 이미지 참고)

1. Project Overview

  1. Virtual machine은 어떻게 동작하는가?

    • VM(Virtual Machine)은 물리적 하드웨어 시스템에 구축되어 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상 컴퓨터 시스템으로 작동하는 가상 환경입니다.
    • 여기서 하이퍼바이저라 불리는 소프트웨어는 하드웨어에서 가상 머신의 리소스를 분리하고 적절하게 프로비저닝하여 VM에서 사용할 수 있도록 합니다.
  2. OS 선택에 대한 설명(Debian)

    • 무료 오픈소스로 구성된 리눅스 배포판이며, 커뮤니티에 의해 관리됩니다. Debian은 리눅스 커널을 기반으로 한 가장 오래된 os중 하나 입니다. 데비안(Debian)은 데비안 프로젝트에서 만들어 배포하는 공개 운영체제이다. 데비안의 특징은 패키지 설치 및 업그레이드의 단순함에 있다. 일단 인스톨을 한 후 패키지 매니저인 apt 등을 이용하면 소프트웨어의 설치나 업데이트에서 다른 패키지와의 의존성 확인, 보안관련 업데이트 등을 자동으로 해준다. 데비안은 네트워크 결합 스토리지 부터 전화기, 노트북, 데스크탑 및 서버까지 다양한 하드웨어에서 사용할 수 있다. 데비안은 안정성과 보안에 중점을 두며 다른 많은 리눅스 배포판의 기반으로 쓰이고 있다.
  3. CentOS와 Debian의 차이

  4. virtual machine의 목적

  • The main purpose of VMs is to operate multiple operating systems at the same time, from the same piece of hardware. Without virtualization, operating multiple systems — like Windows and Linux — would require two separate physical units.
  1. CentOS를 선택했다면 SeLinux와 DNF가 무엇인가
  2. Debian을 선택했다면 aptitude와 apt의 차이는 무엇이고 APPArmor는 무엇인가?
  • 차이점
  • AppArmor
    - Mandatory Access Control framework. When enabled, AppArmor confines programs according to a set of rules that specify what files a given program can access. This proactive approach helps protect the system against both known and unknown vulnerabilities.
    - https://wiki.debian.org/AppArmor

2.Simple setup

  • 그래픽환경에서 동작하지 않는 것을 확인
  • root가 아닌 사용자로 login
  • password를 활용해서 machine에 로그인.
  • UFW가 동작해야함.
    - sudo ufw status verbose
  • SSH service가 동작해야함
    - systemctl status ssh
  • 선택한 OS가 무엇인지 확인해야함.
    - hostnamectl

3. user

  • 현재 사용자의 group status를 확인하기
    - id 사용자명
  • 현재 password 정책 어떻게 변경하고 세부 내용 설명하기
    - sudo vi /etc/pam.d/common-password
    retry=3 : 암호 입력 3회까지
    minlen=10 : 암호 최소 길이는 10
    difok=7 : 기존 패스워드와 달라야하는 문자 수는 7
    ucredit=-1 : 대문자 한 개 이상
    lcredit=-1 : 소문자 한 개 이상
    dcredit=-1 : 숫자 한 개 이상
    reject_username : username이 그대로 또는 뒤집혀서 새 패스워드에 들어있는지 검사하고, 들어있으면 거부
    enforce_for_root : root 사용자가 패스워드를 바꾸려고 하는 경우에도 위의 조건들 적용
  • 새로운 사용자 추가하기
    - adduser 사용자명
  • evaluating이라는 그룹 만들기
    - groupadd evaluating
    - password 정책의 장점 말하기
    - password 정책을 이행하는데 있어 장단점 말하기

4. Hostname and Partitiions

  • hostname 확인하기
    - hostnamectl
  • hostanem 변경하기
    - sudo hostnamectl set-hostname 바꾸려는호스트명
  • 파티셔닝 상태 확인하기
    - lsblk
    - LVM이 무엇인가? 설명할 수 있기

5. sudo

  • sudo 설치 되어있는지 확인하기
    - dpkg -l sudo
  • 새로운 사용자를 sudo 그룹에 추가하기
    - sudo usermod -aG sudo 새로운사용자명
    - sudo에 대한 엄격한 규칙, sudo를 사용하는 가치, 작동원리를 예를 들어서 설명하시오.
  • "/var/log/sudo"를 통해 확인하기
    - sudo mkdir /var/log/sudo/
    • sudo visudo를 통해 etc/sudoers

    • default secure_path 수정

    • 마지막줄에 다름을 입력

      Defaults    authfail_message="Authentication attempt failed."
      Defaults    badpass_message="Wrong password!"
      Defaults    log_input
      Defaults    log_output
      Defaults    requiretty
      Defaults    iolog_dir="/var/log/sudo/"
      
      authfail_message="메세지" : 권한 획득 실패시 띄울 커스텀 메세지
      badpass_message="메세지" : 암호 실패시 띄울 메세지
      log_input : sudo를 통해 입력된 input은 로그에 기록된다.
      log_output : sudo를 통해 입력된 output은 로그에 기록된다.
      requiretty : tty에 연결되지 않은 채로 sudo를 실행하는 것을 금지? ex. 쉘 스크립트 상에서 sudo 커맨드 수행 금지.
      iolog_dir="경로" : 로그를 저장할 경로.

6. UFW

  • UFW가 설치되어 있고 동작하고 있는지 확인하기
    - sudo ufw status verbose

- UFW는 무엇인가요? 설명하시오.

  • 현재의 rule들 확인하기
    - sudo ufw status numbered
  • 새로운 rule 추가하기
    - sudo vim /etc/ssh/sshd_config -> Port 8080
    • sudo ufw allow 8080
  • 삭제하기
    - sudo ufw status numbered
    • sudo ufw delete 규칙번호

7. SSH

  • ssh service가 설치 되어 있는지 확인하기, 실행여부 확인하기
    - apt search openssh-server
    • systemctl status ssh
  • 새로운 사용자료 terminal에서 접근하기.

8. script monitoring

9. Bonus

10. Fashcard

11. 참고자료

profile
Humble and Honest

0개의 댓글