ホームページ  >  記事  >  運用・保守  >  Linux で FTP サーバーを構成する方法

Linux で FTP サーバーを構成する方法

PHP中文网
PHP中文网オリジナル
2017-06-20 13:06:501400ブラウズ

1. まず、rpm -qa| grep vsftpd コマンドを使用して、ftp がインストールされているかどうかを確認します。ftp がインストールされていない場合は、yum -y install vsftpd を使用してインストールします (ubuntu では、apt-get install vsftpd を使用します)。

service vsftpd start / service vsftpd restart

Start 起動するたびに FTP を自動的に開始するには、次のコマンドを実行します: chkconfig --level 35 vsftpd on

3. FTP 権限を設定します

vi /etc/vsftpd/vsftpd .conf

anonymous_enable=YES に変更 anonymous_enable=NO に戻します

ESC で「:wq」と入力して保存して起動します


ファイアウォールを更新します

#iptables -F

vsftpd の主な設定ファイルは次のとおりです:

/etc/vsftpd/vsftpd.conf

実験 1:

FTP による匿名ログインを許可しない場合、それを実現するために vsftpd のメイン設定ファイルを変更できます

#vi /etc/vsftpd/ vsftpd.conf anonymous_enable=YES を anonymous_enable=NO に変更します

実験 2:

Windows の FTP サーバーはウェルカム メッセージと最大接続数を設定できます。では、Linux FTP サーバーでは何を設定すればよいでしょうか。私が答えたいのは: vsftpd のメイン設定ファイルでも実装できます # vi /etc/vsftpd/vsftpd.conf

最後に ftpd_banner=welcome を追加します。 Max_clients=100 これは、最大 100 人のユーザーが同時にアクセスでき、vsftpd を再起動するだけで済むことを意味します。

実験 3:

私にお金を貸して返済を拒否した同僚 (lilei) が FTP サイトにログインできないようにしたい場合は、ユーザー lilei を vi /etc/vsftpd.ftpusers に追加できます

実験 4:

朝、部長が社内の少数の人を昇進させると言い、私は部長にだけ FTP サーバーへのログインを許可しました。 . 他の人はそれについて考えることさえできず、マネージャーの馬を叩き、他の人を制限します。これを行うことができます: # vi /etc/vsftpd/vsftpd.conf

最後に 2 つのエントリを追加します、

userlist_deny=NO / このリスト内の人々は拒否しません、他の人は拒否します (匿名を含む)

userlist_file=/etc /mp /リストのパスを示します

vsftpd 設定ファイルでは、「#」で始まる行と空白行は解析時に無視されます。各コンフィグレーションコマンドの「=」の両側にはスペースを入れないでください。各構成コマンドについて、関連する構成手順も構成ファイルにリストされており、構成ファイルは vi エディターを使用して編集および変更できます。方法は以下の通りです:

#vi /etc/vsftpd/vsftpd.conf


1.匿名ユーザーのログインと設定


write_enable=YES //ログインユーザーの書き込み権限を有効にするかどうか。これはグローバル設定です。デフォルト NO
local_enable=YES //ローカル ユーザーが FTP サーバーへのログインを許可されるかどうか。デフォルトは NO
anonymous_enable=YES //匿名ユーザーの FTP サーバーへのログインを許可するかどうかを設定します。デフォルトは YES
ftp_username=ftp //匿名ユーザーのアカウント名を定義します。デフォルト値は ftp です。
no_anon_password=YES //匿名ユーザーがログイン時にパスワードを要求されるかどうか。質問しない場合は YES に設定します。デフォルト
NO
anon_world_readable_only=YES //匿名ユーザーが読み取り可能なドキュメントをダウンロードできるかどうか、デフォルトは YES です。
anon_upload_enable=YES //匿名ユーザーがファイルをアップロードできるかどうか。この設定項目は、write_enable が
YES に設定されている場合にのみ有効です。また、匿名ユーザーは、対応するディレクトリに対する書き込み権限を持っている必要があります。デフォルトは「いいえ」です。
anon_mkdir_write_enable=YES //匿名ユーザーにディレクトリの作成を許可するかどうか。 write_enable が YES に設定されている場合にのみ有効です。また、匿名ユーザーは上位ディレクトリへの書き込み権限を持ちます。デフォルトは「いいえ」です。
anon_other_write_enable=NO //YES に設定すると、匿名ユーザーには
ディレクトリのアップロードと作成以外の権限、および削除と名前変更の権限が許可されます。デフォルト値は「いいえ」です。

2.设置欢迎信息

用户登录FTP服务器成功后,服务器可向登录用户输出预设置的欢迎信息。
ftpd_banner=Welcome to my FTP server. 
//该配置项用于设置比较简短的欢迎信息。若欢迎信息较多,则可使用banner_file配置项。
banner_file=/etc/vsftpd/banner     
//设置用户登录时,将要显示输出的文件。该设置项将覆盖ftpd_banner的设置。
dirmessage_enable=YES         
//设置是否显示目录消息。若设置为YES,则当用户进入特定目录(比如/var/ftp/Linux)时,将显示该目录中的由message_file配置项指定的文件(.message)中的内容。
message_file=.message          //设置目录消息文件。可将显示信息存入该文件。该文件需要放在 相应的目录(比如/var/ftp/linux)下

 

3.设置用户登录后所在的目录 
local_root=/var/ftp             
// 设置本地用户登录后所在的目录。默认配置文件中没有设置该项,此时用户登录FTP服务器后,所在的目录为该用户的主目录,对于root用户,则为/root目录。
anon_root=/var/ftp            
//设置匿名用户登录后所在的目录。若未指定,则默认为/var/ftp目录。

 

4.控制用户是否允许切换到上级目录 
       在默认配置下,用户可以使用“cd..”命名切换到上级目录。比如,若用户登录后所在的目录为/var/ftp,则在“ftp>”命令行 下,执行“cd..”命令后,用户将切换到其上级目录/var,若继续执行该命令,则可进入Linux系统的根目录,从而可以对整个Linux的文件系统 进行操作。

若设置了write_enable=YES,则用户还可对根目录下的文件进行改写操作,会给系统带来极大的安全隐患,因此,必须防止用户切换到Linux的根目录,相关的配置项如下:
chroot_list_enable=YES                    
// 设置是否启用chroot_list_file配置项指定的用户列表文件。设置为YES则除了列在j/etc/vsftpd/chroot_list文件中的的帐号外,所有登录的用户都可以进入ftp根目录之外的目录。默认NO
chroot_list_file=/etc/vsftpd/chroot_list         
// 用于指定用户列表文件,该文件用于控制哪些用户可以切换到FTP站点根目录的上级目录。
chroot_local_user=YES                    
// 用于指定用户列表文件中的用户,是否允许切换到上级目录。默认NO
注意:要对本地用户查看效果,需先设置local_root=/var/ftp

具体情况有以下几种:
1)当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到上级目录;未在文件中列出的用户,不能切换到站点根目录的上级目录。
2)当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到站点根目录的上级目录;未在文件中列出的用户,可以切换到上级目录。
3)当chroot_list_enable=NO,chroot_local_user=YES时,所有用户均不能切换到上级目录。
4)当chroot_list_enable=NO,chroot_local_user=NO时,所有用户均可以切换到上级目录。
5)当用户不允许切换到上级目录时,登录后FTP站点的根目录“/”是该FTP账户的主目录,即文件的系统的/var/ftp目录。

 

5.设置访问控制 
(1)设置允许或不允许访问的主机(见TBP14)
tcp_wrappers=YES用来设置vsftpd服务器是否与tcp wrapper相结合,进行主机的访问控制。默认设置为YES,vsftpd服务器会检查/etc/hosts.allow和/etc /hosts.deny中的设置,以决定请求连接的主机是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。
比如,若要仅允许192.168.168.1~192.168.168.254的用户,可以访问连接vsftpd服务器,则可在/etc/hosts.allow文件中添加以下内容:
vsftpd:192.168.168.0/255.255.255.0 :allow
all:all:deny

(2) アクセスを許可または禁止するユーザーを設定する
ユーザーのアクセス制御は、/etc/vsftpd/user_list および /etc/vsftpd/ftpusers ファイルによって制御されます。関連する設定コマンドは次のとおりです:
userlist_enable=YES
// /etc/vsftpd/user_list ファイルが有効で有効かどうかを確認します。 YES は有効になり、NO は無効になります。
userlist_deny=YES
///etc/vsftpd/user_list ファイル内のユーザーにアクセスを許可するかどうかを決定します。 YES に設定すると、/etc/vsftpd/user_list ファイル内のユーザーは FTP サーバーへのアクセスを許可されません。NO に設定すると、vsftpd.user_list ファイル内のユーザーのみが FTP サーバーにアクセスできます。

6.アクセス速度の設定
anon_max_rate=0
//匿名ユーザーが使用できる最大通信速度を b/s 単位で設定します。 0 に設定すると、速度制限はなくなります (デフォルト値)。
local_max_rate=0
//ローカルユーザーが使用できる最大通信速度を設定します。デフォルトは 0 で、制限はありません。

7.ユーザー構成ファイルを定義する
vsftpd サーバーでは、異なるユーザーが異なる構成を使用することもでき、これはユーザー構成ファイルによって実現されます。
user_config_dir=/etc/vsftpd/userconf //ユーザー構成ファイルが配置されるディレクトリを設定するために使用されます。
この設定項目を設定した後、ユーザーが FTP サーバーにログインすると、システムは /etc/vsftpd/userconf ディレクトリ内の現在のユーザーと同じ名前のファイルを読み取り、設定に従って現在のユーザーを更新しますコマンドをファイルに追加します。たとえば、ユーザー構成ファイルを使用すると、さまざまなユーザーのアクセス速度を制御でき、各ユーザー構成ファイルで local_max_rate 構成を定義して、ユーザーが許可するアクセス速度を決定できます。

8.接続関連の設定
listen=YES
//vsftpd サーバーをスタンドアロン モードで実行するかどうかを設定します。現時点では、listen を YES に設定する必要があり、変更しないことをお勧めします。サーバー操作に関連する多くの構成コマンドでは、この操作モードが有効であることが必要です。 NO に設定すると、vsftpd は独立したサービスとして実行されず、xinetd サービスの管理制御の対象となり、機能が制限されます。

max_clients=0
//vsftpd によって許可される接続の最大数を設定します。デフォルトは 0 で、制限なしを意味します。 150 に設定すると、同時に 150 の接続が許可され、超過した接続の確立は拒否されます。スタンドアロン モードで実行している場合にのみ有効です。

max_per_ip=0
//IP アドレスごとに FTP サーバーに許可される同時接続数を設定します。デフォルトは 0 で、制限はありません。通常、この構成は、同じユーザーが過剰な接続を確立しないように設定できます。スタンドアロン モードで実行している場合にのみ有効です。

listen_address=IP アドレス
//指定された IP アドレスでユーザーの FTP リクエストをリッスンするように設定します。設定されていない場合は、サーバーにバインドされているすべての IP アドレスがリッスンされます。スタンドアロン モードで実行している場合にのみ有効です。 1 つの IP アドレスのみにバインドされているサーバーの場合、この項目を設定する必要はありません。デフォルトでは、この設定項目は設定ファイルに含まれていません。サーバーが同時に複数の IP アドレスにバインドされている場合、この構成項目を使用して、FTP サービスを提供する IP アドレスを指定する必要があります。つまり、FTP サーバーが使用する IP アドレスを指定する必要があります。注意: この値を設定する前と設定した後、netStat -TNL 比較ポートの監視を比較できます。
connect_timeout=60

// PORT モードでデータ接続を確立するためのタイムアウト、単位は秒です。

data_connection_timeout=300
//FTP データ接続を確立するためのタイムアウトを設定します。デフォルトは 300 秒です。

idle_session_timeout=600
//FTP サーバーで操作が実行されない場合に FTP 接続を切断する時間を設定します。単位は秒です。デフォルトは 600 秒です。つまり、daze のタイムアウト時間を設定します。この間にデータ送信やコマンド入力がない場合、接続は強制的に切断されます。
pam_service_name=vsftpd

//PAM で使用される名前を設定します。デフォルト値は vsftpd です。


setproctitle_enable=NO|YES
//FTP サーバーへの各接続を設定して、それが別のプロセスによって表されるかどうかを確認します。現時点では、vsftpd という名前のプロセスが 1 つだけあります。 YES に設定すると、各接続に vsftpd プロセスが存在し、「ps -ef|grep ftp」コマンドを使用して詳細な FTP 接続情報を表示します。安全上の理由から、閉めることをお勧めします。

9. FTP 動作モードとポート設定
(1) FTP 動作モードの概要
FTP には 2 つの動作モードがあり、1 つは PORT FTP、もう 1 つは PASV FTP です。仕組みは次のとおりです。
両者の違いは、PORT FTPはFTPサーバー側でデータ送信ポートを指定するのに対し、PASV FTPはFTPクライアント側で指定し、それぞれのデータ接続に使用するポート番号が異なることです。このため、CuteFTPなどのFTPクライアントソフトでは、接続タイプの設定項目にPORTとPASVの2つの選択肢があります。

FTP サーバーが PASV 動作モードに設定されている場合、クライアントも PASV 接続タイプに設定する必要があります。クライアント接続タイプが PORT に設定されている場合、FTP 接続は確立できますが、ls や get などのデータ要求が必要なコマンドを実行すると、応答がなく、データ接続を確立できないという最終レポートが表示されます。口 (2) ポートに関する設定

Listen_port = 21

// リスニングポートに接続するポートを作成するように FTP サーバーを設定します。デフォルト値は 21 です。
非標準ポートへの接続例: ftp www.sunflower.org 7000
connect_from_port_20=YES
//デフォルト値はYESで、FTPデータ送信接続にポート20の使用を指定します。 NO に設定すると、データ接続を行うときに使用されるポートが ftp_data_port で指定されます。

ftp_data_port=20 //FTP データ接続に使用するポートを PORT モードで設定します。デフォルト値は 20 です。

pasv_enable=YES|NO

//YES に設定すると PASV 動作モードを使用し、NO に設定すると PORT モードを使用します。デフォルトは YES で、PASV モードを使用します。
pasv_max_port=0
//PASV 動作モードでのデータ接続に使用できるポート範囲の上限を設定します。デフォルト値は 0 で、これは任意のポートを意味します。
pasv_mim_port=0
//PASV 動作モードでのデータ接続に使用できるポート範囲の下限を設定します。デフォルト値は 0 で、これは任意のポートを意味します。


10.送信モードを設定します

データを転送するとき、FTP はバイナリ (Binary) モードまたは ASCII モードを使用してデータをアップロードまたはダウンロードできます。 ascii_download_enable=YES //ASCIIモードのデータダウンロードを有効にするかどうかを設定します。デフォルトは「いいえ」です。 ascii_upload_enable=YES //データのアップロードに ASCII モードを有効にするかどうかを設定します。デフォルトは「いいえ」です。


11.アップロードしたドキュメントの所有権と権限を設定する

(1) 匿名でアップロードしたドキュメントの所有者を設定する chown_uploads=YES // 匿名ユーザーがアップロードしたドキュメントの所有者を変更するかどうかを設定します。デフォルトは「いいえ」です。 YES に設定すると、匿名ユーザーによってアップロードされたドキュメントの所有者は、chown_username 構成項目によって設定されたユーザー名に設定されます。
chown_username=whoever
//匿名ユーザーによってアップロードされたドキュメントの所有者名を設定します。 chown_uploads=YES の場合にのみ有効です。 root ユーザーとして設定しないことをお勧めします。 ただし、システムのデフォルトは root です

(2) 新しいドキュメントの権限設定
local_umask=022

//ローカル ユーザーによって追加された新しいドキュメントの umask を設定します。デフォルトは 022 で、対応する権限は 755 です。 umask は 022 で、対応する 2 進数は 000 010 010 です。これを 111 101 101 に反転して 10 進数に変換すると、許可値 755 になります。これは、ドキュメントの所有者 (所有者) が読み取ったことを意味します。書き込みおよび実行権限とそのグループが属するグループには読み取りおよび実行権限があり、他のユーザーには読み取りおよび実行権限があります。 022 はほとんどの状況に適しており、通常は変更する必要はありません。 077 に設定すると、対応する権限は 700 になります。

anon_umask=022 //匿名ユーザーが追加した新しいドキュメントの umask を設定します。デフォルト 077
file_open_mode=0755 //ドキュメントをアップロードする権限を設定します。権限は数値形式です。 デフォルトは 0666


12。ログ ファイル

xferlog_enable=YES //アップロード/ダウンロードのログを有効にするかどうか。デフォルトは NOxferlog_file=var/log/vsftpd.log //ログ ファイルの名前とパスを設定します。 xferlog_enable オプションを有効にする必要がありますxferlog_std_format=YES //ログ ファイルが標準の xferlog ログ ファイル形式 (wu-ftpd で使用されるのと同じ形式) を使用するかどうか。デフォルトはいいえです


13.その他の設定
text_userdb_names=NO
//lsコマンド実行時にUID、GID、または特定のユーザー名やグループ名を表示するかどうかを設定します。デフォルトは NO で、UID および GID モードで表示されます。ユーザー名とグループ名を表示する場合は、YES に設定します。
ls_recurse_enable=YES
//YES に設定すると、「ls -R」コマンドの実行が許可されます。デフォルト値は NO です。この設定項目は設定ファイル内でコメント化されていますが、これと同様の設定がいくつかあります。有効にする必要がある場合は、コメントを削除して YES または NO に設定してください

以上がLinux で FTP サーバーを構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。