ECS(Alibaba Cloud)に基づいてFTPサービスを構築する

前書き

Linuxインスタンスにvsftpdをインストールして構成する方法について説明します。

背景知識

このシナリオには、主に次のクラウド製品とサービスが含まれます。

クラウドサーバーECS
(Elastic Compute Service、略してECS)は、Alibaba Cloudが提供するIaaS(Infrastructure as a Service)レベルのクラウドコンピューティングサービスであり、卓越したパフォーマンス、安定性、信頼性、および弾力性のある拡張を備えています。クラウドサーバーECSは、ITハードウェアを購入するための事前準備を排除し、水、電気、天然ガスなどの公共リソースを使用するのと同じくらい便利で効率的にサーバーを使用できるようにし、コンピューティングリソースのすぐに使用できる柔軟なスケーリングを実現します。アリババクラウドECSは、さまざまなビジネスニーズを解決し、ビジネスの発展を支援する革新的なサーバーを提供し続けています。

FTP
FTP(ファイル転送プロトコル)は、TCP / IPプロトコルスイートのプロトコルの1つです。FTPプロトコルには2つのコンポーネントが含まれています。1つはFTPサーバーで、もう1つはFTPクライアントです。FTPサーバーはファイルの保存に使用され、ユーザーはFTPクライアントを使用してFTPプロトコルを介してFTPサーバーにあるリソースにアクセスできます。Webサイトを開発する場合、通常、FTPプロトコルを使用してWebページまたはプログラムをWebサーバーに転送します。さらに、FTP送信の効率が非常に高いため、このプロトコルは通常、ネットワーク上で大きなファイルを転送するときに使用されます。

デフォルトでは、FTPプロトコルはTCPポートの2つのポート20と21を使用します。ここで、20はデータの送信に使用され、21は制御情報の送信に使用されます。ただし、データ送信用のポートとして20を使用するかどうかは、FTPで使用する送信モードに関係します。アクティブモードを採用する場合、データ送信ポートは20です。パッシブモードを採用する場合、最終的に使用するポートは、サーバーとクライアントがネゴシエーションによって決定します。

vsftpd
vsftpd(非常に安全なFTPデーモン)は、Linuxディストリビューションで最も尊敬されているFTPサーバーです。Linux、BSD、Solaris、HP-UNIXなどのシステムで実行できます。他のFTPサーバーではサポートされていない多くの機能をサポートする、完全に無料のオープンソースftpサーバーソフトウェアです。例:非常に高いセキュリティ要件、帯域幅の制限、優れたスケーラビリティ、仮想ユーザーの作成、IPv6サポート、高速など。

シーン体験

次のアドレスは、Alibaba Cloud ExperienceLabが提供するCentOS7.7で構成され、エラスティックパブリックIPで構成されたECSインスタンス(クラウドサーバー)です。このチュートリアルの操作を参照して、FTPサービスをすばやく構築できます。
アリババクラウドシーンリソース
https://developer.aliyun.com/adc/scenario/74b64efe414c47fbaf305957a7fb458b

ステップ1:vsftpdをインストールする

1.次のコマンドを実行して、vsftpdをインストールします。

yum install -y vsftpd

次の図に示すようにインターフェイスに戻ると、インストールは成功しています。install_vsftp_successfully

2.次のコマンドを実行して、FTPサービスが自動的に開始するように設定します。

systemctl enable vsftpd.service

3.FTPサービスを開始します。

systemctl start vsftpd.service

4.次のコマンドを実行して、FTPサービスによって監視されているポートを表示します。

netstat -antup | grep ftp

次の図に示すようなインターフェイスが表示され、FTPサービスが開始され、リスニングポート番号が21であることを示します。この時点で、vsftpdはデフォルトで匿名アクセスを有効にしています。ユーザー名とパスワードを入力せずにFTPサーバーにログインできますが、ファイルを変更またはアップロードする権限はありません。install_vsftpd_3

手順2:vsftpdを構成する

vsftpd(非常に安全なFTPデーモン)は、Linuxディストリビューションで最も尊敬されているFTPサーバーです。vsftpdは、匿名アクセスとローカルユーザーモードの2つのアクセス方法をサポートしています。匿名アクセスモードすべてのユーザーがビルドされたFTPサービスにアクセスできます。ローカルユーザーモードは、ビルドされたFTPサービスにアクセスするために追加されたローカルユーザーのみをサポートします。

注:同時に構成できるのは、匿名ユーザーモードとローカルユーザーモードのいずれか1つだけです。

  • 匿名ユーザーモード

a。構成ファイルvsftpd.confを変更します。

vim /etc/vsftpd/vsftpd.conf

iキーを押して編集モードに入り、匿名アップロード許可
anon_upload_enable = YESのコメントを解除します。
vsftpd.confを構成します

b。ESCキーを押して編集モードを終了し、次のように入力します。wqを入力して、vimを保存して終了します。
c。/var/ ftp / pubディレクトリのアクセス許可を変更し、FTPユーザーの書き込みアクセス許可を追加します。

chmod o+w /var/ftp/pub/

d。FTPサービスを再起動します。

systemctl restart vsftpd.service

匿名の許可2

  • ローカルユーザーモード

a。FTPサービス用のLinuxユーザーを作成します。

adduser ftptest

ユーザーのパスワードを設定します。

passwd ftptest   

Linuxでユーザーを作成する

b。FTPサービス用のファイルディレクトリを作成します。

mkdir /var/ftp/test

c。/var/ ftp / testディレクトリの所有者をftptestに変更します。

chown -R ftptest:ftptest /var/ftp/test

d。vsftpd.conf構成ファイルを変更します。

  • FTPをアクティブモードに設定するには、次のコマンドを実行します。
sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf                     #监听IPv4 sockets
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf         #关闭监听IPv6 sockets
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部用户被限制在主目录
sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #启用例外用户名单
sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外用户列表文件,列表中的用户不被锁定在主目录
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #设置本地用户登录后所在的目录

FTPをパッシブモードに設定するには、次のコマンドを実行します。

sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf                     #监听IPv4 sockets
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf         #关闭监听IPv6 sockets
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部用户被限制在主目录
sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #启用例外用户名单
sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外用户列表文件,列表中的用户不被锁定在主目录
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #设置本地用户登录后所在的目录

echo "pasv_enable=YES" >> /etc/vsftpd/vsftpd.conf #开启被动模式
echo "pasv_address=<FTP服务器公网IP地址>" >> /etc/vsftpd/vsftpd.conf #本教程中为Linux实例公网IP
echo "pasv_min_port=20" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最小值
echo "pasv_max_port=1000" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最大值

e。/etc/ vsftpdディレクトリにchroot_listファイルを作成し、そのファイルに例外ユーザーのリストを書き込みます。

#使用vim命令编辑chroot_list文件,添加例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录。
vim /etc/vsftpd/chroot_list

注:例外ユーザーがいない場合は、chroot_listファイルを作成する必要があり、コンテンツを空にすることができます。
f。FTPサービスを再起動します。

systemctl restart vsftpd.service

手順3:セキュリティグループを構成する

FTPサービスを設定した後、ECSインスタンスセキュリティグループのインバウンド方向にルールを追加し、次のFTPポートを許可します。

注:ほとんどのクライアントはローカルエリアネットワークにあり、IPアドレスが変換されるため、ipconfigまたはifconfigコマンドによって返されるIPは、クライアントの実際のパブリックIPアドレスではない場合があります。後続のクライアントがFTPサーバーにログインできない場合は、そのパブリックIPアドレスを再確認してください。
1.エクスペリエンスプラットフォームのエクスペリエンスページで、ワンクリックをクリックしてログインURLをコピーし、作成したサブアカウントのユーザー名とパスワードを入力してECSコンソールにログインします。

ecs

2.左側のナビゲーションバーで、[ネットワークとセキュリティ]> [セキュリティグループ]をクリックします。

3.構成する必要のあるセキュリティグループを選択し、[操作]列で[ルールの構成]をクリックします。

4.セキュリティグループルールのルールの方向を選択し、[受信方向]> [セキュリティグループルールの追加]をクリックします。具体的な構成は次のとおりです。セキュリティグループを追加します。
ここに写真の説明を挿入

ステップ4:クライアントテスト

FTPクライアント、Windowsコマンドラインツール、またはブラウザを使用して、FTPサーバーをテストできます。

注:ブラウザーを使用してFTPサーバーにアクセスするときにエラーが発生した場合は、ブラウザーのキャッシュをクリアして再試行することをお勧めします。
1. Chromブラウザーを開き、アドレスバーにftp:// <FTPサーバーのパブリックネットワークIPアドレス>:FTPポートを入力します。このチュートリアルでは、これはLinuxインスタンスのパブリックネットワークIPアドレスです。例:ftp://139.0.0.1:21。
2.ポップアップダイアログボックスで、ユーザー名とパスワードを入力します。対応する権限でFTPファイルを操作できます。
注:匿名モードでは、エントリのログイン操作は必要ありません。
ログインインターフェイスは次のようになります。
ここに写真の説明を挿入

ログインインターフェイスは次のようになります。
ここに写真の説明を挿入

アリババクラウドエクスペリエンスラボの
元のテキストからの抜粋https
//developer.aliyun.com/adc/scenario/74b64efe414c47fbaf305957a7fb458b

おすすめ

転載: blog.51cto.com/14827683/2539317
おすすめ