WARNING이 글은 Raspberry Pi 3B+ 이상 모델에서 사용할 수 있는 64비트 운영체제 (ARM64)를 대상으로 합니다.
홈서버 라즈베리파이를 다시 설치할때 기존 세팅방법을 참조하기 위해 기록하는 게시물 입니다.
OS 설치 과정
-
라즈베리파이 홈페이지에서 imager 프로그램을 다운로드 받아 설치합니다
이 글을 작성하는 시점에는imager_1.8.5.exe
가 최신 버전 입니다 -
Raspberry Pi Imager 프로그램을 실행합니다.
-
라즈베리파이 (Raspberry Pi) 디바이스
에서 자신이 설치하려고 하는 라즈베리파이 단말기를 선택합니다. -
운영체제
에서 자신이 설치하려는 OS 를 선택할 수 있습니다.
최소 구성으로 시작하려면 Raspberry Pi OS (other) 에서 Raspberry Pi Lite (64-bit) 를 선택합니다. OS 설치 전 Micro SD 를 청소하려면 먼저 Erase 를 선택해 한번 실행합니다. -
라즈베리파이OS 를 설치할 Micro SD 카드를
저장소
에서 선택합니다. -
다음을 선택하면
OS 커스터마이징 설정을 적용하시겠습니까?
를 확인합니다.
일반 탭에서 미리 사용자 계정과 지역/시간대를 설정할 수 있습니다.
서비스 탭에서 SSH 사용을 허용해야 원격으로 접속할 수 있습니다.
공유기 설정
라즈베리파이의 아이피가 주기적으로 변경되는것을 사전에 방지하기 위해 공유기의 DHCP 서버에서 라즈베리파이의 MAC Address 를 확인 후 고정해줍니다.
아이피를 고정하지 않을 경우 SSH/FTP/Database 등 라즈베리파이의 아이피를 사용하는 모든 아이피를 수정해야 할 수 있습니다.
OS 초기 설정
업데이트
- raspi-config 업데이트
$ sudo raspi-config
> 8 | Update
- 패키지 업데이트
$ sudo apt update
$ sudo apt full-upgrade -y
- 재부팅
$ sudo reboot
지역 설정
- 언어 및 지역 설정
$ sudo raspi-config
> 5 | Localisation Options | Configure language and regional settings
> L1 | Locale | Configure language and regional settings
- en.GB.UTF-8 UTF-8
- en.US.UTF-8 UTF-8
- ko_KR.UTF-8 UTF-8
> OK
> ko_KR.UTF-8 UTF-8
> Finish
- 시간대 설정
$ sudo raspi-config
> 5 | Localisation Options | Configure language and regional settings
> L2 | Timezone | Configure time zone
> Asia
> Seoul (Asia / Seoul)
> OK
> Finish
파일 시스템 확장
Micro SD 의 모든 용량을 사용하기 위해서는 Expand Filesystem 설정이 필요합니다
$ sudo raspi-config
> 6 | Advanced Options | Configure advanced settings
> A1 | Expand Filesystem | Ensures that all of the SD card is available
> OK
> Finish
> Yes (Would you like to reboot now?)
보안 옵션
SSH 접속 포트 변경
$ sudo nano /etc/ssh/sshd_config
# Port 22 항목 변경, 저장
$ sudo nano /etc/services
# ssh 22/tcp 항목 변경, 저장
$ sudo reboot
ufw 설치
$ sudo apt install openssh-server -y
$ sudo apt install ufw -y
$ sudo ufw default deny incoming
$ sudo ufw allow ssh
$ sudo ufw limit ssh/tcp
$ sudo ufw logging on
$ sudo ufw enable
fail2ban 으로 무차별 대입 차단
$ sudo apt install fail2ban -y
$ sudo nano /etc/fail2ban/jail.conf
# bantime = -1
# findtime = 1d
# maxretry = 5
# 변경, 저장
$ sudo systemctl restart fail2ban
sudo 명령어 비밀번호 요청
$ sudo nano /etc/sudoers.d/010_pi-nopasswd
# NOPASSWD 를 PASSWD 로 변경, 저장
Docker 설치
- 도커 설치
$ sudo curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh ./get-docker.sh
$ sudo rm get-docker.sh
- 도커 권한 부여
$ sudo usermod -aG docker $USER
$ newgrp docker
$ docker ps -a
- portainer 컨테이너 실행
$ docker network create --gateway 172.18.0.1 --subnet 172.18.0.0/16 bridge_static
$ sudo docker volume create portainer_data
$ sudo docker run -d -p 9000:9000 --name=portainer --restart=always --network bridge_static --ip 172.18.0.2 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce