Pure-FTPdは、Troll-FTPdに基づく無料で軽量のFTPサーバーであり、開発は2001年に開始され、Linux、* BSD、Solaris、HP-UXなどの多くのUnixライクなOSで実行されます。 Pure-FTPdには、仮想ドメイン、chrootホームディレクトリ、仮想ユーザー、TLS / SSLサポート、仮想クォータなどの多くの機能があります。
このチュートリアルでは、OpenSUSELeap42.1にpure-ftpdをインストールして設定する方法を紹介します。 TLS / SSLを使用してpure-ftpdを設定し、次に仮想ユーザーを設定する方法を説明します。
前提条件
- OpenSUSE Leap 42.1
- root権限
- OpenSUSE、Zypperナレッジ
SuSEfirewall2は、ファイル'/ etc / sysconfig/SuSEfirewall2'にファイアウォール構成を生成するためのスクリプトです。 SuSEfirewall2をインストールしてから、SSHとFTPサービスのポートを開きます。
zypperを使用してSuSEfirewall2をインストールします:
zypper in SuSEfirewall2
次に、設定ファイル'/ etc / sysconfig / SuSEfirewall2'をvimで編集します:
vim /etc/sysconfig/SuSEfirewall2
新しいサービスsshとFTPを253行目に追加します。
FW_SERVICES_EXT_TCP="ssh ftp"
保存して終了します。
次に、systemctlコマンドを使用してSuSEfirewall2を起動します。
systemctl start SuSEfirewall2
このステップでは、TLS / SSL構成用にOpenSSLを使用してpure-ftpdをインストールし、pure-ftpdユーザーとグループを構成します。
以下に示すように、zypperを使用してアプリケーションをインストールします。
zypper in pure-ftpd openssl
次に、新しいグループ' ftpgroupを追加します 'およびマスター'FTPユーザー'の新しいユーザー'ftpuser 'グループに。
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser
pure-ftpdディレクトリに移動し、vimエディターで構成ファイル「pure-ftpd.conf」を編集します。
cd /etc/pure-ftpd/
vim pure-ftpd.conf
匿名ユーザーを無効にするには、81行目の値を「yes」に変更します。
NoAnonymous yes
行131のコメントを解除して、バックエンドを構成します。 Pure-ftpdはバックエンドとしてMySQL、PostgreSQL、およびLDAPをサポートしていますが、このチュートリアルでは、バックエンドに「PureDB」を使用します。
PureDB /etc/pure-ftpd/pureftpd.pdb
PureDBを認証ソースとして使用するため、PAMAuthentication行をコメントアウトして141行目のPAM認証を無効にします。
#PAMAuthentication yes
保存して終了します。
opensslコマンドを使用して、「/ etc / ssl/private」ディレクトリに新しい自己署名証明書ファイルを生成します。
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem -days 365
証明書ファイルのアクセス許可を0600に変更します:
chmod 600 /etc/ssl/private/pure-ftpd.pem
次に、pure-ftpdディレクトリに戻り、構成ファイルを編集して、クライアント接続のTLS/SSLサポートを有効にします。
cd /etc/pure-ftpd/
vim pure-ftpd.conf
行439のコメントを解除して、TLSを有効にします。
TLS 1
行449のコメントを解除し、新しいオプションを追加して、より安全にします。
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3
行445のコメントを解除して、証明書ファイルを定義します。
CertFile /etc/ssl/private/pure-ftpd.pem
保存して終了します。
次に、systemctlコマンドを使用してpure-ftpdを起動します。
systemctl start pure-ftpd
Pure-FTPdは、実際のシステム(Linux)ユーザーの代わりに仮想ユーザーを作成して使用する機能を提供します。 Pure-FTPdはいくつかの認証バックエンドを提供し、仮想ユーザー構成はサーバーによって使用されるバックエンドに依存します。手順2では、「PureDB」をバックエンドとして設定しました。
pure-ftpdが提供する「pure-pw」コマンドを使用して、新しい仮想ユーザーを作成できます。このステップでは、ftpホームディレクトリとしてディレクトリ「/ srv / ftp / shiro」を使用して「shiro」という名前の新しい仮想ユーザーを作成します。ユーザーはそのディレクトリにchrootされ、他のシステムディレクトリにアクセスできなくなります。
pure-pwを使用して新しい仮想ユーザーを作成します:
pure-pw useradd shiro -u ftpuser -d /srv/ftp/shiro
仮想ユーザーのディレクトリを作成し、そのディレクトリの所有者をマスターの「FTPユーザー」に変更します。
mkdir -p /srv/ftp/shiro
chown -R ftpuser.ftpgroup /srv/ftp/shiro
次に、以下のコマンドで変更を保存する必要があります:
pure-pw mkdb
これで、ユーザーshiroを使用する準備が整いました。コマンドラインからFTPpを使用するか、GUIインターフェース用のFileZillaを使用してサーバーに接続できます。
注:
pure-pwにはより多くのコマンドオプションがあり、'pure-pwヘルプを使用できます 'すべての便利なコマンドを表示します。
テストには、ターミナルでFTPコマンドを使用します。ターミナルを開き、「ftp」と入力します:
ftp
次に、pure-ftpd server ipを入力します:
open 192.168.43.69
ユーザー「shiro」とパスワードでログインし、「Enter」を押します。
'put'コマンドでファイルをアップロードしてみてください:
put picture.png mypict.png
これで、以下のlsコマンドを使用してサーバー上にファイルmypict.pngが表示されます。
ls