Server

  • 서버 모니터링: netdata

    netdata netdata는 서버의 현재 상태를 보여주는 모니터링 툴로서, 상세한 내용을 미려한 UI로 출력해주고 자동화된 설치 스크립트를 제공하기 때문에 설치와 관리가 쉽다. 데모는 https://london.my-netdata.io/default.html 에서 확인해볼 수 있다. netdata 설치 curl -V netdata 설치 스크립트는 curl 명령을 이용하므로 먼저 위 명령어로 (V는 대문자) 우분투 서버에 curl이 설치되어…

  • 광고 차단: Pi-hole

    Pi-hole Pi-hole은 광고 등의 원하지 않는 컨텐츠를 차단하는 기능을 가진 DNS로서, 우분투 서버에 Pi-hole을 설치하고 라우터(인터넷 공유기)의 DNS를 우분투 서버로 지정하면 라우터 하단에 연결된 모든 기기에 Pi-hole이 적용된다. Pi-hole 체계 작동 방식 접속 요청된 URI (광고) 가 Pi-hole의 차단 목록에 등록되어 있으면 Pi-hole은 이 URI를 IP…

  • 가상 머신: QEMU-KVM

    본문은 아래의 설치 환경을 바탕으로 작성되었으며, 다른 환경에서는 다른 결과가 나타날 수 있습니다. · Ubuntu Server: 20.04 LTS Legacy Server · Ubuntu Repository: us.archive.ubuntu.com · qemu-kvm: 4.2-3ubuntu6.2 · libvirt-daemon-system: 6.0.0-0ubuntu8.1 · virtinst: 2.2.1-3ubuntu2 QEMU-KVM 리눅스의 표준적인 가상 머신 프로그램으로 QEMU이 있다. QEMU는 커널 레벨에서 하드웨어 가상화를…

  • DLNA: miniDLNA

    DLNA 스마트 TV, 네트워크 플레이어 등에서 지원하는 DLNA 기능을 이용해서 홈 서버에 저장된 미디어 파일을 재생하려면 우분투 서버에 DLNA 서버를 설치한다. DLNA 서버 중에서 여기서는 아주 간편한 miniDLNA를 설치한다. miniDLNA 설치 sudo apt update sudo apt install minidlna 패키지 저장소 정보를 업데이트하고, minidlna 를 설치한다. miniDLNA…

  • 미디어 서버: Plex

    Plex 어느 기기에서나 별도의 조작 없이 동영상을 바로 시청할 수 있도록 서버 측에서 실시간으로 트랜스코딩해서 스트리밍하는 미디어 서버로 미려한 UI를 제공하는 Plex가 널리 쓰인다. Plex를 이용하면 특히 모바일 기기에서 코덱을 신경쓸 필요 없이 웹을 통해서 바로 재생할 수 있고, 원본을 직접 재생하는 것보다 데이터 사용량도 줄일…

  • 외부 클라우드 스토리지: Rclone

    Rclone 구글 드라이브, 원드라이브 등의 외부 클라우드 스토리지 서비스와 우분투 서버를 동기화하는 프로그램으로 Rclone이 널리 쓰인다. Rclone을 이용하면 외부 클라우드 스토리지와 우분투 서버 사이에 데이터를 주고 받을 수 있고, 외부 클라우드 스토리지를 우분투 서버에 드라이브 형태로 마운트할 수도 있다. 나의 경우에는 Microsoft 365를 구독하면서 MS Office…

  • 클라우드 스토리지: Nextcloud

    본문은 아래의 설치 환경을 바탕으로 작성되었으며, 다른 환경에서는 다른 결과가 나타날 수 있습니다. · Ubuntu Server: 20.04 LTS Legacy Server · Ubuntu Repository: us.archive.ubuntu.com · Docker Repository: download.docker.com · docker-ce: 19.03.11 · docker-compose: 1.26.0 · Nextcloud: 19.0.0 Official image on Docker Hub Nextcloud 우분투 서버에 설치할…

  • 토렌트: Transmission

    Torrent 우분투 서버에 토렌트 클라이언트 프로그램을 설치하면 홈 서버에서 직접 토렌트를 다루고 파일을 주고받을 수 있다. 리눅스의 토렌트 클라이언트 프로그램으로는 트랜스미션 (Transmission) 이 널리 쓰인다. Transmission 설치 sudo apt update sudo apt install transmission-daemon 패키지 저장소 내용을 업데이트하고, 트랜스미션을 설치한다. sudo mkdir -p /home/MySMB/Torrent/Watch 트랜스미션으로 전송받은…

  • VPN: IKEv2

    본문은 아래의 설치 환경을 바탕으로 작성되었으며, 다른 환경에서는 다른 결과가 나타날 수 있습니다. · Ubuntu Server: 20.04 LTS Legacy Server · Ubuntu Repository: us.archive.ubuntu.com · strongswan: 5.8.2-1ubuntu3.1 VPN VPN (Virtual Private Network)은 외부에서 내부 네트워크에 접속할 수 있게 해주는 기능으로, 이 접속은 암호화 되기 때문에 보안성도…

  • FTPS: vsftpd

    FTPS 서버 – 클라이언트 사이의 파일 전송에 널리 사용되는 FTP 서버를 구축한다. 이때 이전 글 TLS 인증서: Let’s Encrypt에서 발급받은 인증서를 결합하면 연결이 암호화되어 보안이 강화되는 FTPS를 사용할 수 있다. 리눅스의 FTP 서버 프로그램으로 널리 쓰이는 vsftpd를 이용해서 FTPS를 구축한다. vsftpd 설치 sudo apt update sudo…

  • 웹사이트: WordPress

    WordPress 워드프레스는 전 세계에서 가장 널리 쓰이는 웹사이트 저작 툴이다. 워드프레스는 php로 작성되었고 데이터베이스로 MySQL 또는 MariaDB를 사용하는데 이 중에서 MariaDB를 선택했다. php 설치 및 설정 sudo apt update sudo apt install php-fpm sudo apt install php php-curl php-gd php-imagick php-mbstring php-mysql php-xml php-zip 패키지 저장소…

  • 웹 서버: Nginx

    Nginx 웹사이트 등의 웹 기반 서비스를 운영하려면 웹 서버가 필요하다. 또한 웹 서버의 리버스 프록시 기능을 이용하면 홈 서버의 여러 기능을 웹에서 확인하는 데에도 사용할 수 있다. 여러 가지 웹 서버 중에서 가볍고 성능이 좋은 Nginx를 설치한다. 도메인 연결 자신의 도메인이 이용하는 DNS 서비스에서 A 레코드로…

  • TLS 인증서: Let’s Encrypt

    TLS 인증서 도메인을 확보했으면 그 도메인에 대한 보안 상태를 인증해주는 TLS 인증서를 발급받을 수 있는데, 이 인증서는 웹사이트의 https 접속뿐만 아니라 보안이 필요한 FTPS, VPN 등의 여러 가지 연결에도 사용할 수 있다. Let’s Encrypt TLS 인증서를 발급하는 여러 기관 중에서 Let’s Encrypt는 무료로 DV (Domain Validation)…

  • DDNS: CloudFlare

    DDNS 홈 서버의 공인 IP 주소에 도메인을 연결해두면 외부에서 홈 서버의 SSH, FTP, VPN 등에 접속할 때 숫자로 된 IP 주소 대신에 도메인을 입력할 수 있어서 편리하다. 다만 가정에 서비스되는 인터넷 회선은 대부분 유동 IP 주소 서비스이기 때문에 공인 IP 주소가 변경될 가능성이 있다. 그래서 IP…

  • 도메인과 DNS

    도메인 홈 서버의 공인 IP 주소에 도메인을 연결해두면 외부에서 홈 서버의 SSH, FTP, VPN 등에 접속할 때 숫자로 된 IP 주소 대신에 도메인을 입력할 수 있어서 편리하다. 아래에서는 도메인 연결의 일반적인 사항을 알아본다. 도메인과 DNS 도메인은 DNS (Domain Name System) 를 통해서 서버 컴퓨터와 연결된다. 예를…

  • 네트워크 파일 공유: SMB

    SMB 네트워크 상에서 파일을 공유하는 방법으로 가장 널리 쓰이는 것이 SMB (Server Message Block) 이다. 윈도우 OS의 기본 공유 방식이고, macOS에서도 Mavericks 이후부터 기본으로 채택하고 있다. 리눅스에서는 Samba를 사용해서 SMB를 이용할 수 있다. 또한 Btrfs 스냅샷이 적용된 볼륨에 윈도우 OS로 SMB를 통해 접근하면 개별 파일의 예전…

  • 파일 복원: Btrfs 스냅샷

    Btrfs 스냅샷 리눅스의 여러 가지 파일 시스템 중에서 Btrfs는 자신의 서브볼륨 구조를 이용해서 파일을 예전 상태로 되돌릴 수 있는 스냅샷 기능을 제공한다. Btrfs 형식으로 포맷된 볼륨에서 원하는 디렉토리를 원하는 시점에 스냅샷으로 저장해두면 언제든지 저장했던 상태로 되돌릴 수 있다. 디렉토리 전체를 되돌리는 것은 물론이고 특정 파일만 되돌리는…

  • SSH 2단계 TOTP 인증

    SSH 로그인 보안을 강화하기 위해 구글 Authenticator (OTP) 앱을 이용한 시간 기반 OTP (TOPT) 인증을 설정할 수 있다. 모바일 앱 준비 먼저 사용하는 모바일 기기에 구글 Authenticator (OTP) 앱을 설치한다. 안드로이드 / iOS 서버측 설치 sudo apt update sudo apt install libpam-google-authenticator 우분투 서버에서, 패키지 저장소…

  • 우분투 서버 기본 설정

    우분투 서버를 설치한 다음에는 기본적인 보안 및 방화벽 설정을 먼저 진행한다. 관리자 권한 리눅스 시스템의 모든 권한을 가진 사용자는 root인데, 우분투 서버에서는 보안상의 이유로 root 계정이 기본적으로 잠겨있다. 하지만 root가 아닌 일반 사용자라도 sudo 그룹에 포함되어 있다면 명령어 앞에 sudo 명령을 추가하는 방식으로 root 권한이 필요한…

  • SSH 접속 방법

    SSH SSH는 원격의 시스템에 접속해서 명령을 실행할 수 있게 하는 암호화된 프로토콜이다. 우분투 서버에서는 OpenSSH가 SSH 접속을 담당하는데 우분투 서버를 설치하는 과정에서 OpenSSH server를 설치했다면 원격에서 우분투 서버에 로그인하고 명령을 실행할 수 있다. 포트 포워딩 SSH는 기본적으로 22번 포트를 사용한다. 라우터 (인터넷 공유기) 를 사용하고 있다면…

  • 우분투 서버 20.04 설치

    우분투 서버 홈 서버의 OS로는 서버 분야에서 뛰어난 성능을 발휘하는 리눅스가 적당한데, 그중에서 우분투 서버는 많은 사용자들로부터 검증받은 OS이고, 그만큼 관련된 게시물도 많아서 도움을 얻기도 수월하다. 우분투는 매년 4월과 10월에 새 버전이 배포되는데, 짝수 연도의 4월 버전이 LTS (Long Term Support: 장기간 지원) 버전이다. LTS 버전은…

  • 하드웨어와 전기요금

    하드웨어 선택 홈 서버를 만들기 위해 하드웨어를 선택할 때에는 현재 시중에 나와 있는 완제품 NAS의 하드웨어를 참고해볼 수 있다. 요즘의 완제품 NAS는 그 본래의 네트워크 연결 스토리지 (Network Attached Storage) 개념을 넘어서 서버라고 불러도 좋을 정도로 많은 기능을 제공하는데, 성능이 검증된 NAS 제품이라면 그 하드웨어 구성을…