目的
目的は、最初にCentOS 7で基本的なProFTPDサーバーを構成することです。基本的なFTPサーバーのセットアップが完了したら、FTPパッシブモードを追加し、トランスポート層セキュリティ(TLS)を追加してセキュリティを強化します。
最後に、オプションの匿名構成を追加して、匿名ユーザーがユーザー名とパスワードなしでFTPサーバーにログインできるようにします。
オペレーティングシステムとソフトウェアのバージョン
- オペレーティングシステム: –CentOSLinuxリリース7.5.1804
- ソフトウェア: –ProFTPDバージョン1.3.5e
要件
ルートとして、またはsudo
を介したUbuntuシステムへの特権アクセス コマンドが必要です。
難易度
ミディアム
規約
- # –指定されたLinuxコマンドは、rootユーザーとして直接、または
sudo
を使用して、root権限で実行する必要があります。 コマンド - $ –通常の非特権ユーザーとして実行されるLinuxコマンドを指定
手順
基本的なFTP構成
ProFTPサーバーの基本的なインストールと構成から始めましょう。これには、インストール、ファイアウォールルールの定義、クライアントのテストが含まれます。
サーバーのセットアップ
ProFTPDFTPサーバーはEPELリポジトリの一部です。したがって、最初のステップは、EPELリポジトリを有効にしてから、ProFTPDサーバーをインストールすることです。
# yum install epel-release # yum install proftpd
次に、ProFTPDサーバーを起動し、開いているポート21
を確認して、正しい起動を確認します。
# service proftpd start # ss -nlt
次に、ポート21
での着信トラフィックを許可するために、サーバーのファイアウォールに全体を組み込む必要があります。
# firewall-cmd --add-port=21/tcp --permanent # firewall-cmd --reload
開いている着信ポートを確認するには21
実行:
# firewall-cmd --list-portsCentOS7でProFTPDを使用してBasigFTPサーバーを構成する
この段階で、既存のシステムユーザーは、新しく構成されたProFTPDサーバーにFTPログインできます。オプションで、新しいユーザーを作成できます。 lubos
ディレクトリ/var/ftp-share
にアクセスできます :
# useradd lubos -s /sbin/nologin -d /var/ftp-share # passwd lubos # chmod -R 750 /var/ftp-share # setsebool -P allow_ftpd_full_access=1
クライアント接続
この時点で、リモートクライアントコンピューターからFTP接続を実行できるはずです。最も簡単なテストは、ftp
を使用することです コマンド。
ProFTPDサーバーはftp.linuxconfig.org
を介して解決できると仮定します ホスト名とユーザーlubos
存在する実行:
$ ftp ftp.linuxconfig.org Connected to ftp.linuxconfig.org. 220 FTP Server ready. Name (ftp.linuxconfig.org:lubos): lubos 331 Password required for lubos Password: 230 User lubos logged in Remote system type is UNIX. Using binary mode to transfer files. ftp>注:現時点では、「アクティブなFTP接続」のみを確立できることに注意してください。 「パッシブFTP接続」を作成しようとすると失敗します。
パッシブモードのFTP構成
サーバーのセットアップ
FTPサーバーがパッシブFTP接続も受け入れるようにするには、次のコマンドを実行して、IANAに登録されたエフェメラルポート範囲でパッシブ接続を有効にします。
echo "PassivePorts 49152 65534" >> /etc/proftpd.conf
ProFTPDサーバーを再起動します:
# service proftpd restart
49152-65534
の範囲のポートのファイアウォールを開きます :
# firewall-cmd --add-port=49152-65534/tcp --permanent # firewall-cmd --reload
ポートが正しく開かれていることを確認します:
# firewall-cmd --list-portsパッシブFTP接続を受信するようにProFTPDサーバーを構成します。
FTPクライアント接続
以前と同様に、ftp
を使用してFTPパッシブ接続をテストできます。 指図。今回は必ず-p
を使用してください 以下に示すオプション:
$ ftp -p ftp.linuxconfig.org Connected to ftp.linuxconfig.org. 220 FTP Server ready. Name (ftp.linuxconfig.org:lubos): lubos 331 Password required for lubos Password: 230 User lubos logged in Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (192,168,1,111,209,252). 150 Opening ASCII mode data connection for file list 226 Transfer complete ftp>
すべてが期待どおりに機能しています!
TLSを使用した安全なFTPサーバー
サーバーのセットアップ
ローカルエリアネットワークの外部でFTPサーバーを使用する場合は、何らかの暗号化を使用することをお勧めします。幸い、TLSを使用したProFTPDの設定は非常に簡単です。まず、まだ利用できない場合は、openssl
をインストールします パッケージ:
# yum install openssl
次に、次のコマンドを使用して証明書を作成します。必要な値はCommon Name
のみです。 これはFTPサーバーのホスト名です:
# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem Generating a 1024 bit RSA private key ...++++++ .......++++++ writing new private key to '/etc/pki/tls/certs/proftpd.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]: State or Province Name (full name) []: Locality Name (eg, city) [Default City]: Organization Name (eg, company) [Default Company Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:ftp.linuxconfig.org Email Address []:
次に、rootユーザーとして、/etc/sysconfig/proftpd
を開きます。 お気に入りのテキストエディタを使用して変更します:
FROM: PROFTPD_OPTIONS="" TO: PROFTPD_OPTIONS="-DTLS"
準備ができたら、ProFTPDサーバーを再起動します。
# service proftpd restart
クライアント接続
今回は、FTPテストクライアントとしてFileZillaを使用します:
新しいFTP接続を作成します。 TLSをテストするには、正しいEncryption
を選択していることを確認してください およびLogon Type
。 FTPクライアントはUnknown Certificate
について警告します 。 Always Trust
にチェックマークを付けます OK
を押します 。 TLS暗号化接続が成功しました。 匿名FTPユーザーを構成する
サーバーのセットアップ
匿名ユーザーがFTPサーバーにログインできるようにするには、/etc/sysconfig/proftpd
を開きます。 お気に入りのテキストエディタを使用して変更します:
FROM: PROFTPD_OPTIONS="-DTLS" TO: PROFTPD_OPTIONS="-DTLS -DANONYMOUS_FTP"
上記では、以前にTLSをすでに有効にしていることを前提としています。準備ができたら、FTPサーバーを再起動します。
# service proftpd restart
クライアント接続
FTPテストクライアントとしてFileZillaを使用する:
Logon Type
として Anonymous
を選択します 匿名FTP接続に成功しました。 付録
ユーザーのFTPアクセスをブロック/拒否する
システムユーザーのFTPサーバーへのアクセスをブロック/拒否する必要がある場合は、自分のユーザー名を/etc/ftpusers
に追加します。 。 1行に1つのユーザー名。これを行うと、ユーザーがログインしようとすると530
で失敗します。 ログインエラー:
$ ftp ftp.linuxconfig.org Connected to ftp.linuxconfig.org. 220 FTP Server ready. Name (ftp.linuxconfig.org:lubos): lubos 331 Password required for lubos Password: 530 Login incorrect. Login failed. Remote system type is UNIX. Using binary mode to transfer files. ftp>