它可运行在Linux、Solaris等系统中,支持很多其他的FTP 服务器不支持的特征:
非常高的安全性需求
带宽限制
良好的可伸缩性
创建虚拟用户的可能性
分配虚拟IP地址的可能性
一、vsftpd的启动
#service vsftpd start
如果允许用户匿名访问,需创建用户ftp和目录/var/ftp
# mkdir /var/ftp
# useradd –d /var/ftp ftp
二、vsftpd的配置
Vsftpd的配置文件存放在/etc/vsftpd/vsftpdconf 我们可根据实际数要对如下信息进行配置:
1 连接选项
☆监听地址和控制端口
(1) listen_address=ip address
定义主机在哪个IP 地址上监听FTP请求。即在哪个IP地址上提供FTP服务。
(2) listen_port=port_value
指定FTP服务器监听的端口号。默认值为21。
2 性能与负载控制
☆超时选项
(1) idle_session_timeout=
空闲用户会话的超时时间,若是超过这段时间没有数据的传送或是指令的输入,则会被迫断线。默认值是300s
(2) accept_timeout=numerical value
接受建立联机的超时设定。默认值为60s
☆负载选项
(1) max_clients= numerical value
定义FTP服务器最大的兵法连接数。当超过此连接数时,服务器拒绝客户端连接。默认值为0,表示不限最大连接数。
(2) max_per_ip= numerical value
定义每个IP地址最大的并发连接数目。超过这个数目将会拒绝连接。此选项的设置将会影响到网际快车、迅雷之类的多线程下载软件。默认值为0,表示不限制。
(3) anon_max_rate=value
设定匿名用户的最大数据传输速度,以B/s为单位。默认无。
(4) local_max_rate=value
设定用户的最大数据传输速度。以B/s为单位。默认无。此选项对所有的用户都生效。
3 用户选项
vsftpd的用户分为3类:匿名用户、本地用户(local user)及虚拟用户(guest)
☆ 匿名用户
(1) anonymous_enable=YES|NO
控制是否允许匿名用户登录
(2) ftp_username=
匿名用户使用的系统用户名。默认情况下,值为ftp
(3) no_anon_password= YES|NO
控制匿名用户登录时是否需要密码。
(4) anon_root=
设定匿名用户的根目录,即匿名用户登录后,被定位到此目录下。主配置文件中默认无此项,默认值为/var/ftp/
(5) anon_world_readable_only= YES|NO
控制是否只允许匿名用户下载可阅读的文档。YES,只允许匿名用户下载可阅读的文件。NO,允许匿名用户浏览整个服务器的文件系统。
(6) anon_upload_enable= YES|NO
控制是否允许匿名用户上传文件。除了这个参数外,匿名用户要能上传文件,还需要两个条件,write_enable参数为YES;在文件系统上,FTP匿名用户对某个目录有写权限。
(7) anon_mkdir_wirte_enable= YES|NO
控制是否允许匿名用户创建新目录。在文件系统上,FTP匿名用户必须对新目录的上层目录拥有写权限。
(8) anon_other_write_enbale= YES|NO
控制匿名用户是否拥有除了上传和新建目录之外的`其他权限。如删除、更名等。
(9) chown_uploads= YES|NO
是否修改匿名用户所上传文件的所有权。YES,匿名用户上传得文件所有权改为另一个不同的用户所有,用户由chown_username参数指定。
(10) chown_username=whoever
指定拥有匿名用户上传文件所有权的用户。
☆本地用户
(1) local_enable= YES|NO
控制vsftpd所在的系统的用户是否可以登录vsftpd。
(2) local_root=
定义本地用户的根目录。当本地用户登录时,将被更换到此目录下。
☆虚拟用户
(1) guest_enable= YES|NO
启动此功能将所有匿名登入者都视为guest
(2) guest_username=
定义vsftpd的guest用户在系统中的用户名。
4 安全措施
☆用户登录控制
(1) /etc/vsftpdftpusers
Vsftpd禁止列在此文件中的用户登录FTP服务器。此机制是默认设置的。
(2) userlist_enable= YES|NO
此选项激活后,vsftpd将读取userlist_file参数所指定的文件中的用户列表。
(3) userlist_file=/etc/vsftpduser_list
指出userlist_enable选项生效后,被读取的包含用户列表的文件。默认值是/etc/vsftpduser_list
(4) userlist_deny= YES|NO
决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。userlist_enable选项启动后才能生效。默认值为YES,禁止文中的用户登录,同时不向这些用户发出输入口令的指令。NO,只允许在文中的用户登录FTP服务器。
☆目录访问控制
(1) chroot_list_enable= YES|NO
锁定某些用户在自己的目录中,而不可以转到系统的其他目录。
(2) chroot_list_file=/etc/vsftpd/chroot_list
指定被锁定在主目录的用户的列表文件。
(3) chroot_local_users= YES|NO
将本地用户锁定在主目中。
需求1: 我记得在VSFTPD中,当你使用了ftp用户登陆默认的就是/var/ftp,因为ftp用户是vsftpd中的匿名用户,默认站点就是这个,而且已经禁锢在了这个目录中,也就是说即使你在vsftpd中使用了cd /这个命令,依然还是在/var/ftp目录中。
需求2和3可以通过以下方式完成。
随便在什么位置建立一个目录,比如你建立了/ftpuser这个目录。
在vsftpd的主配置文件中添加下面的配置语句 user_config_dir=/ftpuser (=后面就是步骤1中的目录名)
在这个目录中建立两个和本地用户同名的文件,比如user1和user2 (用vi建立最好)
分别编辑这两个文件,里面主要是设置权限,配置项有以下几种
41 local_root= (用来配置访问站点,比如local_root=/home/ftp/user1)
42 writable_enable=yes (或者no,用来配置是否有上传,删除权限)
43 download_enable=yes (或者no,用来配置是否有下载权限)
保存退出,重启服务就可以了。
不过,遗憾的是,上面的配置无法满足你说的user2用户登陆后,可以上传,不能删除这个要求。上面的配置项只能实现本地用户要么能上传就能删除,要么都不能。
当然,如果你要做虚拟用户的话,那么这些要求都是可以实现的。虚拟用户权限如下
1 local_root=
2 anon_world_readable_only=NO 可以浏览目录并下载
3 anon_mkdir_write_enable=YES 可以建立目录
4 anon_upload_enable=YES 可以上传
5 anon_other_write_enable=YES 可以删除,重命名
敬候高人解答。
简介:FTP(File Transfer Protocol)文件传输协议,基于该协议FTP客户端与服务端可以实现共享文件、上传文件、下载文件。FTP基于C/S模式,FTP客户端与服务器端有两种传输模式,分别是FTP主动模式、FTP被动模式,主被动模式均是以FTP服务器端为参照。Linux下ftp服务常用的是通过部署VSftpd服务器来实现,以CentOS为例,可以执行命令yum -y install vsftpd安装该服务。VSftp的用户登陆方式有三种,分别是匿名用户模式、本地用户模式和虚拟用户模式,匿名模式和本地用户模式存在安全性问题,一般配置的都是使用虚拟用户模式。本文将继续上文内容,主要介绍怎么在已经搭建好的FTP服务器中通过脚本快速创建虚拟用户,并配置Loganalyzer日志采集,对日常事件进行收集分析。详细内容请参考下文。
一、登陆Linux系统
二、查看FTP服务状态
三、编写自动创建虚拟用户的脚本
1、执行指令# vim useraddsh
2、编写并保存创建用户的脚本文件useraddsh
备注:执行该脚本useraddsh的时候,后面附带用户名、用户密码和用户的家目录,实例为#sh useraddsh chensc 123456 /home/ftpuser/chensc。
3、授权脚本文件
执行指令# chmod 777 useraddsh授权读、写和执行的权限
4、执行脚本文件useraddsh创建新用户
执行指令# sh useraddsh chensc 123456 /home/ftpuser/chenscftp安全性相对较好
可采用sftp代替FTP
Linux另外常用的FTP:
proftp
vsftp
pureftp
下面以VSFTP为例:
安装方式一:源码包安装
useradd -s /bin/false -d /var/ftp ftpvirtual
cd
make
make install
cp vsftpdconf /etc
/usr/local/sbin/vsftpd & #启动
安装方式二:rpm安装,推荐
rpm -ivh vsftpd-201-5i386rpm
或者 yum install vsftpd
/etc/initd/vsftpd start
两种方式安装完成后,配置方法都一样,下面开始讲配置。
首先讲主配置文件常见配置
vi /etc/vsftpd/vsftpdconf
anonymous_enable=NO #禁止匿名登录
local_enable=NO #禁止本地用户登录
write_enable=YES #对本地用户的写权限
local_umask=022 #本地用户文件生成掩码
dirmessage_enable=YES #显示隐藏文件
xferlog_enable=YES #启用上传和下载日志
connect_from_port_20=YES #服务器将启用FTP数据端口的连接请求
xferlog_std_format=YES #服务器将使用标准的ftpd xferlog日志格式
pam_service_name=vsftpd #设置PAM认证服务的配置文件名称
userlist_enable=YES #设置文件中指定的用户是否可以访问vsftpd服务器
listen=YES #FTP服务器将处于独立启动模式
tcp_wrappers=YES #使用tcp_wrappers作为主机访问控制方式
chroot_local_user=YES #将FTP本地用户禁锢在宿主目录中
chroot_list_enable=YES #将用户禁锢在宿主目录中
listen_address=19216802 #侦听地址
pasv_enable=YES #是否允使用被动模式,默认是允许的。
pasv_min_port=10000 #指定使用被动模式时打开端口的最小值
pasv_max_port=10004 #指定使用被动模式时打开端口的最大值。
max_clients=100 #设置FTP服务器所允许的最大客户端连接数,值为0时表示不限制
max_per_ip=5 #同一IP地址允许的最大客户端连接数,值为0时表示不限制,即线程
local_max_rate=500000 #设置本地用户的最大传输速率,单位为bytes/sec,值为0时表示不限制
anon_max_rate=200000 #设置匿名用户的最大传输速率,单位为bytes/sec,值为0表示不限制
use_localtime=YES #在vsftp之中的时间默认值是显式GMT时间,因此我们会发现上面的时间与我们时寄存取的时间差八小时。改了这一项就好了。
listen_port=10021 改端口
one_process_model=NO yes可增加性能,增加负载,便降低安全,建议NO
nopriv_user=nobody 默认以nobody运行vsftp
对外服务,建议使用stand alone方式启动,性能好。
仅内部人员,建议用super daemon启动,修改如下:
listen=NO
……略
vsftp默认使用GMT时间,建议修改如下:
use_localtime=YES
/etc/vsftpdftpusers #保存不允许进行FTP登录的本地用户帐号,提高系统的安全性
/etc/vsftpduser_list
#禁止vsftpduser_list中的用户
userlist_enable=YES
userlist_deny=YES
#仅允许vsftpduser_list中的用户
userlist_enable=YES
userlist_deny=NO
日志:
vsftpd_log_file=/var/log/vsftpdlog
下面开始讲vsftp四种“用户认证”的方式
一、匿名用户 ftp anonymous
/var/ftp 默认主目录
在/etc/vsftpd/vsftpdconf中:
anonymous_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES #可删除
chmod -R 777 /var/ftp/pub/
修改/var/ftp/pub的SELinux权限
执行以下命令,修改/var/ftp/pub这目录的类型:
chcon -R -t ftpd_anon_rw_t /var/ftp/pub/
anon_root=/var/>ftp 我记得有两个用户管理模式,一个是使用系统的用户 ID ,一个是使用 ftp 自己的用户管理系统。
这需要现在系统里面给 ftp 做设置。我印象里默认是使用系统用户的。
怎么设置我就不知道了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)