데스크탑을 서버로 만들기

박상준·2024년 4월 18일
0

리눅스

목록 보기
1/1

준비물

  1. USB
  2. 리눅스 배포판 ⇒ 우분투 20.04 를 사용예정
  3. 리눅스 ISO 파일
  4. USB 부팅 가능 만들기 도구
    1. Rufus, UNetbootin 등의 도구를 사용하여 다운로드한 ISO 파일을 USB 메모리 스틱에 복사하고, USB 를 부팅가능하게 만들어야함.

사전 준비

  1. ISO 파일을 다운로드

    • 일단 Get Ubuntu | Download | Ubuntu 접속

    • Desktop 과 Server 가 보인다.

    • 뭘 받아야할까?

      우분투 데스크탑

      • GUI 가 탑재되어 있다. 마우스와 윈도우를 사용하여 컴퓨터 조작이 가능하다

      우분투 서버

      • CLI 를 사용한다. 별도의 명령어로 조작한다.
      • 보통 서버용도로는 CLI 를 사용하는 것이 일반적이다. 서버를 경량화시켜야하기에 일반적으로
        • 웹 서버는 우분투 서버를 사용하여 설치한다.
    • 일단 20.04 버전을 다운받을 것이기다

    • Alternative downloads 이동

      • 비트토렌트에서 이미지를 다운받자
    • 토렌트에서 이미지 다운로드중

      • iso 파일이 이름이 amd64? 이건 amd cpu 에만 적용되는 것 아닌가?
        • 답변
          • 아니다.
          • amd64 는 해당 이미지가 AMD CPU 에 적용되는 것을 의미하지 않고, 64비트의 x86 아키텍처를 지칭하는 용어이다.
          • intel 과 AMD 모두에서 사용되는 64비트 프로세스를 위한 것이다.
          • 해당 용어는 역사적으로 AMD 가 최초로 64비트 확장을 x86 아키텍처에 도입했기 때문에 이렇게 불리는 것이라고 한다.
  2. Rufus 다운로드 ( Rufus - 간편하게 부팅 가능한 USB 드라이브 만들기 )

    1. 부팅가능 USB 생성 도구 이다. 다운받으면

    • 요런식으로 나온다

      • 영구 파티션크기

        • 라이브 USB를 만들 때 사용하는 옵션이다.
        • OS 를 직접 설치하지 않고도 USB 드라이브에서 OS 를 부팅하고 실행할 수 있게 도와주는 도구라고 한다.
        • 하지만, 난 직접 설치를 할 것이기에, 0 으로 설정한다.
      • 파티션 구성

        • MBR(Master Boot Record)
          • 오래된 파티션 스타일이다.
          • 거의 모든 OS에서 지원되며, 구형의 BIOS 에서 호환된다.
          • 최대 4개의 파티션을 지원한다.
          • 최대 2TB의 디스크 크기를 지원한다.
        • GPT(GUID Partition Table)
          • MBR 의 현대적인 파티션 스타일이다
          • UEFI ( Unified Extensible Firmware interface ) 를 지원하는 최신 시스템에서 사용된다.
          • 이론적으로 128개 이상의 파티션을 지원한다.
          • 2TB 이상의 디스크 크기를 지원한다.
        • 현재 내 서버 컴퓨터는 구형 데스크탑이라 MBR 방식을 선택한다
          • 사실 구형의 기준은 잘 모르겠지만, 사실 대용량 하드를 사용할 것도 아니다.
      • 파일 시스템

        • FAT32

          • 모든 OS 에 호환.
          • 단일 파일 크기 최대 4GB 까지 파티션 크기를 최대 8TB(현실적으로 2TB) 까지 지원
          • 기능이 NTFS 에 비해 약함
        • NTFS

          • 윈도우 환경에서 사용
          • 맥에서는 일반적으로 읽기는 가능하지만, 쓰기가 불가능하다고 한다.
          • 매우 큰 파일과 파티션 지원
        • 뭐 그냥 FAT32 를 선택해도 문제 없다.

        • 예를 눌러 진행

  3. usb 가 정상적으로 부팅 usb 로 만들어짐

  4. 설치할 서버 컴퓨터에서

    [Linux] Ubuntu 20.04 server 설치 과정

    • 이거 참조하여 진행하면된다.
    • 파티션같은 경우..
      • SSD 120 GB 기준
      • 기본 파티션 구성
      • / (루트 파티션): 20GB
        시스템의 모든 파일과 디렉토리의 기본이 되는 파티션입니다. 운영 체제와 필수 패키지가 설치됩니다.
      • /boot: 2GB
        부팅에 필요한 커널, 초기 RAM 디스크 이미지(initrd), 부트로더 설정 파일 등이 저장됩니다. 최신 시스템에서는 부트로더가 많은 공간을 차지할 수 있으므로 넉넉하게 할당합니다.
      • /usr: 30GB
        대부분의 사용자 프로그램과 라이브러리가 설치되는 곳입니다. 시스템의 대부분의 응용 프로그램이 이곳에 설치됩니다.
      • /var: 20GB
        로그 파일, 메일 큐, 캐시 데이터 등이 저장되는 곳입니다. 웹 서버나 데이터베이스 서버를 운영할 경우, 이 파티션에 많은 데이터가 쌓일 수 있습니다.
      • /home: 나머지 용량
        사용자의 개인 데이터와 설정 파일이 저장되는 곳입니다. 사용자가 많거나, 개인 데이터를 많이 저장할 경우 더 많은 공간을 할당해야 할 수 있습니다.
      • swap 파티션 ( 나중에 설치 후에 스왑 파티션 )
        • RAM의 2배, 최대 8GB 권장
          시스템 메모리가 부족할 때 사용되는 공간입니다. 현대 시스템에서는 RAM이 충분히 크기 때문에, 과거만큼 많은 swap 공간이 필요하지 않을 수 있습니다. 4GB 또는 8GB 정도면 충분함 ㅇㅇ
  • 우분투에서 설치한 플러그인
    • 콘솔에서 마우스 사용하는법
      • gpm 서비스 활성화 및 설치
        • sudo apt-get install gpm
      • 시작, 활성화
        • sudo systemctl start gpm
        • sudo systemctl enable gpm
    • nano 텍스트 편집기
      • sudo apt install nano
    • git
      • sudo apt install git
  • 블루투스 동글 인식하도록 설정
    1. 시스템 업데이트

      1. sudo apt update
      2. sudo apt upgrade
    2. 블루투스 패키지 설치
      1. sudo apt install bluez bluez-tools

      블루투스 동글중에 리눅스 배포판을 지원하지 않는 경우가 있기에, .. 내 동글이 지원하는지 체크해야한다. 이걸로 3시간은 날린거같다.

공유기 DHCP 설정

DHCP (Dynamic Host Configuration Protocol)

  • 동적 호스트 구성 프로토콜로서, 네트워크 상의 장치들에게 자동으로 IP 를 할당해주는 시스템이다.
  • 해당 프로토콜을 통하여 네트워크 관리자는 수동으로 각 장치에 IP 주소를 설정할 필요 없이, 네트워크에 연결된 모든 장치들이 자동으로 IP 주소를 받을 수 있도록 할 수 있다.

  • 요런 식으로 공유기에 연결된 기기는 동적으로 IP 를 할당받게 되는 것이다.

DHCP 작동 원리

  1. 장치 연결

    • 네트워크에 새로운 장치(스마트폰, 노트북) 가 연결되면, 해당 장치는 네트워크 상의 DHCP 서버에게 IP 주소를 요청한다.
  2. IP 주소의 할당

    • DHCP 서버는 사용 가능한 IP 주소 풀에서 하나의 IP 주소를 선택하여 해당 장치에 할당한다.
    • 해당 과정에서 서버는 장치에게 IP 주소외네 서브넷 마스크, 기본 게이트웨이, DNS 서버 주소 등 네트워크 구성에 필요한 추가 정보를 제공한다.

    서브넷 마스크

    • IP 주소를 2가지 부분으로 나누는 역할을 한다.
      1. 네트워크 부분
      2. 호스트(장치) 부분 이다.
      • 이를 통하여 어떤 IP 주소가 같은 네트워크에 속하는지, 아니면 다른 네트워크에 속하는지를 구분할 수 있다.
    • 예를 들어
      • 서브넷 마스크가 255.255.255.0 이라면
        • IP 주소의 처음 세 부분 (ex→ 192.168.1 ) 은 네트워크
        • 마지막 부분 (ex → .1 , .2 , .3 ) 은 그 네트워크 내의 특정 장치를 말한다.

    기본 게이트 웨이

    • 네트워크 상에서 다른 네트워크로 데이터를 전송할 때 사용되는 장치의 주소.
    • 보통은 인터넷에 연결된 라우터의 IP 주소가 된다.
    • 예를 들어
      • 집이나 사무실의 네트워크에서 인터넷으로 나가는 경우, 기본 게이트웨어를 통하는데
      • 해당 주소는 네트워크 내의 장치들이 해당 주소로 보내면 인터넷으로 갈 수 있당게 라고 알 수 있게 해준다.

    DNS 서버 (Domain Name System Server)

    • 인터넷 상의 도메인 이름(ex → [www.google.com](http://www.google.com) ) 을 IP 주소로 변환해주는 역할을 한다.
    • 우리가 웹 브라우저에 웹사이트 주소를 입력하는 경우, 사실은 그 웹사이트의 IP 주소로 접속하는 것임
    • DNS 서버가 없으면, 우리는 모든 웹사이트의 IP 주소를 기억하여 직접 입력해야함.
    • DNS 서버 덕분에 우리는 기억하기 쉬운 도메인 이름을 사용할 수 있는 것이다.

내 우분투 서버 고정 IP 할당 및 포트포워딩 설정

고정 IP

nano /etc/netplan/01-network-manager-all.yaml

  • 나노 안깔려있음 sudo apt-get install nano 로 깔아주셈
  • 리눅스 서버 고정 IP 부여관련
    • 내 공유기 설정에 따르면, LAN 의 IP 주소의 범위는 192.168.0.1 에서 시작하며, DHCP 서버는 192.168.0.100 에서 192.168.0.249 사이의 IP 주소를 동적으로 할당한다.

    • 고정 IP 주소를 설정하려면, 해당 범위 밖의 주소를 사용하거나 , DHCP 서버에 의해 할당되지 않는 주소를 사용해야한다.

    • 기존 설정에서 192.168.219.106/24 로 설정된 IP 주소를 공유기 설정에 맞게 192.168.0.x 범위 내의 적절한 고정 IP 주소로 변경한다.

      # This is the network config written by 'subiquity'
      network:
        version: 2
        ethernets:
          enx705dccff73d7:
            addresses:
              - 192.168.0.2/24
            gateway4: 192.168.0.1
            nameservers:
              addresses:
                - 111.118.0.1
                - 111.118.0.11
    • 게이트웨이 0.1 을 통하여 주소를 항상 192.168.0.2 로 고정하는 것이다.

  • ctrl + o 로 저장하고 ctrl + x 로 파일을 빠져나오면 됨.

포트포워딩

  • ifconfig 를 통하여

    • inet 에 적힌 사용중인 IP 를

      • 포트포워딩에 설정해주면 된다.
    • 왜 포트포워딩을 해줘야하느냐?

      • 네트워크 보안 장치(방화벽) 가 외부에서 들어오는 트래픽을 내부 네트워크의 특정 IP 주소와 포트로 전달하도록 설정하는 과정이다.
      • SSH 를 사용하여 외부에서 접근이 가능하도록 하여야하기에, 외부포트로는 22 내부 포트 22 설정으로 SSH 툴에서 각각 원격 접근이 가능하도록 설정한다.

다 설정했다면

ssh 툴에서 접근한다면

  • 외부에서도 공인 IP 로 접근이 가능해진다.
  • 물론 원래 개발환경이든 운영이든 고정된 IP 를 통해 접근하도록 해야한다.
profile
이전 블로그 : https://oth3410.tistory.com/

0개의 댓글