안녕하세요?
라즈베리파이로 여러 가지를 만들 수 있는데 그중 가장 쉬운 게 아마 서버 구축일 겁니다.
보통 집에 왜 라즈베리파이 서버를 구축하려고 하냐면 여러 가지 이유가 있겠지만
외부에서 나만의 FTP 서버로 자료를 업, 다운할 수 있으며,
스마트 TV랑 연동해서 라즈베이파이에 물린 외장하드에 있는 동영상이나 음악을 스마트 TV로 재생하기도 합니다.
또한, 간단한 NodeJS 서버를 구축해서 테스트해 볼 수 있고,
할 수 있는 일은 무궁 무궁합니다.
저의 집안 인터넷 흐름도를 먼저 살펴보면
먼저, 저는 KT 인터넷을 쓰고 있으며(인터넷은 KT가 제일 빠릅니다. SK 브로드밴드는 해외망 속도가 영!)
Wifi는 ASUS RT-AC68U 을 쓰고 있습니다.
전체적인 구조는 KT 인터넷이 아파트 외부단자에서 들어오면 일단 무조건 ASUS 라우터를 통해서
집안 모든 가전기기에 연결됩니다.
그렇게 하면 TV로 라즈베이파이에 접속해서 저장된 동영상을 볼 수 있습니다.
아이피타임 무선공유기로도 가능합니다.
요즘 공유기에는 핵심 기능인 포트포워딩과 DDNS기능이 내장되어 있어 쉽게 사용할 수 있습니다.
이 부분은 나중에 설명해 드리겠습니다.
라즈베리파이 서버 구축
라즈베리파이 서버를 구축하려면 라즈베리파이와 SD카드가 있어야 합니다.
저는 예전에 사놓은 라즈베리파이 3B+가 있습니다. SD카드와 그때 사놓은 32G가 있습니다.
SD카드는 8G로도 충분합니다. 생각해 보면 32G는 너무 낭비 같습니다.
외장 HDD가 있기 때문에 32G가는 너무 과소비 같았습니다.
일단 라즈베리파이와 SD카드가 준비됐으면 라즈베리파이 OS를 다운로드하여야 합니다.
https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit
라즈베리파이 3B+ 모델까지는 데스크톱 대용으로는 사용하기가 많이 부족했지만
라즈베리파이 4 개선 버전부터는 충분히 사용 가능하다고 합니다.
일단 우리는 서버를 구축하려고 하니까 Raspberry Pi OS Lite 버전을 다운로드하겠습니다.
다운로드한 파일을 압축을 풀면 1.73기가의 img 파일이 생깁니다.
2020-12-02-raspios-buster-armhf-lite.img
자 그럼, 위 img 파일을 SD카드에 복사해야겠죠.
SD 카드에 복사하기 전에 SD Card Formatter라는 프로그램을 소개할까 합니다.
SD 카드는 간혹 쓰기 방지 락이 걸려 있다면 속을 태우는 경우가 발생하는데요,
위 프로그램으로 포맷하면 진짜 깔끔하게 포맷되고 좋습니다.
https://www.sdcard.org/downloads/formatter/eula_windows/index.html
일단 SD Card Formatter로 SD카드를 포맷합시다.
그리고 우리가 다운로드한 img 파일은 SD카드로 복사하기 위해 전용 프로그램을 설치해야 합니다.
제가 써본 부팅 USB 만드는 프로그램 중 아래 rufus 가 가장 가볍고 강력했습니다.
자 이제 rufus를 다운로드하시고 실행하시면 됩니다.
저는 아직 SD 카드를 피씨에 연결 안 했는데 만약 연결하면 장치 부분이 해당 SD 카드를 가리킬 겁니다.
그리고 위쪽 두 번째 줄 오른쪽에 선택이란 버튼을 클릭해서 우리가 다운로드한 라즈베리파이 OS img 파일을 선택합니다.
그리고 밑에 시작 버튼을 누르면 알아서 부팅 USB를 만들어 줍니다.
라즈베리파이 부팅 USB까지 준비되었으면 이제 본격적으로 라즈베리파이 세팅을 해야 합니다.
먼저 SD 카드를 빼내어 라즈베리파이에 장착합니다.
SD 카드 넣는 곳에 쑥 밀어 끝까지 넣으면 됩니다.
본격적으로 세팅하기 전에 먼저 부팅해야겠죠?
필요한 부품은 라즈베리파이 전원 케이블, 외장 모니터와 키보드가 필요합니다.
외장 모니터는 HDMI로 연결됩니다.
이제 HDMI와 키보드를 연결했으면 전원 케이블로 라즈베리파이를 연결합니다.
라즈베리파이는 전원 스위치가 없어서 전원 케이블을 연결하고 빼면 그게 전원 스위치입니다.
전원 케이블 연결하면 모니터에 쭉 무언가 영어가 마구 나옵니다.
조금만 기다리시면 로그인 화면이 뜨는데,
라즈베리파이 기본 사용자 계정인 "pi"라고 쓰고
비밀번호 또한 라즈베리파이 기본 비밀번호인 "raspberry"라고 입력합시다.
그러면 로그인되면서 터미널 환경의 명령 프롬프트가 뜨게 됩니다.
일단 기본 계정의 비밀번호를 바꿔야겠죠.
아래와 같이 바꾸면 됩니다.
pi@raspberrypi:~ $ passwd
Changing password for pi.
Current password:
New password:
Retype new password:
passwd: password updated successfully
passwd 란 명령어는 유닉스/리눅스 명령어로 사용자의 패스워드를 변경하는 터미널 명령어입니다.
Current password: 란에 현재 비밀번호인 "raspberry"를 입력하고
New password: 란에 원하시는 비밀번호를 입력하고
Retype new password: 란에 비밀번호를 한번 더 입력하면 됩니다.
이제 기본 사용자 계정의 비밀번호도 바꿨겠다, 이참에 root 계정의 비밀번호도 바꿉시다.
사실 보안을 위해서 root 계정의 비밀번호는 세팅이 되어 있지 않고 sudo 명령어를 통해서만 root 권한으로 실행할 수 있는데, 조만한 라즈베리파이 서버가 위험해 봤자 얼마나 위험하겠습니까?
root 비밀번호를 바꾸고 root로 사용자 계정을 바꿔서 각종 소프트웨어를 설치하면 편하기 때문에 여기서는 root 패스워드 바꾸는 방법에 대해 알려드리겠습니다.
sudo passwd root
New password:
Retype new password:
passwd: password updated successfully
이제 root 계정의 비밀번호까지 설정했으니까 root로 계정을 전환해 봅시다.
계정 전환은 su 명령어를 쓰면 됩니다.
su root
Password:
root@raspberrypi:/home/pi#
이제 본인 서버의 가장 막강한 사용자인 root가 됐습니다.
이제 라즈베리파이를 서버로 이용하기 위해 해야 할 가장 기본적인 사항이 ssh를 활성하 하는 겁니다.
일단 raspi-config 명령어를 실행합니다.
root@raspberrypi:/home/pi# raspi-config
그러면 아래 그림과 같이 뜹니다.
먼저 로케일(Locale) 설정을 합시다.
5번 항목인 Localisation Options으로 키보드 방향키를 사용해서 이동합시다. 그리고 엔터를 누릅니다.
L1 Locale에서 엔터키를 다시 누릅니다.
라즈베리파이는 영국에서 만들어서 기본 로케일이 en_GB.UTF-8로 되어 있습니다.
영어라서 뭐 상관이 없습니다. 그래도 혹시라도 한국 로케일을 추가로 선택합시다.
키보드 방향키를 쭉 더 아래로 내립니다.
한국 로케일인 ko_KR.EUC_KR과 ko_KR.UTF-8을 선택합니다.
그리고 탭을 한번 눌러 OK부분으로 이동후 엔터키를 누릅니다.
이제 로케일 설정 화면이 계속되는데 조금만 기다리시면 완료되고 다시 아래와 같은 raspi-config 기본 화면이 나옵니다.
이제 본격적인 SSH 설정에 들어가 봅시다.
여기서 3번째인 Interface Options으로 이동합니다.
그러면 다음과 같이 나오는데 2번째 SSH를 선택해서 엔터키를 누릅니다.
엔터키를 누르면 SSH 설정 화면이 다음과 같이 뜹니다.
YES라고 선택되어 있는데 여기서 그냥 엔터키를 누르면 SSH가 활성화됩니다.
이제 ESC키를 몇 번 눌러 터미널 명령어 줄로 나옵니다.
이제 SSH를 이용해 라즈베리파이 서버를 켜 둔 채 놔두고 본인의 컴퓨터에서 원격 로그인하여 작업을 수행할 수 있습니다.
여기서 더 나아가야 할 게 있는데 바로 SSH 포트와 SSH 사용 가능 유저를 정하는 일입니다.
SSH 포트는 기본 22번입니다.
이 기본 포트를 안 바꾸시면 중국 쪽 해커들이 무지막지하게 접속 시도하기 때문에 본인이 원하는 포트로 바꾸시면 됩니다.
일단 root 사용자라는 가정하에 다음과 같이 명령어를 입력합니다.
root@raspberrypi:/etc/ssh# id
uid=0(root) gid=0(root) groups=0(root)
root@raspberrypi:/etc/ssh# cd /etc/ssh
root@raspberrypi:/etc/ssh# ls sshd_config
sshd_config
root@raspberrypi:/etc/ssh# nano sshd_config
/etc/ssh 폴더로 이동해서 sshd_config 파일을 nano 텍스트 에디터로 여는 명령입니다.
위에서 보듯이 기본 포트 22번은 주석 처리했고 (#으로 주석처리)
밑에 Port 2002라고 새로 넣었습니다.
이제 SSH 포트는 2002로 저만 아는 포트가 된 겁니다.
이제 맨 마지막 줄로 이동해서 다음과 같이 입력합니다.
AllowUsers라고 쓰고 탭 한번 누르고 pi라고 입력합니다.
SSH 사용 가능한 유저는 pi라고 지정하는 겁니다.
이제 Ctrl+O 를 눌러 저장하고 나옵니다.
이제 SSH 서버를 재시작하면 됩니다.
root@raspberrypi:/etc/ssh# service sshd restart
root@raspberrypi:/etc/ssh# ps -ef | grep sshd
root 6700 1 0 06:14 ? 00:00:00 sshd: cpro95 [priv]
cpro95 6719 6700 0 06:14 ? 00:00:00 sshd: cpro95@pts/0
root 7103 1 0 06:43 ? 00:00:00 /usr/sbin/sshd -D
root 7106 6777 0 06:43 pts/0 00:00:00 grep sshd
service sshd restart로 재시작하고 ps 명령어로 프로세서 중에 sshd로 시작하는 프로세서를 찾아보는 명령입니다.
우리의 sshd는 7103 process id로 잘 실행되고 있습니다.
이제 우리의 라즈베리파이 서버는 외부 SSH 접속이 가능합니다.
그러면 테스트해볼까요?
일단 본인의 메인 컴에서 cmd 창을 하나 띄웁니다.
그리고 다음과 같이 입력합니다.
ssh pi@192.168.29.159 -p 2002
아이피 주소는 본인의 라우터에서 라즈베리파이가 할당된 아이피를 확인하시면 됩니다.
그리고 마지막 -p는 포트를 지정하는 옵션입니다.
이렇게 치시면 비밀번호를 넣으라고 하는데
처음 실행하면 ssh 키를 생성해야 한다고 합니다.
yes를 입력하시고 엔터키를 누르시면 됩니다.
이제 우리의 라즈베리파이 서버를 외부에서 접속 가능하게 SSH까지 설치해 보았습니다.
다음 편에서는 VSFTP와 기타 유용한 데몬 프로그램 설치에 대해 알아보겠습니다.
'코딩 > 라즈베리파이' 카테고리의 다른 글
라즈베리파이로 NAS 서버 만들기 3편 - 토렌트 서버 (transmission) (2) | 2021.01.23 |
---|---|
라즈베리파이로 NAS 서버 만들기 2편 - ftp (0) | 2021.01.12 |
chmod 쉽게 설명 (0) | 2020.07.24 |
라즈베리파이에 고스트(GhostJS) 블로그 설치하기 - 2편 (0) | 2019.05.03 |
라즈베리파이에 고스트 블로그 설치하기 (0) | 2019.03.20 |