FTP

Posted yanghaitao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FTP相关的知识,希望对你有一定的参考价值。

-----------------FTP匿名、实名用户 tcp21----------------------

实现匿名账户使用VSFTP(仅下载) 实现实体账户使用VSFTP
#yum install vsftpd -y[安装FTP服务]
1)配置文件不需要修改 1)配置文件不需要修改
2)启动vsftpd 2)启动vsftpd
3)客户端安装ftp客户端程序 3)客户端安装ftp客户端程序
#yum install ftp -y #yum install ftp -y
4)客户端使用匿名账户登陆 4)客户端使用实名账户登陆
#ftp 192.168.1.5 #ftp 192.168.1.5
匿名账户:ftp 密码:随意 实体账户:snow 码:123456

开启匿名上传及建立目录机制:
1)修改vsftpd.conf配置文件
将29行注释取消
anon_upload_enable = YES
将33行注释取消
anon_mkdir_wirte_enable = YES
2)启动vsftpd
运行vsftpd需要的非特权账户,默认:nobodynopriv_user=ftpsecure
3)修改/var/ftp/pub目录权限,使ftp匿名账户具备写权限
#chown -R ftp.ftp pub
4)客户端测试

开启匿名账户修改、删除权限:
1)修改vsftpd.conf配置文件
于33行下增加
anon_other_wirte_enable = YES
2)启动vsftpd
3)修改/var/ftp/pub目录权限,使ftp匿名账
户具备写权限
#chown -R ftp.ftp pub
4)客户端测试
# ftp 192.168.10.5 [ftp登录]
#get 文件名[下载]←不需要加路径
#put 文件名[上传]

如果ftp客户端发送async ABOR指令时,此设定才会启用;但非常不安全,不推荐使用:async_abor_enable=YES

用于拒绝email作为口令登录deny_email_enable=YES

是否允许递归查询,大型ftp site启用此选项可允许远程用户查询目录中的内容
ls_recurse_enable=YES

用于拒绝某些email作为口令登录,可写入至banned_emails文件中
banned_email_file=/etc/vsftpd/banned_emails

FTP其他限制
1)限定最大并发连接数为100
max_clients=100
2)限定每客户端最多同时可以发起的链接个数
max_per_ip=1
3)限定匿名用户最大下载速率(单位:字节)
anon_max_rate=81920
4)设定有效实体账户最大下载速率
local_max_rate=102400
5)设定pasv模式使用端口的范围
pasv_min_port=50000
pasv_max_port=60000
6)设置最大超时时间(单位:秒)
idle_session_timeout=120
data_connection_timeout=300
connection_timeout=60

ftp模板所在位置
#cd /usr/share/doc/vsftpd-*/EXAMPLE/

 

------------ FTP实现chroot-------------

1.#yum install vsftpd -y #systemctl start vsftpd[安装启动]
2.#cd /etc/vsftpd
#vim vsftpd.conf [修改配置文件]
如果打算使用chroot_list列表来指定允许不用
chroot的用户请将101及102行注释取消。并建立chroot_list文件,将账户写入里面,如:
#cat /etc/vsftpd/chroot_list
snow
chuai
值得注意的是chroot_list文件里的账户是不被chroot的[chroot意思是被锁]

chroot出现错误解决方法
在vsftpd.conf中增加
allow_writeable_chroot=YES

4.#cd /etc/vsftpd
#ls -l ftpusers ←在此文件中的账户无法登陆
ftp
#ls -l user_list ← 有vsftpd.conf中的
userlist_enable语句控制

当 userlist_enable=NO 时 user_list列表不生效,列表内和列表外的用户都可登录

当 userlist_enable=YES及userlist_deny=YES同时写到配置中时user_list列表内的用户不可以登录,列表外用户可登录

当 userlist_enable=YES及userlist_deny=NO同时写到配置中时user_list只允许列表以外的用户登录,并且必需是以命令行的方式

客户端测试
# ftp 192.168.10.5 [ftp登录]
#get 文件名[下载]←不需要加路径
#put 文件名[上传]

--------------- FTP虚拟账户-------------

1)建立虚拟账户文件
#vim ~/ftpusers.txt
ck007 ←账户
123 ←密码
lisa ←账户
123 ←密码
hah
123
注意:要有一个真实的用户对应

2)生成账户的数据库
#db_load -T -t hash -f /root/ftpusers.txt /etc/vsftpd/ftpusers.db
#ls -l /etc/vsftpd/ftpusers.db
#rm -rf ~/ftpusers
-T:允许使用文本文件信息加载到数据库中
-t :指定加密算法
-f : 指定文件

3)通过PAM验证虚拟账户
#cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
#cp /usr/share/doc/vsftpd*/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd

4)修改vsftp验证文件
#vim /etc/pam.d/vsftpd
将so模块路径去除,仅保留模块
将db=/etc/vsftpd_login改为数据库文件名。
如auth required pam_userdb.so db=/etc/vsftpd/ftpusers
account required pam_userdb.so db=/etc/vsftpd/ftpusers
//*特别提示,在pam中的验证数据库不用加.db

5)创建与虚拟账户管理的实体账户
#useradd ck007
#chmod 777 -Rv /home/ck007←对应真实账户
//*如出现” 500 OOPS: vsftpd: refusing to runwith writable root inside chroot()” 请将/home/test目录写权限去除
#chmod a-w /home/ck007

6)修改vsftpd.conf配置文件
在其下增加
guest_enable=YES
guest_username=ck007←对应真实账户
7)重启vsftpd
#systemctl restart vsftpd
//*客户端测试*//

 

以上是关于FTP的主要内容,如果未能解决你的问题,请参考以下文章

怎么创建一个ftp的服务器?尽量简洁

请教FTP命令??

如何登陆FTP网址

ftp客户端工具,ftp客户端工具实现的方法及连接管理方法

怎么通过PHP来支持FTP和HTTP上传

华为手机怎么打开ftp地址?