I.はじめに
非常にセキュアFTPサーバ:FTP(File Transfer Protocol)はの略です。vsftpdのは、オペレーティング・システムなどのLinux上で実行されているFTPサーバソフトウェアです。
VSFTP着陸申し出三つの方法:1. 2.匿名ログオンローカルユーザーは3.仮想ユーザーログインをログに記録します
vsftpdが特長:高セキュリティの帯域幅の需要限度を2. 3.仮想ユーザーサポート4.サポート6.パフォーマンスがIP 7仮想真ん中IPV6 5.高速に割り当てることができます作成します。
FTPセッションは、2つのチャネルを使用する場合:
制御チャネル:チャネルは、FTP、FTP、リンク命令は、FTP達成制御チャネルを介して送信されたサーバと通信します。
データチャネル:チャネルとデータチャネルのFTPサーバーまたはファイル転送リスト
第二に、原則
FTPプロトコルの制御接続は、クライアントによって開始され、データ接続は、2つのモードで動作しますされます。ポートとPASV方法
ポートモード(アクティブモード) - >デフォルト
ポート21を確立するために、FTPクライアント最初とFTPサーバのTCPが接続されている場合、このチャネルを介してコマンドを送信、クライアントがデータを受信したい、Portコマンドは、クライアントどのポートが含まれ、このチャンネルでPORTコマンドを送信し(1024ポートより大きい)データ送信時に、データを受け入れ、それ自身のポートTCP 20を介してサーバ・データを送信します。サーバからクライアントへの接続を確立するために、この時間データ接続。
ポートの対話プロセス:
クライアント側:21ポートのリンククライアントサーバとは、サーバ・コマンドにランダムなポートおよびポート1024を使用して、ユーザー名とパスワードを送信し、表示されているアクティブモードを使用すると、ランダムなポートの開放。
サーバー側では:そのポートがクライアント、ランダムポート、データ伝送に接続した後、サーバーが合格するポートアクティブモードコマンドポート20に送信されるクライアントを受け取ります。
PASVモード(パッシブモード)
ポートチャネルは、制御モードと、その後、このチャネルを介してクライアントPASVコマンドを送信する場合、FTPサーバはランダムなポートは1024と5000の間に位置して開き、このポート上のデータ伝送のためのクライアント要求を通知し、同様にFTPサーバーを確立しますこのポートを介したデータ転送。この時間データ接続は、クライアントからサーバーへの接続を確立します。
PASV対話の流れ
Clietn:クライアント接続ポート21サーバーとサーバーにユーザー名とパスワードのPASVコマンドを送信し、それはそのパッシブモードを示します。
サーバー:サーバーた後、クライアントが接続するためにランダムなポートおよびポートサーバー後20自分自身を送信し、その後、クライアントデータをクライアントに語ったし、ポートに1024で開いて、無作為化、コマンドPASVのパッシブモードを送っ受けます。
C / Sモデルの場合、この観点では、サーバーのポートはOUTBOUNDですが、サーバーのINBOUNDのためのPASVモード、企業内ファイアウォールを使用する場合は特に、あなたのセットが間違っている場合、それは、非常に重要であり、この点に特別な注意を払ってください。 、クライアントは接続されません。
第三に、および関連ソフトウェアは、vsftpdをインストールします
yumをvsftpdのPAM * * DB4をインストール-y *
vsftpdは:FTPソフトウェアPAM:認証モジュールDB4:サポートデータベースファイル
四、vsftpdのユーザー管理:
FTPユーザ管理サーバ、デフォルトの場合は、「設定/ etc / passwdファイル・システム・ユーザー」と設定するために、「/ etc / groupのファイル・システム・ユーザー・グループの設定」です。
FTPサーバーでは、匿名ユーザーのユーザー名とパスワードは、FTPであり、Nengzhaodedaoで、お使いのオペレーティングシステムの/ etc / passwdファイルのユーザーことができます。例えば:
FTP:X:14:50: FTPユーザー:の/ var / ftpを:/ sbinに/ nologinに
ラインのftpユーザーに、我々は、ライトフィールド間の各分野での7つの分野、次を参照してください。分割数を、
1.ftpのユーザー名
2.xでは、隠されたパスワードフィールドであり、
3.14は、自分のためではなく、同じUIDの他のユーザーに設定し、ユーザーのUIDフィールドで、それ以外の場合は、セキュリティ上の問題のためにシステムの原因となります。
GIDのユーザーグループと4.50は、自分自身を設定することができ、システム全体の全体の問題の原因となる、GID FTPや他のユーザーグループを共有しません。
5.FTPユーザーは、ユーザーの説明フィールドであります
6./var/ftpがFTPユーザのホームディレクトリで、あなた自身を定義することができます
これは、シェルログインユーザである7./sbin/nologin、これはまた、彼らはシステムにログインできないことを/ sbinに/ NOLOGIN、定義することができる(また、擬似ユーザーとしても知られている)システムの仮想アカウントは、一般的に設定されます。例えば、我々は、ユーザ、ユーザの真のアイデンティティにローカルまたはリモートツールのSSHまたはTelnet経由でftpのユーザーがシステムにログインして、FTP / sbinに/ nologinにに/ binに/ bashの変更を置きます。あなたは、ユーザがシステムにログインするために多くの必要はないと信じているならば、あなただけのFTPアカウントに彼に許可を与えることができ、唯一のFTPに彼に許可を与えたこと、彼をオンにしないように、システムが安全ではないそう提供SHELL / binに/ bashの、など
匿名ユーザーのグループである:/ etc / groupを
FTP:X:50:
最初のフィールド:FTP:ユーザグループ、2番目のフィールドである:X:コードセグメント、第3フィールド:50:GID
所属は比較ユーザープロファイルとユーザー・グループ・プロファイル・UIDに応じたかどうかを知ることができます。
五、vsftpdの設定
ホストvsftpdのデフォルトのユーザーがルートであるため、ユーザーが新しく作成されたシェルのvsftpdのサービスをホストするので)、安全要件を満たしていないが、「/ sbinに/ nologinに平均対数禁止」に変更されました:useraddのvsftpdの-s / sbinに/ nologinに
useraddのてvirtusers -s / sbinに/ nologinに:2)仮想ホストのユーザーをvsftpdの確立
この紹介仮想ユーザー、システムの仮想ユーザー、名前が示すように不純であり、これはユーザーの権限に影響を与えますので、彼らは総称して作成した「てvirtusers」ユーザーの手の中に、ユーザは、仮想ユーザ・グループに相当します仮想ユーザー以降は言及しました。
3)vsftpdの設定ファイル(バックアップするための設定ファイルを編集する前に、すべての最高の癖)を調整します
CP /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.backup.conf
vimの/etc/vsftpd/vsftpd.conf
コピーしたコード
#は匿名の代表はできませんNOに設定されている
anonymous_enableの= YES
その後、ユーザがアクセスすることはできませんNOに設定#ローカルユーザ缶のアクセスは、主に仮想ホストのユーザーは、必要に応じてバーチャルセット。
= YES local_enable
#書き込み動作を行うことができる
WRITE_ENABLE = YES
のファイルにアクセス権マスクをアップロードする#セット
local_umask = 022
#は、アップロードに匿名ユーザーを禁止
anon_upload_enable = NO
#はディレクトリを作成するには、匿名ユーザーを禁止
anon_mkdir_write_enable = NO
オープンディレクトリ機能に設定#スローガン
dirmessage_enable = YES
#ログがオープンに設定されている
xferlog_enable = YES
データ接続のために#設定されたポート20
YES = connect_from_port_20
#アップロードファイル設定変更にホスト禁止
chown_uploads = NO
ロードキング保存された#セットにvsftpdサービスログを。注:デフォルトのファイル不純を変更し、この変更のため、ホストのユーザにvsftpdサービスを手動で確かに手動で触れる必要で、vsftpdが作成され、
ユーザーの弾力が起動に失敗したログやサービスへのアクセスを読むことに留意すべきです。
= xferlog_fileは/ var / log / vsftpd.log
使用される標準的な記録フォーマット設定#ログ
xferlog_std_formatを= YES
#アイドルタイムアウトのリンク、デフォルト/秒を設定します。
idle_session_timeout = 600#
#設定された接続の最大送信時間デフォルトは、本明細書で使用される、具体的な数値は、デフォルト120 /秒、各特定のユーザのために開発することが残され
data_connection_timeout = 3600
にvsftpdのvsftpdのユーザサポートサービスを手動で作成する#ホストユーザを設定します。注:ホストユーザーに変更したら、読み取りおよび書き込みが読み取りと書き込みのファイルはエンパワーメントに沿ったサービスに関連付けられている必要があり
nopriv_user = vsftpdの
非同期転送機能をサポートするために#セット
#async_abor_enable = YES
#設定vsftpdの着陸スローガン
ftpd_banner =ハローようこそ
#無効にし、ユーザーは自分のFTPホームディレクトリログアウト
chroot_list_enable = NO
のログイン、FTPを使用してからユーザーを防ぐために#のls -Rコマンドを使用します。複数のユーザーがコマンド・サーバーを使用して実行が脅威をもたらすだろう場合、このコマンドは、巨大なオーバーヘッドのサーバーのパフォーマンスが発生します。
= NO ls_recurse_enable
スタンドアロンモードで動作して#のvsftpdのサービスセット。いわゆるスタンドアロンモードでは、サービスには独自のデーモンを持っている、それはPS -Aにvsftpdデーモンの名前で見ることができるということです。あなたがいる場合
、あなたはスーパーデーモンモードを選択することができ、スタンドアロンモードで動作するようにしたくない、あなたは、コメントアウトすることができ、このモードでは、vsftpdのは自分のデーモンを持っていませんが、xinetdの総代理店デーモンスーパーによって、>同時に、サービスのvsftpdの機能の多く、実現されることはありません。
= YES聞く
ユーザーの#userlist_fileセットは、FTPを使用することはありません
YES = userlist_enableの
PAM認証プロファイル名で#サービスvsftpdのセット。したがって、PAM検証/etc/pam.d/のvsftpdの設定ファイルの参照。
= vsftpdのpam_service_name
#セットのサポートtcpwrappersの
TCP_WRAPPERS = YES
####################################### ##########以下は、構成.confファイルのデフォルトを追加すると、これらのプロジェクトが含まれていない、仮想ユーザーサポートの設定に関する重要な項目です手動でする必要があります。
#仮想ユーザ関数を有効
guest_enable = YES
#仮想ホストのユーザーを指定
すなわちguest_username =てvirtusers
その仮想ホストのユーザに#セットのユーザー権限を
virtual_use_local_privs = YES
#はロードキングVSFTP仮想ユーザーの個人設定ファイルを設定します。指定されたディレクトリは、各仮想ユーザ・人格・プロファイル、ローカルノートに保存されます:コンフィギュレーション・ファイル名でなければなりません
同じ仮想ユーザー名と。
= user_config_dirの/ etc / vsftpdは/ VCONFの
遅いユーザーログインを表示されることがあり、この引数を追加していない、またはFTPクライアントのリンクの現象ではない場合#は、リバースDNSを禁止
reverse_lookup_enable = NO
のコードをコピー
4)vsftpdのログファイルを確立し、ホストユーザーは主にvsftpdのサービスであり、変更
タッチは/var/log/vsftpd.log
chownコマンドvsftpd.vsftpdは/var/log/vsftpd.log
第六には、仮想ユーザを設定しました
1)仮想ユーザプロファイルを格納するパスを確立します
MKDIRは/ etc / vsftpdは/ vconf /
ユーザー名、パスワード、および彼の党のために1:2)フォーマットの仮想ユーザーアカウントとパスワードを記録するために使用される仮想ユーザリストファイルを、確立します。
vimのは/ opt / VSFTP / passwdの
テスト
123456
TEST1
654321
3)は、仮想ユーザ・データ・ファイルを生成します
db_load -T -tハッシュ-fは/ opt / VSFTP / passwdの/opt/vsftp/passwd.db
仮想ユーザーの追加が再び上記のコマンドを完了した後に行う必要があります後、それは新しいデータファイルを生成し、それを注意してください。
七は、PAM認証ファイルを設定し、読書のための仮想ユーザ・データベース・ファイルを開発します
変更を行うために、元のファイルのバックアップの検証後:CP /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup
猫/etc/pam.d/vsftpd
コードをコピー
#1.0%PAM-
##### 32ビットのシステム構成
/lib/security/pam_userdb.so DB =の/ etc / vsftpdは/ xnpasswd十分#auth
#account十分/lib/security/pam_userdb.so DB = /など/ vsftpdは/ xnpasswd
##### 64ビットのシステム構成
DB = / OPT / VSFTP / passwdの/lib64/security/pam_userdb.so AUTH十分
DB = / OPT / VSFTP / passwdの/lib64/security/pam_userdb.so十分なアカウント
#2上記、手動でコンテンツのセキュリティと認証のための仮想ユーザーアカウントのアクセス許可を追加しています。
#認証は、ここに認証用のユーザーパスワードのユーザー名を指します。
#Accoutここで何の制約を検証するために、ユーザーのアカウントにどのようなアクセスを指します。
AUTH =センスファイルpam_listfile.so必要=ユーザー項目=拒否の/ etc / vsftpdは/ ftpusersにONERR =成功
pam_shells.so必要な認証
のauth-システムなどが認証
含めるアカウントシステム-AUTHの
認証などがセッション-Systemの
セッションはpam_loginuid.so必要な
重複コードを
八、仮想ユーザーのプロフィール
1.カスタムユーザー仮想テンプレート設定ファイル(仮想ユーザー・プロファイル名と仮想ユーザーが一貫したを必要とする)、)ftpの後にログインする際に、適切なユーザー名を入力しますので、名前に基づいて、適切なコンフィギュレーション・ファイルをロードして行きます
vimのは/ etc / vsftpdは/ vconf /テスト
コードをコピー
local_root =は/ opt / VSFTP /ファイル
#はパスで仮想ユーザーリポジトリを指定
anonymous_enableの= NOの
#設定が匿名アクセスを許可していません
WRITE_ENABLEを= YES
#書き込み操作ができるよう
local_umask = 022
#アップロードファイルのパーミッションは、マスク
NO anon_upload_enable =を
#やる匿名のアップロードが許可されていませ
anon_mkdir_write_enable = NO
#は、匿名ユーザーがディレクトリを作成することはできません
= 300 idle_session_timeout
#はアイドルタイムアウトのリンクが設定
= 1000 data_connection_timeout
#は、単一の最大送信時間を設定
max_clients = 0
の同時クライアントアクセス#セットの数を
max_per_ip = 0
#スレッドの設定クライアントの最大数
local_max_rate = 0
B / S位ユーザ設定最大伝送速度
重複コード
2)ユーザは、仮想リポジトリのディレクトリを作成し、アクセス許可それぞれの所有者/グループを変更すると、得られます
ます。mkdir -pは/ opt / vsftpdは/ファイル
chownコマンドてvirtusers:てvirtusersは/ opt / vsftpdは/ファイル
chmodの755は/ opt / vsftpdは/ファイル
タッチは/ opt / vsftpdは/ファイル/ ABC:3)だけビルドファイルを簡単にインストールが正常に終了し、フォローアップしたかどうかを検出します
九、起動モード
FTPデーモンの起動モード、2があり、スタンドアロンおよび(xinetdの/ inetdの)
1.)xinetdのモード:ほとんどの新しいシステムが使用するスーパーサービスデーモンxinetdのは、inetdの(インターネットデーモン)代替案です。ないのlinuxではなく、独立したデーモンのようないくつかの主要なサービスは、起動時に開始されますが、別のプロセスにxinetdへのリスニングポートは暫定で、クライアントの要求を受け、xinted処理の後、監視を一元化しましたクライアントが接続を切断した後、対応するサービス・プロセスの終了は、リスニングを続けるxinetdを、サーバーおよび適切なサービスに引き渡さ対応するポートを起動します。
一部のシステムでは、xinetdをインストールする必要があります。yumをxinetdをインストール
vsftpdの作成および/etc/xinetd.d/内に以下を追加する必要がない場合:
コードのコピー
-サービスFTPを
{
socket_typeに=ストリーム
待機=なし
ユーザー=ルート
サーバー=は/ usr / sbinに/ vsftpdは
= 10素敵
無効=なし
}
コードのコピー
/etc/rc.d/init.d/xinetd再起動xinetdを開始するために、再起動後にYES =聞くに「/etc/vsftpd.conf」からコメントを
2.)スタンドアロンモード:運転中には、より高速なアクセス信号応答のためにメモリに常駐残るが、そう頻繁にサービスに対する高い需要のために使用され、より多くのシステムリソースを、占めています。
スタンドアロンモードのftp:
このPAMは、このモードは、xinetdの下に設けられた、vsftpdはオフ最初のターンを入力すると、検証モードを促進する「= yesの無効化」、または対応する行には/ etc / vsftpdは/ vsftpdをコメントアウトして、キャンセル/etc/initd.conf .confの中のコメントを聞く= YESです。
スタート:サービスvsftpdの再起動
FTPを着陸他のマシンからテストX.
SELinuxはiptablesのをオフにすることをお勧めしてテストしました。
#yumのクライアントをダウンロードする必要がFTPをインストール-y
名前(192.168.1.67:root):test
331は、パスワードを指定してください。
パスワード:
230ログインに成功。
リモートシステムの種類はUNIXです。
ファイルを転送するためにバイナリモードを使用しました。
FTP> LS
227は、パッシブモード(192,168,1,67,23,40)を入力します。
ここで、150はディレクトリのリストを付属しています。
-rwxr-XR-X 3時53分ABC 2 500 500 4096 5月5日
226ディレクトリ送信OK。
エラーが発生する可能性があります。
1.)500 OOPS:エラー
設定ファイルは、実際の他の注文することはできませんあなたのvsftpd.conがあるかもしれない、可能性のYESまたはNOコマンドはスペースの後ろにあり
2.)プロンプトパーミッションの問題であれば、検出し、設定ファイルの正しい実装:setsebool -P ftp_home_dir = 1
vsftpdのは、厳格な要件の指定したユーザーにvsftpdのFTPホストの許可ファイルのみ、デフォルトの他の部分をログに記録する権限を持っている必要があり、仮想ホスト、仮想ユーザーリポジトリパスを関連する権利を持っているユーザーのニーズ、そして新しいものではありません親ディレクトリのための倉庫のバージョンで755かもしれ一見777ではありません