FTPサービスの展開
FTP転送メカニズム:
終了指示によってFTPクライアントポート21は、データ送信ポート20によって送信され、アクティブおよびパッシブモードは、操作VSFTPのモードに応じて2種類に分割され、VSFTPほとんどの場合は、パッシブモードで動作します
アクティブモード:
1.Clientエンド1024は、FTPサーバのポート21への接続を確立するための要求を発行したランダムなポートよりも大きく、
要求の受信後に終了2.Server、20ポートのランダムなポート番号+1クライアント側のポートをリンクするためのイニシアチブを取る、ポートが占有されている場合は、無料のクライアントを見つけるために、最後まで、戻って、その上のランダムなポート番号2のポートとを見つけますポート
ポート20を介してサーバー側と3.Clientデータ伝送
パッシブモード:
1.Clientエンド1024は、FTPサーバのポート21への接続を確立するための要求を発行したランダムなポートよりも大きく、
エンド2.Serverクライアントがポートに送信するクライアント側開口21によってランダムなポート番号の値を伝えるために同様の(XYZ、AB)になり、ポートXYZ * 256 + ABを開き
ランダムポートサーバー側のXYZ経由3.Client ABエンドポート、さらにデータ転送* 256 +
クライアント側またはサーバー側の両方で現実アクティブモードでVSFTPは、ファイアウォール上で開いているすべてのランダムなポートを乱数1クライアント側のポートをリンクする、クライアント側は明らかにしません、ファイアウォールの背後にある、とパッシブの次号で同じ問題は依然としてサーバー側のファイアウォール接続の追跡を必要とする、ファイアウォールサーバ側の前面に配置されますが、ほとんどの場合、パッシブモード動作である理由であるポート21を、関連するリリースポートへのアクセスを要求して、つまり、オンになっているVSFTP 。
VSFTP展開:
環境の説明:
Serverシステム:CentOS7.5、メモリ2G、30Gハードディスクドライブ
クライアントシステム:Windows10;ソフトウェア:xftpクライアント
注:1)すべての操作パスのステップ、台無しにしないでください
2)この記事の最後の部分の詳細な構成を示すことです
3)インストールがYUMの形で展開することがvsftpdの
VSFTP着陸タイプ:
VSFTPは、システムのユーザ、匿名ユーザ、およびアプローチ着陸異なる仮想ユーザーの三種類を提供します。アクセスは、この目的のために、ユーザのホームディレクトリである場合、すべての仮想ユーザがユーザシステム、ファイルシステムのディレクトリにマップされます;、匿名ユーザーは仮想ユーザーでFTPのためのシステム・ユーザー・マッピングを、詳細な情報は、人間が見ることができvsftpd.conf
1. VSFTPをインストールします。
[linuxMA〜@ルート]#yumを-y * vsftpdのインストール
2.回転数-qcビューvsftpdの設定ファイル
[ルートlinuxMA〜@]#回転数-qc vsftpdの
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
の/ etc / vsftpdは/ ftpusersに
の/ etc / vsftpdは/ user_list
/etc/vsftpd/vsftpd.conf
詳細なプロファイル#
/etc/logrotate.d/vsftpd ローリングログ設定ファイル
/etc/pam.d/vsftpdの プラグ対応の認証と呼ばれる認証文書、PAM
の/ etc / vsftpdは/ ftpusersには 着陸システムユーザの制御機構、ユーザが/etc/pam.d/vsftpdで定義されているFTPサーバに、使用を許可されていないファイルに表示され
の/ etc / vsftpdは/ user_list userlist_enableの中/etc/vsftpd/vsftpd.confと= YESとuserlist_deny = YES | NOここで注意することは、黒と白のリストを実現していないです:黒と白のリストは、構成/etc/vsftpd/vsftpd.confの前提ですファイルは、上陸許可のVSFTPに表示されたユーザーのみを許可するファイルに表示されます(ブラックリスト)は、手動でuserlist_deny = NO(ホワイトリスト)を追加しても、着陸VSFTPを許可しないYESにuserlist_enableの= YES、ユーザーuserlist_denyオプションのデフォルトファイルVSFTPは/ vsftpdは/ ftpusersファイルを起動し、ファイル内のログインからユーザーを防ぐとき、まだの/ etcチェックします
/etc/vsftpd/vsftpd.conf VSFTPメインの設定ファイルは、すべての設定オプションは、トップグリッドは、設定ファイルの#のスペースを作成しなければならないというスペースが設定オプションをコメントされていないと、実証することです
3. cpコマンドは、コンフィギュレーションファイルをバックアップします
[ルート@ linuxMA〜]#のCDの/ etc / vsftpdは/
#1 LS [linuxMA vsftpdの@ルート]
ftpusersにuser_list vsftpd.conf vsftpd_conf_migrate.sh
[linuxMAのvsftpdは@ルート]#cpはvsftpd.conf vsftpd.conf.bak
#1 LS [linuxMA vsftpdの@ルート]
ftpusersにuser_list vsftpd.conf vsftpd.conf.bak vsftpd_conf_migrate.sh
1)匿名ユーザーを設定します
[ルート@ linuxMAのvsftpdは]#のVimのvsftpd.conf
WRITE_ENABLE = YES
anon_umask = 022
anonymous_enableの= YES
anon_upload_enable = YES
anon_mkdir_write_enable = YES
anon_other_write_enable = YES(他のユーザーへの匿名の書き込みアクセスを許可するかどうか()、名前変更、削除、カバー
dirmessage_enable = YES
xferlog_enable = YES
connect_from_port_20 = YES
xferlog_std_format = YES
YES =聞きます
pam_service_name = vsftpdの
YES = userlist_enableの
TCP_WRAPPERS = YES
#VSFTPサービスを有効にし、成功したかどうかを確認スタート
[ルート@のlinuxMAのvsftpdの]にvsftpdを起動しsystemctl#
[ルート@ linuxMAのvsftpdは]#netstatの-lnpt | grepをするvsftpdの
TCP 0 0 0.0.0.0:21 0.0.0.0:* 34531 / vsftpdのをLISTEN
#のログイン認証:
#テストに成功着陸:
#は、アクセス権を変更します。
[ルート@ linuxMA〜]#のCDの/ var / FTP /
[ルート@ linuxMAのFTP]#のLL
0合計額
drwxr-XR-X 2ルートルート6 8月3 2017パブ
[ルートlinuxMA FTP @]#chownコマンドのFTP:FTPパブ/
[ルート@ linuxMAのFTP]#のLL
0合計額
drwxr-XR-X 2のFTP、FTP 21 9月16 10:16パブ
キー:あなたが変更しない場合、それは他の権利を有効にすることができないだけでアクセスすることができ、所有者のルートディレクトリを変更します。我々はしているので、FTP アクセスにユーザーのID、およびパブのデフォルトの所有者は、そのグループであるルート。
注:有効にする構成サービスを変更する(1)終了完了後に再起動する必要があります
(2)还需要从新从客户端登陆,否则修改后的配置看不到效果。
2)配置系统用户
1.创建测试用户zhangsan、lisi 密码都为“123456”
[root@linuxMA ~]# useradd zhangsan
[root@linuxMA ~]# useradd lisi
[root@linuxMA ~]# echo "123456" |passwd --stdin zhangsan
更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@linuxMA ~]# echo "123456" |passwd --stdin lisi
更改用户 lisi 的密码 。
passwd:所有的身份验证令牌已经成功更新。
2.修改配置文件
[root@linuxMA ~]# vim /etc/vsftpd/vsftpd.conf
local_enable=YES
local_umask=077
chroot_local_user=YES
allow_writeable_chroot=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
tcp_wrappers=YES
[root@linuxMA ~]# vim /etc/vsftpd/user_list //添加用户到白名单
zhangsan
lisi
[root@linuxMA ~]# systemctl restart vsftpd //重启服务
#登陆测试:
#登陆成功:
#添加并进行测试
[root@linuxMA ~]# cd /home/zhangsan/
[root@linuxMA zhangsan]# touch zhangsan.txt
3)配置虚拟用户
1.建立虚拟FTP用户的帐号
[root@linuxMA ~]# useradd -s /sbin/nologin vu
2.创建虚拟用户文件
[root@linuxMA ~]# cd /etc/vsftpd/
[root@linuxMA vsftpd]# vim user
wangwu
12345
maliu
12345
基数行代表用户名,偶数行代表密码
3. 通过db_load工具创建出Berkeley DB格式的数据库文件
[root@linuxMA vsftpd]# db_load -T -t hash -f user user.db
[root@linuxMA vsftpd]# ls
ftpusers user user.db user_list vsftpd.conf vsftpd.conf.bak vsftpd_conf_migrate.sh
db_load -T -t hash -f user user.db
-f 指定数据原文件
-T 允许非Berkeley DB的应用程序使用文本格式转换的DB数据文件
-t hash 读取文件的基本方法
4. 建立支持虚拟用户的PAM认证文件
[root@linuxMA vsftpd]# vim /etc/pam.d/vsftpd.vu
加入以下两行
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/user
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/user
对应刚才生成user.db的文件
5.修改配置文件
[root@linuxMA vsftpd]# vim vsftpd.conf
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
userlist_enable=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
guest_enable=YES
guest_username=vu
pam_service_name=vsftpd.vu
local_enable=YES
local_umask=077
chroot_local_user=YES
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/user_dir
6. 为用户建立独立的配置目录及文件
[root@linuxMA vsftpd]# mkdir /etc/vsftpd/user_dir
[root@linuxMA vsftpd]# ls
ftpusers user user.db user_dir user_list vsftpd.conf vsftpd.conf.bak vsftpd_conf_migrate.sh
[root@linuxMA vsftpd]# cd /etc/vsftpd/user_dir
[root@linuxMA user_dir]# vim wangwu
local_root=/etc/vsftpd/data //虚拟用户数据的存放路径
#创建虚拟用户数据存放目录
[root@linuxMA user_dir]# cd ..
[root@linuxMA vsftpd]# mkdir data
[root@linuxMA vsftpd]# chmod 777 data/
#重启服务
[root@linuxMA ]# systemctl restart vsftpd
登陆测试:
#登陆成功。添加文件进行测试
[root@linuxMA vsftpd]# cd data/
[root@linuxMA data]# touch wangwu.txt
重点:本地用户和虚拟用户不能同时登录、因为认证方式只有一种
本地是pam_service_name =vsftpd
虚拟是pam_service_name =vsftpd.vu
配置文件详解
#常用的匿名FTP配置项
anonymous_enable=YES 是否允许匿名用户访问
anon_umask=022 匿名用户所上传文件的权限掩码
anon_root=/var/ftp 设置匿名用户的FTP根目录
anon_upload_enable=YES 是否允许匿名用户上传文件
anon_mkdir_write_enable=YES 是否允许匿名用户允许创建目录
anon_other_write_enable=YES 是否允许匿名用户有其他写入权(改名,删除,覆盖)
anon_max_rate=0 限制最大传输速率(字节/秒)0为无限制
#常用的本地用户FTP配置项
local_enable=YES 是否允许本地系统用户访问
local_umask=022 本地用户所上传文件的权限掩码
local_root=/var/ftp 设置本地用户的FTP根目录
chroot_list_enable=YES 表示是否开启chroot的环境,默认没有开启
chroot_list_file=/etc/vsftpd/chroot_list 表示写在/etc/vsftpd/chroot_list文件里面的用户是不可以出chroot环境的。默认是可以的。
Chroot_local_user=YES 表示所有写在/etc/vsftpd/chroot_list文件里面的用户是可以出chroot环境的,和上面的相反。
local_max_rate=0 限制最大传输速率(字节/秒)0为无限制
#常用的全局配置项
listen=YES 是否以独立运行的方式监听服务
listen_address=192.168.4.1 设置监听FTP服务的IP地址
listen_port=21 设置监听FTP服务的端口号
write_enable=YES 是否启用写入权限(上传,删除文件)
download_enable=YES 是否允许下载文件
dirmessage_enable=YES 用户切换进入目录时显示.message文件
xferlog_enable=YES 启用日志文件,记录到/var/log/xferlog
xferlog_std_format=YES 启用标准的xferlog日志格式,禁用此项将使用vsftpd自己的格式
connect_from_port_20=YES 允许服务器主动模式(从20端口建立数据连接)
pasv_enable=YES 允许服务器被动模式
pasv_max_port=24600 设置被动模式服务器的最大端口号
pasv_min_port=24500 设置被动模式服务器的最小端口号
pam_service_name=vsftpd 用户认证的PAM文件位置
(/etc/pam.d/vsftpd.vu)
userlist_enable=YES 是否启用user_list列表文件
userlist_deny=YES 是否禁用user_list中的用户
max_clients=0 限制并发客户端连接数
max_per_ip=0 限制同一IP地址的并发连接数
TCP_WRAPPERS = YESホストアクセス制御TCP_WRAPPERSを有効にするかどうか
chown_username =ルートは、ファイルをアップロードする匿名ユーザーの所有者は、デフォルトではオフに、根で表し、
ユーザーがバイナリファイルをアップロードできるようにするかどうかを示すascii_upload_enable = YES、デフォルトは許可されていません
ascii_download_enable = YESこれは、ユーザーがバイナリファイルをダウンロードすることを許可するかどうかの代表である、デフォルトは許可されていません
手動でvsftpdのを設定するには、ユーザーのためのnopriv_user = vsftpdを提供vsftpdのホスト・ユーザー・サポート・サービス
async_abor_enable = YESが設定されている非同期伝送機能をサポートしています
着陸スローガンにvsftpdの設定Awei FTPサーバへのftpd_banner =ようこそ
guest_enable = YES設定は、仮想ユーザー機能を有効になっています
すなわちguest_username = FTPUSERユーザ指定された仮想ホストユーザー
そのホストのユーザー権限で仮想ユーザーのvirtual_use_local_privs = YESセット
仮想ユーザーの個人設定ファイルの格納パスVSFTPのuser_config_dir =の/ etc / vsftpdは/ vconfセット