본문 바로가기
42Seoul/Inception

Inception 기초 설정

by 하고싶은건많은놈 2023. 3. 3.

Inception 과제에 필요한 가상환경으로 Debian Buster를 사용 (penultimate stable version)

born2beroot와 다르게 그래픽 환경을 사용하지 말라는 말이 없었고, 가상환경 자체에 대한 설정 지시가 없기에 편하게 설치

 

필요한 패키지들 설치

  • apt update
  • apt install sudo (설치되어있었던것같기도)
  • apt install ca-certificates
    SSL 통신이 가능하도록 CA 인증서를 획득
  • apt install curl
    curl(client for urls) : 다양한 통신 프로토콜을 이용하여 데이터를 전송하기 위한 라이브러리 및 커맨드라인 도구를 제공하는 오픈소스 프로젝트
  • apt install software-properties-common
    PPA(Personal Package Archive, 개인 패키지 저장소)를 추가 또는 제거하는데 사용
  • apt install make
  • apt install vim
  • apt install git
  • apt install systemd
    시스템 부팅 후 가장 먼저 생성된 후 다른 프로세스를 실행하는 init 역할을 대체하는 데몬, 1번 프로세스 차지
    systemd를 관리하기 위한 도구인 systemctl 사용 가능

Copy & Paste 문제 해결

두가지 해결방법이 존재

  • VirtualBox 자체에서 해결
    1. VM 실행후 devices -> Insert Guest Additions CD Image
    2. shared Clipboard와 Drag and Drop을 Bidirectional으로 설정
    3. apt install -y build-essential dkms linux-headers-$(uname -r)
      커널 모듈을 빌드하기 위한 패키지 설치 
    4. mkdir -p /mnt/cdrom
      마운트용 디렉토리 생성
    5. mount /dev/cdrom /mnt/cdrom
      Guest Image 마운트
    6. 마운트된 디렉토리로 이동하여 sh ./VBoxLinuxAdditions.run으로 Guest Image의 실행파일 실행
    7. shutdown -r now로 재실행
    8. 놀랍게도 드래그시 복사, 휠버튼 클릭시 붙여넣기가 됨
  • ssh를 통한 우회 접속으로 해결
    1. /etc/ssh/sshd_config 파일 오픈
      파일이 존재하지 않을시 apt-get install openssh-client oepnssh-server
    2. sshd_config 파일 내에 Port 42 지정, PermitRootLogin yes로 변경
    3. service ssh restart / service sshd restart
    4. apt install ufw 이후 ufw allow 42
      추후에 쓰게될 80번(http) 포트와 443번(https) 포트도 열어두면 좋음
    5. vm 종료 후 VirtualBox 설정->네트워크->고급->포트포워딩에서 각 포트 연결
    6. ~/.ssh/known_hosts 파일 내에 [localhost]로 시작하는 항목이 이미 존재한다면 삭제
    7. 이제 호스트 os에서 ssh <계정(root 등)>@localhost -p 42로 접속 가능
    8. 편하게 iterm 등에서 마음껏 복붙

Docker 및 Docker-compose 설치

debian에서의 Docker 설치 참고링크

https://www.hostwinds.kr/tutorials/install-docker-debian-based-operating-system

 

Docker 설치 (Debian 기반 운영 체제) | Hostwinds

Docker는 클라우드 컴퓨팅 요구를위한 매우 인기있는 오픈 소스 컨테이너 관리 시스템입니다.Docker Containers에는 몇 가지 유사점과 차이점이 있습니다. 우리가 제공하는 가상 머신 ...에핵심 차이점

www.hostwinds.kr

  1. curl -4fsSL https://download.docker.com/linux/debian/gpg | apt-key add-
    • -f : HTTP 오류시 출력 없이 자동으로 실패
    • -s : 메시지를 출력하지 않음
    • -S : -s와 함께 사용시 에러 메시지를 출력
    • -L : 서버 링크가 다른 url로 리다이렉트 되어있는 경우 해당 url로 접속
    • -4 : fsSL만으로 오류가 뜰 경우, 해당 옵션으로 IPv4로 한정시켜 오류 해결
    • apt-key : apt가 패키지를 인증하는데 사용하는 키 목록을 관리하는 패키지, add 옵션으로 신뢰할 수 있는 키 목록에 key 등록
  2.  add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
    도커를 설치할 수 있도록 패키지를 저장소(Repository)에 추가
  3. apt update
    apt 패키지 색인이 최신 상태인지 확인
  4. apt install docker.io
    도커 설치
  5. chmod 666 /var/run/docker.sock
    도커 소켓의 권한을 설정하여 다른 사용자의 접근을 허용
  6. curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    도커 컴포즈 설치
  7. chmod +x /user/local/bin/docker-compose
    도커 컴포즈 실행 권한 부여
  8. su -c 'printf "{\n\t\"live-restore\": true\n}" > /etc/docker/docker.json’
    도커 서비스 재시작시 컨테이너를 종료하지 않도록 설정
  9. systemctl restart docekr
    도커 서비스 재시작

Docker 권한설정

docker 및 docker-compose를 문제없이 사용하기 위해서는 사용자에게 권한이 필요

  • su -
    root로 사용자 전환
  • sudo usermod -a -G sudo <username>
    사용자를 sudo 그룹에 추가
  • sudo usermod -a -G root <username>
    사용자를 root 그룹에 추가
  • sudo visudo로 /etc/sudoer 수정
    양식에 맞춰서 원하는 user에게 ALL=(ALL:ALL) ALL로 권한 부여

Localhost 설정

로컬 환경에서 https를 사용해 엑세스하기 위해서는 TLS 인증서가 필요

따라서 mkcert를 사용하여 로컬 환경에서 신뢰할 수 있는 인증서를 생성, http로 동작하는 localhost를 https로 동작하도록 변경

운영체제별 mkcert 설치는 공식 gitgub 페이지 참조

https://github.com/FiloSottile/mkcert#installation

 

GitHub - FiloSottile/mkcert: A simple zero-config tool to make locally trusted development certificates with any names you'd lik

A simple zero-config tool to make locally trusted development certificates with any names you'd like. - GitHub - FiloSottile/mkcert: A simple zero-config tool to make locally trusted developmen...

github.com

  1. apt install libnss3-tools
  2. curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64" chmod +x mkcert-v*-linux-amd64 sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert
  3. mkcert --version으로 설치 확인
  4. vim /etc/hosts에서 127.0.0.1에 name.42.fr 추가
    서브젝트의 요구에 따라 로컬 도메인의 별칭인 127.0.0.1을 name.42.fr로 변경
  5. mkcert name.42.fr로 변경한 도메인에 대한 인증서 생성
  6. 생성된 인증서와 키를 nginx 서버가 읽을 수 있도록 확장자 변경
    mv name.42.fr-key.pem name.42.fr.key
    mv name.42.fr.pem name.42.fr.crt

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

Inception 개념  (0) 2023.03.02

댓글