FTPサーバー · 2 min read · Sep 24, 2025
Ubuntu 22.04 に Pure-FTPd をインストールする

Pure-FTPd は、無料(BSDライセンス)、安全で、商用品質かつ標準準拠の FTP サーバーです。不要な機能を提供せず、効率と使いやすさに焦点を当てています。このガイドでは、Ubuntu に Pure-FTPd をインストールし、設定するためのステップバイステップのプロセスを提供します。
Pure-FTPd インストールの前提条件
インストールを進める前に、以下を確認してください:
- Ubuntu サーバーのセットアップ
sudo権限を持つユーザーアカウントへのアクセス
Pure-FTPd のステップバイステップインストール
システムパッケージの更新
まず、システムのパッケージリストを更新します:
sudo apt updatePure-FTPd のインストール
次に、以下のコマンドを使用して Pure-FTPd をインストールします:
sudo apt install pure-ftpd強化されたセキュリティのための Pure-FTPd の設定
安全な環境の設定
FTP ユーザー用の専用グループを作成します:
sudo groupadd ftpgroupPure-FTPd 用のユーザーを作成します:
sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuserユーザーアクセスの管理
FTP サーバーにユーザーを追加するには:
sudo pure-pw useradd [username] -u ftpuser -g ftpgroup -d /home/ftpusers/[username]
sudo pure-pw mkdb[username] を希望のユーザー名に置き換えます。
セキュアなデータ転送のための TLS の設定
自己署名証明書を生成します:
sudo openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pemTLS を有効にするために Pure-FTPd の設定を変更します:
echo 1 | sudo tee /etc/pure-ftpd/conf/TLS
sudo service pure-ftpd restart高度な設定オプション
以下は、Ubuntu の /etc/pure-ftpd/conf/ ディレクトリで Pure-FTPd に設定できる一般的な設定のリストです。設定ファイル名は太字です。
- AltLog: 代替ログ記録方法を指定します。たとえば、AltLog clf:/var/log/pureftpd.log は、W3C 形式で転送を記録します。
- AnonymousOnly: 有効にすると(AnonymousOnly という名前のファイルを作成することで)、サーバーは匿名ログインのみを許可します。
- AntiWarez: このファイルが存在する場合、ユーザーはサーバー上に既に存在するファイルをアップロードすることが禁止されます。
- AutoRename: 同名のファイルが存在する場合、アップロードされたファイルの名前を自動的に変更します。
- Bind: サーバーを特定の IP アドレスとポートにバインドします。たとえば、Bind 21 はすべての利用可能なアドレスのポート 21 にバインドします。
- BrokenClientsCompatibility: FTP 標準に厳密に従わない FTP クライアントとの互換性を有効にします。
- ChrootEveryone: 有効にすると、すべてのユーザーが自分のホームディレクトリに制限されます。
- CreateHomeDir: ユーザーがログインしたときにホームディレクトリが存在しない場合、自動的に作成します。
- CustomerProof: クライアントの設定やコマンドでの一般的なミスに対する耐性を高めます。
- Daemonize: このファイルが存在する場合、Pure-FTPd はデーモンとして実行されます。
- DisplayDotFiles: ドットファイル(隠しファイル)を表示するかどうかを制御します。
- DontResolve: ログ記録と帯域幅制御のための DNS 解決を防ぎ、パフォーマンスを向上させることができます。
- ExtAuth: ユーザー認証のための外部プログラムを指定します。
- ForcePassiveIP: サーバーがパッシブモードクライアントに特定の IP アドレスを報告するよう強制します。
- FSCharset: ファイルシステムの文字セットを設定し、非 ASCII ファイル名に便利です。
- IPv4Only または IPv6Only: サーバーが IPv4 または IPv6 アドレスのみにリッスンするよう制限します。
- KeepAllFiles: サーバー上のファイルの削除を防ぎます。
- LDAPConfigFile: 認証用の LDAP 設定ファイルへのパスを指定します。
- LimitRecursion: 再帰の深さとディレクトリリストに表示されるファイルの数を制限します。
- MaxClientsNumber: 同時接続の最大数を制限します。
- MaxClientsPerIP: 単一の IP アドレスからの同時接続の数を制限します。
- MaxDiskUsage: ディスク使用量の割合を制限します。
- MaxIdleTime: クライアントが切断されるまでの最大アイドル時間を分単位で設定します。
- MaxLoad: 特定のシステム負荷を超えた場合、クライアントを切断するか新しい接続を拒否します。
- MinUID: ログインのための最小 UID を設定します。UID が低いユーザーはログインできません。
- MySQLConfigFile: データベースベースの認証用の MySQL 設定ファイルへのパスを指定します。
- NoAnonymous: このファイルが存在する場合、匿名ログインを無効にします。
- NoChmod: サーバー上で CHMOD コマンドを無効にします。
- NoRename: ユーザーがファイルの名前を変更することを防ぎます。
- PassivePortRange: パッシブ接続のためのポート範囲を定義します(例:30000 35000)。
- PerUserLimits: ユーザーごとの制限を設定します。
- PureDB: PureDB ユーザーデータベースファイルへのパスを指定します。
- Quota: ユーザーのクォータ制限を設定します。
- SyslogFacility: ログ記録のための syslog ファシリティを定義します。
- TLSCipherSuite: 暗号化された接続のための許可された TLS 暗号を指定します。
- TrustedGID: ログインのための信頼されたグループ ID のリストを指定します。
- UMask: ファイル作成のためのデフォルトの umask を設定します。
- UnixAuthentication: UNIX パスワードデータベースに対する認証を有効にします。
- UploadScript: 成功したアップロード後に実行するスクリプトを指定します。
このリストは最も一般的に使用される設定オプションをカバーしていますが、網羅的ではありません。常に公式の Pure-FTPd ドキュメントを参照するか、次のコマンドを使用して最も正確で包括的な情報を得てください。
pure-ftpd-wrapper --help例
以下は、/etc/pure-ftpd/conf/ にある Pure-FTPd 設定のリストで、受け入れる値のタイプを示す例です:
- AltLog:
AltLog clf:/var/log/pureftpd.log- 例:clf:/var/log/pureftpd.log - AnonymousOnly:
AnonymousOnlyという名前のファイルを作成することで有効にします。 - 値は必要ありません。 - AntiWarez:
AntiWarezという名前のファイルを作成することで有効にします。 - 値は必要ありません。 - AutoRename:
AutoRenameという名前のファイルを作成することで有効にします。 - 値は必要ありません。 - Bind:
Bind 21- 例:192.168.0.1,21 - BrokenClientsCompatibility:
BrokenClientsCompatibilityという名前のファイルを作成することで有効にします。 - 値は必要ありません。 - ChrootEveryone:
ChrootEveryoneという名前のファイルを作成することで有効にします。 - 値は必要ありません。 - CreateHomeDir:
CreateHomeDirという名前のファイルを作成することで有効にします。 - 値は必要ありません。 - CustomerProof:
CustomerProofという名前のファイルを作成することで有効にします。 - 値は必要ありません。 - Daemonize:
Daemonizeという名前のファイルを作成することで有効にします。 - 値は必要ありません。 - DisplayDotFiles:
DisplayDotFilesという名前のファイルを作成することで有効にします。 - 値は必要ありません。 - DontResolve:
DontResolveという名前のファイルを作成することで有効にします。 - 値は必要ありません。 - ExtAuth:
ExtAuth /path/to/authenticator- 例:/usr/local/bin/myauth - ForcePassiveIP:
ForcePassiveIP 192.168.0.1- 例:192.168.0.1 - FSCharset:
FSCharset utf-8- 例:utf-8 - IPv4Only または IPv6Only:
IPv4OnlyまたはIPv6Onlyという名前のファイルを作成することで有効にします。 - 値は必要ありません。 - KeepAllFiles:
KeepAllFilesという名前のファイルを作成することで有効にします。 - 値は必要ありません。 - LDAPConfigFile:
LDAPConfigFile /etc/pure-ftpd/ldap.conf- 例:/etc/pure-ftpd/ldap.conf - LimitRecursion:
LimitRecursion 10000 8- 例:10000 8(10000 ファイル、8 レベル深い) - MaxClientsNumber:
MaxClientsNumber 50- 例:50 - MaxClientsPerIP:
MaxClientsPerIP 8- 例:8 - MaxDiskUsage:
MaxDiskUsage 95- 例:95(95 パーセント) - MaxIdleTime:
MaxIdleTime 15- 例:15(15 分) - MaxLoad:
MaxLoad 4.0- 例:4.0 - MinUID:
MinUID 1000- 例:1000 - MySQLConfigFile:
MySQLConfigFile /etc/pure-ftpd/mysql.conf- 例:/etc/pure-ftpd/mysql.conf - NoAnonymous:
NoAnonymousという名前のファイルを作成することで有効にします。 - 値は必要ありません。 - NoChmod:
NoChmodという名前のファイルを作成することで有効にします。 - 値は必要ありません。 - NoRename:
NoRenameという名前のファイルを作成することで有効にします。 - 値は必要ありません。 - PassivePortRange:
PassivePortRange 30000 35000- 例:30000 35000 - PerUserLimits:
PerUserLimits 8- 例:8(ユーザーごとに 8 つの同時接続) - PureDB:
PureDB /etc/pure-ftpd/pureftpd.pdb- 例:/etc/pure-ftpd/pureftpd.pdb - Quota:
Quota 1000M- 例:1000M(1000 メガバイト) - SyslogFacility:
SyslogFacility ftp- 例:ftp - TLSCipherSuite:
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3- 例:HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3 - TrustedGID:
TrustedGID 1000- 例:1000 - UMask:
UMask 133:022- 例:133:022(ファイル: 133、ディレクトリ: 022) - UnixAuthentication:
UnixAuthenticationという名前のファイルを作成することで有効にします。 - 値は必要ありません。 - UploadScript:
UploadScript /path/to/script- 例:/usr/local/bin/uploadscript
これらの例は、Pure-FTPd のさまざまなオプションを設定する方法を明確にするはずです。
監視とメンテナンス
定期的に /var/log/pure-ftpd/ のログを確認し、異常な活動やエラーがないか確認してください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。