웹사이트 검색

Debian 11에서 PostfixAdmin으로 메일 서버를 설정하는 방법


이 페이지에서

  1. 전제 조건
  2. 시작하기\n
  3. Nginx, MariaDB 및 PHP 설치
  4. PostfixAdmin 데이터베이스 생성
  5. PostfixAdmin 설치
  6. PostfixAdmin용 Nginx 구성
  7. PostfixAdmin 액세스
  8. 결론

PostfixAdmin은 웹 브라우저에서 Postfix 메일 서버를 관리하는 데 사용되는 무료 오픈 소스 웹 기반 인터페이스입니다. 웹 기반 인터페이스에서 사용자, 별칭을 추가하고 디스크 할당량을 설정하고 도메인을 추가 및 제거할 수 있습니다. PostgreSQL, MySQL, MariaDB 및 SQLite를 포함한 여러 데이터베이스 백엔드를 지원합니다. 플러그인을 통해 Squirrelmail 및 Roundcube와 통합할 수 있습니다.

이 글에서는 Debian 11에서 PostfixAdmin을 설치하는 방법에 대해 설명하겠습니다.

전제 조건

  • postfix가 설치된 Debian 11을 실행하는 서버.\n
  • 유효한 도메인 이름은 서버 IP 주소로 지정됩니다.\n
  • 유효한 MX 레코드는 서버 IP 주소를 가리킵니다.\n

시작하기

먼저 다음 명령을 사용하여 시스템 패키지를 최신 버전으로 업데이트합니다.

apt-get update -y

시스템이 업데이트되면 서버의 정규화된 호스트 이름을 설정합니다.

hostnamectl set-hostname mail.domain.com

그런 다음 다음 명령을 실행하여 변경 사항을 적용합니다.

hostname -f

완료되면 다음 단계로 진행할 수 있습니다.

Nginx, MariaDB 및 PHP 설치

다음으로 Nginx 웹 서버, MariaDB, PHP 및 기타 필수 PHP 확장을 서버에 설치해야 합니다. 다음 명령으로 모두 설치할 수 있습니다.

apt-get install nginx mariadb-server php-fpm php-cli php-imap php-json php-mysql php-opcache php-mbstring php-readline unzip sudo -y

모든 패키지가 설치되면 다음 단계로 진행할 수 있습니다.

PostfixAdmin 데이터베이스 생성

다음으로 PostfixAdmin을 위한 데이터베이스와 사용자를 생성해야 합니다. 먼저 다음 명령을 사용하여 MariaDB 콘솔에 로그인합니다.

mysql

연결되면 다음 명령을 사용하여 데이터베이스와 사용자를 만듭니다.

MariaDB [(none)]> CREATE DATABASE postfixadmin;
MariaDB [(none)]> GRANT ALL ON postfixadmin.* TO 'postfixadmin'@'localhost' IDENTIFIED BY 'securepassword';

그런 다음 권한을 플러시하고 다음 명령을 사용하여 MariaDB 셸을 종료합니다.

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

이 시점에서 PostfixAdmin을 위한 MariaDB 데이터베이스가 생성됩니다. 이제 다음 단계를 진행할 수 있습니다.

PostfixAdmin 설치

먼저 Sourceforge 웹사이트에서 최신 버전의 PostfixAdmin을 다운로드해야 합니다. 다음 명령으로 다운로드할 수 있습니다.

wget https://webwerks.dl.sourceforge.net/project/postfixadmin/postfixadmin-3.3.8/PostfixAdmin%203.3.8.tar.gz

다운로드가 완료되면 다음 명령을 사용하여 다운로드한 파일의 압축을 풉니다.

tar -xvzf PostfixAdmin\ 3.3.8.tar.gz

다음으로 추출된 디렉터리를 Nginx 웹 루트 디렉터리로 이동합니다.

mv postfixadmin-postfixadmin-7d04685 /var/www/html/postfixadmin

다음으로 PostfixAdmin을 설치하는 데 필요한 디렉토리를 생성합니다.

mkdir /var/www/html/postfixadmin/templates_c

다음으로 PostfixAdmin 디렉토리에 적절한 소유권을 설정합니다.

chown -R www-data: /var/www/html/postfixadmin/

다음으로 config.local.php 파일을 만듭니다.

nano /var/www/html/postfixadmin/config.local.php

다음 줄을 추가합니다.

<?php
$CONF['configured'] = true;
 
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'securepassword';
$CONF['database_name'] = 'postfixadmin';
 
$CONF['default_aliases'] = array (
 'abuse' => '',
 'hostmaster' => '',
 'postmaster' => '',
 'webmaster' => ''
);
 
$CONF['fetchmail'] = 'NO';
$CONF['show_footer_text'] = 'NO';
 
$CONF['quota'] = 'YES';
$CONF['domain_quota'] = 'YES';
$CONF['quota_multiplier'] = '1024000';
$CONF['used_quotas'] = 'YES';
$CONF['new_quota_table'] = 'YES';
 
$CONF['aliases'] = '0';
$CONF['mailboxes'] = '0';
$CONF['maxquota'] = '0';
$CONF['domain_quota_default'] = '0';
?>

파일을 저장하고 닫은 후 다음 명령을 사용하여 PostfixAdmin 데이터베이스에 대한 스키마를 생성합니다.

sudo -u www-data php /var/www/html/postfixadmin/public/upgrade.php

다음으로 PostfixAdmin의 최고 관리자 계정을 생성해야 합니다. 다음 명령으로 만들 수 있습니다.

bash /var/www/html/postfixadmin/scripts/postfixadmin-cli admin add

아래와 같이 관리자 사용자 이름, 암호 및 도메인을 제공합니다.

Welcome to Postfixadmin-CLI v0.3
---------------------------------------------------------------

Admin:  
> 

Password:  
> 

Password (again):  
> 

Super admin:
(Super admins have access to all domains, can manage domains and admin accounts.) (y/n) 
> y

Domain:  
> domain.com

Active: (y/n) 
> y

The admin  has been added!

---------------------------------------------------------------

PostfixAdmin용 Nginx 구성

다음으로 PostfixAdmin용 Nginx 가상 호스트 구성 파일을 생성해야 합니다. 다음 명령으로 만들 수 있습니다.

nano /etc/nginx/conf.d/domain.com.conf

다음 줄을 추가합니다.

server {
        listen 80;
        root /var/www/html/postfixadmin/public;
        index index.html index.htm index.php;
        server_name mail.domain.com;

        location ~ \.php$ {
          fastcgi_split_path_info ^(.+\.php)(/.+)$;
          fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
          fastcgi_index index.php;
          include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          fastcgi_intercept_errors off;
          fastcgi_buffer_size 16k;
          fastcgi_buffers 4 16k;
          fastcgi_connect_timeout 600;
          fastcgi_send_timeout 600;
          fastcgi_read_timeout 600;
        }


   location / {
       try_files $uri $uri/ =404;
   }

}

파일을 저장하고 닫은 다음 Nginx 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart nginx

다음 명령을 사용하여 Nginx의 상태를 확인할 수도 있습니다.

systemctl status nginx

다음 출력이 표시되어야 합니다.

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-08-28 08:13:22 UTC; 7s ago
       Docs: man:nginx(8)
    Process: 74644 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 74645 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 74646 (nginx)
      Tasks: 2 (limit: 2341)
     Memory: 3.2M
        CPU: 57ms
     CGroup: /system.slice/nginx.service
             ??74646 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??74647 nginx: worker process

Aug 28 08:13:22 mail.domain.com systemd[1]: Starting A high performance web server and a reverse proxy server...
Aug 28 08:13:22 mail.domain.com systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Aug 28 08:13:22 mail.domain.com systemd[1]: Started A high performance web server and a reverse proxy server.

PostfixAdmin에 액세스

이 시점에서 PostfixAdmin이 설치되고 구성됩니다. 이제 URL http://mail.domain.com을 사용하여 액세스할 수 있습니다. PostfixAdmin 로그인 페이지로 리디렉션됩니다:

관리자 이메일, 비밀번호를 제공하고 로그인 버튼을 클릭합니다. 다음 화면에 PostfixAdmin 대시보드가 표시되어야 합니다.

결론

축하합니다! Debian 11에 PostfixAdmin을 성공적으로 설치했습니다. 이제 웹 브라우저에서 Postfix 메일 서버를 쉽게 관리할 수 있습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.