개발자 블로그를 위한 두걸음

블로그 호스팅 방향이 정해졌으니 블로그를 위한 작업을 한 걸음 더 나아가 보겠습니다. 서버를 당장 구매하기 보다는 이미 사용했던 컴퓨터에 이용해 서버로 구축해 보려고 합니다. 실제 운영중인 이 블로그는 포스팅 내용에 구축하는 서버에서 동작하고, 포스팅은 이전에 남겨두었던 기록과 스크린샷을 기반으로 작성됩니다.

서버 구하기
예전에 메인 컴퓨터가 고장나면서 임시로 사용하려고 당근마켓에서 15만원에 가져온 서버로 지금도 비슷한 스펙의 컴퓨터가 13만원에 판매되고 있습니다. 관심 있는 분들은 남는 컴퓨터로 진행하시면 됩니다.

적절한 CPU 코어수와 내장그래픽 그리고 메인 컴퓨터에서 업그레이드하면서 남아있던 메모리와 케이스 등으로 재조립하고 서버로 사용합니다.
정확한 스펙은 다음과 같습니다.
블로그용 서버 사양
- 운영체제(OS): Ubuntu 24.04 LTS
- 프로세서(CPU): AMD ryzen 3400G (4Core 8Thread)
- 메모리(RAM): Samsung 16GB DDR4 2개 (32GB)
- 저장장치(Storage): Tammuz GK300 256GB NVMe SSD
- 메인보드(Motherboard): Colorful A320M-K PRO
- 파워서플라이(PSU): Micronics Classic II 500W 80PLUS 230V EU
- 케이스(Case): Cox cl400
이미 다른 많은 분들이 OS 설치를 다루고 있기 때문에 자세한 내용은 나중에 다루겠습니다. 다만 Ubuntu 24.04 LTS 를 설치하고 느낀 점과 최소한의 보안 조치를 취한 방법에 대해서 설명드립니다.
ssh-key 알고리즘의 변화
이전 22.04 LTS버전 까지는 따로 설정을 하지 않는다면 RSA 2048bit 키로 ssh-key가 생성되었지만, Ubuntu 24.04 LTS에 포함된 openssh의 업데이트로 인해 RSA알고리즘이 비활성화 되었고, ed25519알고리즘으로 키가 생성되어 ssh-key가 다른 이름으로 생성된것을 확인 할 수 있었습니다.

해당 내용들은 아래의 공식 사이트 릴리즈노트에서 확인이 가능합니다.

https://www.openssh.com/txt/release-8.8
MacOS 유저의 경우 Catalina (2019년 10월 출시) 버전부터 생성된 ssh-key는 ed25519 알고리즘이 적용되있습니다. 오히려 RSA2048 키가 생소할 수 있습니다.
보안 및 네트워크 설정
- 서버에서 ssh-key를 생성하면서 Password Authentication 비활성화와 authorized_key 를 등록하고 내부망에서만 접근할 수 있도록 제한을 두었습니다.
- 집에서 사용하는 공유기로부터 랜선을 연결하고 공유기 설정페이지에서 VPN 설정과 ssh 포트의 포트포워딩을 진행합니다.
이렇게 설정할 경우 '내부에서 접근' 또는 '외부에서는 VPN을 통해 내부망에 접근 후 접속'만 가능해지고, 접근하더라도 ssh-key가 등록되지 않았다면 접속 할 수 없게 됩니다.

추가로 내부망의 고정 아이피를 사용하기 위해 공유기(iptime) 설정페이지에서 DHCP Server Setup 설정을 변경해줍니다.

서버 내에서도 직접 ip를 변경할 수 있지만 서버가 종료되거나 공유기가 재부팅되면서 새로운 기기에게 동일한 ip를 부여할 수 있기 고정적 (static)으로 해당 서버의 mac주소와 부여할 ip를 입력합니다. 이러한 static 기능은 공유기가 iptime이 아니더라도 대부분의 공유기에 존재합니다.