Linuxでvsftpdを構築しても正常にアクセスできない–vsftpdファイアウォールの設定


一.権限によりvsftpdが正常にアクセスできません


vsftpdソフトウェアをインストールすると、ftpのデフォルトのホームディレクトリは/var/ftpであり、この/var/ftpの権限設定が間違っているため、このディレクトリの権限はすべての権限を開くことができません.chmod 777/var/ftpを実行したためです.
以下のFTPユーザーのホームディレクトリは、すべてのユーザー、ユーザーグループ、その他のユーザーグループに対して完全に開放できない.
[root@localhost ~]# ls -ld /var/ftp

drwxrwxrwx 3 root root 4096 2009-03-23 /var/ftp

この間違いを修正するには、次の方法を使うべきだ.
[root@localhost ~]# chown root:root /var/ftp

[root@localhost ~]# chmod 755 /var/ftp

 

二.LINUXサーバーのファイアウォールをオープンした後、正常にログインできません。


通常の設定では、ファイアウォールプロファイルに21ポートを追加するか、FTPサーバに正常にアクセスできません.
まず概念を理解しなければならない.
FTPはStandard(すなわちPORT方式、アクティブ方式)と呼ばれる2つのモードをサポートし、Passive(すなわちPASV、パッシブ方式)である.StandardモードFTPのクライアントは、PORTコマンドをFTPサーバに送信する.PassiveモードFTPのクライアントは、PASVコマンドをFTP Serverに送信する.
PORTとPASVの簡単な違いは以下の通りです.
PortモードFTPクライアントは、まず、FTPサーバのTCP 21ポートと接続を確立し、このチャネルを介してコマンドを送信し、クライアントがデータを受信する必要がある場合、このチャネル上でPORTコマンドを送信する.PORTコマンドには、クライアントがどのポートでデータを受信するかが含まれます.データ転送の際、サーバ側は、自身のTCP 20ポートを介してクライアントの指定ポートに接続してデータを送信する.FTP serverは、データを転送するための新しい接続をクライアントと確立する必要があります.
Passiveモードは、制御チャネルを確立するときはStandardモードと似ていますが、接続を確立した後に送信されるのはPortコマンドではなく、Pasvコマンドです.FTPサーバはPasvコマンドを受け取った後、ランダムに1つのハイエンドポート(ポート番号が1024より大きい)を開き、クライアントにこのポートでデータを転送する要求を通知し、クライアントはFTPサーバのこのポートに接続し、FTPサーバはこのポートを通じてデータの転送を行い、この時、FTPサーバは新しいクライアントとの間の接続を確立する必要はありません.
IEブラウザはデフォルトでPassive(パッシブ)モードを使用しているため、Linuxサーバに接続するには1024ポートより大きく、ファイアウォールには1024以上のポートが開発されておらず、ログインftpサーバがファイアウォールによってブロックされている.
 

解決方法:


1.クライアント設定


前のチェックボックスを外してIEブラウザにport(アクティブ)モードを使用させますが、クライアントごとに設定するのは面倒です.

2.サーバー側設定(CentOSを例に)


修正vsftpd.confプロファイルはPassive(パッシブ)モードをサポートします
#vim /etc/vsftpd/vsftpd.conf 

最後の行に次の内容を追加します.
pasv_min_port=3000 (           )

pasv_max_port=3010 (           )

ファイアウォールプロファイルiptablesにポートを追加する
#vim /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3000:3010 -j ACCEPT

サービスを有効にする
#service vsftpd rstart

#service iptables restart