웹사이트 검색

데비안 11에 Fathom 프라이버시 중심 웹사이트 분석을 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. PostgreSQL 서버 설치
  3. PostgreSQL 데이터베이스 및 사용자 설정
  4. Fathom 바이너리 다운로드
  5. Fathom 웹 분석 구성
  6. Fathom 관리 사용자 만들기
  7. Nginx를 역방향 프록시로 설치 및 구성\n
  8. 방화벽으로 Fathom 보호\n
  9. SSL/TLS로 Fathom 웹 분석 보안 유지 Letsencrypt
  10. Fathom 웹사이트 분석에 로그인
  11. 결론

Fathom은 웹 사이트에 대한 깨끗하고 간결한 데이터를 제공하는 개인 정보 보호 중심의 웹 분석입니다. 사이트에 대한 통찰력 있는 보고 및 메트릭을 제공하는 간단한 웹사이트 분석 소프트웨어입니다. Fathom은 Google Analytics의 대안으로 만들어졌지만 사용자 개인 정보를 침해하지 않으며 방문자 데이터를 손상시키지 않습니다. 쿠키 배너가 필요하지 않은 GDPR을 준수합니다.

Fathom은 서버에 설치할 수 있는 오픈 소스 버전과 Fathom 공식 웹 사이트에서 구입할 수 있는 프로 버전의 두 가지 버전으로 제공됩니다. 주목할만한 Fathom 웹 사이트 분석 사용자는 IBM, Laravel, GitHub, Hoshicord, BOSCH, McLaren, VueJS 등입니다.

이 튜토리얼은 Debian 11 서버에 Fathom Privacy-Focused Website Analytics를 설치하는 방법을 보여줍니다. PostgreSQL을 데이터베이스로, Nginx 웹 서버를 리버스 프록시로 사용하여 Fathom 설치를 수행하고 Certbot 및 Letsencrypt를 통해 SSL/TLS 인증서로 Fathom을 보호합니다.

그 과정에서 PostgreSQL에서 인증을 설정하고, 데이터베이스와 사용자를 만들고, Linux 시스템에 systemd 서비스를 추가하는 방법도 배우게 됩니다.

전제 조건

이 자습서를 완료하려면 다음 요구 사항이 있어야 합니다.

  • Debian 11 서버 - 이 예에서는 호스트 이름이 fathome-server인 Debian 서버를 사용합니다.\n
  • sudo/root 관리자 권한이 있는 루트가 아닌 사용자.\n
  • 서버 IP 주소를 가리키는 도메인 이름 - 이 예에서는 하위 도메인 fathom.hwdomain.io를 사용합니다.\n

그게 다야. Fathom 설치를 시작하겠습니다.

PostgreSQL 서버 설치

Fathom은 Golang Preact로 구축된 간단한 개인 정보 보호 중심 웹 분석입니다. 기본 설치에서 Fathom은 SQLite를 데이터베이스로 사용하지만 MySQL/MariaDB 및 PostgreSQL과 같은 RDBMS를 사용할 수도 있습니다.

이 예에서는 PostgreSQL과 함께 Fathom을 실행합니다. 이제 Debian 서버에 PostgreSQL을 설치하고 구성합니다.

시작하려면 아래 apt 명령을 실행하여 Debian 패키지 인덱스를 업데이트하고 새로 고칩니다.

sudo apt update

이제 아래의 apt 명령을 통해 PostgreSQL 패키지를 설치하십시오. 이렇게 하면 Debian 11 리포지토리의 기본 PostgreSQL 서버 패키지인 PostgreSQL 13이 설치됩니다.

sudo apt install postgresql

메시지가 표시되면 y를 입력하여 확인하고 ENTER를 눌러 계속 진행합니다.

PostgreSQL이 설치된 후 서버에 대한 인증을 설정해야 합니다. 이를 위해서는 /etc/postgresql/13/main/ 디렉터리(Debian의 기본 PostgreSQL)에서 사용할 수 있는 PostgreSQL 구성 파일을 수정해야 합니다.

원하는 텍스트/코드 편집기를 사용하여 /etc/postgresql/13/main/postgresql.conf 파일을 엽니다. 이 예제에서는 nano를 기본 편집기로 사용합니다.

sudo nano /etc/postgresql/13/main/postgresql.conf

password_encryption 매개변수의 주석을 제거하고 기본값을 scram-sha-256으로 변경합니다.

password_encryption = scram-sha-256

완료되면 /etc/postgresql/13/main/postgresql.conf 파일을 저장하고 닫습니다. 나노 사용자의 경우 Ctrl+x, y를 차례로 누르고 ENTER를 누릅니다.

다음으로 다음 nao 편집기를 사용하여 PostgreSQL 인증 구성 파일 /etc/postgresql/13/main/pg_hba.conf을 엽니다.

sudo nano /etc/postgresql/13/main/pg_hba.conf

호스트 127.0.0.1/32 및 ::1/128의 기본 인증 방법을 scram-sha-256으로 변경합니다. 이것은 localhost에서 PostgreSQL 서버로의 모든 연결에 scram-sha-256을 사용하는 인증 방법을 지정합니다.

-h 127.0.0.1 매개변수를 사용하면 PostgreSQL에 호스트로 연결되고 scram-sha-256 인증을 사용하게 됩니다. PostgreSQL 호스트를 지정하지 않고 psql 명령만 사용하면 로컬 연결로 피어 인증 방법을 사용하여 연결됩니다.

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256

완료되면 /etc/postgresql/13/main/pg_hba.conf 파일을 저장하고 닫습니다.

그런 다음 아래 systemctl 명령 유틸리티를 실행하여 PostgreSQL 서버를 다시 시작하고 변경 사항을 적용합니다.

sudo systemctl restart postgresql

그런 다음 PostgreSQL 서버를 확인하여 활성화되어 실행 중인지 확인하십시오.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

PostgreSQL이 실행 중이고 활성화되어 있으면 터미널에 출력이 표시됩니다.

PostgreSQL 서버가 실행되고 활성화되면 Fathom 웹 분석을 위한 새 PostgreSQL 데이터베이스 및 사용자를 만들기 시작합니다.

PostgreSQL 데이터베이스 및 사용자 설정

이 단계에서는 PostgreSQL 셸을 통해 기본 PostgreSQL 사용자 postgres의 암호를 설정합니다. 그런 다음 Fathom 웹 분석 설치에 사용할 새 데이터베이스와 사용자를 생성합니다.

아래 명령을 통해 PostgreSQL 셸에 로그인합니다. sudo -u postgres psql 명령을 사용하면 사용자 postgres로 psql 명령을 실행한다는 의미입니다.

cd /var/lib/postgresql
sudo -u postgres psql

로그인한 후 기본 postgres 데이터베이스에 연결해야 하고 PostgreSQL 프롬프트가 postgres=#가 되어야 합니다.

이제 아래 쿼리를 실행하여 기본 PostgreSQL 사용자 postgres에 대한 새 암호를 만듭니다. 다음 쿼리에서 암호를 변경해야 합니다.

ALTER USER postgres WITH PASSWORD '';

다음으로 다음 PostgreSQL 쿼리를 실행하여 새 PostgreSQL 사용자 및 데이터베이스를 생성합니다. 이 예에서는 데이터베이스 fathomdb를 사용하여 새로운 PostgreSQL 사용자 fathom을 생성합니다.

CREATE USER fathom WITH CREATEDB CREATEROLE PASSWORD 'p4ssw0rdFathom';
CREATE DATABASE fathomdb OWNER fathom;

마지막으로 아래 쿼리를 실행하여 PostgreSQL 서버의 데이터베이스 및 사용자 목록을 확인합니다.

\l
\du

\\l 쿼리를 통해 PostgreSQL 서버에 데이터베이스를 나열하면 새로운 데이터베이스 fathomdb가 생성되는 것을 볼 수 있습니다.

\\du 쿼리를 통해 PostgreSQL에 사용자 나열 - PostgreSQL에 추가된 새로운 PostgreSQL 사용자를 볼 수 있습니다.

이제 PostgreSQL 서버를 설치하고 구성했습니다. 다음 단계에서는 Fathom 설치를 시작합니다.

Fathom 바이너리 다운로드

Fathom은 Go로 작성된 작고 간단한 애플리케이션이며 Linux 시스템에서 언제든지 실행할 수 있는 단일 바이너리 파일로 제공됩니다.

이제 Fathom을 데비안 서버에 다운로드합니다.

GitHub의 Fathom 릴리스 페이지를 방문하여 원하는 설치 버전을 선택하십시오. 이 예제는 이 글을 쓰는 동안 최신 버전인 최신 Fathom 버전 v1.3.0을 사용합니다.

아래의 wget 명령을 사용하여 Fathom 바이너리 파일을 다운로드합니다.

wget https://github.com/usefathom/fathom/releases/download/v1.3.0-rc.1/fathom_1.3.0-rc.1_linux_amd64.tar.gz

다운로드가 완료되면 아래의 tar 명령을 실행하여 Fathom을 /usr/local/bin 디렉토리에 추출합니다. 그런 다음 chmod 명령을 통해 fathom 바이너리 파일을 실행 가능하게 만듭니다.

tar -C /usr/local/bin -xzf fathom_1.3.0-rc.1_linux_amd64.tar.gz
chmod +x /usr/local/bin/fathom

마지막으로, fathom 바이너리 파일을 실행할 수 있는지 확인하는 아래 명령입니다. 그런 다음 패덤 버전을 확인하십시오.

which fathom
fathom --version

명령이 성공하면 fathom 바이너리 파일 /usr/local/bin/fathom의 전체 경로가 표시되어야 합니다. 또한 터미널에 Fathom 버전이 표시됩니다.

Fathom이 다운로드되면 다음으로 Fathom 웹 분석 설치를 구성합니다.

Fathom 웹 분석 구성

이 단계에서는 Fathom 웹 분석 설치를 설정합니다. 데이터 디렉토리를 설정하고, Fathom을 사용하여 PostgreSQL 데이터베이스를 설정하고, 마지막으로 Fathom을 시스템 서비스로 실행합니다.

Fathom을 systemd 서비스로 실행하면 systemctl 명령 유틸리티를 통해 Fathom을 쉽게 관리할 수 있습니다. systemctl을 통해 Fathom의 상태를 시작, 활성화 및 확인할 수 있습니다.

먼저 아래 명령을 실행하여 데비안 시스템에서 새 사용자 패덤을 만듭니다. 또한 새 사용자의 암호를 설정해야 합니다.

sudo useradd -m -s /bin/bash fathom
sudo passwd fathom

이제 아래 명령을 실행하여 새 사용자 fathom에 로그인하고 Fathom 설치 구성을 시작하십시오.

su - fathom

먼저 아래 명령을 실행하여 FATHOM_SECRET로 사용할 임의의 문자열을 생성합니다. 생성된 출력을 복사해야 합니다.

head /dev/urandom | tr -dc A-Za-z0-9 | head -c 20 ; echo ''

이제 새 ~/data 디렉토리를 만들고 작업 디렉토리를 그 디렉토리로 이동하십시오. 그런 다음 아래의 nano 편집기 명령을 통해 새 파일 .env를 만듭니다.

mkdir -p ~/data; cd ~/data
nano .env

파일에 다음 줄을 추가합니다. PostgreSQL 데이터베이스 및 사용자의 세부 정보를 변경하고 맨 위에 있는 FATHOM_SECRET"를 생성된 문자열로 바꾸십시오.

또한 프로덕션에서 Fathomn을 실행하는 경우 FATHOM_DEBUG를 false로 변경해야 합니다. 보안 SSL/TLS 연결이 있는 데이터베이스를 사용하는 경우 FATHOM_DATABASE_SSLMODE를 설정할 수도 있습니다. 이 예제는 Fathom과 동일한 서버를 사용하고 있으므로 FATHOM_DATABASE_SSLMODE는 비활성화로 설정됩니다.

FATHOM_GZIP=true
FATHOM_DEBUG=true
FATHOM_DATABASE_DRIVER="postgres"
FATHOM_DATABASE_NAME="fathomdb"
FATHOM_DATABASE_USER="fathom"
FATHOM_DATABASE_PASSWORD="p4ssw0rdFathom"
FATHOM_DATABASE_HOST="127.0.0.1"
FATHOM_DATABASE_SSLMODE="disable"
FATHOM_SECRET="13tUIGpjCY9miJcSWW6S"

완료되면 .env 파일을 저장하고 닫습니다.

이제 exit를 입력하여 fathom 사용자에서 로그아웃하고 루트 세션으로 돌아갑니다.

다음으로 아래의 nano 편집기 명령을 사용하여 새로운 systemd 서비스 파일 /etc/systemd/system/fathom.service을 만듭니다.

sudo nano /etc/systemd/system/fathom.service

파일에 다음 줄을 추가합니다. 이를 통해 로컬 호스트에서 기본 포트 8080으로 Fathom 웹 분석을 실행하고 Fathom의 데이터 디렉터리는 /home/fathom/data로 구성됩니다.

[Unit]
Description=Starts the fathom server
Requires=network.target
After=network.target

[Service]
Type=simple
User=fathom
Restart=always
RestartSec=3
WorkingDirectory=/home/fathom/data
ExecStart=/usr/local/bin/fathom server

[Install]
WantedBy=multi-user.target

완료되면 파일을 저장하고 종료합니다.

이제 아래 명령을 실행하여 systemd 관리자를 다시 로드하고 새 서비스 파일 fathom.service를 적용합니다.

sudo systemctl daemon-reload

그런 다음 다음 systemctl 명령을 사용하여 fathom 서비스를 시작하고 활성화합니다.

sudo systemctl start fathom
sudo systemctl enable fathom

서비스가 실행 중인지 확인하려면 fathom 서비스를 확인하십시오.

sudo systemctl status fathom

다음과 같은 출력을 수신해야 합니다. fathom 서비스의 상태가 실행 중이고 현재 활성화되어 있으며, 이는 서비스가 부팅 시 자동으로 실행됨을 의미합니다.

Fathom 관리 사용자 생성

Fathom이 시스템 서비스로 실행되면 이제 Fathom 설치를 위한 새 관리 사용자를 만들 준비가 되었습니다.

Fathom 관리 사용자를 생성하려면 Fathom 데이터 디렉터리에 있어야 합니다. 따라서 아래 명령을 실행하여 fathom 사용자로 로그인하십시오. 그런 다음 작업 디렉토리를 ~/data로 이동합니다.

su - fathom
cd ~/data

Fathom 웹 분석을 위한 새 관리자 사용자를 추가하려면 아래 fathom 명령을 실행하십시오. 다음 명령줄에서 이메일 주소와 암호를 변경해야 합니다.

fathom user add --email="" --password="AliceFathomP4ssw0rd"

성공하면 이와 유사한 출력이 표시됩니다. PostgreSQL fathomdb 데이터베이스에 대한 상태 연결을 보여주는 메시지와 새 관리자 사용자 [email 가 생성된 것을 볼 수 있습니다.

이 시점에서 PostgreSQL 데이터베이스 서버로 Fathom 설치를 완료했습니다. Fathom에 대한 관리자 사용자도 생성했습니다.

다음 단계에서는 Nginx를 기본 포트 8080으로 localhost에서 실행되는 Fathom 웹 분석용 리버스 프록시로 설치 및 설정합니다.

Nginx를 리버스 프록시로 설치 및 구성

이 단계에서는 Nginx 웹 서버를 설치하고 Fathom 웹 분석을 위한 리버스 프록시로 사용할 Nginx 서버 블록을 설정합니다.

아래 apt 명령을 실행하여 Nginx 패키지를 데비안 서버에 설치합니다. 메시지가 표시되면 y를 입력하여 확인하고 ENTER를 눌러 계속 진행합니다.

sudo apt install nginx

Nginx가 설치된 후 아래의 nano 편집기 명령을 사용하여 새 서버 블록 구성 파일 /etc/nginx/sites-available/fathom을 만듭니다.

sudo nano /etc/nginx/sites-available/fathom

에 다음 줄을 추가하고 도메인 이름을 도메인으로 변경해야 합니다.

server {
    listen 80;
    server_name fathom.hwdomain.io;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;
    }
}

파일을 저장하고 완료되면 편집기를 종료합니다.

다음으로 아래 명령을 실행하여 Nginx 서버 블록 /etc/nginx/sites-available/fathom을 활성화합니다. 그런 다음 Nginx 구성을 확인하여 적절한 Nginx 구성이 있는지 확인하십시오.

sudo ln -s /etc/nginx/sites-available/fathom /etc/nginx/sites-enabled/
sudo nginx -t

성공하면 터미널에 test is successful - syntax ok와 같은 출력이 표시됩니다.

이제 아래 systemctl 명령 유틸리티를 실행하여 Nginx 서비스를 다시 시작하고 변경 사항을 적용하십시오.

sudo systemctl restart nginx

그런 다음 Nginx 서비스를 확인하여 아래 systemctl 명령 유틸리티를 통해 서비스가 실행 중인지 확인합니다.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Nginx 서비스가 실행 중이고 활성화되어 있다는 출력을 받아야 합니다. 즉, 부팅 시 서비스가 자동으로 시작됩니다.

이제 Nginx 웹 서버가 Fathom 웹 분석을 위한 리버스 프록시로 실행 중이므로 다음으로 UFW 방화벽을 설정하고 HTTP 및 HTTPS 포트를 엽니다.

방화벽으로 Fathom 보호

이 단계에서는 Debian 서버에 UFW를 설치합니다. 그런 다음 SSH, HTTP 및 HTTPS 서비스를 열어 서버에 대한 액세스를 허용합니다.

아래의 apt 명령을 통해 ufw 패키지를 설치합니다. 메시지가 표시되면 y를 입력하고 ENTER를 눌러 계속 진행합니다.

sudo apt install ufw

UFW가 설치되면 아래 명령을 실행하여 OpenSSH 및 WWW Full 응용 프로그램을 추가합니다. OpenSSH 응용 프로그램은 기본 SSH 포트 22를 열고 WWW Full 응용 프로그램은 HTTP 및 HTTPS 서비스를 모두 엽니다.

sudo ufw allow OpenSSH
sudo ufw allow 'WWW Full'

추가되면 Rules updated와 같은 출력이 표시되어야 합니다.

이제 아래 ufw 명령을 실행하여 UFW 방화벽을 시작하고 활성화하십시오. 메시지가 표시되면 y를 입력하여 확인하고 ENTER를 눌러 계속 진행합니다.

sudo ufw enable

Firewall is active and enabled on system startup과 같은 출력을 수신해야 합니다. 이는 UFW 방화벽이 시작되고 활성화되었음을 의미합니다. 이것은 또한 UFW가 부팅 시 자동으로 실행되도록 합니다.

마지막으로 아래 ufw 명령을 실행하여 UFW에서 열린 포트 및 서비스 목록을 확인합니다.

sudo ufw status

UFW 방화벽에 추가된 OpenSSH 및 WWW 전체 응용 프로그램을 받게 됩니다.

SSL/TLS로 Fathom 웹 분석 보안 유지 Letsencrypt

이 단계에서는 Letsencrypt의 SSL/TLS 인증서로 Fathom 웹 분석을 보호합니다. 이를 위해서는 Certbot 및 추가 Certbot Nginx 플러그인을 Debian 서버에 설치해야 합니다.

SSL/TLS 인증서를 생성하기 전에 도메인이 서버 IP 주소를 가리키는지 확인하십시오. 또한 Letsencrypt에 등록하는 데 사용할 이메일 주소가 있는지 확인하십시오.

이제 아래 apt 명령을 실행하여 Certbot 및 Certbot Nginx 플러그인을 설치합니다. 메시지가 표시되면 y를 입력하고 ENTER를 눌러 계속 진행합니다.

sudo apt install certbot python3-certbot-nginx

Certbot이 설치된 후 아래 명령을 실행하여 도메인 이름에 대한 SSL/TLS 인증서를 생성합니다. 또한 다음 명령에서 도메인 이름과 이메일 주소를 변경해야 합니다.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email  -d fathom.hwdomain.io

이 명령을 사용하면 도메인 이름에 대한 새 SSL/TLS 인증서가 생성됩니다. 또한 이렇게 하면 Nginx 서버 블록에 HTTPS가 자동으로 설정되고 Fathom 서버 블록에 대해 HTTP에서 HTTPS로 자동 리디렉션이 설정됩니다. Certbot SSL/TLS 인증서는 /etc/elstencrypt/live/fathom.hwdomain.io/ 디렉토리에 생성됩니다.

Fathom 웹사이트 분석에 로그인

웹 브라우저를 열고 Fathom 웹 분석 설치의 도메인 이름(예: https://fathom.hwdomain.io)을 방문하십시오. Fathom 로그인 페이지가 표시되어야 합니다.

이메일 주소와 비밀번호를 입력하고 로그인을 클릭합니다.

이메일 주소와 암호가 정확하면 Fathom 관리 대시보드를 받아야 합니다.

이것으로 PostgreSQL 및 Nginx와 함께 Fathom 웹 분석을 성공적으로 설치했습니다.

결론

이 자습서에서는 Debian 11 서버에 공개 소스 및 개인 정보 보호에 중점을 둔 웹 분석 Fathom을 설치했습니다. 또한 Fathom 웹 분석을 위한 백엔드 데이터베이스 서버로 PostgreSQL을 설치 및 구성했습니다. 그리고 클라이언트 액세스를 위한 프런트 엔드에서 Nginx를 리버스 프록시로 구성했습니다. 또한 Certbot 및 Letsencrypt를 통해 SSL/TLS 인증서로 Fathom 웹사이트 분석을 보호했습니다.

이를 염두에 두고 이제 새 트랙을 추가하고 웹사이트와 방문자를 모니터링할 수 있습니다. Fathom을 WordPress 및 Drupal과 같은 여러 CMS(콘텐츠 관리 시스템)와 통합할 수도 있습니다. 또한 Discourse와 같은 포럼과 통합할 수 있습니다.