GNU/Linux >> Linux の 問題 >  >> Cent OS

TLSを使用したCentOS7での安全なProFTPDサーバーのセットアップ

目的

目的は、最初に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-ports

CentOS7で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>

Cent OS
  1. ProFTPDサーバー

  2. CentOS8でLibreswanを使用してIPSecVPNサーバーをセットアップする

  3. CentOS7にFTPサーバーをインストールする方法

  1. VSFTPDを使用してCentOS7にFTPサーバーをインストールする方法

  2. Ubuntu20.04でVSFTPDを使用してFTPサーバーをセットアップする方法

  3. Ubuntu18.04でVSFTPDを使用してFTPサーバーをセットアップする方法

  1. CentOS7でLetsEncryptを使用してApacheを保護する

  2. CentOS7でVSFTPDを使用してFTPサーバーをセットアップする方法

  3. CentOS8でLetsEncryptを使用してApacheを保護する