サーバー設定 · 2 min read · Dec 28, 2025

Debian Lenny における iRedMail と Pure-FTPd を使用した仮想メールおよび FTP ホスティング

Debian Lenny における iRedMail と Pure-FTPd を使用した仮想メールおよび FTP ホスティング

iRedMail は、2 分未満でフル機能のメールソリューションを迅速に展開できるシェルスクリプトです。バージョン 0.5 以降、CentOS 5.x、Debian 5.x、Ubuntu 8.04 および Ubuntu 9.04 (i386 および x86_64 の両方) をサポートしています。iRedMail は、仮想ドメインとユーザーを保存するためのバックエンドとして OpenLDAP と MySQL の両方をサポートしています。

iRedMail の OpenLDAP バックエンドを使用すると、さまざまなアプリケーションを統合できます。このガイドでは、Debian Lenny 上の iRedMail ldap バックエンドに pure-ftpd を統合する方法を示します。パスワードは ldap に保存され、ウェブメールを通じてパスワードを変更できます。

このチュートリアルは Debian 5.01 に基づいているため、最小限の Debian 5.01 をセットアップし、iRedMail 0.51 をインストールし、このチュートリアルに示されているように OpenLDAP をバックエンドとして選択することをお勧めします。

  • iRedMail: LDAP、Postfix、RoundCube/SquirrelMail、Dovecot、ClamAV、SpamAssassin、Amavisd を使用したメールサーバー (Debian 5.0.1)
  • iRedMail: CentOS 5.x 上で LDAP、Postfix、RoundCube、Dovecot、ClamAV、SpamAssassin、DKIM、SPF を使用してフル機能のメールサーバーを構築

1 Pure-FTPd のインストール

pure-ftpd をインストールします:

apt-get install pure-ftpd-ldap

2 PureFTPd をスタンドアロン サーバーとして構成

次に、PureFTPd をスタンドアロン デーモンとして構成する必要があります (現在は inetd によって制御されています)。これを行うには、/etc/default/pure-ftpd-common を開き、パラメータ STANDALONE_OR_INETD の値を standalone に変更します:

vi /etc/default/pure-ftpd-common

| #STANDALONE_OR_INETD=inetd STANDALONE_OR_INETD=standalone #standalone に変更 |

次に、/etc/inetd.conf を修正し、ftp 行をコメントアウトします:

| #ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper |

その後、inetd と PureFTPd を再起動します:

/etc/init.d/openbsd-inetd restart  
/etc/init.d/pure-ftpd-ldap restart

3 /etc/pure-ftpd/conf/ での基本設定

ファイル /etc/pure-ftpd/conf/ChrootEveryone を作成し、単に文字列 yes を含めます:

echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone

これにより、PureFTPd はすべての仮想ユーザーをそのホームディレクトリに chroot し、ホームディレクトリの外のディレクトリやファイルを参照できなくなります。

また、ファイル /etc/pure-ftpd/conf/CreateHomeDir を作成し、再び単に文字列 yes を含めます:

echo "yes" > /etc/pure-ftpd/conf/CreateHomeDir

これにより、ユーザーがログインしたときにユーザーのホームディレクトリが存在しない場合、PureFTPd はユーザーのホームディレクトリを作成します。

最後に、ファイル /etc/pure-ftpd/conf/DontResolve を作成し、再び単に文字列 yes を含めます:

echo "yes" > /etc/pure-ftpd/conf/DontResolve

これにより、PureFTPd はホスト名を解決しなくなり、接続速度が大幅に向上し、帯域幅の使用量が減少します。

4 cn=vmail パスワードの取得

iRedMail のインストール中に vmail パスワードがランダムに作成されました。パスワードは /etc/postfix/ldap_virtual_mailbox_domains.cf にあります:

cat /etc/postfix/ldap_virtual_mailbox_domains.cf

| bind_dn = cn=vmail,dc=example,dc=com bind_pw = kZ6uB29mViWKWI9lOH3cGnF7z3Dw3B #cn=vmail パスワード |

5 LDAP 設定の構成

vi /etc/pure-ftpd/db/ldap.conf

| LDAPServer localhost LDAPPort 389 LDAPBaseDN o=domains,dc=example,dc=com LDAPBindDN cn=vmail,dc=example,dc=com LDAPBindPW kZ6uB29mViWKWI9lOH3cGnF7z3Dw3B #cn=vmail パスワード LDAPDefaultUID 1000 # <- 'vmail' ユーザーの UID. LDAPDefaultGID 1000 # <- 'vmail' ユーザーの GID. LDAPFilter (&(objectClass=PureFTPdUser)(mail=\L)(FTPStatus=enabled)) LDAPHomeDir FTPHomeDir # <- これは新しい属性です。追加します LDAPVersion 3 |

6 スキーマの取得

pureftpd スキーマを取得する方法は 2 つあります。1 つを選択するだけです。

  • iredmail によって修正されたスキーマをダウンロードします。
  • pure-ftpd-1.0.24 に同梱されているスキーマを取得し、修正します。

6.1 iredmail によって修正されたスキーマをダウンロード:

wget http://iredmail.googlecode.com/svn/trunk/extra/pureftpd.schema -P /etc/ldap/schema/

6.2 pure-ftpd-1.0.24 に同梱されているスキーマを取得:

cd /tmp/  
wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.24.tar.bz2  
tar xjf pure-ftpd-1.0.24.tar.bz2  
cp pure-ftpd-1.0.24/pureftpd.schema /etc/ldap/schema/

/etc/ldap/schema/pureftpd.schema を修正:

ユーザーの FTP ディレクトリを保存するために使用される属性 ‘FTPHomeDir’ をオブジェクトクラス定義の前に 1 つ追加する必要があります。

vi /etc/ldap/schema/pureftpd.schema

| attributetype ( 1.3.6.1.4.1.6981.11.3.9 NAME 'FTPgid' DESC 'システム uid (gidNumber が存在する場合は上書きされます)' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # 新しい attributetype FTPHomeDir を追加。 attributetype ( 1.3.6.1.4.1.6981.11.3.10 NAME 'FTPHomeDir' DESC 'FTP ディレクトリ' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ## 新しい Pure-FTPd オブジェクトタイプ objectclass ( 1.3.6.1.4.1.6981.11.2.3 NAME 'PureFTPdUser' DESC 'オプションのクォータ、スロットリング、比率を持つ PureFTPd ユーザー' SUP top AUXILIARY MAY ( FTPStatus $ FTPQuotaFiles $ FTPQuotaMBytes $ FTPUploadRatio $ FTPDownloadRatio $ FTPUploadBandwidth $ FTPDownloadBandwidth $ FTPuid $ FTPgid $ FTPHomeDir ) ) # <-- $ FTPHomeDir を追加 |

7 /etc/ldap/slapd.conf の修正

vi /etc/ldap/slapd.conf

iredmail.schema の後に pureftpd.schema を含めます:

| include /etc/ldap/schema/iredmail.schema include /etc/ldap/schema/pureftpd.schema # <-- この行を追加。 |

pureftpd.schema で定義された属性のインデックスを追加します:

| # デフォルトのインデックス。 # index objectClass eq,pres index ou,cn,mail,surname,givenname,telephoneNumber eq,pres,sub index uidNumber,gidNumber,loginShell eq,pres index uid,memberUid eq,pres,sub index nisMapName,nisMapEntry eq,pres,sub # <-- 以下を追加 # FTP 属性のインデックス。 index FTPQuotaFiles,FTPQuotaMBytes eq,pres index FTPUploadRatio,FTPDownloadRatio eq,pres index FTPUploadBandwidth,FTPDownloadBandwidth eq,pres index FTPStatus,FTPuid,FTPgid,FTPHomeDir eq,pres |

8 FTP ホーム ディレクトリの作成

FTP データはすべて /home/ftp/ ディレクトリに保存されます。/home/ftp/ を作成し、所有者は root ユーザーでなければなりません。

mkdir /home/ftp/  
ls -dl /home/ftp
drwxr-xr-x 2 root root 4096 Oct 3 16:53 /home/ftp

9 pureftpd.schema を機能させるために OpenLDAP サービスを再起動

/etc/init.d/slapd restart  
/etc/init.d/pure-ftpd-ldap restart

pure-ftpd が実行中であることを確認します:

# netstat -ntlp | grep pure-ftpd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 12548/pure-ftpd (SE  
tcp6 0 0 :::21 :::* LISTEN 12548/pure-ftpd (SE
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。