1.FTPサービス
1.FTPの概要
- FTP(File Transfer Protocol)は、TCP / IPプロトコルスイートのプロトコルの1つです。FTPプロトコルには、FTPサーバーとFTPクライアントの2つのコンポーネントが含まれています。
- FTPサーバーはファイルの保存に使用されます。ユーザーはFTPクライアントを使用して、FTPプロトコル、つまりファイル転送用のFTPプロトコルに従ってサービスを提供するコンピューターを介してFTPサーバーにあるリソースにアクセスできます。
- FTPサーバーに接続し、FTPプロトコルに従ってサーバーにファイルを転送するコンピューターはFTPクライアントです。
- FTPサーバーに接続するには、ユーザーはFTPクライアントソフトウェアを使用する必要があります
- FTPには、ファイル転送機能を実現するためのサーバーソフトウェアとクライアントソフトウェアの2つの部分が必要です。
- FTPは、ユーザーがクライアントプログラムを介してリモートコンピューターで実行されているサーバープログラムに接続するクライアント/サーバーシステムです。
1.FTP接続
- FTPサーバーは、デフォルトでTCPポート20および21を使用してクライアントと通信します
- ポート20は、データ接続を確立し、ファイルデータを転送するために使用されます
- ポート21は、制御接続を確立し、FTP制御コマンドを送信するために使用されます
2.FTP転送モード
- データ接続を確立する過程でのFTPサーバーのアクティブとパッシブの関係に応じて、FTPデータ接続はアクティブモードとパッシブモードに分けられます。2つの意味と主な違いは次のとおりです。
2.1アクティブモード:
- サーバーがデータ接続を開始します
- まず、クライアントはサーバーのポート21へのFTP制御接続を確立します。データを送信する必要がある場合、クライアントはPORTコマンドを使用してサーバーに「ポートを開いたので、接続しに来ました」と通知するため、サーバーはポート20からクライアントのポートに移動します。リクエストを送信してデータ接続を確立する
2.3パッシブモード:
- サーバーは受動的にデータ接続を待機します
- クライアントコンピュータのネットワークファイアウォールがアクティブモード接続を禁止している場合、通常はパッシブモードが使用されます
- まず、クライアントはサーバーのポート21へのFTP接続を確立します。データを送信する必要がある場合、サーバーはPASVコマンドでクライアントに「特定のポートを開いたので接続します」と通知するため、クライアントはサーバーをポート(20ではなく)に送信します。 )リクエストを送信し、データ接続を確立します
2.FTP接続実験
- 実験環境:
VMware環境のLinux仮想マシン(CentOS 7)およびWin10仮想マシン
1.ftp構成ファイルを編集します
[root@localhost ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# df -hT ##检查是否已挂载好
...
...略
[root@localhost ~]# yum -y install vsftpd ##安装vsftpd软件包
...
...略
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls ##查看一下该文件
ftpusers vsftpd.conf
user_list vsftpd_conf_migrate.sh
[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.bak ##需要将vstpd.conf文件备份,它没有模板
- vim vsftpd.conf
2. ftpのルートディレクトリの下にあるpubサブディレクトリへの匿名アクセスの最大権限を設定して、匿名ユーザーがデータをアップロードできるようにします。
3.匿名アクセステスト
- 仮想マシンWindows10でスタートメニューを開き、cmdコマンドを入力してコマンドプロンプトを開きます
- Linux仮想マシンに切り替えて、テスト用の新しいファイルを作成します
[root@localhost ftp]# cd pub/
[root@localhost pub]# touch xcfxcf.txt ##新建一个文件以作测试
[root@localhost pub]# ls
xcfxcf.txt
- win10に戻り、確認します
- もう一度テストして、win10からftpディレクトリにファイルをアップロードします
- ちなみにこちらが新しいフォルダですので、フォーマットにご注意ください
- CMDに戻ると、確認を入力した後、「リモートホストが接続を閉じました」というメッセージが表示される場合があります。これは、接続が長時間経過すると自動的に切断されるためです。何もせず、再接続するだけです。
- Linuxに戻って確認してください
4.ローカルユーザー認証をftpにアクセスするように設定し、ftp以外のディレクトリへの切り替えを禁止します(デフォルトのログインのルートディレクトリはローカルユーザーのホームディレクトリです)
- 変更後にサービスを再起動します。数回再起動できます
[root@localhost pub]# systemctl restart vsftpd
[root@localhost pub]# systemctl restart vsftpd
[root@localhost pub]#
- Win10仮想マシンに戻る
- Linuxは引き続き次の設定を変更します
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd
##记得重启!
- win10仮想マシンに切り替えます
5.user_listユーザーリストファイルを使用します
- 「local_enable」構成アイテムがvsftpdサーバーで開かれると、rootを除くすべてのシステムユーザーがデフォルトでこのFTPサーバーにログインできます。
- 少数のシステムユーザーに対してのみFTPサービスを開きたい場合は、ユーザーリストによって制御される関連する構成アイテムを開く必要があります。
- 操作は次のとおりです。
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# vim /etc/vsftpd/user_list
- 構成後にサービスを再起動することを忘れないでください
[root@localhost ~]# systemctl restart vsftpd
-
設定した2人のユーザーを作成します
-
Win10仮想マシンに移動してテストします
-
これはホワイトリストに似た機能です