linux上安装配置vsftpd(转)-阿里云开发者社区

开发者社区> 安全> 正文
登录阅读全文

linux上安装配置vsftpd(转)

简介: 转自:http://www.webarch.org/category/linux生产环境是Centos5.6,由于需要提供ftp服务,就找了一款比较小巧的ftp服务器端软件,vsftpd(vsftpd 的名字代表”very secure FTP daemon”.vsftpd在安全性、高性能及稳定性三个方面有上佳的表现。

 

转自:http://www.webarch.org/category/linux
生产环境是Centos5.6,由于需要提供ftp服务,就找了一款比较小巧的ftp服务器端软件,vsftpd(vsftpd 的名字代表”very secure FTP daemon”.
vsftpd在安全性、高性能及稳定性三个方面有上佳的表现。
它提供的主要功能包括虚拟IP设置、虚拟用户、Standalone、inetd操作模式、强大的单用户设置能力及带宽限流等。

安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。

 
 1.查看是否安装vsftp
 rpm -qa | grep vsftpd
 如果出现vsftpd-2.0.5-21.el5,说明已经安装 vsftp
 
 安装vsftp
 yum -y install vsftpd
 
 2.测试 是否安装成功 (ip 改成自己啊,不要用俺的此次登录为匿名登录 user: anonymous 密码为空 如果成功登录会有下面内容 这说明vsftpd安装成功)
 [root@localhost ~]#service vsftpd start
 为 vsftpd 启动 vsftpd:[确定]
 
 3,配置vsftpd
 # whereis vsftpd
 vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz
 yum安装的主要目录为上述的3个目录,其中配置文件vsftpd.conf在/etc/vsftpd中,下面看下怎么配置vsftpd.conf
 
 # 默认配置文件: /etc/vsftpd.conf
 #     下面是配置的选项及说明
 ######### 核心设置 ###########
 
 # 允许本地用户登录
 local_enable=YES
 # 本地用户的写权限
 write_enable=YES
 
 # 使用FTP的本地文件权限,默认为077
 # 一般设置为022
 local_umask=022
 
 # 切换目录时
 # 是否显示目录下.message的内容
 dirmessage_enable=YES
 dirlist_enable = NO
 #验证方式
 #pam_service_name=vsftpd
 
 # 启用FTP数据端口的数据连接
 connect_from_port_20=YES
 
 # 以独立的FTP服务运行
 listen=yes
 
 # 修改连接端口
 #listen_port=2121
 
 ######### 匿名登录设置 ###########
 
 # 允许匿名登录
 anonymous_enable=NO
 
 # 如果允许匿名登录
 # 是否开启匿名上传权限
 #anon_upload_enable=YES
 
 # 如果允许匿名登录
 # 是否允许匿名建立文件夹并在文件夹内上传文件
 #anon_mkdir_write_enable=YES
 
 # 如果允许匿名登录
 # 匿名帐号可以有删除的权限
 #anon_other_write_enable=yes
 
 # 如果允许匿名登录
 # 匿名的下载权限
 # 匿名为Other,可设置目录/文件属性控制
 #anon_world_readable_only=no
 
 # 如果允许匿名登录
 # 限制匿名用户传输速率,单位bite
 #anon_max_rate=30000
 
 ######### 用户限制设置 ###########
 
 #### 限制登录
 
 # 用userlist来限制用户访问
 #userlist_enable=yes
 
 # 名单中的人不允许访问
 #userlist_deny=no
 
 # 限制名单文件放置的路径
 #userlist_file=/etc/vsftpd/userlist_deny.chroot
 
 #### 限制目录
 
 # 限制所有用户都在家目录
 #chroot_local_user=yes
 
 # 调用限制在家目录的用户名单
 chroot_list_enable=YES
 
 # 限制在家目录的用户名单所在路径
 chroot_list_file=/etc/vsftpd/chroot_list
 
 ######### 日志设置 ###########
 
 # 日志文件路径设置
 xferlog_file=/var/log/vsftpd.log
 
 # 激活上传/下载的日志
 xferlog_enable=YES
 
 # 使用标准的日志格式
 #xferlog_std_format=YES
 
 ######### 安全设置 ###########
 
 # 用户空闲超时,单位秒
 #idle_session_timeout=600
 
 # 数据连接空闲超时,单位秒
 #data_connection_timeout=120
 
 # 将客户端空闲1分钟后断开
 #accept_timeout=60
 
 # 中断1分钟后重新连接
 #connect_timeout=60
 
 # 本地用户传输速率,单位bite
 #local_max_rate=50000
 
 # FTP的最大连接数
 #max_clients=200
 
 # 每IP的最大连接数
 #max_per_ip=5
 
 ######### 被动模式设置 ###########
 
 # 是否开户被动模式
 pasv_enable=yes
 
 # 被动模式最小端口
 pasv_min_port=5000
 
 # 被动模式最大端口
 pasv_max_port=6000
 
 ######### 其他设置 ###########
 # 欢迎信息
 ftpd_banner=Welcome to Ftp Server!
 
 
 4 添加ftp防火墙规则:
 /sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT
 /etc/rc.d/init.d/iptables save
 /etc/init.d/iptables restart

在文件/etc/sysconfig/iptables中添加以下记录,后执行service iptables restart重启
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
 
 5 添加用户(注意,该处添加nologin类型用户ftpuser):
 useradd -d /home/ftp -s /sbin/nologin ftpuser
 如果已启动vsftpd,重新启动
 pkill vsftpd /usr/sbin/vsftpd &
 
 6 到此,整个小巧的ftp服务器搭建成功。可以使用FileZilla FTP或FlashFXP等客户端软件登陆ftp server了。

http://www.cnblogs.com/itech/archive/2012/09/16/2687378.html

 http://blog.csdn.net/bluishglc/article/details/42398811

sftp ncftp

 

 

常见问题及解决办法:
1、root 用户220拒绝
解决办法:
在/etc/vsftpd.ftpusers和/etc/vsftpd.user_list中将root注释掉,保存文件后立即生效
原因:
[root@test ums-client]# more /etc/vsftpd.user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd.ftpusers
# for users that are denied.
#root


2.设定ftp登陆时的默认目录
修改vsftp默认用户访问目录在配置文件目录 /etc/vsftpd/下的 vsftpd.conf文件中。
找到并打开/etc/vsftpd/vsftpd.conf, 设置添加以下代码:
local_root=/home/xxx
那么ftp用户访问的默认目录就是xxx这个目录了。
ftp用户访问的默认目录设置好了, 还可以单独设置这个目录的访问权限如(777,755等权限), 方法请参考文章: vsftp 设置ftp用户访问目录权限的命令
注意设置好了需要重启vsftp服务器:
service vsftpd restart
重启后你再在客户端连接看看是不是指定的目录呀。

3、vsftpd下显示的时间与系统时间不一致
ftp上来显示的时间与系统时间不一致,是因为默认情况下,vsftpd 是用GMT做为它的时间的,所以和系统的时间(GMT+8会会相差8个小时)能会不一致。
修改也很简单:
vi /etc/vsftpd/vsftpd.conf
在最后加入一行:
use_localtime=YES
存盘后,重启vsftpd:
service vsftpd restart
这样就行了

http://www.chinaunix.net/old_jh/4/347483.html

 按上述设置并重启vsftpd后,时间显示正常:

 

4、如何有选择的把用户限制在家目录中呢?
我们要自己建一个文件,在/etc目录中或/etc/vsftpd目录中(假如您的vsftpd配置文件都是放在这个目录的话);
#touch /etc/vsftpd.chroot_list
以beinan和nanbei这两个用户限制在他们所在的家目录中,而其它的FTP用户不做此限制。
在vsftpd.chroot_list这个文件中,把beinan和nanbei添上去就行,注意,每个用户占一行。
beinan
nanbei
然后改/etc/vsftpd/vsftpd.conf文件,找如下的两行
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
如果没有这样的两行,就可以自己添加上去也是一样的。
设置好后,重新vsFTPD服务器。
补充一之补充:如何把系统内所有的FTP用户都限制在家目录中呢??经juliaugong兄的提示,我查找了vsFTPd的洋文说明,证明这个选项是一刀切的解决所有的用户都能限制在家目录中
我们可以通过更改vsftpd.conf文件,加入如下的一行
chroot_local_user=YES
改完配制文件,不要忘记重启vsFTPd服务器;

5、如何让绑定IP到vsFTPd?
如何让绑定IP到vsFTPd?也就是说,如何让用户只能通过某个IP来访问FTP。其实这个功能很有意思。如果绑定的是内网的IP,外部是没有办法访问的。如果绑定的是对外服务的IP,内网也只能通过对外服务的IP来访问FTP
在vsftpd.conf中加一行,以我的局域网为例,请看第一帖中的操作环境,这样外网就不能访问我的FTP了,内网也可能通过192.168.0.2来访问FTP;
listen_address=192.168.0.2
http://os.51cto.com/art/201102/245528.htm

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: