김현우
  • 리눅스 한 학기 살기 - 1주차
    2025년 03월 16일 00시 52분 51초에 업로드 된 글입니다.
    작성자: kugorang

    들어가며

    대학교 마지막 학기에 재학 중이다.

     

    3학점만 들어도 졸업이 가능했으나, 또 무슨 심보가 발동 됐는지 결국 18학점 꽉 채워버렸다 (나란 인간 정말...) 매번 게임과 관련된 수업만 듣다 이번 학기에 백엔드 관련 수업만 4개를 넣었다. (심지어 전부 같은 교수님이다) 세계관이 겹치니까 나름 수업 듣는 재미도 있다.

     

    그 중, 내가 듣는 수업 중 "오픈소스SW개발방법및도구"라는 수업인데 과제 중에 "리눅스 한 학기 살기"라는 과제가 있다. 과제 개요는 아래와 같다.

     

    • 1주차 : 선정한 리눅스 설치
    • 2주차 ~ 12주차 : 매주 1개의 프로그램을 설치하고, 프로그램 당 2페이지 이상의 보고서를 작성함
      • 하나의 보고서에 매주 보고 내용을 추가하는 형태로 진행함
      • 자유 양식임
    • 13주차 : 감상문을 추가로 보고서에 작성함

     

    이미 42경산에서 우분투 22.04 LTS를 열심히 만지작 거리고 있는 나지만... 지름신이 또 도진 나머지 라즈베리파이 하나 갖고 싶어서 으흐흐 하며 나만의 서버를 하나 구축하기로 했다.

    라즈..베리..파이..5..게임.. 서버..(웃음)

     

    이번 주차는 1주차였기 때문에 라즈베리파이 구매 후 우분투 설치 및 원격 접속을 위한 ssh 설치와 공유기 포트포워딩 설정까지의 내용을 다룬다.

     

    라즈베리파이5

    03.06. 구매 [정품] 라즈베리파이5 16GB 스타트 키트 - 247,500원

     

    네이버스토어에서 구매했다. 이것저것 재고 따지다가 급 귀찮아져서 엘레파츠 스타트 키트를 구매했는데 나름 구성품이 알차고 좋았다. 아쉬운 점도 있었는데, SD 카드 용량 설정 옵션이 없었다는 것과 최소한의 조립 설명서가 빠져 있었다는 점이었다.

     

    물론 이제 이 나이 먹고 어느 정도 짬이 찼기에 알잘딱깔센하게 조립을 잘 해냈지만, 처음 조립하는 분들은 약간의 어려움이 있지 않을까 하는 생각이 든다.

    거실 TV에 라즈베리파이 연결한 모습. 부트로더만 봐도 가슴이 웅장해졌다.

     

    아직까지도 까만 화면에 흰 색 글씨를 보면 가슴이 웅장해진다. 어머니께 저 지저분한 건 뭐냐고 핀잔을 들어서 그런 건 아닐거다.

     

    Ubuntu 24.04 LTS

    우분투 설치는 아래의 링크를 참고했다.

    https://pinkwink.kr/1490

     

    Raspberry Pi 5에 Ubuntu 24.04 설치하고 ssh 서버 설정하기

    최근 저는 라즈베리파이5 보드를 가지고 여러 작업을 해보고 있는데요. 그 중 하나가 저희가 출시하는 교육 컨텐츠의 교보재 역할을 하는 로봇인 Pinky의 라인업 중에서 Blue 모델이 또 라즈베리파

    pinkwink.kr

     

    Raspberry Pi Imager라는 도구를 활용하여 생각보다 금방 설치할 수 있었다. 다만, 이상하게 맨 처음 Imager를 설치한 직후에는 우분투를 선택할 수 없어서 애를 먹었다. 중간에 Ubuntu 24.04 LTS가 목록에서 나왔는데 왜 처음에 안 나왔는지 아직도 미스터리다.

     

    혹시나, 이 글을 보시는 분들 중에서도 Imager에서 Ubuntu가 안 보인다면 시간 간격을 두고 다시 시도해보시면 좋을 것 같다.

     

    우분투 24.04 LTS가 설치된 모습

     

    어찌어찌 설치가 된 우분투... 그런데 ㅋㅋ 경산에 키보드와 마우스가 모두 있어서 정작 운영체제 설정을 못하는 상태가 발생했다. ㅠㅠ 그래서 팔자에 없던 로지텍 유선 키보드 마우스 세트를 당일 배송으로 얼른 구매했다.

     

    03.09. 구매 로지텍코리아 로지텍 MK200 New 유선 콤보 키보드 마우스 세트 - 19,900원

     

    요즘 네이버 스토어가 일요일에도 배송을 해줘서 토요일에 주문한 제품을 일요일에 수령한 경험도 해봤다. 그리고 생각보다 유선 키보드 키감이 좋더라. 역시 키보드는 로지텍이다 bb

     

    ssh 원격 접속

    우분투 데스크탑 설정까지 모두 마치고 원격 설정을 진행했다.

    sudo apt update
    sudo apt install
    sudo apt upgrade
    sudo apt autoremove

    이 네 개의 커맨드부터 얼른 치고

    sudo apt install net-tools openssh-server

    커맨드를 입력해서 ssh 설치를 진행했다.

    sudo apt install ufw

    그리고 방화벽까지 설정 완료! 이후 공유기 포트포워딩 설정과 서브 도메인의 A 레코드까지 설정 완료해서 정상적으로 외부 ip를 통해 ssh 접속이 되는 것까지 확인했다.

     

    문득 `net-tools`와 `openssh-server`에 대해 궁금해져서 ChatGPT의 o1 pro 모델의 Deep Research로 조사를 시켜봤다.

     

    net-tools의 역할과 기능

    net-tools는 리눅스 커널의 네트워크 시스템을 제어하기 위한 기본적인 네트워크 유틸리티 모음 패키지이다. 이 패키지에는 ifconfig, netstat, route, arp, nameif 등의 도구가 포함되어 있어 네트워크 인터페이스 설정, 라우팅 테이블 조회, ARP 캐시 확인 등 다양한 작업을 수행할 수 있다 (Install net-tools on Ubuntu using the Snap Store | Snapcraft). 예를 들어 ifconfig 명령으로 네트워크 인터페이스의 IP 주소나 상태를 조회하거나 설정할 수 있고, netstat 명령으로 현재 열려 있는 포트나 활성화된 네트워크 연결 정보를 확인할 수 있다. 이러한 도구들은 시스템의 네트워크 구성을 확인하고 문제를 진단하는 데 유용하다.

    net-tools 패키지는 과거부터 리눅스 시스템에서 표준적으로 사용되어 왔지만, 오랫동안 큰 업데이트 없이 유지보수가 중단된 상태이다 (ip, ss (iproute2 utils) - 더 빠르고 정확한 ifconfig, netstat 대체 명령어). 실제로 ifconfignetstat 등의 도구는 IPv6 지원이 부족하고 기능 확장이 어려워서 현대 리눅스에서는 iproute2 패키지의 ip, ss 등의 명령어로 대체되어 가고 있다 (command line - ifconfig missing after Ubuntu 18.04 install - Ask Ubuntu) (ip, ss (iproute2 utils) - 더 빠르고 정확한 ifconfig, netstat 대체 명령어). 그럼에도 불구하고 여전히 많은 기존 시스템 관리자들이 익숙함이나 기존 스크립트 호환성 때문에 net-tools를 설치하여 사용한다. 사용 사례로는 예를 들어, 서버에 새 네트워크 인터페이스를 추가하고 ifconfig로 IP를 설정하거나, netstat -tulnp로 서버에서 실행 중인 서비스의 포트 개방 상태를 점검하는 일이 있다.

     

    OpenSSH Server의 역할과 기능

    OpenSSH Server (openssh-server)는 원격 시스템에 SSH (Secure Shell) 프로토콜로 접속할 수 있게 해주는 SSH 서버 데몬이다. 이를 통해 관리자는 원격에서 서버의 터미널에 로그인하여 명령을 실행하거나, 파일 전송(SCP/SFTP) 및 포트 포워딩 등의 작업을 암호화된 보안 통신으로 수행할 수 있다 (OpenSSH). OpenSSH는 통신 내용을 모두 암호화하여 네트워크 상의 도청이나 세션 하이재킹과 같은 공격을 방지하며, 공개키 인증, 비밀번호 인증, GSSAPI 등 여러 인증 방법을 지원한다 (OpenSSH).

    openssh-server가 필요한 이유는 리눅스 서버 운영에서 원격 접속 관리의 표준 수단이 SSH이기 때문이다. SSH 서버를 실행하면 관리자는 데이터센터에 가지 않고도 원격에서 서버를 안전하게 조작할 수 있다. 예를 들어, 클라우드에 생성한 Ubuntu 서버에 패키지를 설치하거나 설정을 변경하려면, 해당 서버에 OpenSSH 서버가 설치되어 있어야 로컬 PC에서 ssh user@서버주소로 접속해 작업을 수행할 수 있다. 또한 SSH는 telnet과 달리 암호화되어 있어 기업 환경에서도 보안이 요구되는 원격 관리에 필수적으로 사용된다. 일반적인 사용 사례로, 개발자가 회사 내부망의 리눅스 서버에 SSH로 접속해 어플리케이션을 배포하거나 로그를 확인하고, 시스템 관리자가 여러 대의 서버를 Ansible 등의 도구로 일괄 관리할 때도 SSH를 기반으로 작업을 수행하는 경우를 들 수 있다.

     

    정말 잘 알려준다. 공부하기 좋은 세상이다.

     

    iproute2 패키지는 이번에 처음 알게 되었는데, 다음주에 한 번 설정을 해서 net-tools를 대체할 수 있으면 대체해 봐야겠다.

     

    마치며

    이상으로 리눅스 한 학기 살기의 1주차 포스팅을 마치려고 한다. 똥손이라 라즈베리파이 구매 후 조립 과정에서 잘못 조립하면 어쩌나 하는 마음에 덜덜 떨었지만, 무사히 조립을 마친 것에 무한한 감사를 표한다.

     

    또한 우분투와 ssh를 통해 언제 어디서든 외부 환경에서 내 라즈베리파이에 접속할 수 있는 게 정말 신기한 것 같다. 내 kugora.ng 도메인을 이렇게 잘 활용할 줄이야.

     

    여튼 이번 주차 글은 여기까지로 마치며, 다음 주차부터는 본격적으로 리눅스에 이것저것 설치를 해보며 해당 프로그램이 무엇인지에 대한 포스팅을 진행하게 될 것 같다. 그럼 이만.

    728x90
    댓글