반응형

라즈베리파이4 도커(docker) 설치하기

 

이번 포스팅은 아래 도커 홈페이지에 나와있는 데미안버전 도커 설치 문서를 참조하였습니다.

https://docs.docker.com/engine/install/debian/

 

Install Docker Engine on Debian

 

docs.docker.com

 

 

도커를 라즈베리파이에 저장소를 이용하여 설치하는 것을 지원하지 않습니다. 편의 스크립트를 다운 실행하여 설치해야만 합니다.

 

아래 명령어로 sh파일을 현재 폴더에 다운받습니다.

sudo curl -fsSL https://get.docker.com -o get-docker.sh

 

다음은 받은 sh 파일을 아래 명령어로 실행합니다.

sudo sh ./get-docker.sh

 

다음은 도커 그룹을 확인 후, 없다면 만들고 pi계정을 추가해줍니다.

cate /etc/group  #그룹확인
sudo groupadd docker #docker 그룹이 없다면 추가
sudo usermod -aG docker pi  #pi계정을 docker 그룹에 추가

 

다음은 재부팅 후 도커 버전을 확인합니다. 확인 시 서버와 클라이언트 버전이 둘다 나오면 정상입니다.

 

만약 도커를 삭제하고 싶다면 아래 명령어로 삭제를 진행합니다.

(apt purge는 패키지와 함께 환경설정 파일도 삭제합니다. --auto-remove 옵션은 불필요한 의존성 패키지도 함께 삭제합니다.)

sudo apt-get purge docker-ce docker-ce-cli containerd.io

 

삭제 명령어로도 지워지지 않고 남는 찌꺼기 폴더가 있습니다. 아래 명령어로 폴더를 삭제합니다.

$ sudo rm -rf /var/lib/docker/
$ sudo rm -rf /etc/docker/

찌꺼기폴더 삭제

 

도커의 사용법 관련된 추가 포스팅은 아래 도커 전체보기 링크를 통해 들어오시면 포스팅 될 예정입니다.

 

 

추가내용

도커에서 컨테이너(우분투)를 실행 후 apt update가 안되는 에러가 있습니다.

저는 결국 해결 방법을 찾지 못하고 라즈베리파이 OS를 우분투로 변경 했습니다.

혹시 컨테이너(우분투)에서 apt update 방법을 아시는 분이 계시다면 댓글 부탁드립니다.

 

라즈베리파이 OS를 우분투로 설치하는 방법은 아래 포스팅 참조바랍니다.

https://reddb.tistory.com/190

 

라즈베리파이 전체보기

 

'라즈베리파이' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

(Docker)도커 전체보기

 

'(Docker)도커' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형
반응형

라즈베리파이4 해킹공격 대비 ssh 기본포트 변경

 

라즈베리파이 O/S를 설치하고 기본 비밀번호를 쓰시는 분은 없을 것으로 생각됩니다.
만약 외부에서 ssh로 라즈베리파이를 접속할 수 있는 상태를 만드셨다면 이번 포스팅을 통해 반드시 ssh의 기본포트 변경하시어 해킹공격에 대비하시기 바랍니다.

라즈베리파이를 외부에서 22번 포트로 ssh 접속에 이용하고 계시다면 아래 명령어를 통해 해킹 이력을 살펴보시기 바랍니다.

먼저 netstat | more 를 입력하여 현재 라즈베리파이의 네트워크 접속 상태를 확인합니다.


위 사진을 보시면 제 라즈베리파이(IP:192.168.0.251:ssh)에 abts-north-static:48774가 접속한 것을 확인 할 수 있습니다.
접속은 했지만 비밀번호 로그인까지 해서 쉘까지 들어왔는지, 아니면 비밀번호를 틀렸는지는 아래 명령어로 확인을 해야 합니다.

먼저 로그인을 못하고 실패한 이력을 살펴 보겠습니다. 아래 명령어를 쉘에 입력합니다.
($ sudo last -f /var/log/btmp)


제가 알지도 못하는 아이피에서 정말 여러번의 로그인 실패가 이뤄진 것이 확인됩니다.
IP 하나를 https://whois.kisa.or.kr 사이트에서 확인해보겠습니다. 어느나라 놈인지...


이제는 로그인까지 성공해서 쉘까지 접속한 이력을 확인해보겠습니다. 아래 명령어를 입력합니다.
($ last)


다행이 쉘까지 로그인한 이력에는 같은 공유기에 붙어 있는 192.168.0.XXX 대역과, SKT텔레콤 아이피인것으로 보아 제가 외부에서 스마트폰으로 쉘에 접속한 기록인것 같습니다. (비밀번호 꼭 복잡하게 만드세요.)

이제 저는 해킹을 피하기 위해서 먼저 ssh의 기본포트를 변경하겠습니다. 해야할 작업은 3가지 입니다.

  1. /etc/ssh/sshd_config 파일에 Port (원하는 포트숫자) 입력. 저는 1922포트로 변경 하겠습니다.
  2. sshd 재시작
  3. (공유기 사용시) 공유기 포트포워딩 ssh포트 변경

먼저 sudo vi /etc/ssh/sshd_config 명령어를 입력하고 내용에 Port 1922를 입력합니다. (주석처리된 Port 부분을 수정 또는 빈공간에 추가)

vi로 수정후, cat으로 확인


다음은 sudo systemctl restart sshd 명령어로 ssh를 재시작합니다.


마지막으로 공유기를 사용하시는 분들은 공유기의 포트포워딩 주소를 변경해줍니다.
저는 외부에서 공유기 1922포트로 접속하면 -> 라즈베리파이 1922포트로 포워딩 하도록 하겠습니다.


포트포워딩에 자세한 방법은 이전 포스팅을 참조하시기 바랍니다.
reddb.tistory.com/13

 

라즈베리파이4 스마트폰으로 외부에서 원격 접속하기 2편

라즈베리파이4 스마트폰 앱으로 외부에서 원격 접속하기 1편에서는 같은 공유기에 접속된 스마트폰에서 라즈베리파이를 원격 접속하는 방법을 배우봤습니다. 2편에서는 같은 공유기가 아닌 다

reddb.tistory.com


(만약 centos 사용자가 ssh 포트를 변경하기 위해 이글을 보고 있다면, centos의 경우는 centos방화벽에서 1922포트를 열어줘야 접속이 가능합니다.)

### selinux 사용을 위한 policycoreutils-python 설치 ### 
$ yum install -y policycoreutils-python 

### selinux 포트허용 ### 
$ semanage port -a -t ssh_port_t -p tcp 1922 

### selinux 포트허용 목록확인 ### 
$ semanage port -l

### 방화벽 포트허용 및 리로드 ### 
$ firewall-cmd --permanent --zone=public --add-port=1922/tcp $ firewall-cmd --reload 

### 방화벽 포트허용 목록확인 ### 
$ firewall-cmd --list-all


한가지 팁을 더 말씀드리면 ssh 기본포트 변경없이 공유기에서 포트포워딩 포트를 변경하는 것 만으로도 위의 효과를 낼 수 있습니다. (해킹은 외부에서 들어오고 외부에서 들어오는건 공유기 포트포워딩을 반드시 거칩니다.)

외부에서 내 공유기 1922포트로 들어오는 접속을 -> 라즈베리파이 22포트로 포워딩 시켜주는 방법입니다.

이 방법을 이용하시면 같은 공유기에 접속되어 있는 PC, 스마트폰에서 라즈베리파이 ssh 접속은 22포트를 통해서 하고, 외부에서 공유기(IP)를 통해서 포트포워딩을 통해 ssh에 접속할때는 1922포트로 접속하게 됩니다.

라즈베리파이 전체보기

 

'라즈베리파이' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형
반응형

라즈베리파이4 apache(아파치)에 무료 SSL 인증서 적용하기

 

아파치를 설치하고 접속하면 기본적으로 http로 접속하게 됩니다.

여러가지 이유가 있겠지만 https를 사용하기 위해서는 SSL 인증서를 적용해야 합니다.

상용SSL을 발급해주는 곳도 있지만 이번 포스팅에서는 무료 SSL 인증서를 다운받고 적용하는 방법에 대해 설명드리겠습니다.

 

라즈레비파이에 certbot, python3-certbot-apache 두개의 프로그램을 설치해주어야 합니다.

그러기전에 먼저 sudo apt update, sudo apt upgrade를 합니다.

 

 

다음은 apt list | grep certbot 명령어로 리스트 목록에 설치할 두 프로그램이 존재하는지 확인합니다.

 

 

이제 프로그램을 설치합니다.  sudo apt-get install certbot python3-certbot-apache

 

 

설치가 완료되면 아파치를 잠시 스톱해야 합니다. 서트봇도 80포트를 사용하기 때문입니다.

sudo systemctl stop apache2.service

 

 

이제 서트봇을 실행합니다. sudo certbot --standalone -d www.내도메인주소.net certonly

그럼 처음으로 인증서 만료시 안내를 받을 이메일 주소를 입력하라고 합니다.

(인증서 만료는 90일이며 만료전에 갱신을 해준다면 계속해서 사용할 수 있습니다)

 

 

그 다음 약관에 동의하냐는 물음에는 동의를 합니다. A

 

 

다음은 마케팅에 이메일을 사용해도 되는지 묻는데 No를 합니다.

 

 

그럼 키가 발행됐다고 나오며 위치를 알려줍니다.

위치는 /etc/letsencrypt/live/내도메인주소.net/ 폴더이며 폴더안에 fullchain.pem, privkey.pem 파일이 있습니다.

 

 

다음은 아파치의 sites-enabled 폴더로 이동합니다.

cd /etc/apache2/sites-enabled/

 

 

그리고 sites-available 폴더에 있는 default-ssl.conf 파일을 심볼링크로 가져옵니다.

sudo ln -s ../sites-available/default-ssl.conf ./default-ssl.conf

(또는 간단한 아파치 명령어인 sudo a2ensite default-ssl.conf 로도 심볼링크가 생성됩니다. sudo a2dissite default-ssl.conf 명령어는 반대로 심볼링크를 삭제합니다.)

 

 

이제 vi 편집기로 default-ssl.conf 파일에 들어가면 VirtualHost 443 이라고 되어 있는 https 포트 설정을 합니다. sudo vi default-ssl.conf

  • DocumentRoot  웹문서가 들어있는 폴더 위치

  • SSLEngine on

  • SSLCertificateFile fullchain.pem 위치

  • SSLCertificateKeyFile privkey.pem 위치

 

 

다음은 ssl을 활성화 합니다. sudo a2enmod ssl

(참고로 "sudo a2enmod 모둘명" 명령은 아파치폴더 내에 있는 mods-available 폴더에 모듈을 mods-enabled 폴더로 심볼링크 해주는 명령어입니다. 반대로 비활성화 할 경우는 "sudo a2dismod 모듈명" 명령어로 합니다. 심볼링크가 삭제됩니다.)

 

ssl 모듈 추가됨

 

이제 아파치를 다시 시작합니다. sudo systemctl start apache2.service

 

 

마지막으로 공유기를 통해 라즈베리파이를 사용하고 있다면 이전 포스팅을 참고하여 포트포워딩을 해줘야 합니다.

(https:도메인주소 입력으로 -> 공유기 443포트로 들어오는 패킷을 -> 라즈베리파이 443포트로 포트 포워딩)

reddb.tistory.com/99

 

라즈베리파이4 WordPress 워드프레스 외부에서 접속 (워드프레스 6편)

라즈베리파이4 WordPress 워드프레스 외부에서 접속 (워드프레스 6편) 앞선 포스팅에서 워드프레스 설치는 완료되었습니다. 이제는 외부에서 사람들이 내 홈페이지에 접속할 수 있게 하는 방법과

reddb.tistory.com

 

포트포워딩까지 완료 되었다면 이제 브라우저를 통해 접속해 봅니다. 앞에 열쇠모양이 생겼을 겁니다.

 

 

certbot으로 발급받은 인증서는 유효기간이 90일 입니다.

인증서를 갱신하고 싶다면 아파치를 종료하고, sudo certbot renew 명령어를 입력하고, 다시 아파치를 시작하면됩니다.

다만 갱신은 만료 2주전부터 가능하다고 합니다.(혹자는 1달전부터 가능했다고 합니다.)

만료가 다가오면 위에서 certbot으로 키 생성시 입력한 메일 주소로 갱신안내 메일이 옵니다.

만약 기한이 많이 남아있는데도 갱신을 할 경우 아래와 같은 에러가 날 수 있습니다.

 

저는 2달마다 자동으로 인증서를 강제로(--force-renew) 재발급 받기 위해 크론탭을 이용하겠습니다.

먼저 su - 명령어로 루트로 진입합니다. (root 비밀번호를 지정하지 않으신분은 이번기회에 지정해주세요)

그리고 crontab -e 명령어로 root의 크론탭에 진입합니다.

 

그후 0 5 1 */2 * /usr/bin/certbot renew --force-renew --pre-hook "/bin/systemctl stop apache2.service" --post-hook "/bin/systemctl start apache2.service" 를 제일 아래라인에 추가해줍니다. (짧은 기간동안 너무 자주 재발급받으면 에러가납니다.)

 

추가로, http://도메인 접속시 https://도메인주소로 리다이렉트를 시키고 싶으시다면 아래와 같이 진행해야합니다.

rewrite 모듈을 사용하기 위해 sudo a2enmod rewrite 명령어를 실행합니다.

rewrite 모듈 추가됨

 

다음은 /etc/apache2/sites-enabled 폴더로 이동한 후 접속시 리다이렉트 시키고 싶은 주소의 conf 파일을 vi로 아래와 같아 수정합니다.

(저는 001-test.conf에 있는 80포트(http) ServerName주소로 들어오는 요청을 https로 리다이렉트 시키겠습니다.)

 

이제 아파치를 다시 시작합니다. sudo systemctl start apache2.service

 

 

라즈베리파이 전체보기

 

'라즈베리파이' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형
반응형

새로운 라즈베리파이 OS 릴리스 2020년 12월 (New Raspberry Pi OS release 2020. 12.)

라즈베리파이 OS 2020년 12월 2nd 릴리즈

라즈베리파이 OS가 새롭게 릴리즈 되었습니다. 새롭게 변화된 내용에 대해서 포스팅하겠습니다.

 

크롬

크로미움 브라우저의 버전이 84로 업데이트 됐습니다. 버전 업그레이드로 브라우저에서 하드웨어 가속이 향상이 예상되며 이에 유튜브 같은 동영상 사이트에서 고품질 비디오 재생이 가능할 것으로 보입니다.

 

또한 Google Meet, Microsoft Teams 및 Zoom과 같은 화상회의에 대해서도 많은 테스트와 조정을 거쳤으며 모두 라즈베리파이의 크로미움에서 원활하게 작동 할 것으로 보입니다.

 

 

PulseAudio

금번 릴리즈된 OS 버전부터 PulseAudio 사운드 서버를 사용할 수 있습니다.

대부분의 리눅스 시스템에서 가장 일반적으로 사용중인 오디오 인터페이스는 고급 Linux 사운드 아키텍쳐인 ALSA입니다. 하지만 이것은 저수준인 오디오 인터페이스입니다. 라즈베리파이 OS가 지금까지는 이것을 사용해 왔습니다. 

 

ALSA에는 여러가지 문제점이 있습니다. HDMI로 유튜브 사운드를 재생할 경우 다른 사운드는 재생할수 없는 문제도 있고, 블루투스 오디오를 처리하지 않아 기타 확장 및 추가 소프트웨어가 필요합니다.

PulseAudio는 이것들을 해결해줍니다. 여러 응용 프로그램의 오디오를 함께 믹싱할수 있기때문에 유튜브를 틀며 동시에 VLC로 동영상 사운드를 출력할 수 있습니다. 블루투스 장치와의 호환성도 좋습니다.

 

이번 릴리즈부터 PulseAudio가 기본적으로 실행되며 작업표시줄의 볼륨 제어 및 오디오 입력/출력 선택화면에서 이전과 변화가 없습니다. 이전 OS와 마찬가지로 출력 및 입력 장치를 선택하고 볼륨만 조정하면 됩니다.

 

입력/출력 선택화면에서 변경사항이 하나 있습니다. Device Profiles... 하단에 있는 메뉴 옵션입니다.

PulseAudio에서 모든 오디오 장치에 하나 이상의 프로필이 있습니다. 여러 연결이 있는 장치에서는 사용할 출력 및 입력을 선택할 수 있습니다.

 

블루투스 장치에서는 주위할 사항이 있습니다. 블루투스 장치에 입력과 출력이 모두 있는 경우(마이크 이어폰 모두있는 헤드셋) 일반적으로 두가지 다른 프로필이 지원됩니다.

하나는 HSP(HeadSet Profile)입니다. 이를 통해 마이크와 이어폰을 모두 사용할 수 있지만 상대적으로 음질이 좋지 않습니다. 휴대 전화처럼 듣고 말하기에는 좋겠지만 음악을 듣기에는 적합하지 않습니다.

다른 하나는 A2DP(Advanced Audio Distribution Profile)입니다. 이는 훨씬 좋은 음질을 제공하지만 출력 전용이라 마이크를 사용할 수 없습니다. 

블루투스 장치를 기본 입력으로 선택하면 장치가 자동으로 HSP로 전환됩니다. 마이크를 사용할 경우는 HSP로 선택하시고, 음악을 듣는 경우는 A2DP를 사용하시기 바랍니다.

(라즈베리파이의 내부 사운드를 출력만 사용한다면 프로필은 하나만 있고 자동으로 선택됩니다)

 

 

프린트

프린터에 연결하고 구성하는 쉬운 방법이 기본적으로 추가되었습니다.

CUPS와 system-config-printer가 기본적으로 설치되도록 변경되었습니다.

http://localhost:631로 접속을 하면 CUPS 웹 인터페이스에 접속할 수 있습니다.

 

또는 기본메뉴에서 기본설정 부분으로 이동하여 인쇄설정을 여는 방법도 있습니다.

 

프린터 제거, 기본프린터 설정, 프린터의 인쇄디기열에 액세스 할 수 있는 system-config-printer 대화상자가 열립니다.

 

새로운 하드웨어 옵션 추가

라즈베리파이 구성 도구에 몇가지 옵션이 추가되었습니다.

시스템 탭에서 단일 상태 LED의 전원이 켜져 있음을 표시할지 여부를 선택할 수 있습니다. (라즈베리파이 제로, 400 제품)

 

성능(Performance) 탭에서는 라즈베리 파이 케이스 팬을 제어 할수 있는 옵션도 추가되었습니다.

연결된 GPIO 핀을 선택 후 켜고 끄는 온도를 설정할 수 있게 되었습니다.

 

업그레이드 방법

이번에 릴리즈된 라즈베리파이 OS 이미지를 다운받아 새롭게 설치하는 방법이 있습니다.

이는 자료의 백업양이 적거나 새로 설치가 부담스럽지 않은 사용자에게 추천드립니다.

www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit

 

Operating system images – Raspberry Pi

The Raspberry Pi is a tiny and affordable computer that you can use to learn programming through fun, practical projects. Join the global Raspberry Pi community.

www.raspberrypi.org

 

다른 방법은 기존이미지에 아래와 같은 명령을 터미널에서 입력하여 업그레이드 하는 방법이 있습니다.

sudo apt update
sudo apt full-upgrade

 

위 full-upgrade가 완료되면 bluealsa를 제거하고, PulseAudio-module-Bluetooth을 설치합니다.

(apt remove는 설정파일은 남기고 패키지삭제, apt purge는 설정파일과 함께 패키지 삭제)

sudo apt purge bluealsa
sudo apt install pulseaudio-module-bluetooth

 

이후 재부팅을 합니다.

sudo init 6

 

이후 재부팅이되면 라즈베리파이 처음 세팅 화면이 나오는데 넥스트를 계속하면 됩니다.

 

주의사항

일부 사용자의 경우 응용프로그램이 PulseAudio 출력에 문제를 발생시킨다는 보고가 있다고 합니다.

이건 아마도 이전 ALSA 구성 파일이 계속해서 시스템에 있기 때문에 발생하는 것으로 생각됩니다.

터미널 창에서 아래 명령어를 실행하여 ALSA 구성파일을 삭제하고, PulseAudio에서 작동하지 않는 이전 오디오 기본설정 응용프로그램 패키지도 제거해보시기 바랍니다.

rm ~/.asoundrc
sudo apt purge pimixer

 

PulseAudio로 전환 한 이후 라즈베리파이의 내부 오디어 장치 출력이 모노로 되는 문제도 보고됐습니다. 차후 업데이트를 통해 수정할 것이라고 합니다.

 

라즈베리파이 전체보기

 

'라즈베리파이' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형
반응형

라즈베리파이(Raspberry Pi) 400 컴팩트 키보드에 내장된 제품 발매 소식

 

2020년 11월 2일 라즈베리파이 홈페이지에 신제품 라즈베리파이(Raspberry Pi) 400 제품에 대한 내용이 올라왔습니다.

Raspberry Pi 400 (키보드에 내장된 라즈베리파이)

 

사진으로 보시는 바와 같이 라즈베리파이를 기존에 컴팩트 기기 하우징에서 벗어나 키보드 내부에 탑재한 제품으로 출시를 하였습니다.

제품명은 Raspberry Pi 400으로 출시하였습니다. 램은 4G로 발매되었습니다.

 

이 제품은 자체 기기 가겨은 70달러로 책정 되었으며, 부가 장치를 포함한 키트의 경우 가격을 100달로 책정하였습니다.

 

키트구성품

  • Raspberry Pi 400 기기
  • 공식 USB 마우스
  • 공식 USB-C 전원 공급 장치
  • Raspberry Pi OS가 설치되어 있는 SD카드
  • micro HDMI to HDMI 케이블
  • 공식 Raspberry Pi 초보자 가이드

키트 구성품 사진

 

라즈베리파이 400의 하우징 내부 보드는 기본적으로 라즈베리파이 4 장치이지만 새로운 하우징에 맞춰 PCB 디자인을 가로로 길게 만들어졌습니다. 라즈베리파이4와 마찬가지로 USB 및 이더넷 포트가 제공되지만 USB2.0 포트중 하나는 키보드 전용으로 사용됩니다.

라즈베리파이 400 PCB

 

PCB보드에서 보이는것과 같이 USB 포트와 이더넷 포트는 좌측에 모여있습니다. 유선 마우스를 사용하시는 분들께서는 아무래도 마우스 사용시 파워선, HDMI선, 파워선등을 가로 질러 우측에 배치해야 되는 상황이 발생합니다. 가능하면 무선 USB 사용이 선관리에 깔끔할 것 같습니다.

 

GPIO 커넥터는 이번 라즈베리파이400 제품에서도 유지가 되었습니다. 

 

라즈베리파이 400은 회로 레이아웃이 라즈베리파이4와 동일하지만 CPU 클럭이 1.8GHz까지 사용 가능해졌습니다.

라즈베리파이 400에는 기기 전면과 후면에 열을 발산하는 열 분산기가 포함되어 있어 가능했다고 합니다.

 

또한 이전 라즈베리파이 기기에는 없었던 전원 on/off 버튼이 생겼습니다.

Fn + F10을 2초 동안 누르면 전원이 꺼집니다. 이렇게 꺼도 Linux 소프트웨어에서 전원을 종료시키는 컨트롤을 이용하여 종료하는 것이기에 메모리카드나 USB 드라이브를 손상시키지 않습니다.

F10 또는 Fn + F10을 눌러 전원을 킬 수도 있습니다.

 

마지막으로 아래는 라즈베리파이 400 분해 영상입니다.

 

 

라즈베리파이 전체보기

 

'라즈베리파이' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형