A、VSFTPイントロ
FTPはファイル転送プロトコル(ファイル転送プロトコル)は、インターネット上の双方向転送ファイルのための英語の略語です。転送にFTPを使用する場合は、インターネット上のデータが完全に上記保護する明確な方法で送信されていないされているので、それは、リスクのある程度です!VSFTPはUnixライクな基本的な定義は、名前からわかるように、非常にセキュアなFTPの略システムのGPLのリリースで使用されるFTPサーバソフトウェアをベースに、これはセキュリティ上の問題のftp転送を解決するためにあります。
1.1、VSFTP特長
- 一般ユーザが実行するVSFTPプログラムは、一般的に安全性の向上、プロセスに対応する権利を減らします。
- あなたがより高い権限を実行する必要がある任意の命令は、ライセンスを設定する必要があります。
- コマンドをftpを使用する必要性の大部分はVSFTPに統合され、基本的なシステムは、追加のコマンドを提供する必要はありません。
- chrootの機能を持っている、あなたは、ユーザーのルートディレクトリを変更し、自分のホームディレクトリ内のユーザを制限することができます。
1.2、VSFTP接続タイプ
- コマンドを受信するためのFTPユーザー→TCP 21(コマンドチャネル)→コントロール接続(常時接続)
- アップロードとダウンロードデータのためのTCP 20(データチャネル)→データ接続(オンデマンド接続)→
1.3、VSFTP動作モード
1)アクティブモード
FTPクライアントは、クライアントは、このチャネルでのニーズのPORTコマンド送信されたデータを受信し、コマンドを送信するために使用されるTCPポート21と、サーバへの最初の接続を確立します。PORTコマンドは、データを受信するためにどのようなポートのクライアントが含まれています。データを送信する場合、そのポートを介してサーバ側のTCP 20は、指定されたクライアントポートにデータを送信します。
2)パッシブモード
まず、FTPクライアントとの接続を確立するために、TCPサーバポート21は、制御チャネルを確立するためのコマンドを送信しますが、接続は、クライアントがPASVコマンドを送信確立されています。PASVサーバは、送信データにクライアント接続ポート一時ポート(ポートが少ない65535より1023よりも大きい)と通知を開くためのコマンドを受信し、さらにデータ伝送のためのクライアントのFTPサーバの一時的なポートに接続されています。
1.4、VSFTP送信モード
- バイナリモード:データは任意の治療ではない、などの実行可能ファイル、圧縮ファイル、写真、適し
- ASCIIモード:テキスト、ターミネータを送信するときに自動的にこのようなキャリッジリターンとしてターゲットオペレーティングシステムを適応させる、等
VSFTPバイナリモードにおけるRed Hat Linuxディストリビューションは、デフォルトで使用され、これは、ファイル転送の大部分は正常に使用できることを保証します。
方法を切り替える:アスキーFTPで> ACSIIすなわち、入力ビン、すなわちプロンプト変換は、バイナリモードに変換されます。
1.5、VSFTP関連ソフトウェア名
服务端软件名:vsftpd
客户端软件名:ftp
服务名:vsftpd
端口号:20、21、指定范围内随机端口 配置文件:/etc/vsftpd/vsftpd.conf
1.6、VSFTP着陸アプローチ
1、匿名ユーザー認証:
ユーザーのアカウント名:FTPまたは匿名
ユーザーアカウントのパスワード:なしパスワード
作業ディレクトリ:の/ var / ftpの
デフォルトのアクセス許可:デフォルトのダウンロードはアップロードしない、アップロードの許可(メインの設定ファイルとファイルシステムが2つの部分から構成され、設定ファイルがアップロードされる権利、ディレクトリが書き込み権限を持っています。)
2、ローカルユーザ認証:
ユーザーのアカウント名:ローカルユーザー(/ etc / passwdファイル)
のユーザアカウントのパスワード:ユーザーパスワード(は/ etc / shadowの)
作業ディレクトリ:ログインユーザのホームディレクトリの
パーミッション:最大権限(drwx ------)
3、仮想ユーザー認証:
仮想ユーザーを作成すると、露出を減らすために、代わりにローカルユーザーのローカルユーザーを使用
する仮想ユーザーに作業ディレクトリとアクセス制御を提供するために、仮想ユーザーのユーザーマッピングとしてのローカルユーザーを使用して
、厳密な権限を設定します
第二に、関連試験
1、匿名ユーザー実験
匿名ユーザーの設定パラメータ
1、安装服务
yum install vsftpd -y
2、匿名用户相关配置
/etc/vsftpd/vsftpd.conf
pasv_enable=YES #设置连接模式
pasv_min_port=3000 #随机最小端口范围
pasv_max_port=5000 #随机最大端口范围
anonymous_enable=YES #启用匿名访问
anon_umask=022 #匿名用户所上传文件的权限掩码
anon_root=/var/ftp/anno #匿名用户的 FTP 根目录
anon_upload_enable=YES #允许上传文件
anon_mkdir_write_enable=YES #允许创建目录
anon_other_write_enable=YES #开放其他写入权(删除、覆盖、重命名)
anon_max_rate=0 #限制最大传输速率(0 为不限速,单位:bytes/秒)
3、实现文件上传
a. 修改配置文件
anon_upload_enable=YES
anon_root=/var/ftp
b. 在/var/ftp/下创建上传目录
mkdir /var/ftp/anon
c. 修改上传目录的权限或所有者,让匿名用户有写入权限
chown ftp:ftp /var/ftp/anon
d. 客户机登录
ftp> [root@centos ~]# ftp 100.100.100.103
Name (100.100.100.103:root): ftp
331 Please specify the password.
Password:
230 Login successful.
ftp> cd anon
ftp> put install.log
28529 bytes sent in 0.0821 secs (347.54 Kbytes/sec)
4、实现创建目录和文件其他操作 添加如下配置。
anon_mkdir_write_enable=YES #允许创建目录
anon_other_write_enable=YES #删除文件、文件改名、文件覆盖
5、进入到目录弹出信息
在对应目录下创建 .message 文件,并写入相应内容
确认dirmessage_enable=YES
6、下载上传的文件权限
默认情况下开放上传权限后,上传的文件是无法被下载的,因为文件的其他人位置没有r权限
anon_umask=022
2、ローカルユーザ実験
ローカルユーザの設定
local_enable=YES #是否启用本地系统用户
local_umask=022 #本地用户所上传文件的权限掩码
local_root=/var/ftp #设置本地用户的 FTP 根目录 默认在当前用户的家目录下
chroot_local_user=YES #只能自己的家目录,
chroot_list_enable=YES #开启允许切换目录用户文件
chroot_list_file=/etc/vsftpd/chroot_list #写入该文件中的用户可以随意切换目录
local_max_rate=0 #限制最大传输速率
ftpd_banner=Welcome to blah FTP service #用户登录时显示的欢迎信息
userlist_enable=YES & userlist_deny=YES #禁止/etc/vsftpd/user_list 文件中出现的用户名登录 FTP (默认)
userlist_enable=YES & userlist_deny=NO #仅允许/etc/vsftpd/user_list 文件中出现的用户名登录 FTP
配置文件:/etc/vsftpd/ftpusers
/etc/vsftpd/ftpusers 文件中出现的用户名登录 FTP,权限比 user_list 更高,即时生效
a. useradd -s /sbin/nologin huahua #服务端需要创建用户并设置密码(所创建的用户,不需要登录操作系统,仅用来登录VSFTP)
b. passwd huahua #密码
c. 客户机登录
[root@centos ~]# ftp 100.100.100.103
Connected to 100.100.100.103 (100.100.100.103).
Name (100.100.100.103:root): huahua
331 Please specify the password.
Password:
230 Login successful.
図3に示すように、仮想ユーザテスト
- の/ etc / vsftpdはディレクトリ内の仮想FTPユーザーのユーザーデータベースファイルを作成します。
vim /etc/vsftpd/vsftpd.user(单数行用户名,偶数密码)
zs
123456
2、最後のステップでは、データベースのパスワード・ファイルにvsftpd.userファイルを確立するために、
db_load -T -t hash -f vsftpd.user vsftpd.db
chmod 600 vsftpd.db #修改权限,保证安全性
3、仮想FTPユーザーマッピングのユーザーを作成し、そのユーザのホームディレクトリを確立しなければなりません
useradd -d /var/ftp_virtual_root -s /sbin/nologin virtual
4、仮想ユーザーのPAM認証ファイルの確立をサポートする仮想ユーザーのサポートを追加
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.pam
vim /etc/pam.d/vsftpd.pam(清空源文件内容,加入下面两条)
auth required pam_userdb.so db=/etc/vsftpd/vsftpd
account required pam_userdb.so db=/etc/vsftpd/vsftpd
在 vsftpd.conf 文件中添加支持配置
修改:
pam_service_name=vsftpd.pam
添加:
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd/dir/ #指定用户配置目录
図5に示すように、独立した仮想ユーザープロファイルの確立のために、サービスの開始およびテスト
a、修改配置文件,将主配置文件中自定义的匿名用户相关设置注释掉,防止主配置覆盖用户配置
cd dir/
vim zs
anon_upload_enable=YES #用户可以上传
anon_mkdir_write_enable=YES #允许创建目录 用户可以修改文件名
anon_other_write_enable=YES #允许重名和删除文件、覆盖
b、给映射用户的家目录,设置让虚拟用户有读权限
chmod a+r /var/ftp_virtual_root