介绍
本章主要介绍在Linux中搭建FTP服务器的过程,需要掌握的要点是配置文件的合理配置。
知识点
在linux中使用的FTP是vsftp
FTP可以有三种登入方式分别是:
- 匿名登录方式:不需要用户密码
- 本地用户登入:使用本地用户和密码登入
- 虚拟用户方式:也是使用用户和密码登入,但是该用户不是linux中创建的用户
一、查看是否已经安装ftp
显示如下内容证明已经安装ftp,否则没有安装。
使用yum安装:
yum install -y vsftpd
二、配置ftp
ftp的默认安装路径为:/etc/vsftpd,主要的配置文件为:vsftpd.conf
#是否允许匿名用户访问
anonymous_enable=NO
#是否允许本地用户的账号访问
local_enable=YES
#是否允许ftp用户写入
write_enable=YES
#本地用户上传文件的umask
local_umask=022
#为YES则进入目录时显示此目录下由message_file选项指定的文本文件(,默认为.message)的内容
dirmessage_enable=YES
#是否开启日志
xferlog_enable=YES
#通过20端口传输数据
connect_from_port_20=YES
#日志是否标准格式
xferlog_std_format=YES
listen=YES
#是否允许匿名用户通过vsftpd服务器上传文件
anon_upload_enable=NO
pam_service_name=vsftpd
tcp_wrappers=YES
ftpd_banner=welcome to ftp service :设置连接服务器后的欢迎信息
idle_session_timeout=60 :限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)
data_connection_timeout=120 :设置客户机在进行数据传输时,设置空闲的数据中断时间
accept_timeout=60 设置在多长时间后自动建立连接
connect_timeout=60 设置数据连接的最大激活时间,多长时间断开,为别人所使用;
max_clients=200 指明服务器总的客户并发连接数为200
max_per_ip=3 指明每个客户机的最大连接数为3
local_max_rate=50000(50kbytes/sec) 本地用户最大传输速率限制
anon_max_rate=30000匿名用户的最大传输速率限制
pasv_min_port=端口
pasv-max-prot=端口号 定义最大与最小端口,为0表示任意端口;为客户端连接指明端口;
listen_address=IP地址 设置ftp服务来监听的地址,客户端可以用哪个地址来连接;
listen_port=端口号 设置FTP工作的端口号,默认的为21
local_root=path 无论哪个用户都能登录的用户,定义登录帐号的主目录, 若没有指定,则每一个用户则进入到个人用户主目录;
#是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user;
chroot_local_user=yes/no
#这个参数与上面的参数搭配使用
chroot_list_enable=yes/no 启用不锁定用户在主目录的名单
chroot_list_file=/etc/vsftpd/chroot_list指定列表文件
userlist_enable=YES/NO 是否加载用户列表文件;
userlist_deny=YES 表示上面所加载的用户允许登录;
userlist_file=/etc/vsftpd/user_list 指定列表文件
关于chroot_local_user和chroot_list_enable这两个参数的使用规则如下:
chroot_local_user=YES | chroot_local_user=NO | |
chroot_list_enable=YES | 1.所有用户都被限制在其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制 | 1.所有用户都不被限制其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制 |
chroot_list_enable=NO | 1.所有用户都被限制在其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 | 1.所有用户都不被限制其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 |
还有存放用户列表的文件说明一下,分别是ftpusers、user_list和chroot_list。
这三个文件的作用是:
ftpusers:ftpusers不受任何配制项的影响,它总是有效,它是一个黑名单!
该文件存放的是一个禁止访问FTP的用户列表,通常为了安全考虑,管理员不希望一些拥有过大权限的帐号(比如root)登入FTP,以免通过该帐号从FTP上传或下载一些危险位置上的文件从而对系统造成损坏。
user_list:user_list则是和vsftpd.conf中的userlist_enable和userlist_deny两个配置项紧密相关的,它可以有效,也可以无效,有效时它可以是一个黑名单,也可以是一个白名单!
chroot_list:主要是用来控制用户是否只能访问主目录。与chroot_local_user和chroot_list_enable这两个参数有关。
三、创建用户
useradd xxx passwd xxx 并添加到user_list和chroot_list中去
四、关闭防火墙
service stop iptables;
五、启动ftp服务
service vsftpd start
六、ftp的根目录权限
chmod -R 777 local_root
七、检查SElinux状态并关闭
到这里搭建成功。