搭建FTP服务
第一节 安装FTP文件传输服务
FTP服务安装包: vsftpd-3.0.2-9.el7.x86_64.rpm
[root@localhost Data]# rpm -ivh vsftpd-3.0.2-9.el7.x86_64.rpm
第二节 启动FTP服务
查看vsftpd状态 service vsftpd status
启动vsftpd service vsftpd start
停止vsftpd service vsftpd stop
重启vsftpd service vsftpd restart
第三节 匿名用户登录FTP
在安装vsftpd服务时,系统默认创建一个匿名用户(anonymous),其主目录为/var/ftp。
访问ftp服务器:
ftp://192.168.88.8
用户名:anonymous
密 码:任意字符
第四节 配置文件管理
[root@localhost ~]# rpm -ql vsftpd
/etc/pam.d/vsftpd 密钥库文件
/etc/vsftpd 存放主配置文件目录
/etc/vsftpd/ftpusers 存放被拒绝访问ftp的用户列表
/etc/vsftpd/user_list 允许访问FTP服务用户列表文件
/etc/vsftpd/vsftpd.conf 主配置文件
/var/ftp 匿名用户主目录
.
.
.
FTP配置文件解析
文件名 |
作用 |
ftpusers | 禁止使用vsftpd的用户列表文件 |
user_list | 禁止或允许使用vsftpd的用户列表文件。 1、禁止情况:---这个文件中指定的用户缺省情况 或 userlist_deny=YES时,user_list里的用户不能访问FTP服务器。 2、允许user_list里的用户访问FTP服务的情况:---在设置了userlist_deny=NO时,仅允许user_list中指定的用户访问FTP服务器。 |
vsftpd_conf_migrate.sh | vsftpd操作的一些变量和设置脚本 |
vsftpd.conf | FTP主配置文件 |
anonymous_enable=YES |
是否允许匿名登录FTP服务器,默认设置为YES允许 |
no_anon_password=YES | 允许匿名用户登录FTP服务不需要密码 |
anon_upload_enable=YES |
是否允许匿名用户上传文件,须将全局的write_enable=YES。默认为YES |
anon_mkdir_write_enable=YES | 是否允许匿名用户创建目录 |
local_enable=YE |
允许本地用户访问FTP服务器 |
write_enable=YES |
是否允许本地用户对FTP服务器文件具有写权限,默认设置为YES允许 |
local_umask=022 | 本地用户的文件掩码为缺省022,即本地用户的文件权限为755 (drwxr-xr-x) |
dirmessage_enable=YES |
此文件保存自定义的欢迎信息,由用户自己建立 |
xferlog_enable=YES |
是否让系统自动维护上传和下载的日志文件 默认情况该日志文件为/var/log/vsftpd.log,也可以通过下面的xferlog_file选项对其进行设定 |
/var/log/vsftpd.log | 设定系统维护记录FTP服务器上传和下载情况的日志文件 |
ftpd_banner=Welcome to blah FTP service. | 登录FTP服务器时显示的欢迎信息 |
connect_from_port_20=YES | 设定FTP服务器将启用FTP数据端口的连接请求 ftp-data数据传输端口为20,21为连接控制端口 |
chown_uploads=YES | 设定是否允许改变上传文件的属主,与下面一个设定项配合使用 注意,不推荐使用root用户上传文件 |
chown_username=whoever | 设置想要改变的上传文件的属主,如果需要,则输入一个系统用户名 可以把上传的文件都改成root属主。whoever:任何人 |
idle_session_timeout=300 |
设置数据传输中断间隔时间,此语句表示空闲的用户会话中断时间为300秒 即当数据传输结束后,用户连接FTP服务器的时间不应超过300秒。可以根据实际情况对该值进行修改 |
data_connection_timeout=120 |
设置数据连接超时时间为120秒,可根据实际情况对其个修改 |
ascii_upload_enable=YES ascii_download_enable=YES |
是否以ASCII方式传输数据。默认情况下,服务器会忽略ASCII方式的请求。 启用此选项将允许服务器以ASCII方式传输数据不过,这样可能会导致由"SIZE /big/file"方式引起的DoS攻击 |
deny_email_enable=YES |
黑名单设置。如果很讨厌某些email address,就可以使用此设定来取消他的登录权限 可以将某些特殊的email address抵挡住。 |
banned_email_file=/etc/vsftpd/banned_emails | 当上面的deny_email_enable=YES时,可以利用这个设定项来规定哪些邮件地址不可登录vsftpd服务器 # 此文件需用户自己创建,一行一个email address即可 |
chroot_list_file=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list |
用户登录FTP服务器后是否具有访问自己目录以外的其他文件的权限 # 设置为YES时,用户被锁定在自己的home目录中,vsftpd将在下面chroot_list_file选项值的位置寻找chroot_list文件 # 必须与下面的设置项配合 #chroot_list_enable=YES # 被列入此文件的用户,在登录后将不能切换到自己目录以外的其他目录 # 从而有利于FTP服务器的安全管理和隐私保护。此文件需自己建立 #chroot_list_file=/etc/vsftpd/chroot_list |
listen=YES | 是否允许监听。 如果设置为YES,则vsftpd将以独立模式运行,由vsftpd自己监听和处理IPv4端口的连接请求 |
ls_recurse_enable=YES | 是否允许递归查询。默认为关闭,以防止远程用户造成过量的I/O |
listen_ipv6=YES | 设定是否支持IPV6。如要同时监听IPv4和IPv6端口, 则必须运行两套vsftpd,采用两套配置文件 #同时确保其中有一个监听选项是被注释掉的 |
userlist_enable=YES | 允许user_list文件中的用户允许登录FTP服务器 userlist_enable=YES必须和userlist_deny=NO同时配合使用,才能允许用户登录到FTP服务器 # 而如果默认情况 或 同时设置了userlist_deny=YES,则user_list文件中的用户将不允许登录FTP服务器,甚至连输入密码提示信息都没有。 |
local_root= | 设置FTP服务主目录 |
第五节 配置FTP服务器高可用
根据公司部门职能分配,创建FTP服务。
要求:
1、创建一个公共文件夹,公司全体员工都可以访问公共文件夹。
2、根据部门安排,分别创建各个部门共享文件夹,只能同一部门的员工自己访问自己部门的共享文件夹,其他部门员工不能访问。
3、禁止匿名用户访问。
实施步骤:
1、创建共享目录
创建公共共享文件夹--Public
创建各部门共享文件夹--IT、Admin、Finance、Sale
[root@localhost Data]# mkdir Public IT Admin Finance Sale
2、修改目录权限
[root@localhost Data]#chmod 770 Public
[root@localhost Data]#chmod 770 Admin
[root@localhost Data]#chmod 770 Finance
[root@localhost Data]#chmod 770 IT
[root@localhost Data]#chmod 770 Sale
3、创建用户及用户组
it--ituser
admin--adminuser
finance--financeuser
sale--saleuser
[root@localhost Data]#groupadd public
[root@localhost Data]#groupadd it
[root@localhost Data]#groupadd admin
[root@localhost Data]#groupadd finance
[root@localhost Data]#groupadd sale
[root@localhost Data]#useradd -G public,it ituser
[root@localhost Data]#useradd -G public,admin adminuser
[root@localhost Data]#useradd -G public,finance financeuser
[root@localhost Data]#useradd -G public,sale saleuser
4、为用户创建密码
5、设置虚拟用户
[root@localhost ~]# vi /etc/passwd
进入用户配置文件,把每个用户的执行文件/bin/bash/修改为/sbin/nologin修改为如下:
[root@localhost ~]# vi /etc/group
删除创建用户时自动创建的组名
6、修改目录所有者及组
7、添加允许访问FTP服务的用户到user_list配置文件里
[root@localhost vsftpd]# vi user_list
8、修改主配置文件
anonymous_enable=NO # 禁止匿名帐号登录
local_root=/Data # 设置FTP主目录
userlist_deny=NO # 允许user_list里的用户登录FTP服务
userlist_enable=YES # 允许user_list里的用户登录FTP服务
其他设置保持默认即可。
9、启动vsftpd
10、访问FTP