安装配置vsftpd

续vsftp基础知识篇

8.安装配置vsftpd

(1)配置yum网络源;配置防护墙
[root@station69 ~]# cd /etc/yum.repos.d/
[root@station69 ~]# mkdir bak
[root@station69 ~]# mv *.repo bak
[root@station69 ~]# cd
[root@station69 ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://172.16.0.1/cobbler/ks_mirror/centos-6.5-x86_64/
enable=1
gpgcheck=1
gpgkey=http://172.16.0.1/cobbler/ks_mirror/centos-6.5-x86_64/RPM-GPG-KEY-CentOS-6
cost=1000
[fedora-epel]
name=Fedora EPEL
baseurl=http://172.16.0.1/fedora-epel/6/x86_64/
enable=1
gpgcheck=0
cost=2000
(2)安装vsftpd
[root@station69 ~]# yum -y install vsftpd
[root@station69 ~]# rpm -ql vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/rc.d/init.d/vsftpd
/etc/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
/usr/sbin/vsftpd
/var/ftp
/var/ftp/pub
有主程序和用户控制文件,即可
(3)启动vsftpd
[root@station69 ~]# service vsftpd start
Starting vsftpd for vsftpd:                                [  OK  ]
[root@station69 ~]# ps aux|grep vsftpd|grep -v "grep"
root      2705  0.0  0.0  52096   744 ?        Ss   22:48   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
vsftpd是由root用户启动,但却是以普通用户的身份运行的,因为小于1024的端口号只有root才有权打开
查看当前系统是否有ftp用户
[root@station69 ~]# grep ftp /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
ss -tnl|grep ":22"查看22号端口是否启动
(4)配置vsftpd
配置文件中已启用选项的语法要求:
已启用选项必须定格写,否则可能由于语法错误,导致vsftpd服务启动失败;
   等号"="两端不能有空格;
   在此配置文件中,注释符#后有空格,并且其后有字符的,大多是注释信息;
注释符#后无空格,并且其后有字符的,大多是可启用的选项;
创建测试用户hadoop
[root@station69 ~]# useradd hadoop
[root@station69 ~]# echo "123456"|passwd --stdin hadoop
Changing password for user hadoop.
passwd: all authentication tokens updated successfully.
通过windows命令行的ftp工具测试:

wKiom1NBXMijMYX3AACV5pkiWX0930.jpg

wKioL1NBXKCjORcOAACcQtUfhQs976.jpg

wKiom1NBXMmwF1CCAACMWmFP-LQ425.jpg

wKioL1NBXKHByiASAAEElCRL50g114.jpg

wKiom1NBXMnjCEm8AACXRcqpncE967.jpg

wKioL1NBXKGg75qyAAEmejERFKc932.jpg

用户登录以后,默认都会位于自己的家目录中,匿名登录时,将其映射为匿名用户的家目录
除非使用chroot,
# 是否启用匿名用户

anonymous_enable=YES

write_enable=YES

# 是否将用户禁锢在自己的家目录(推荐使用chroot)
chroot=/home/userdir
通过帮助信息查看vsftpd配置文件中的选项

man vsftpd.conf

是否将所有用户禁锢在自己的家目录中 (YES表示禁锢,默认是NO)
chroot_local_user={YES|NO}
是否启用chroot列表文件的功能,与chroot_list_file有关,此列表功能不启用,chroot_list_file就不会生效
chroot_list_enable= {YES|NO}
如果chroot_list_enable= YES,下面的项目才有意义,下面的项目与 chroot_local_user有关

chroot_list_file=/etc/vsftpd/chroot_list
若想禁锢操作对某些特定用户生效,可将这些用户写入 /etc/vsftpd/chroot_list文件,并且每行一个,然后重启服务即可生效

# 是否允许本地用户登录到系统
local_enable= {YES|NO}
[root@station69 ~]# lftp -u hadoop,123456 172.16.251.69
[root@station69 ~]# ll -d /var/ftp/
drwxr-xr-x 3 root root 4096 Apr  1 22:40 /var/ftp/

[root@station69 ~]# ll -d /var/ftp/pub/
drwxr-xr-x 2 root root 4096 Apr  2 00:01 /var/ftp/pub/
由此观之,匿名用户ftp对 /var/ftp/pub/是没有写权限的,若修改此目录的权限,vsftpd可能会无法启动,
不过我们可以修改 /var/ftp/pub/目录下子目录的权限


[root@station69 ~]# cd /var/ftp/
[root@station69 ftp]# mkdir incoming
[root@station69 ftp]# ll
total 8
drwxr-xr-x 2 root root 4096 Apr  2 00:13 incoming
drwxr-xr-x 2 root root 4096 Apr  2 00:01 pub
[root@station69 ftp]# setfacl -m u:ftp:rwx incoming/
[root@station69 ftp]# getfacl incoming/
# file: incoming/
# owner: root
# group: root
user::rwx
user:ftp:rwx
group::r-x
mask::rwx
other::r-x
共享文件系统的权限分两部分:文件系统的权限和服务的权限
默认情况下匿名用户是没有上传权限的,可使用下面的项目启用匿名用户的上传权限
anon_upload_enable=YES
注:有上传权限并不意味着有创建文件或目录的权限,下面有测试验证


wKiom1NBXeCwujHyAAFsmU0wY0M848.jpg
每次修改配置文件后,记得重新加载配置文件,使操作生效
启用匿名用户在ftp服务器上创建文件或目录的权限
anon_mkdir_write_enable=YES
此时,匿名虽然在指定目录下已有创建文件或目录的权限 ,但是,这并不意味该匿名用户已具备写入的权限,若想真正拥有写入的权限,还需启用 anon_other_write_enable 选项
权限测试:
wKiom1NBXifRO8WkAAEmkxh-Agg363.jpg


启用下面的选项后,匿名用户在远端ftp服务器上就会有写入的权限,而不仅仅是创建文件或目录的权限
anon_other_write_enable =YES  

至此,匿名用户在远端ftp服务器的指定位置,已具备完全下载,上传,创建文件或目录,删除的权限


权限测试:
wKioL1NBXrOznF6LAAH8Bm_h-mQ234.jpg

为了使注释更易理解,我在后面会将选项的作用尽可能说得通俗易懂
匿名用户的配置:
# 使匿名用户也可登录到系统
anonymous_enable=YES
# 使匿名用户(对远端ftp的特定目录)有上传权限
anon_upload_enable=YES
# 使匿名用户( 对远端ftp的特定目录) 拥有创建文件或目录的权限
anon_mkdir_write_enable=YES
# 使匿名用户 ( 对远端ftp的特定目录) 拥有写入权限
anon_other_write_enable=YES
注意:启用写入功能时,ftp用户对相应的本地文件系统也有相应的写入权限;
生效的权限取决于文件系统权限和服务权限的交集;

自定义FTP欢迎信息
(1)在默认欢迎信息( ftpd_banner )设置的基础上进行修改
(2)使用 banner_file设置欢迎信息,若两者同时出现,则 banner_file的设置会覆盖 ftpd_banner的设置
仅在默认的ftp欢迎信息上修改:ftpd_banner=Welcome to China_Town  FTP service.
测试看欢迎信息设置是否生效:
wKiom1NBX3eQ3VQ8AABZd0F-W5M651.jpg
两者同时设置,看哪个生效?


wKioL1NBX3LjeNXWAADKwLN57sk101.jpg

测试:

wKioL1NBYIHRxLHGAABcSVXMTlY816.jpg

如何设置进入目录时的欢迎信息?

# 表示启用此特性
dirmessage_enable=YES
# 在某ftp可访问的目录下创建.messages文件, 默认使用的是名称为.message文件,
也可使用 message_file指定要使用的文件名,如下:
message_file=Hello.message
wKioL1NBYNzhUUMGAAEOFRTiPGY171.jpg
使用windows下的ftp远程登录工具,才会有效果,在命令行可能没啥效果

vsftp控制登录用户的机制:
(1)  /etc/vsftpd/ftpusers中的用户都不允许使用ftp服务, 这是在/etc/pam.d/vsftpd中定义;
               注意:若以rpm包方式安装vsftpd,则 /etc/pam.d/vsftpd是事先存在的;
  若是编译安装的,此文件默认是没有的需手动创建
       (2)  user_list配置文件有两种用法:
黑名单:
userlist_enable=YES    #用户列表是否启用
userlist_deny=YES        #出现在此列表的用户都会被拒绝登录ftp
白名单
userlist_enable=YES     #用户列表是否启用
userlist_deny=NO         #出现在此列表的都会被允许登录ftp

连接限制:
max_clients: 最大并发连接数
max_per_ip: 每IP可同时发起并发请求

传输速率:
anon_max_rate: 匿名用户总的最大传输速率,单位是“字节/秒”;
local_max_rate: 本地用户……………………

上传文件的umask:
anno_umask: 匿名用户上传文件的umask; 默认是077
local_umask: 匿名用户上传文件的umask; 默认是077

修改匿名用户上传文件的属主和属组:
chown_uploads=YES
chown_username=someuser

虚拟用户:
所有的虚拟用户会映射会一个系统用户,访问时的文件目录是为此系统用户的家目录;

虚拟用户:
hash编码的文件:
              奇数行为用户名,偶数行为密码
               关系型数据库:
pam-mysql实现认证


注:由于内容实在太多,为了不得不分篇显示






你可能感兴趣的:(vsftpd,安装vsftp服务器)