Install Ubuntu Server 20.04 on Raspberry Pi 2/3/4 (without monitor)

By | 2021년 12월 24일
Table of Contents

Install Ubuntu Server 20.04 on Raspberry Pi 2/3/4 (without monitor)

라즈베리파이에 Ubuntu Server 를 모니터 없이 설치하는 방법입니다.

전원장치의 전원이 약한 경우 모니터가 켜지지 않는 문제가 발생합니다.
이에 대비해 모니터/키보드 대신 wifi 를 이용해 설치합니다.

와이파이를 이용한 설치(모니터 없이)

https://roboticsbackend.com/install-ubuntu-on-raspberry-pi-without-monitor/#Setup_Wi-Fi_directly_from_your_SD_card

WPA2 PSK 보안에 대해서도 정상적으로 접속이 됩니다.
숨겨진 와이파이에 대해서는 추가설정이 필요합니다.

network-config

version: 2
ethernets:
  eth0:
    dhcp4: true
    optional: true
wifis:
  wlan0:
    dhcp4: true
    optional: true
    access-points:
      "YOUR_WIFI_NAME":
        password: "YOUR_WIFI_PASSWORD"
      "MY_HIDDEN_SID":
        password: "MY_PASSWORD"
        hidden: true

user-data

# On first boot, set the (default) ubuntu user's password to "ubuntu" and
# expire user passwords
chpasswd:
  expire: true
  list:
  - ubuntu:ubuntu
# Enable password authentication with the SSH daemon
ssh_pwauth: true

안드로이드 앱인 Network IP Scanner 를 소개할까합니다.
광고가 있기는 한데…
로컬 아이피 대역 스캔 기능과 특정 아이피에 대한 포트 스캔 기능까지,
필요한 기능이 깔끔히 있습니다.

최종적으로 3G 의 저장공간이 사용되고,
메모리를 200M 를 차지합니다.

와이파이를 통한 해킹 대응

와이파이를 이용한 ssh 접속을 활성화 해 놓으면 해킹이 몰려듭니다.
ubuntu 계정으로 무차별 공격을 시도할 것이고…

아이피 기반 접속제한

고정 아이피를 가지고 있는 경우, 특정 아이피에서만 접속이 가능하도록 제한할 수 있습니다.

sudo vi /etc/ssh/sshd_config

AllowUsers *@203.0.113.1
# AllowUsers *@203.0.113.0/24
# AllowUsers *@203.0.113.*
# AllowUsers *@203.0.113.1 *@203.0.113.2 *@192.0.2.0/24 *@172.16.*.1
# AllowUsers sammy@203.0.113.1 alex@203.0.113.2

sudo systemctl restart sshd

계정 기반 접속제한

ubuntu 계정의 ssh 접속을 차단하고, 별도의 계정으로 접속하는 방식입니다.
계정 정보만 알면 아무 곳에서나 접속이 가능하지만,
(계정 정보만 알면) 해커도 접속이 가능하기에 편리함과 위험함이 공존합니다.

특정 계정만 접속허용

sudo vi /etc/ssh/sshd_config

AllowUsers sk
# AllowUsers user1 user2

sudo systemctl restart sshd

특정 계정만 접속차단

sudo vi /etc/ssh/sshd_config

DenyUsers ubuntu
# DenyUsers ubuntu root

sudo systemctl restart sshd

라즈베리파이를 해커가 들고가면???

일반적으로 Ubuntu Server 는 IDC 에 들어가 있기에 이런 경우가 없지만,
라즈베리파이는 아무데나 놓을려고 쓰는거라 이런 경우에도 대비해야 합니다.

라즈베이파이를 해커가 들고 가는 것에 대비하기 위해서는,
중요데이타를 암호화할 수단이 있어야 합니다.

sudo apt-get install ecryptfs-utils

# 암호화용 폴더를 새로 생성합니다.
# 기존 폴더를 암호화할 경우, 이미 있던 파일이 사용불가 상태가 됩니다.
mkdir private

sudo mount -t ecryptfs ~/private/ ~/private/
Passphrase:
Select cipher:
 1) aes: blocksize = 16; min keysize = 16; max keysize = 32
 2) blowfish: blocksize = 8; min keysize = 16; max keysize = 56
 3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24
 4) twofish: blocksize = 16; min keysize = 16; max keysize = 32
 5) cast6: blocksize = 16; min keysize = 16; max keysize = 32
 6) cast5: blocksize = 8; min keysize = 5; max keysize = 16
Selection [aes]:
Select key bytes:
 1) 16
 2) 32
 3) 24
Selection [16]:
Enable plaintext passthrough (y/n) [n]: y
Enable filename encryption (y/n) [n]: y
Filename Encryption Key (FNEK) Signature [35a958dXXXXXXXXX]:
Attempting to mount with the following options:
  ecryptfs_unlink_sigs
  ecryptfs_fnek_sig=35a958dXXXXXXXXX
  ecryptfs_passthrough
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=35a958dXXXXXXXXX
Mounted eCryptfs
mount
touch private/test.txt
sudo umount ~/private

ll private/
cat private/test.txt

처음 폴더 암호화 설정시 입력했던 동일한 값을 다시 입력해야 합니다.

sudo mount -t ecryptfs ~/private/ ~/private/

답글 남기기