ディストリビューション キットから Linux をインストールする場合、デフォルトでは root ユーザーのみが使用可能になります。同時に、セキュリティ上の理由から、このユーザーで FTP 経由で接続することはできません。この記事では、Linux コンソール コマンドのみを使用して FTP サーバーをすばやくセットアップし、ユーザーを作成する方法について説明します。
ステップ1: サーバーへの安全な接続を確立する
まず、サーバーに接続する必要があります。これは、安全なリモート アクセス方法を提供する SSH (Secure Shell) プロトコルを使用して行うことができます。Linux のデフォルトの管理者アカウントである「root」としてログインする代わりに、通常のアカウントを使用して「sudo」経由でコマンドを実行し、セキュリティを強化します。
ステップ2: FTPサーバーをインストールする
次のステップは FTP サーバーのインストールです。このチュートリアルでは、人気のオープン ソース FTP サーバーである「proftpd」を使用します。
CentOS を使用している場合は、まず EPEL リポジトリをインストールします。ターミナルで次のコマンドを入力します。
sudo yum install epel-release
sudo yum install proftpd
Debian または Ubuntu を使用している場合は、次のように入力します。
sudo apt install proftpd
ステップ3: FTPの自動起動を設定する
FTP サーバーをインストールしたら、サーバーが起動するたびに自動的に起動するように設定します。これは、次のコマンドで実行されます。
sudo systemctl start proftpd.service
sudo systemctl enable proftpd.service
ステップ4: ファイアウォールを設定する
セキュリティ上の理由から、ファイアウォールは TCP ポート 21 での着信接続を許可するように設定する必要があります。正確なコマンドは、使用しているファイアウォール管理ユーティリティによって異なります。'iptables' の場合:
sudo iptables -I INPUT -p tcp -m tcp --dport 21 -j ACCEPT
sudo systemctl save iptables
'firewalld'の場合:
sudo firewall-cmd --permanent --zone=public --add-port=21/tcp
sudo firewall-cmd –reload
Debian 11 の 'nftables' の場合:
sudo nft add rule ip filter input tcp dport { 21 } ct state new accept
ファイアウォールを設定したら、再起動後に変更が適用されるように、変更を保存することを忘れないでください。「iptables」と「firewalld」の場合、これは自動的に行われますが、「nftables」の場合は、システムの起動時に読み込まれるファイルに現在のルールを手動で保存する必要があります。
ステップ5: FTPユーザーを国内ディレクトリで制限する
デフォルトでは、FTP ユーザーは国内ディレクトリを超えてアクセスでき、セキュリティ上のリスクとなる可能性があります。これを防ぐには、'proftpd.conf' ファイルに DefaultRoot ~ 行を追加します。この行は、国内ディレクトリによってユーザーを制限します。ファイルの末尾にこれを追加し、FTP サーバーを再起動します。
sudo systemctl restart proftpd.service
ステップ6: 新しいFTPユーザーの作成
これで、新しい FTP ユーザーを作成する準備ができました。コマンド シェル アクセスは必要ないので、セキュリティ上の理由から無効にしてください。そのためのコマンドは次のとおりです。
sudo useradd [username] -d /home/[username] -m -s /usr/sbin/nologin
sudo passwd [username]
[username] を希望のユーザー名に置き換えます。「passwd」コマンドは、新しいユーザーのパスワードを入力するように要求します。
これで、FTP サーバーがセットアップされ、Linux サーバー上に新しい FTP ユーザーが作成されました。セットアップ中は常にセキュリティに留意してください。