标签:传输协议 范围 ice 上传下载 默认值 switch 注意 文件路径 存放位置
FTP服务 文件传输协议FTP属于File Transfer
Protocol早期的三个应用级协议之一,它基于C/S结构。并且它的传输格式默认是以二进制方式(可以更改成文本格式,不过不建议)。在主动模式下(服务器主动连接)命令传达服务器是端口是21,客户端随机,数据传达服务器端口是20,客户端还是随机;被动模式(客户端主动连接)命令的传输客户端随机端口,服务器端口是21,数据传达双方端口都是随机的。
FTP的服务器端软件有
vsftpd,Wu-ftpd, Proftpd, Pureftpd, ServU, IIS
等;客户端软件有ftp,lftp, lftpget, wget,curl
等。FTP服务的状态码为
1XX:信息 125:数据连接打开
2XX:成功类状态 200:命令OK 230:登录成功
3XX:补充类 331:用户名OK
4XX:客户端错误 425:不能打开数据连接
5XX:服务器错误 530:不能登录
用户认证
匿名用户:ftp,anonymous,对应Linux用户ftp
系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow
虚拟用户:特定服务的专用用户,独立的用户/密码文件
nsswitch:network service switch名称解析框架
pam:pluggable authentication module 用户认证
/lib64/security /etc/pam.d/ /etc/pam.conf
vsftpd是由vsftpd包提供,可以直接yum安装。用户认证配置文件在/etc/pam.d/vsftpd
配置文件是/etc/vsftpd/vsftpd.conf
它分为匿名用户和系统用户以及虚拟用户。其中匿名用户共享文件夹位置在/var/ftp;系统用户共享文件夹位置为用户的家目录;虚拟用户共享家目录为其映射的系统用户的家目录。
以下设置的配置文件统一为
/etc/vsftpd/vsftpd.conf
命令端口:listen_port=21
主动模式端口:
connect_from_port_20=YES
(主动模式端口为20)
ftp_data_port=20
(指定主动模式的端口,当然可以随心所欲的设置)
被动模式端口范围:
pasv_min_prot=6000
pasv_max_port=6010
(就是说在被动模式下端口只是在这个范围内随机分配)
max_clients=0
(最大并发连接数)
max_per_ip=0
(每个ip同时发起的最大连接数,主要是为了防止有人恶意连接)
匿名用户:
anonymous_enabe=YES
(支持匿名用户)
no_anon_password=YES
(默认是no,就是用匿名用户登录的时候省掉输入命令那一步)
anon_upload_enable=YES
(支持匿名用户上传,但是要注意文件系统给够用的权限)
anon_mkdie_write_enable=YES
(支持匿名用户建目录)
anon_world_readable_only
(默认yes,就是匿名用户只能下载全部读的文件)
anon_umask=0333
(指定匿名上传文件的umask,默认是077)
anon_other_write_enable=YES
(可以删除和修改上传文件)
Linux系统用户:
local_enable=YES
(是否允许系统用户登录)
write_enable=YES
(是否允许系统用户上传文件)
local_umask=022
(指定系统用户上传文件的默认权限)
guest_enable=YES
(所有的系统用户都映射成guest用户)
guest_username=ftp
(配合上面选项才生效,指定guest用户)
local_root=/ftproot
(guest用户登录所在的目录)
为了防止普通用户权限太大,可以把系统用户禁锢在家目录中
chroot_local_user=YES
(默认no,不禁锢,yes就是禁锢系统用户只能在家目录活动)
chroot_list_enable=YES
chroot_local_file=/etc/vsftpd/chroot_list
(这里说明一下就是禁锢某个文件里面的用户,这个文件的存放位置在/etc/vsftpd/chroot_list这里;有意思的是当chroot_local_user=YES时,则chroot_list中的用户不禁锢;当chroot_local_user=NO是,则chroot_list中的用户禁锢)
wu-ftp日志:默认是启用
xferlog_enable=YES
(默认开启 启用记录上传下载日志)
xferlog_std_format=YES
(默认开启,使用wu—ftp日志格式)
xferlog_file=/var/log/xferlog
(默认开启 并且这个文件夹自动生成)
vsftpd日志:默认不启用
dual_log_enable=YES
(使用vsftpd日志格式。默认不开启)
vsftpd_log_file=/var/log/vsftpd.log
(默认的文件夹存放位置,这个也是自动生成的)
登录提示信息
ftpd_banner="welcome to mage ftp server"
banner_file=/etc/vsftpd/ftpbanner.txt
(可以在配置文件里直接写登录提示信息,也可以把提示语写到文件里,而且文件里的优先级更高)
使用pam完成用户认证
pam_servicce_name=vsftpd
pam配置文件:/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
(默认文件中用户拒绝登录)
是否启用控制用户登录的列表文件
userlist_enable=YES
(默认有此设置)
userlist_deny=YES
(黑名单,不提示口令,NO为白名单)
userlist_file=/etc/vsftpd.user_list
(此为默认值)
vsftpd服务指定用户身份运行
nopriv_user=nobody
(默认值)
查看是否支持ssl
ldd‘which vsftpd‘
(能查看到libssl.so即为支持)
创建自签名证书
cd /etc/pki/tls/certs/
make vsftpd.pem
openssl x509 -in vsftpd.pem -noout -text
配置vsftpd服务支持ssl:
/etc/vsftpd/vsftpd.conf
ssl_enable=YES
(启用ssl)
allow+anon_ssl=no
(匿名用户不支持ssl)
force+local+logins_ssl=YES
(本地用户登录加密)
force_local_data_ssl=YES
(本地用户传输数据加密)
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem
(指定加密文件路径,当然这个并不是必须的,可以生成在其他目录下的也)
标签:传输协议 范围 ice 上传下载 默认值 switch 注意 文件路径 存放位置
原文地址:https://blog.51cto.com/14322562/2426557