在这里,我们将给大家分享关于CentOS6.5下vsftpd加SSL加密服务器配置的知识,让您更了解vsftpdssl的本质,同时也会涉及到如何更有效地centos5yum安装与配置vsFTPdFTP
在这里,我们将给大家分享关于CentOS6.5下vsftpd加SSL加密服务器配置的知识,让您更了解vsftpd ssl的本质,同时也会涉及到如何更有效地centos 5 yum安装与配置vsFTPd FTP服务器详细步骤、CentOS 5.5之vsftpd服务器配置、Centos 6.3安装配置vsFTPd环境的FTP服务器、centos 6.3搭建 vsftpd服务器的内容。
本文目录一览:- CentOS6.5下vsftpd加SSL加密服务器配置(vsftpd ssl)
- centos 5 yum安装与配置vsFTPd FTP服务器详细步骤
- CentOS 5.5之vsftpd服务器配置
- Centos 6.3安装配置vsFTPd环境的FTP服务器
- centos 6.3搭建 vsftpd服务器
CentOS6.5下vsftpd加SSL加密服务器配置(vsftpd ssl)
一、实现功能:
-
-
域用户认证
-
SSL加密
-
虚拟域用户隔离认证
-
实现公共目录功能
-
实现多用户同目录功能
-
二、实施步骤:
1、系统基础设置
计算机名、IP地址、网关、子网掩码、DNS设置
2、安装所需要的软件
Useradd vsftpd –s
/sbin/nologin
4、建立vsftpd虚拟宿主用户
Useradd virtusers –s
/sbin/nologin
5、VSFTPD相关配置
1)编辑vsftpd.conf配置文件
mkdir
/etc/vsftpd/vconf/
3)建立FTP用户文件存放位置
SELINUX=disabled
#effective after restart
7、配置SSL加密进入/etc/vsftpd/目录下输入以下命令生成证书
req -x509 -nodes -days 365 -newkey rsa:1024 -subj
"/C=CN/ST=GD/L=SZ/O=lidongni/CN=lidongni"
-keyout
/etc/vsftpd/vsftpd1
.pem -out
/etc/vsftpd/vsftpd1
.pem
8、防火墙开启VSFTPD功能
在/etc/sysconfig/iptables里面添加以下内容,并重启iptables服务。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A OUTPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
centos 5 yum安装与配置vsFTPd FTP服务器详细步骤
什么是vsftpd
vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。
vsftpd 的名字代表”very secure FTP daemon”,安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。
安装vsftpd
1、以管理员(root)身份执行以下命令
yum install vsftpd
2、设置开机启动vsftpd ftp服务
chkconfig vsftpd on
3、启动vsftpd服务
service vsftpd start
管理vsftpd相关命令:
停止vsftpd: service vsftpd stop
重启vsftpd: service vsftpd restart
配置防火墙
打开/etc/sysconfig/iptables文件
vi /etc/sysconfig/iptables
在REJECT行之前添加如下代码
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
保存和关闭文件,重启防火墙
service iptables start
配置vsftpd服务器
默认的配置文件是/etc/vsftpd/vsftpd.conf,你可以用文本编辑器打开。
vi /etc/vsftpd/vsftpd.conf
添加ftp用户
下面是添加ftpuser用户,设置根目录为/home/wwwroot/ftpuser,禁止此用户登录SSH的权限,并限制其访问其它目录。
1、修改/etc/vsftpd/vsftpd.conf
将底下三行#chroot_list_enable=YES# (default follows)#chroot_list_file=/etc/vsftpd.chroot_list改为chroot_list_enable=YES# (default follows)chroot_list_file=/etc/vsftpd/chroot_list3、增加用户ftpuser,指向目录/home/wwwroot/ftpuser,禁止登录SSH权限。useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser4、设置用户口令 passwd ftpuser5、编辑文件chroot_list: vi /etc/vsftpd/chroot_list内容为ftp用户名,每个用户占一行,如:peterjohn6、重新启动vsftpdservice vsftpd restart
另外,如果觉得以后管理ftp用户名嫌麻烦,可以使用centos官方发布的脚本管理。地址如下:
http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users
出现的错误
1、500 OOPS: cannot change directory
解决方法:https://www.jb51.net/os/RedHat/40744.html
CentOS 5.5之vsftpd服务器配置
vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。在搭建vsftpd服务器之前,首先了解一下FTP的工作原理。
FTP的传输使用的可靠的TCP协议,使用了两个连接,分别是命令通道和数据流通道。一般来说,FTP服务占用两个端口:20和21端口。其中21端口用来建立命令通道,20端口用来建立数据通道。FTP分为两种模式建立连接,分别为主动模式和被动模式。
主动模式:通过客户端使用一个大于1024的随机端口向服务器的21端口发起请求,通过三次握手建立命令通道。如果此时有进行文件的上传或下载,服务器会使用20端口向客户端的另一个大于1024的端口发起请求,经过三次握手后建立数据通道。
被动模式:建立命令通道的方式和主动模式一样,都是在21端口上建立。当有数据传输的指令时,客户端会在命令通道内向服务器发起请求;此时服务器会启用一个端口来监听,但不是20端口,而是一个大于1024的随机端口。这样一来服务器和客户端两端的数据通道会建立在大于1024的端口之间。
接下来就开始VSFTPD服务器的搭建配置(环境:CentOS 5.5)
1、查询系统是否安装了vsftpd服务器,同时开启vsftpd服务。
vsftpd相关配置文件介绍:
/etc/vsftpd/vsftpd.conf #vsftpd的主配置文件
/etc/pam.d/vsftpd #这是使用PAM相关模块时用到的文件,用作身份验证之用。
/etc/vsftpd.ftpusers #这个文件相当于一个黑名单,包含了无法登陆FTP的用户。
/etc/vsftpd.ftpuser_list #这个文件既可以作黑名单也可作为白名单,主要看如何设置策略。
/etc/vsftpd.chroot_list #这个文件默认不存在,需要手动建立,用途是将一些用户的根目录锁定在默认目录下,无法进入服务器其他目录。
/etc/sbin/vsftpd #vsftpd的启动文件。
/var/FTP #vsftpd的默认匿名用户登陆的根目录。
vsftpd.conf文件设置值的说明:
anonymous_enable=YES #允许匿名用户登陆
local_enable=YES #允许本地用户登陆
write_enable=YES #允许用户上传
local_umask=022 #默认情况下上传的文件夹权限为777,文件的权限为666,022这个值的意思就是在默认权限的基础上减去022,即把文件可写的权限给去除掉,这样别人就只能读取文件,而不能修改文件
anno_upload_enable=YES #允许匿名用户上传,默认被注释掉
anno_mkdir_write_enable=YES #允许匿名用户创建文件夹,默认被注释掉
dirmessage_enable=YES #当用户进入某个目录时,会显示该目录需要注意的内容,默认文件为.message
xferlog_enable=YES #开启客户端上传和下载的日志记录
connect_from_port_20=YES #FTP数据通道端口号
xferlog_std_enable=YES #日志采用标准格式
pam_service_name=vsftpd #用户的认证文件为vsftpd
userlist_enable=YES #可以用于检测userlist_file文件中的用户是否可以访问服务器
listen=YES #工作在独立模式下
tcp_wrappers=YES #linux自带的安全保护程序
vsftpd的登陆方式(三种)
1、匿名用户登陆
使用默认用户名anonymous或ftp,如CentOS 5.5之vsftpd服务器配置(上)一节所示,登陆后的根目录为/var/ftp。
2、本地用户登陆
使用系统账号和口令登陆ftp服务器,登陆后的根目录为用户的宿主目录,并且可以转换到其他系统目录。首先创建一个名为centos的系统账号。
useraddcentos
passwdcentos
在windows客户端用centos账户登陆FTP服务器,登陆后的根目录就是centos的宿主目录,而且可以改变路径前往其他目录。如图centos前往到了/home/centos目录以外的/etc/vsftpd目录下。而且在它自己的根目录下,拥有可读可写可执行的权限,也就是说在/home/centos目录下可以自由上传和下载。
由于本地用户存在一定的方式安全隐患,所以又有了另外一种登录方式,即虚拟用户代替本地用户登录。虚拟用户账户和本地账户没有任何关联,而是保存在一个加密的文件中。下面来看一下虚拟用户的创建和登录过程。
1)建立虚拟用户口令库文件
在任意目录下创建一个文本文件vuser_list.txt (这里在/etc/vsftpd目录下)
[root@300second ~]# cd /etc/vsftpd
[root@300second vsftpd]# vi vuser_list.txt
2)生成vsftpd的认证文件到/etc/vsftpd目录下
[root@300second ~]# db_load -T -t hash -f vuser_list.txt /etc/vsftpd/vuser_list.db
系统不能识别db_load命令,说明没有安装db4软件,那么用yum安装下
这时再重新执行指令:db_load -T -t hash -f vuser_list.txt /etc/vsftpd/vuser_list.db ,就没有报错
[root@300second ~]#chmod 600 /etc/vsftpd/vuser_list.db # 设置认证文件只对用户可读可写
3)建立虚拟用户所需的PAM配置文件
在/etc/pam.d/目录下,有一个名为vsftpd的文件,这是使用PAM相关模块时用到的文件,主要用作本地用户身份验证之用。因为这时要用的是虚拟用户,所以不能用这个文件了,可以在这个目录下新创建一个文件vsftpd.vuser,输入以下内容:[root@300second pam.d]# vi /etc/pam.d/vsftpd.vuser
建一个本地用户(vuser),但不要创建密码,那么创建的虚拟用户根目录都可以映射到这个本地用户的根目录下。
接下来修改vsftpd.conf文件,如下:
guest_enable=YES #允许虚拟用户访问
guest_username=vuser #虚拟用户所映射的本地用户名
pam_service_name=vsftpd.vuser #将原有的vsftpd认证文件改为新创建的vsftpd.vuser
[root@300second ~]# service vsftpd restart #重启vsftpd服务
这时就可以用之前创建的vuser1和vuser2登陆了,但是不能再用本地用户登陆。
不过这时的虚拟用户权限很低,只有最基本的访问权限。所以还需要在主配置文件里修改不同虚拟用户的权限。在没有指定虚拟账号根目录的情况下,vuser1和vuser2的根目录都在/home/vuser目录下。
[root@300second home]# cd /etc/vsftpd/
[root@300second vsftpd]# mkdir /etc/vsftpd_vuser #创建一个用于包含虚拟用户权限的目录
[root@300second vsftpd]# vi vsftpd.conf #进入vsftpd.conf,增加一行,指向刚才创建的目录
对于虚拟用户来说,有下面4个权限可以设置。如果包含了后三个权限的话,就代表这个虚拟用户拥有了所有的权限。
anon_world_readable_only=NO #用户的只读权限
anon_upload_enable=YES #允许上传
anon_mkdir_write_enable=YES #允许创建和删除目录的权限
anon_other_write_enable=YES #允许其他可写权限(如改名和删除)
进入/etc/vsftpd/vsftpd_vuser目录,创建两个文件vuser1和vuser2
[root@300second vsftpd]# cd vsftpd_vuser
[root@300second vsftpd_vuser]# vi vuser1
[root@300second vsftpd_vuser]# vi vuser2
[root@300second ~]# service vsftpd restart #重启vsftpd服务
这时对于vuser1来说,可以进行上传、下载、创建、删除等各种操作。
而对于vuser2来说,几乎没有任何权限,什么都做不了。
Centos 6.3安装配置vsFTPd环境的FTP服务器
2012.10.11更新,增加 vsftpd 配置文件说明。
2013.07.03更新,对文中一些字符被代码插件转义的错误。
我的电脑系统是win7 64bit,用virtualbox安装了一个最小化版的centos 6.3 64位的系统。最近特意想搭建一个FTP的服务器,所以,就有了如下的过程。备忘,方便你我他。
注:文章最后会附上 vsftpd 服务器配置文件的选项说明。
关于vsftpd介绍如下:
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。
OK !现在进入安装配置。
1、安装vsftp
因为,我采用的yum命令安装,不是源码包安装。所以,安装和配置都非常的方便。
在这里,我要架设的是虚拟用户。所谓虚拟用户就是没有使用真实的账户,只是通过某种技术手段达到映射账户和设置权限的目的。
执行如下代码进行安装vsftpd:
yum -y install vsftpd
如果,你不确定自己的系统是否已经安装vsftpd,请用以下命令检测:
rpm -qa | grep vsftpd
如果输出类似以下内容:
vsftpd-2.2.2-11.el6.x86_64
说明你当前的系统已经安装了。这是基于yum命令进行安装的检测方法,使用源码包编译安装的检测方法不知道是不是这样,如果你知道,请留言告诉我。谢谢。
如果,什么都没有输出,说明你的系统没有安装。
因为,接下来配置 vsftpd 的需要,所以,要事先创建一个文件,命令如下:
touch /var/log/vsftpd.log
2、启动/重启/停止 vsftpd 服务器
刚才我们安装了vsftpd 服务器,但是,这个时候,还没有启动 vsftpd 服务。以下命令启动:
service vsftpd start
会出现一行启动成功的提示信息:
Starting vsftpd for vsftpd: [ OK ]
如果,你与我一样是安装的中文语言的Centos,那么提示信息将是中文的。如果,提示信息里面没有OK出现,也没有“确定”这样的字眼出现,说明启动失败了。反正,按照我的方式,不会出现失败。
vsftpd 的 重启命令:
service vsftpd restart
vsftpd 的 停止命令:
service vsftpd stop
如果,你希望下次系统启动的时候,自动启动 vsftpd 服务器,执行以下命令:
chkconfig vsftpd on
3、与 vsftpd 服务器有关的文件和文件夹
vsftpd服务器的配置文件的是: /etc/vsftpd/vsftpd.conf
vsftpd服务器的根目录,即FTP服务器的主目录:/var/ftp/pub
4、添加FTP本地用户(即虚拟用户,简单方案)
FTP大家可能都用过,通过给定的HOST、账号、密码就可以访问服务器对应的目录空间了。但是,这个FTP账号只能访问FTP服务,不能登录服务器系统,只能访问自己的目录。这样的用户就叫虚拟用户,本质上这不叫虚拟用户,仅仅只是不能通过终端等一系列途径登录服务器系统而已。
创建一个FTP用户的命令如下:
adduser -d /opt/ftp_dir/ftp001 -g ftp -s /sbin/nologin ftp001
此命令的含义:
使用shell命令adduser添加一个ftp001的系统账户,但是,不能登录系统(-s /sbin/nologin),该账户的主目录在(-d /opt/ftp_dir/ftp001),属于ftp这个用户组(-g ftp)。
我们创建了一个FTP账户,现在来设置账户的密码,命令如下:
passwd ftp001
接着会要求你输入两次密码确认。为了避免出现不要求的错误,请尽量保证自己的密码长度大于6个字符,且是字母与数字的混合的字符串。如我的密码是:ftp123456。
5、vsftpd 配置文件的调整
anonymous_enable=NO 设定不允许匿名访问
local_enable=YES
设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问。
chroot_list_enable=YES 使用户不能离开主目录
xferlog_file=/var/log/vsftpd.log
设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来。我们已经一开始就已经创建了。
ascii_upload_enable=YES
ascii_download_enable=YES 设定支持ASCII模式的上传和下载功能。
pam_service_name=vsftpd PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
chroot_list_file 将这个配置前面的#号去掉。
以下这些是关于Vsftpd虚拟用户支持的重要CentOS FTP服务配置项目。
默认vsftpd.conf中不包含这些设定项目,需要自己手动添加CentOS FTP服务配置。
guest_enable=YES 设定启用虚拟用户功能。
guest_username=ftp 指定虚拟用户的宿主用户。-CentOS中已经有内置的ftp用户了
user_config_dir=/etc/vsftpd/vuser_conf
设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)
这个目录可以这样理解,针对每一个FTP账号,我们可以在此目录下创建一个与账号同名的文件(必须同名,这是规定)。然后,在里面配置一些特殊的信息。比如:这个账号是否能上传文件,是否能下载文件,所能访问的目录空间是什么等。
6、创建chroot list,将FTP用户加入其中:
我们有了FTP账号,但是,这个时候 vsftpd 服务器并不知道。所以,我们要告诉它。
执行如下命令:
touch /etc/vsftpd/chroot_list
echo ftp001 >> /etc/vsftpd/chroot_list
如果,你有多个FTP账户,那么请将这些账户以每行一个的方式配置在此文件中即可。
7、账户认证:
首先,我们要安装Berkeley DB工具,很多人找在接下来执行db_load命令的时候,会发生找到不此命令的错误就是因为没有安装这个包。
首先查看系统中是否已经安装,命令如下:
rpm -qa|grep db4
安装即会输出类似以下的信息:
db4-4.7.25-17.el6.x86_64
db4-utils-4.7.25-17.el6.x86_64
反之,则没有安装。执行以下命令进行安装:
yum -y install db4 db4-utils
安装完毕。然后我们创建用户密码文本,命令如下:
vi /etc/vsftpd/vuser_passwd.txt
将我们的FTP账号密码配置进去。注意奇行是用户名,偶行是密码。如:
ftp001
ftp123456
接着,生成虚拟用户认证的db文件,执行如下命令:
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
随后,编辑 vsftpd 认证文件:/etc/pam.d/vsftpd.
将此文件中所有代码注释掉,注释请用#号。然后,在文件最后增加如下两句:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
以上两句是32位系统的添加内容,64位的系统是如下:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
8、最后配置每个FTP用户的配置文件
因为,我们要将所有与用户FTP配置文件放到如下目录下,所以,我们要创建它:
mkdir /etc/vsftpd/vuser_conf/
然后,在此目录中为每个FTP用户创建一个配置文件,以我们创建和ftp001账户为例:
vi /etc/vsftpd/vuser_conf/ftp001
在文件中配置如下内容:
local_root=/opt/ftp_dir/ftp001
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
local_root是告诉FTP账户只能访问此目录。
以上配置完成之后,记得关闭系统防火墙。
————————-以下是常见错误与解决方案—————–
安装完以后,可能发现连接ftp服务器,一般是由于SELinux的问题,原因如下:
CentOS系统是Rad Hat派系的,把vsftpd安装配置OK之后,但客户端访问提示如下错误:
500 OOPS: cannot change directory:/opt/ftp_dir/ftp001
原因是CentOS系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。
查看SELinux设置,命令如下:
getsebool -a|grep ftp
Centos6系列以前的版本在输出的结果中会有如下信息:
ftpd_disable_trans --> off
ftp_home_dir-->off
Centos 6系列是没有ftpd_disable_trans的。
通过查看得到,ftp是关掉了。
使用setsebool命令开启,Centos 6不需要执行第一句shell命令:
setsebool ftpd_disable_trans 1 setsebool ftp_home_dir 1
由于操作系统一旦重启后,这种设置需要重新设置,这里使用-P参数实现.
setsebool使用-P参数,无需每次开机都输入这个命令,Centos 6版本不需要执行第一句shell命令:
setsebool -P ftpd_disable_trans 1 setsebool -P ftp_home_dir 1
查看当前状态是否是on的状态,命令如下:
getsebool -a|grep ftp
结果如下:
ftpd_disable_trans –> on
ftp_home_dir–>on
这时候重启 vsftpd 服务器,命令如下:
service vsftpd restart
1.553 Could not create file
一般都是SELinux的问题,设置SELinux的一个值,重启服务器即可。
setsebool -P ftpd_disable_trans 1
service vsftpd restart
还有可能是所设置的目录,FTP账户没有权限访问。我在亲测的过程中就遇到过这样的问题。
2.500 OOPS: bad bool value in config file for: write_enable
注意你的CentOS FTP服务文件中保证每一行最后没有任何空格,一般出错就是在多余的空格上。
打开/etc/selinux/config
将selinux=enforcing 改成permissive 或disabled。
•enforcing强制模式,只要SELinux不允许,就无法执行;
•permissive警告模式,将该事件记录,依然允许执行;
•disabled关闭SELinux;
•停用、启用需要重启计算机;
•使用setenforce切换enforcing与permissive模式不需要重启计算机;
•getenforce及sestatus查看执行模式;
——————————————– vsFTPd 配置选项说明 ——————————————-
在默认的配置文件中,并不会列出所有的配置项。所以,接下来可能会碰到一些在默认配置文件中没出现的配置选项,你可以根据需要自行配置使用。
anonymous_enable=NO
#设定本地用户是否可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问。
local_enable=YES
#设定可以进行写操作。
write_enable=YES
#设定上传后文件的权限掩码,默认值是077。
local_umask=022
#匿名用户是否可以上传:YES可以 NO不可以。
anon_upload_enable=NO
#匿名用户是否可以建目录:YES可以 NO不可以。
anon_mkdir_write_enable=NO
#匿名用户其它的写权利(更改权限?)
anon_other_write_enable=NO
#匿名登入者是否允许下载可阅读的档案:YES允许、NO拒绝。
anon_world_readable_only=YES
#所有非匿名登陆的用户名是否被切换成guest_username指定的用户名。
guest_enable=NO
#所有匿名上传的文件的所属用户将会被更改成chown_username
chown_uploads=YES
#匿名上传文件所属用户名
chown_username=lightwiter
#如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录,一般情况下,我们都不会允许用户更改根目录。
chroot_list_enable=YES
#允许使用"async ABOR"命令,一般不用,容易出问题,最好设置为NO。
async_abor_enable=YES
#是否可用ASCII 模式上传。默认值为NO,即不允许。
ascii_upload_enable=YES
#是否可用ASCII 模式下载。默认值为NO,即不允许。
ascii_download_enable=YES
#定义匿名登入的使用者名称。默认值为ftp。
ftp_username=ftp
#本地用户主目录,当前用户必须具有此目录的操作权限,否则会连接FTP会提示没有权限操作。
local_root=(none)
#空闲连接超时,单位(秒)。
idle_session_timeout=600
#数据传输超时,单位(秒)。即传输超过2分钟即超时断开。如果是上传大文件,请将此值设置得更大一些即可。如:3600秒。
data_connection_timeout=120
#PAVS请求超时。
accept_timeout=60
#PROT模式连接超时。
connect_timeout=60
#开启日记功能。
xferlog_enable=YES
#使用标准格式。
xferlog_std_format=YES
#当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用。
log_ftp_protocol=NO
#允许使用pasv模式。
pasv_enable=YES
#关闭安全检查。
pasv_promiscuous=NO
#允许使用port模式。
port_enable=YES
#开启tcp_wrappers支持。
tcp_wrappers=YES
#定义PAM 所使用的名称,预设为vsftpd。
pam_service_name=vsftpd
#当服务器运行于最底层时使用的用户名。
nopriv_user=nobody
#是否能使用ls -R命令以防止浪费大量的服务器资源。
ls_recurse_enable=YES
#是否使用单进程模式。
one_process_model=NO
#绑定到listen_port指定的端口,既然都绑定了也就是每时都开着的,就是那个什么standalone模式。
listen=YES
#当使用者登入后使用ls -al 之类的指令查询该档案的管理权时,预设会出现拥有者的UID,而不是该档案拥有者的名称。若是希望出现拥有者的名称,则将此功能开启。
text_userdb_names=NO
#显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果
use_localtime=NO
#测试平台优化
#use_sendfile=YES
#login时显示欢迎信息.如果设置了banner_file则此设置无效。不知道怎么回事,我设置中文会乱码。知道的朋友留言告诉我一下。谢谢!
ftpd_banner=PHP初学者网站欢迎您使用FTP。
#允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
dirmessage_enable=YES
#显示会话状态信息。
setproctitle_enable=YES
#定义不能更改用户主目录的文件。
chroot_list_file=/etc/vsftpd/chroot_list
#定义限制/允许用户登录的文件。
userlist_file=/etc/vsftpd/vsftpd.user_list
#定义登录信息文件的位置。
banner_file=/etc/vsftpd/banner
#禁止使用的匿名用户登陆时作为密码的电子邮件地址。
banned_email_file=/etc/vsftpd.banned_emails
#日志文件位置。
xferlog_file=/var/log/vsftpd.log
#目录信息文件。
message_file=.message
#定义用户配置文件的目录。
user_config_dir=/etc/vsftpd/vuser_conf
#定义本地用户登陆的根目录,注意定义根目录可以是相对路径也可以是绝对路径.相对路径是针对用户家目录来说的。
local_root=/opt/ftp_dir/ftp001
#匿名用户登陆后的根目录。
anon_root=/var/ftp
#可接受的最大client数目。
max_clients=100
#每个ip的最大client数目。
max_per_ip=5
#使用标准的20端口来连接ftp。
connect_from_port_20=YES
#绑定到某个IP,其它IP不能访问。
listen_address=10.0.2.15
#绑定到某个端口。
#listen_port=2121
#数据传输端口。
#ftp_data_port=2020
#pasv连接模式时可以使用port 范围的上界,0 表示任意。默认值为0。
pasv_max_port=0
#pasv连接模式时可以使用port 范围的下界,0 表示任意。默认值为0。
pasv_min_port=0
#匿名用户的传输比率(b/s)。
anon_max_rate=51200
#本地用户的传输比率(b/s)。
local_max_rate=5120000
登陆FTP后,不难发现,我们可以进入用户目录更上层的目录,虽然无法修改读取文件,但是也造成一定的安全问题。我们可以如下设置:
以下两种方法可以实现。
修改 /etc/vsftpd/vsftpd.conf 文件,增加:
1
2
3
|
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
|
这样配置,凡是写在/etc/vsftpd/chroot_list中的用户都是不受限制的用户。
因此我们还需要创建一个空白的文件,否则FTP登陆不上
1
|
touch/etc/vsftpd/chroot_list
|
或
1
|
cat/dev/null>/etc/vsftpd/chroot_list
|
另外还有这样的配置方法:
1
2
3
|
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
|
这样配置, 凡是写在/etc/vsftpd/chroot_list中的用户都是受限制的用户。
chroot_list文件的格式很简单,一行一个用户名。
推荐使用第一种方法。
centos 6.3搭建 vsftpd服务器
1.首先需要安装vsftpd
yum -y install vsftpd
2.安装后开启vsftpd
service vsftpd start
如果每次开机启动 需要运行如下命令
chkconfig --level 35 vsftpd on
3.设置ftp权限
vi /etc/vsftpd/vsftpd.conf
将anonymous_enable=YES 改成 anonymous_enable=NO
保存退出
4.添加ftp账号和目录
user add -d /home/test.com -s /sbin/nologin test
passwd test
输入test的密码
chmod -R 755 /home/test.com
chown -R testt /home/test.com
重启vsftpd
service vsftpd restart
用ftp连接时可能会报500 cannot change /home/test.com 下面是解决方法
先查看seLinux 的状态
sestatus -b | grep ftp
看到ftp_home_dir off 或 tftpd_disable_trans off 之类的。只需要把其中一个设为on 就可以了
setsebool -P ftp_home_dir on
重启vsftpd
service vsftpd restart
登录成功
5.让登录的用户访问自己的目录
vi vsftpd.conf
chroot_local_user = YES
去除这个的#保存重启vsftpd即可
centos8 出现 530 Login incorrect.
tail -f /var/log/secure查看错误信息,根据相应信息修改
如果没有信息,则修改/etc/pam.d/vsftpd文件,注释掉auth required pam_shells.so,重启v是否图片的即可
使用Filezilla时提示------服务器发回了不可路由的地址,使用服务器地址代替
解决方法:
更改Filezilla设置,编辑 - 设置 - 连接-FTP-被动模式,将“使用服务器的外部IP地址来代替”改为“回到主动模式”即可。
关于CentOS6.5下vsftpd加SSL加密服务器配置和vsftpd ssl的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于centos 5 yum安装与配置vsFTPd FTP服务器详细步骤、CentOS 5.5之vsftpd服务器配置、Centos 6.3安装配置vsFTPd环境的FTP服务器、centos 6.3搭建 vsftpd服务器等相关知识的信息别忘了在本站进行查找喔。
本文标签: