생활코딩 (23) 썸네일형 리스트형 라즈베리파이 - 홈서버 구성 최근에 라즈베리파이로 홈서버를 구성하여 간단한 웹 애플리케이션을 하나 올리고 외부에서 접속 가능하게 했습니다. 이 내용을 전체적인 관점에서 정리해 보려고 합니다. 우선 전체 구성도는 대략적으로 다음과 같습니다.1. 외부망 연결외부망 연결은 주 서버가 되는 라즈베리파이 5를 직접 연결하지 않고, 공유기(그림에서 편의상 무선 접속지점인 AP로 표기해 뒀습니다)를 거치도록 했습니다. 라즈베리파이 5에 유선망을 직접 연결하는 불편함도 있었지만, 무엇보다 공유기 쪽에 기본적인 네트워크 관리 기능이 있어서 일차적인 보안은 공유기에서 하는 것으로 결정했기 때문에 공유기를 관문으로 하게 됐습니다. 이렇게 함으로써 라즈베리파이 5쪽에서는 방화벽 같은 쪽은 크게 신경 쓰지 않을 수 있었습니다.공유기 쪽에서 HTTPS인 4.. 라즈베리파이에 docker 설치하기 집에서 가지고 놀고 있는 라즈베리파이(3b)에 새로운 환경의 프로그램 올릴 때마다 환경 설정하는 것이 귀찮아서 docker를 설치하기로 했습니다. 전에도 리눅스에 docker를 여러 번 설치해 봤는데 매번 매끄럽게 진행되지는 않아서 이 번에도 뭔가 난항이 있겠구나 생각했습니다. 하지만, 놀랍도록 간단하게 끝나 버렸습니다. docker 공식 문서만 따라 하면 되지만 기록 차원에서 간단히 정리해 둡니다. 라즈베리파이에 docker를 설치하는 가이드는 다음과 같습니다.32 비트: https://docs.docker.com/engine/install/raspberry-pi-os/64 비트: https://docs.docker.com/engine/install/debian/저는 64비트 환경이어서 64비트 가이드.. GoAccess - nginx 접속 로그 분석 웹서버 접속 로그 분석툴인 GoAccess 사용 및 설정에 대한 내용을 정리 차원에서 적어둡니다. 1. 설치웬만한 리눅스 배포본에 대해서는 패키지로 제공하기 때문에 패키지로 설치하는 것이 편합니다. 다음은 debian 패키지 설치 방법이고, 다른 리눅스 배포본에 대해서는 https://goaccess.io/download#distro 에 잘 나와 있습니다.wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg >/dev/nullecho "deb [signed-by=/usr/share/keyrings/goaccess.gpg arch=$(dpkg --print-architect.. 라즈베리파이 온습도 센서 사용하기 라즈베리파이에 온습도 센서를 장착 및 테스트 하는 방법입니다. 환경라즈베리파이 4온습도 센서: AM2302 (DHT22)https://www.adafruit.com/product/393 를 보면 AM2302는 DHT22에 케이블을 추가한 버전입니다만, 생산 업체마다 형태가 조금씩 다른거 같습니다. 제가 사용한 것은 ASAIR의 AM2302로 사진에 나오는 것처럼 케이블 연결이 쉽게 핀이 있는 형태입니다.핀 연결 온습도 센서 + : 1번 핀 (3.3v) - 1번 핀 아니어도 3.3v 전압 핀이면 됩니다.온습도 센서 - : 6번 핀 (Ground) - 6번 핀 아니어도 ground면 됩니다.온습도 센서 out : GPIO 4 (7번핀) - 다른 GPIO 핀도 가능합니다. Python Package 설치Pi .. 라즈베리파이 먼지센서 사용하기 라즈베리파이에 먼지센서(PMS7003) 장착 및 사용 방법입니다.환경 및 준비물라즈베리파이 4먼지 센서: PMS7003레이저 방식의 먼지 센서입니다.PM 1.0/2.5/10.0 측정 가능합니다.먼지 센서 인터페이스 보드: https://www.eleparts.co.kr/goods/view?no=6060637점퍼 케이블(F/F)라즈베리파이 설정UARTPMS7003 먼지센서와 라즈베리파이는 UART를 사용하여 통신하게 됩니다. UART는 간단히 얘기하면 직렬 통신의 한 방식이자 해당 방식의 장치라고 할 수 있습니다. 라즈베리파이에는 다음과 같이 두 가지 유형의 UART가 있습니다. 하나는 PL001이고 다른 하나는 mini UART입니다PL001: 16550 호한 UARTmini UART: 보다 적은 기능을.. 라즈베리파이 64비트 OS 설치 라즈베리파이 Pi OS 64비트 설치 방법입니다. 1. 라즈베리파이 공식 사이트에서 Imager를 자신의 컴퓨터에 설치합니다.https://www.raspberrypi.com/software/맥, 윈도우, 우분투 리눅스를 지원합니다. 2. 라즈베리파이용 Micro SD 카드를 컴퓨터에 연결된 리더기에 삽입합니다.3. 1에서 설치한 Raspberry Pi Imager를 실행합니다.4. 자신의 환경에 맞는 선택을 합니다.운영 체제는 반드시 RASPBERRY PI OS (64-BIT)를 선택합니다. 5. 다음을 누르면 OS 커스터마이징을 할 거냐고 묻는데, 와이파이 설정 등을 미리 할 수 있어서 하는 게 좋습니다. 6. OS 커스터마이징7. 설치 진행 및 완료 8. SD 카드를 컴퓨터에서 제거한 후 라즈베리파.. 라즈베리파이 - nginx - 특정 국가 접속 차단 일전에 ModSecurity를 사용하여 보안을 강화할 때 IP 주소들을 좀 살펴보니 공격의 출처는 대부분 - 아니 모두가 외국이었습니다. 그래서, 특정 국가들에 대해서 좀 차단을 해야겠다는 생각에 nginx에 설정을 추가했습니다. geoip-database특정 국가의 요청을 차단하려면 요청이 들어온 쪽의 IP 주소가 어느 국가인지를 알아야 합니다. 이런걸 IP 주소를 가지고 위치 정보를 확인한다고 GeoIP라고 부릅니다. 또, 리눅스 배포본에 포함된 IP 기반 위치 정보 C 라이브러리의 이름도 GeoIP입니다. 국가별 IP 주소 대역은 이런 곳에서 쉽게 확인 가능하지만, 이를 데이터베이스화 하여 사용할 수 있게 하는 건, 또 다른 문제입니다. 거기다가 nginx에 바로 연동되게 하려면 많은 시간과 노력이.. 라즈베리파이 - Docker Registry 서버 설치 앞선 Git 서버 설치하기 글과 이어지는 글입니다. Git 서버는 Gitea를 통해 잘 설치했고, 이번에는 라즈베리파이 3B에 Docker Registry 서버 설치입니다. 순서 상으로는 Gitea를 나중에 설치 했고, Docker Registry 서버를 먼저 설치했지만, 내용 정리는 이제서야 하게 됐습니다. HarborRegistry 서버로 뭘 설치해야할까 검색을 좀 해 보니 Open Source로 Harbor라는게 보여서 처음에는 이 걸 설치해 보려고 진행을 했습니다. 가이드에 따라서 한 참을 진행하고 있었는데, '앗! 이런' Harbor가 arm64 아키텍처를 지원하고 있지 않는 겁니다. ㅠㅠhttps://github.com/goharbor/harbor-arm GitHub - goharbor/har.. 라즈베리파이 - nginx - ModSecurity 설치 요즘 간단한 웹앱을 하나 만들어서 라즈베리파이 5에서 홈서버로 운영하려고 하고 있습니다. 앱은 간단한 것이어서 금방 만들었고, duckdns를 이용해 공인 도메인도 설정하고, Let's Encrypt를 사용하여 인증서 설정으로 HTTPS 연결까지 마쳤습니다.당연히, 방문자는 없겠지만 그래도 방문 통계는 필요할 거 같아 로그 분석 툴을 찾아 보다 goaccess를 알게 되어 간단히 설치하고 access.log를 분석했는데, 진짜 인터넷 세계에 연결된지 얼마 되지도 않았고, 아무도 모르는 앱인데 벌써 취약점 공격이 들어왔더군요. 예상은 했던 일이고 전체적인 설정 막바지에 보안 관련 작업을 하려고 생각하고 있었는데, 예상 보다 훨씬 빨리 공격이 들어 왔습니다. 한 이틀 정도 연결해 둔 거 같은데 바로 공격이 .. 라즈베리파이 - Git 서버 설치하기 (Gitea) 요즘 몇가지 백엔드 프로그램들을 라즈베리파이에서 돌리려고 하고 있는데 소스 배포가 문제였습니다. 배포에 필요한 파일을 서버로 복사해서 실행 시키는 것도 한 두번이지 계속은 어려울 거 같고, CI/CD를 전체적으로 제대로 구현하는 것은 귀찮고 해서 다음의 두 가지 방향을 정했습니다.내부 Git 서버 운영GitHub을 이용해도 되지만 여러모로 번거롭고, 또 암호나 API 키 같은 민감 정보가 있는 소스는 매번 private 리파지토리로 관리해야하고 하는 신경쓸 부분들이 있어서 그냥 아무 신경 쓸 거 없이 내부에서 막 쓸 수 있는 Git 서버를 하나 운영하기로 결정했습니다.Docker Resitry 서버 운영1번은 소스로 받아서 써야할 때 쓰고, 그 외에는 주로 Docker 이미지를 만들어 배포하기로 결정했습.. 이전 1 2 3 다음