独自の要件を満たす vsftp サービスを構築するための Linux の運用と保守

齐天大圣
リリース: 2020-11-23 14:19:20
オリジナル
1685 人が閲覧しました

vsftpd ソフトウェアをサーバーにインストールし、ソフトウェアのメイン構成ファイル /etc/vsftpd/vsftpd.conf を理解したら、必要な FTP サービスを構築できます。

ポートなどを指定します。

listen_port=21 リスニングポートを設定します

download_enable=YES ファイルのダウンロードを許可します

max_clients=100 クライアントの同時接続数を制限します

max_per_ip=100 同じ IP での同時接続数を制限します

匿名とエンティティを禁止しますユーザーログイン

まず、匿名ユーザーのログインをオフにし、匿名ユーザーの閲覧権限を拒否します。

anonymous_enable=NO
ログイン後にコピー

では、なぜエンティティ ユーザーはログインを許可されないのでしょうか?物理ユーザーはすでに、より安全な sftp を使用してログインできるため、ログインに ftp プロトコルを使用する必要はありません。さらに、ftp はクリア テキスト転送プロトコルであるため、アカウントのパスワードが傍受されると問題が発生します。

エンティティ ユーザーのログインを禁止するにはどうすればよいですか?仮想ユーザーを構成する 3 番目のステップについては、この記事で後述します。/etc/pam.d/vsftpd の下にあるものをすべてコメント化します。

アクティブ接続とパッシブ接続の設定

アクティブ接続モードとパッシブ接続の両方をサポートする構造を構築したいので、設定は次のようになります。次のように:

##アクティブ接続モードのポート設定

connect_from_port_20=YES
ログイン後にコピー

ポート 21 を許可するようにファイアウォールを設定します。また、ポート 20 を開く必要はありません。ホストがアクティブに要求するデータ パケットと、に応答すると、マシンに直接入ることが許可されます (確立/関連)。

iptables -A INPUT -p tcp --dport 21 -j ACCEPT # FTP服务
iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT
ログイン後にコピー

パッシブ モードを有効にすると、パッシブ接続ポートは 10001 ~ 11000 のいずれかに制限されます。

pasv_enable=YES
pasv_min_port=10001
pasv_max_port=11000
ログイン後にコピー

10000 ~ 11000 のポートが開くことを許可するようにファイアウォールを設定します。

iptables -A INPUT -p tcp --dport 10001::11000 -j ACCEPT # ftp被动连接端口
ログイン後にコピー

仮想ユーザーの構成

仮想ユーザーを構成する手順は次のとおりです:

  1. 仮想ユーザー パスワード ファイルの作成

  2. 仮想ユーザー パスワード認証ファイルの生成

  3. vsftpd の PAM 認証ファイルの編集

  4. ローカル マッピング ディレクトリを確立し、ホスト ディレクトリのアクセス許可を設定します。

  5. 構成ファイルを変更します。

  6. #仮想ユーザーごとに個別の構成ファイルを取得します

1. 仮想ユーザーのパスワード ファイルを作成します、ファイルの形式は、奇数行がユーザー名、偶数行がパスワードです。以下の内容を含むファイル /etc/vsftpd/vusers を作成します:

ftptest1
111111
ftptest2
222222
ログイン後にコピー

2. 仮想ユーザー パスワード認証ファイル を生成し、次のコマンドを実行します:

db_load -T -t hash -f  /etc/vsftpd/vusers  /etc/vsftpd/login.db
ログイン後にコピー

コマンドが正しく実行されると、/etc/vsftpd/login.db ファイルが表示されます。セキュリティ上の理由から、このファイルの権限を 600 に設定します。

chmod 600 login.db
ログイン後にコピー

3. 仮想ユーザーに必要な PAM 構成ファイルを編集します

vim /etc/pam.d/vsftpd
ログイン後にコピー

以前のファイルをすべて置き換えます内容 コメントにして、新しい 2 行を追加します。

auth    required    /lib64/security/pam_userdb.so  db=/etc/vsftpd/login 
account   required    /lib64/security/pam_userdb.so  db=/etc/vsftpd/login
ログイン後にコピー

32 ビットの場合は、lib の後の 64 を削除します。ログイン後にサフィックスを追加する必要はありません。この操作の後、エンティティ ユーザーは FTP サービスにログインできなくなります。

4. ローカル マッピング ディレクトリを作成し、ホスト ディレクトリのアクセス許可を設定します。

仮想ユーザーのホスト ユーザーを作成します

# useradd -d /home/vsftp -s /sbin/nologin ftpuser
ログイン後にコピー

ディレクトリのアクセス許可を 755

# chmod 755 /home/vsftp/
ログイン後にコピー

5 に変更します。構成ファイルを変更します。

次の構成情報行を /etc/vsftpd/vsftpd.conf 構成ファイルに書き込みます。

# 开启虚拟用户登陆功能
guest_enable=YES

# 将虚拟用户与宿主用户对应
guest_username=ftpuser

# pam认证文件(该配置默认存在)
pam_service_name=vsftpd

# vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了,所以要加入下面配置
allow_writeable_chroot=YES
ログイン後にコピー

6. 仮想ユーザーごとに個別の構成ファイルを作成します。

仮想ユーザーごとに個別の構成ファイルを作成する場合は、メイン構成ファイルに

user_config_dir=/etc/vsftpd/config
ログイン後にコピー

を追加して、仮想ユーザーの構成ファイルのパスを指定する必要があります。次に、2 人の仮想ユーザー用に独自の構成ファイルを作成します。

# ftptest1虚拟用户的配置文件

# 创建虚拟用户家目录
# mkdir /home/vsftp/ftptest1
# chown ftpuser:ftpuser /home/vsftp/ftptest1/

# 建立配置文件
# mkdir /etc/vsftpd/config 
# vim /etc/vsftpd/config/ftptest1  <=== 虚拟用户各自配置文件和自己的用户名对应起来

# 指定家目录
local_root=/home/vsftp/ftptest1
# 允许相关权限
download_enable=yes
anon_upload_enable=yes
anon_other_write_enable=YES
anon_mkdir_write_enable=yes
anon_world_readable_only=no
# 设置最大传输速度,单位b/s
anon_max_rate=100000
ログイン後にコピー
注: 現在、ftptest2 仮想ユーザー用の個別の構成ファイルはないため、このユーザーにはメイン構成ファイル ( /etc /vsftpd/vsftpd.conf)

その他の関連技術記事については、

linux システム チュートリアル 列を参照してください。

以上が独自の要件を満たす vsftp サービスを構築するための Linux の運用と保守の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート