記事ディレクトリ
1.ftpファイルサービスの概要
ファイル転送プロトコル(FTP)。これに基づいて、FTPクライアントとサーバーは、ファイルの共有、ファイルのアップロード、およびファイルのダウンロードを行うことができます。FTPは、主にFTP接続情報を制御するために使用されるTCPプロトコルに基づいて仮想接続を生成すると同時に、FTPデータ送信用に別個のTCP接続を生成します。ユーザーはクライアントを介してFTPサーバーにファイルをアップロード、ダウンロード、および削除でき、FTPサーバーは同時に複数のユーザーで共有できます。FTPサービスはクライアント/サーバー(C / S)モードです。FTPプロトコルに基づいてFTPファイルの外部共有と送信を実現するソフトウェアはFTPサーバーソース側と呼ばれます。クライアントプログラムはFTPプロトコルに基づいているため、FTPクライアントと呼ばれます。クライアントは、FTPサーバーにファイルをアップロードおよびダウンロードできます。Unix / Linuxで最も広く使用されているFTPサーバーソフトウェアはVsftpdです。
プロトコル:ftpファイル転送プロトコル
クライアントソフトウェア:lftp(推奨)、ブラウザー、リソースマネージャー、ftp
FTP転送モードの概要(アクティブモードとパッシブモード)
vsftpdのパッシブモードはデフォルトで有効になっています。オフにすることができます。アクティブモードは常にオンであり、オフにすることはできません。
アクティブモード:ポート21はtcp接続の確立を担当し、ポート20はデータ
クライアントサーバー(C / Sモード)
1024 --------> 21セッション接続を担当
1024 <-------- 20データ送信を担当
高セキュリティゾーンファイアウォール低セキュリティゾーン
パッシブモード:ポート21はtcp接続の確立を担当、1024 +データを保存し、クライアントがデータ
クライアントサーバーをフェッチするのを待つ(C / Sモード)
1024 --------> 21セッション接続を担当
1024 --------> 1024 +データを保存し、クライアントがデータをフェッチするのを待つデータ
サーバーへの接続に使用されるモードは、クライアントが最終決定権を持ちます。
そのモードがサーバーの最終決定権であることを受け入れることができ
ますサーバーはパッシブモードをオフにします:
[root @ xingdian〜] #vim /etc/vsftpd/vsftpd.conf pasv_enable
= NO
クライアントはパッシブをオフにしますモード:
[root @ xingdian〜] #lftp 172.16.70.251
> set ftp:passive- modeoffは
永続的に有効になります
[root @ xingdian〜] #vim /etc/lftp.conf
ftp:passive-modeをオフに設定します
Ftpセキュリティ:
1。ダウンロード権限を除く匿名ユーザーのすべての権限をオフにします
。2。監視をオンにします。つまり、ログ/ var / log / xferlogをオンにします。
lftp ftp.net.pku.edu.cn:〜> ls
` ls'at 0 [再接続前の遅延:21]
一度接続に失敗すると、遅延がますます長くなり、ftpに押し込むことができなくなります。 。
ftpクライアント構成ファイル
を変更します/etc/lftp.confに追加します:
set net:reconnect-interval-base 5 //再接続間隔ベースを
設定しますsetnet :reconnect-interval-multiplier 1.0 //再接続間隔乗数を設定します
2.基本的なftpサービスを展開します
①、
サーバーのインストール:yum -y install vsftpd
clinet:yum -y installlftp②
、サービス(サーバー)を起動し、サーバー側でvsftpdを起動し、クライアント側で直接lftpを使用します
[root @ ftp-server〜] #systemctl start vsftpd / / Start service
[root @ ftp-server〜] #systemctl enable vsftpd //起動時
③、ftpサービス関数
/ var / ftp /は、ftpサーバーがデフォルトでデータを格納するディレクトリであり、pubディレクトリが自動的に作成されています。
[root @ ftp-
server〜] #cd / var / ftp /注:セキュリティ上の理由から、ftpルートディレクトリの権限は755を超えることはできません[root @ ftp-server〜]#/ etc / vsftpd / vsftpd.confftpのメイン構成ファイル
この時点で、クライアントはlftpを匿名ユーザーとして使用してftp-serverにアクセスし、ftp-server:/ var / ftp /で指定されたリソースを表示およびダウンロードできますが、リソースをアップロードおよび変更することはできません
[root @ ftp-client〜] #lftp 10.11.67.31
lftp 10.11.67.31:〜> ls
lftp 10.11.67.31:/> cd software /
lftp 10.11.67.31:/ software> ls
lftp 10.11.67.31:/ software> get
vim.tar.gz137087889バイトが12秒で転送されます(10.93M / s)
ファイルのダウンロードが許可されます
lftp 10.11.67.31:/ software> cd…
lftp10.11.67.31:/> ls
lftp 10.11.67.31:/> mirror kvm
合計:1ディレクトリ、4ファイル、0シンボリックリンク
新規: 4ファイル、0シンボリックリンク
115437075バイトが13秒で転送(8.55M / s)
ダウンロードディレクトリミラーが許可されます
lftp 10.11.67.31:/> mkdir kakaops
mkdir:アクセスに失敗しました:550アクセスが拒否されました。(kakaops)
ディレクトリの作成が拒否されました
lftp 10.11.67.31:〜> put /mnt/kakaops.txt
put:アクセスに失敗しました:550アクセスが拒否されました。(kakaops.txt)
ファイルのアップロードが拒否されました
lftp 10.11.67.31:/>ミラー-R / mnt /
ミラー:アクセスに失敗しました:550ディレクトリの変更に失敗しました。(/ mnt)
1つのエラーが検出されました
アップロードディレクトリミラー-Rが拒否されました
3.FTP匿名ユーザーアップロード機能を展開します
ftpアップロード機能をオンにします(最初にファイルアップロード機能をオンにし、/ var / ftpの下に777の権限で共有ディレクトリを作成します)
最初にftp構成ファイルを変更し、アップロード機能をオンにします
[root @ ftp-server〜] #vim / etc / vsftpd / vsftpd.conf
anon_upload_enable=YES //上传文件
anon_mkdir_write_enable=YES //上传目录
サーバーは/ var / ftp
[root @ ftp-server〜
] #mkdir / var / ftp / gongxiang [root @ ftp- server〜] #chmod 777 / var / ftp / gongxiang /
[root @ftpの下に777ディレクトリを作成します-server〜] #systemctl restart vsftpd
この時点で、クライアントは共有ディレクトリにファイルをアップロードしてディレクトリを作成できますが、ファイルを作成することはできません
[root @ ftp-client〜] #lftp 10.11.67.31
lftp 10.11.67.31:〜> cd gongxiang /
lftp 10.11.67.31:/ gongxiang> mkdir sunlizhen
mkdirが成功し、 `sunlizhen'lftp
10.11.67.31:/ gongxiang> put /mnt/kakaops.txt
lftp 10.11.67.31:/ gongxiang> ls
-rw -----が作成されました。 --1 14 50 0 Oct 26 09:40 kakaops.txt
drwx ------ 2 14 50 6 Oct 26 09:39 sunlizhen
lftp 10.11.67.31:/ gongxiang>
匿名ユーザーはアップロードとダウンロードができますが、 10.11.67.31:/ gongxiang /ディレクトリのみに限定
4.ftpローカルアカウントアクセスの問題
ユーザーログイン機能を使用します(ftpでは匿名ユーザーアクセスが許可されます。サーバー側でユーザーを作成し、ログインするためのパスワードを設定することもできます。ユーザーを作成するときに、ユーザーのホームディレクトリが指定されている場合、デフォルトの共有ディレクトリがユーザーのホームディレクトリになります)
useradd createユーザーの問題
[root @ localhost] #useradd -d / opt / haha -G ftp -s / sbin / nologin haha
メールボックスファイルの作成:ファイルが存在します//ここでの操作でエラーが発生しました。ちなみに、この問題を
Linuxシステムに追加してくださいユーザーの後、メールボックス(システムメールボックス)がシステムに自動的に追加されます。パスは/ var / pool / mail / usernameです。
したがって、ユーザーを削除するときは、userdel -rを使用してクリーンに削除し
、コマンド#rm -rf / varを直接使用できます。 / pool / mail / user name。これにより、同じ名前のユーザーを再度追加できます。
このコマンドを実行した後、次のようなエラーメッセージが表示された場合:
useradd:warning:ホームディレクトリは既に存在し
ます。skelディレクトリからファイルをコピーしていません。
エラーの理由:
システムにユーザーを追加するための標準的な手順
1. / etc / passwdと/ etc / groupを編集し
ます2.ユーザーのホームディレクトリを作成します
3. / etc / skelからファイルとディレクトリをコピーします
4.新しいユーザーにホームディレクトリとファイルの所有権を取得させます権限
5.新しいユーザーにパスワードを与える
これは、ユーザーのディレクトリがすでに存在し(これは、設定した任意のディレクトリにすることができます)、このディレクトリを作成できなくなったことを意味します。ユーザーの追加に失敗することはなく、無視できます。ユーザーを作成するときに、-dはホームディレクトリを指定します。指定したホームディレクトリがすでに存在する場合、この警告が報告されます。存在しないホームディレクトリを指定すると、システムによって自動的に作成されます。ただし、ディレクトリを再帰的に作成することはできません。
ユーザーを作成します(分類を標準化するためにftpグループを指定します。指定する必要はありません)
[root @ ftp-server〜] #useradd -d / mnt / kakaops kakaops -G ftp
[root @ ftp-server〜] #passwd kakaops(123)
customersクライアントログイン(匿名ログインおよびユーザーログイン)
[root @ ftp-client〜] #lftp 10.11.67.31 -u kakaops(-uはユーザーを指定し、パスワードが必要です)
パスワード:
lftp [email protected]:〜> ls
[root @ ftp-client〜] #lftp 10.11.67.31 -u kakaops、123(、
後でパスワードを追加)lftp [email protected]:〜>
ユーザーがログインすると、共有ディレクトリはデフォルトでユーザーのホームディレクトリになります
匿名アカウント
lftp172.16.70.251は、passwdファイルのデフォルトアカウントを使用します。デフォルトでは、ユーザーとパスワードを書き込む必要はありません。デフォルトの共有パス/ var / ftp
ローカルアカウント
lftp172.16.70.251 -u user02、1(パスワード)はftp以外で使用されます。他のアカウントの場合、デフォルトの共有ディレクトリはアカウントのホームディレクトリです
一般的なクライアントコマンド
help //コマンドの表示ヘルプマニュアル
ls //ファイル
ディレクトリの表示// file = ls
cdpubの表示//パスの切り替え
getfile -o / root / Desktop
ダウンロードファイル(-oはダウンロードファイルのストレージディレクトリを指定し、ログインするデフォルトのダウンロードは指定しませんディレクトリの下で、スペースで区切られた複数のファイルをダウンロードします)
ミラーディレクトリで指定されたダウンロードディレクトリ(
最初にダウンロードするディレクトリを指定してから、ディレクトリ保存パスを直接指定し、ログインディレクトリへのデフォルトのダウンロードを指定しません)。ここで指定した場合、現在のディレクトリを除く。他のディレクトリの場合、ディレクトリの下のコンテンツがディレクトリからダウンロードされ、ディレクトリが分割されます。ディレクトリが現在のディレクトリにダウンロードされると、開いていないディレクトリがダウンロードさ
れますput file //アップロードファイル
mirror-R directory //アップロードディレクトリ
mkdirdirectory //クライアントはディレクトリを作成できます
5.補足FTPを使用した構成ファイルオプションの詳細な説明
Vsftpdは、匿名ユーザーの一般的なオプションを構成します
1、编辑配置文件
[[email protected] vsftpd]# vim vsftpd.conf
write_enable=YES
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
2、常用的匿名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为无限制
3、开启 vsftp 服务
[root@xingdian vsftpd]# systemctl start vsftpd
[root@xingdian vsftpd]# netstat -lnpt |grep vsftpd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 34531/vsftpd
4、客户端登陆验证
Vsftpdは、ローカルユーザーの一般的なオプションを構成します
1、创建测试用户
• 创建 zhangsan、lisi 密码都设置为 “123456”
[root@xingdian ~]# useradd zhangsan
[root@xingdian ~]# useradd lisi
[root@xingdian ~]# echo "123456" | passwd --stdin zhangsan
[root@xingdian ~]# echo "123456" | passwd --stdin lisi
2、修改配置文件
[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
local_enable=YES
local_umask=077
chroot_local_user=YES
allow_writeable_chroot=YES
write_enable=YES
3、常用的本地用户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为无限制
4、添加用户到白名单
[[email protected] ~]# vim /etc/vsftpd/user_list
zhangsan
lisi
5、重启服务
[[email protected] ~]# systemctl restart vsftpd
6、登陆测试
vsftpd構成ファイルオプションの詳細な説明
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=root # 表示匿名用户上传的文件的拥有人是root,默认关闭
ascii_upload_enable=YES # 表示是否允许用户可以上传一个二进制文件,默认是不允许的
ascii_download_enable=YES # 这个是代表是否允许用户可以下载一个二进制文件,默认是不允许的
nopriv_user=vsftpd # 设置支撑Vsftpd服务的宿主用户为手动建立的Vsftpd用户
async_abor_enable=YES # 设定支持异步传输功能
ftpd_banner=Welcome to Awei FTP servers # 设定Vsftpd的登陆标语
guest_enable=YES # 设置启用虚拟用户功能
guest_username=ftpuser # 指定虚拟用户的宿主用户
virtual_use_local_privs=YES # 设定虚拟用户的权限符合他们的宿主用户
user_config_dir=/etc/vsftpd/vconf # 设定虚拟用户个人Vsftp的配置文件存放路径