一、vsftpd软件介绍
vsftp,全称:Very security ftp。是Linux系统下最常见,常用的 FTP 服务器架设软件。除此之外,还有一个proftp(Profession ftp)。
二、访问方式
vsftp架设的FTP文件服务器,提供3种远程的登录方式:
1.匿名登录方式
不用解释了,就是不需要用户名,密码。就能登录到服务器电脑里面
2.本地用户方式
意思是,需要帐户名和密码才能登录。而且,这个帐户名和密码,都是在你linux系统里面,已经有的用户。
3. 虚拟用户方式
同样需要用户名和密码才能登录。但是和上面的区别就是,这个用户名和密码,在你linux系统中是没有的(没有该用户帐号)
三、vsftpd 的安装
1. 对于Debian和Ubuntu系统,可以直接通过: sudo apt-get install vsftpd 来安装
启用,停用和重新启动是: /etc/init.d/vsftpd start(stop 和 restart)
2. 对于Redhat, Fedoar和Centos一般这3类系统,都自带vsftpd,可以通过: rpm -qa|grep vsftp,来查询下是否已经安装了。如果没装,可以从光盘里面找到安装包双击安装,或者也可以: yum install vsftpd 来安装。(我是安装的CentOS 5.4 我用的命令就是yum install vsftpd)
注:启用、停用、重启vsftdp
service vsftpd {start|stop|restart}或/etc/init.d/vsftpd {start|stop|restart}
四、配置前的注意事项
1.查看,修改vsftp启动状态
查看vsftpd状态:service vsftpd status
查看vsftpd启动状态:chkconfig --list vsftpd
设置vsftpd 2345为启动状态:chkconfig --level 2345 vsftpd on
2.查看,修改防火墙状态
查看防火墙状态:/etc/init.d/iptables status
添加开放21号端口:/sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT
保存配置:/etc/rc.d/init.d/iptables save
重启防火墙(启用,停用):service iptables {start|stop|restart}
3.查看,关闭selinux (查看selinux运行情况 #/usr/sbin/sestatus)
查看selinux状态/usr/sbin/sestatus或sestatus
修改selinux状态vi /etc/sysconfig/selinux
修改SELINUX=disabled
保存退出并重启系统reboot
这样子vsftp也就安装好了,剩下的就是进行用户模式的配置了
五、vsftpd 三种模式的配置方法
vsftpd的配置由文件/etc/vsftpd/vsftpd.conf,每种配置都要先修改配置文件,为了使配置文件的原始性,要先把配置文件拷贝并保存一份。
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.init
然后,开始我们的配置,在每次配置以前,记得把原始文件覆盖到配置文件,以免出现不可知的意外错误。
cp /etc/vsftpd/vsftpd.conf.init /etc/vsftpd/vsftpd.conf
1. 匿名登录方式
修改配置文件 vi /etc/vsftpd/vsftpd.conf (由于JOY不懂使用VI命令,所以是把文件下载到本机上,用UltraEdit进行修改。强烈推荐)
要修改的内容如下(红色字体为解释,不要写入配置文件)
Anon_upload_enable=yes (开放上传权限)
Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)
Write_enable=yes (开放本地用户写的权限)
Anon_other_write_enable=yes (匿名帐号可以有删除的权限)
anon_world_readable_only=no(匿名帐号可以用下载的权限)
配置文件中没有的就添加,没有的就对值进行修改.
修改文件夹权限
cd /var/ftp
chmod 757 pub
注:
修改文件夹权限的命令:chmod 777 pub
777的意思就是 root root组 other 的权限,7=4+2+1=r+w+x=读+写+执行
查看文件夹权限的命令
ls -l ftp
chmod 757 pub
查看的时候查看当前文件夹只可以查看到下面的文件夹权限,如果要查看PUB的文件夹权限,要到FTP的上一个目录查看FTP的权限就可以显示PUB的文件夹权限,以此类推4-r 2-w 1-x | drwxr-xr-x = 756 | drwxr-xrwx = 757
重启vsftpd:service vsftpd restart
2. Linux本地用户,远程登录FTP(简称:本地用户模式)
修改配置文件
vi /etc/vsftpd/vsftpd.conf
要修改的内容如下(红色字体为解释,不要写入配置文件)
listen=yes(设置为独立服务器)
local_enable=YES(允许本地用户登录FTP)
write_enable=yes(启用本地用户(登录后)的读写权限)
local_umask=022(FTP上本地的文件权限,默认是077)
dirmessage_enable=yes(切换目录时,显示目录下.message的内容)
connect_from_port_20=yes(启用FTP数据端口的数据连接)
chroot_local_user=NO(本地所有帐户都只能在自家目录)
chroot_list_enable=yes(文件中的名单可以调用)
chroot_list_file=/etc/vsftpd.chroot_list(上述文件所在的位置(绝对路径))
ls_recurse_enable=no(禁止用户使用 ls 命令)
userlist_enable=yes(启用 用户列表文件)
userlist_file=/etc/vsftpd.user_list(用户列表文件的绝对路径)
userlist_deny=no(用户列表名单中的人不允许访问)
pam_service_name=vsftpd(验证方式)
user_config_dir=/etc/vsftpd/vsftpd_user_conf(个人配置文件的路径(文件所在目录))
添加用户,设置密码
useradd username
passwd password
添加用户到ftp用户组
debian或Ubuntu:
user -G username ftp
Redat,Fedoar或Centos:
usermod -G ftp username
创建该用户的(FTP访问)文件夹,并修改所有者权限(如果所有者不是该用户)
创建文件夹命令:
mkdir 具体文件夹路径和名称
修改所有者:
chown -R 用户文件夹
注:
这个步骤可以不做,因为linux下创建了用户,系统会自动在 /home下,创建个文件夹,名字就是这个用户的,vsftpd会默认的认为,该用户的路径就是这个文件夹。其实为了方便,我倒是建议大家直接用默认的。这样可以省去很多因为权限导致的怪问题。
建立用户配置文档
在/etc/vsftpd 下面建立 vsftpd_user_conf 文件夹
mkdir /etc/vsftpd/vsftpd_user_conf
下面再新建个文件,名字是你本地用户的名字
vi /etc/vsftpd/vsftpd_user_conf/username
里面内容是:
write_enable=yes(给予该本地用户读写权限)
建立用户访问列表
在/etc 文件夹下,新建vsftpd.chroot_list 文件
vi /etc/vsftpd.chroot_list
内容为允许访问FTP的本地用户的名字
username
在 /etc 文件夹下,新建vsftpd.user_list 文件
vi /etc/vsftpd.user_list
内容为允许访问FTP的本地用户的名字
username
重启vsftpd service vsftpd restart
至此,FTP文件服务器就完成了