A. 入門
2つのモードのFTP差: ( 1)PORT(アクティブ)モードで データを送信するためにクライアントポートにFTPサーバ「アクティブ」データ接続を参照して、アクティブモードと呼ばれるプロセスは、具体的である:任意のクライアントから非特権ポートN(N > 1024)クライアントに続いて、(すなわち、TCPポート21)FTPサーバのコマンドポートへの接続を開始 リスニングポートN + +1を、およびFTPサーバへのFTPコマンド「ポートN + 1」を送信します。その後、クライアントによって指定された独自のデータポート(20)からサーバ「アクティブ」は、データポートに接続されている(N + 1)、クライアントは、データ伝送チャネルとFTPサーバを確立できるようにします。 ( 2)PASVは(パッシブ)モード、 特定のプロセスでは、それらのデータポートに接続するクライアントを待っている、いわゆるパッシブモードでは、FTPサーバを指し、「受動的」:FTP接続を開く場合、クライアントは、任意の二つの非を開い特権ローカルポート(N > 1024 1 + N)。サーバーへの最初の21ポートのポート接続が、 FTPアクティブモードでは、異なるクライアントがPORTコマンドを発行して、サーバーがバックそのデータポートに接続することができますが、PASVコマンドを送信していません。この結果は、サーバーがランダムな非特権ポート(P開くということです > 1024)、およびクライアントにPORT Pコマンドを送信します。クライアントは、次に、 現在から開始 ポートにN +ポートP 1がサーバにデータを送信するために使用されます。(このモードでFTPサーバーは、TCPポート20を開く必要はないことに注意してください)二つのモデル間の比較: ( 1 )PORT(アクティブ)モードであれば、サーバより大きいモード21とサーバ20オープンポート、およびPASV(パッシブ)モードのように、すべてのTCPポート1024からポート21を開く必要があります。 ( 2 )ビューのネットワークセキュリティの観点から、FTP PORTモードがより安全であるようだが、RFCをする理由はあまり安全なFTP PASV、それのFTPポートベースでのFTP PASVモードを再確立しますか?実際には、データ転送のセキュリティポイントのRFCのFTP PASVモードの開発の主な目的 出発、データ伝送のために固定された、20ポートを使用して、FTPポートので、FTPによってようにハッカーは、そのようなスニファクロールFTPデータとしてスニファコンテンツを使用できるように簡単にハッカーすることができ、データを送信するので、PASV FTPサーバを使用するポートモードは最も安全への道を設定されている 完全な偉大なスキーム。
だから、:あなたは、単にファイル共有のために、開いているポートの多数の脅威を持ち上げ、PASVモードを無効にすることができ、だけでなく、ファイアウォールの設定に利便性をもたらす場合。 残念ながら、デフォルトのブラウザまたはFTPツールは、接続PASVモードFTPサーバーで使用されているので、オンになっているファイアウォールの場合にはvsftpdをしなければならない、データアクセスのためのPASVモードをサポートすることが可能です。
II。インストールと起動コマンド:
yumを-y vsftpdのインストール #のインストールが 開始します/etc/init.d/vsftpd #Contos 6.5スタート スタートvsftpdのsystemctl #Contos 7スタート サービスが再起動したvsftpd #Contos 6.5再起動 systemctl再起動vsftpdは #Contos 7再起動 サービスvsftpdはSTOP #Contos 6.5ストップ systemctl停止をvsftpdの #Contos 7ストップ ONのchkconfig vsftpdは #Contos 6.5は、ブート時に自動的に実行するように設定されている vsftpd.serviceの有効systemctl #をContosが起動設定7で自動的に実行します
III。VSFTPサーバーの構成:
プロフィールの説明: /etc/vsftpd/vsftpd.conf #1 vsftpdのコアの設定ファイル は/ etc / vsftpdは/ ftpusersに #がFTPサーバにアクセスすることはできませんするユーザーを指定するために使用される の/ etc / vsftpdは/ user_list #ユーザーの指定したリストは、vsftpdのファイルを使用することを許可 /など/ vsftpdは/ vsftpd_conf_migrate.sh #は、変数とオペレーティング・vsftpdの設定スクリプトの数で は/ var / FTP / #の匿名ユーザーのデフォルトのルートディレクトリ
1.設定vsftpd.conf
#匿名FTPサーバを許可するかどうか、デフォルトの設定では、許可するようにYESである #は、ユーザがユーザのE-mailアドレスのユーザー名のftpや匿名FTPログイン行ったパスワードを使用することができます。 #それは匿名アクセスがNOに設定されていないことはできませんので anonymous_enableの= NO #ローカルユーザー(つまり、ユーザーアカウントのLinuxシステム)FTPサーバを許可するかどうかを、デフォルトの設定では、許可するYESである #ローカルユーザーログインユーザーのホームディレクトリを入力し、匿名ユーザー匿名ユーザーのダウンロードディレクトリは/ var / FTP /パブにログインした後に #のみ匿名ユーザーがFTPサーバにアクセスするためのローカルユーザーを防止するために#コメントアウトが先行し、アクセスすることを許可する場合 = local_enableをYES #FTPサーバーへの書き込みファイルを持つローカルユーザーを許可するかどうか権限、許可するYESにデフォルト設定 WRITE_ENABLE = YES #のマスクは、ローカルユーザのデフォルトは077マスク #あなたが022をマスクするローカルユーザーのデフォルトファイルを設定することができますし、また個人の好みに基づいて行うことができるが、他の値に設定する local_umask = 022 #ディレクトリ機能にウェルカムメッセージを有効にするかどうか #をサーバー上のディレクトリへのCMDの最初の訪問でユーザーモード、FTPサーバは、歓迎のメッセージが表示されます #を デフォルトでは、情報を取得するには、ディレクトリに.messageファイルによって歓迎されている #ユーザー自身が設定したこのファイルが保存されているカスタムウェルカムメッセージ、 dirmessage_enable = YES #は、FTPサーバーのアップロードとダウンロードを記録することを示して xferlog_enable = YES #のショーが記録されますが指定されたファイルxferlog_file書き込みの場合のアップロードとダウンロードは、そのファイルのオプションは、xferlog_file指定 xferlog_std_format = YES xferlog_file =は/ var / log / xferlogを #は二重のログを有効にします。一方、サーバxferlogを記録することにより、ファイルのアップロードとダウンロードの場合は、 #指定されたファイルvsftpd_log_file、つまりは/var/log/vsftpd.logサーバが送信条件を記録するために使用されます dual_log_enable = YES vsftpd_log_file =は/ var / log / vsftpd.logを #1 セットのFTPサーバポートを有効にするFTPデータ接続の要求、制御ポートへのFTPデータのデータ伝送接続21 connect_from_port_20 = NO #パッシブモードをオンにし pasv_enable = YES #パッシブモード最小のポート pasv_min_port = 12000 #パッシブモード最大ポート 15,000のpasv_max_port = pasv_promiscuous = YES pasv_addr_resolve = YES pasv_address = 59.151.37.141 (パブリックアドレス) #の設定変更は、ファイルの所有者をアップロードすることが許可されている chown_uploadsを= NO #ないYESに設定した場合、vsftpdはスタンドアロンモードで実行され、処理要求がで接続された自身のvsftpdリスニング 聞く= YES guest_enable = YES すなわちguest_username = FTPROOT user_config_dir =の/ etc / vsftpdは/ vuser_conf pam_service_name = vsftpdの userlist_enableの = YES TCP_WRAPPERS = YES ascii_upload_enable = YES ascii_download_enable = YES [ルート@ ptの -158〜] #
2.最初の仮想ユーザリストファイルを確立します。
タッチの/ etc / vsftpdは/ account.txt 仮想ユーザーアカウントリストファイル:(最初の行、2行目のコード、メモの編集:システムが保持し、rootユーザー名を使用しない)を viのは/ etc / vsftpdは/ account.txt TEST01 TEST02 USER01 USER02
3.仮想ユーザー・データ・ファイルを作成します。
-T -t -f /etc/vsftpd/account.txtハッシュdb_loadの/ etc / vsftpdは/ account.db のchmod 600 /etc/vsftpd/account.db #PAM認証ファイルを設定し、読書のための仮想ユーザ・データベース・ファイルを指定します取ります
4.以下の情報はファイルヘッダ/etc/pam.d/vsftpdに(後無効添加)を添加します。
[root@pt-158 vsftpd]# cat /etc/pam.d/vsftpd #%PAM-1.0 #session optional pam_keyinit.so force revoke #auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed #auth required pam_shells.so #auth include password-auth #account include password-auth #session required pam_loginuid.so #session include password-auth auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/account account required /lib64/security/pam_userdb.so db=/etc/vsftpd/account [root@pt-158 vsftpd]#
5.新建一个系统用户vsftpd,用户家目录为/data1/ftphome/ftproot, 用户登录终端设为/bin/false(即使之不能登录系统):
useradd vsftpd -d /data1/ftphome/ftproot -s /bin/false
chown vsftpd:vsftpd /data1/ftphome/ftproot -R
6.建立虚拟用户个人Vsftp的配置文件:
mkdir /etc/vsftpd/vuser_conf [root@pt-158 vuser_conf]# cat test01 anon_world_readable_only=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_umask=022 local_root=/data1/ftphome/ftproot [root@pt-158 vuser_conf]# cat user01 anon_world_readable_only=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_umask=022 local_root=/data1/ftphome/ftproot [root@pt-158 vuser_conf]#
7.配置防火墙:
59.151.37.141物理机防护墙添加,关闭192.168.7.158虚拟机的防火墙:
-A PREROUTING -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.7.158:21
-A PREROUTING -p tcp --dport 12000:15000 -j DNAT --to 192.168.7.158:12000-15000
8.最后重启vsftpd服务器:
systemctl restart vsftpd