今天就跟大家聊聊有关Suse Linux 10下如何安装配置vsftpd,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
创新互联是一家专注于网站建设、成都网站制作与策划设计,黟县网站建设哪家好?创新互联做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:黟县等地区。黟县做网站价格咨询:18980820575
一、下载
vsftpd的下载地址:
ftp://vsftpd.beasts.org/users/cevans/
下载的是源代码压缩包vsftpd-2.0.5.tar.gz文件,解压缩:
tar xzvf vsftpd-2.0.5.tar.gz
得到文件夹vsftpd-2.0.5,我将其拷贝到/usr/local/src目录下。
二、编译
一般vsftpd需要有nobody这个用户,该用户一般已存在,如果不存在,使用useradd nobody建立。
而且安装时需要/usr/share/empty作为临时目录,一般已存在。(可是我的系统上就没有,需要我自己建立)。查看Makefile文件得知如何编译,然后编译:
make vsftpd
然后安装:
make install
安装完毕,此时查看/etc/xinetd.d/目录下多出了vsftpd脚本。
三、配置
vsftpd
中常用的配置文件有两个:/etc/ftpusers和/etc/vsftpd.conf,其中以/etc/vsftpd.conf最为重要。但我安装完
之后发现/etc下并没有vsftpd.conf文件,我将源代码文件夹里的vsftpd.conf文件复制到/etc目录下。
(1)/etc/ftpusers
这个配置文件很简单,只要用户的名字在此文件内,便不能使用FTP。
(2)/etc/vsftpd.conf:vsftpd的主要设定文件
vsftpd.conf中参数众多,现在我们一个个介绍它们:
#如果不修改这个文件,就可以得到一个最小设置的匿名FTP服务器
#默认的设定只允许利用anonymous登录
#write_enable=YES
#write_enable=YES为允许用户有写的权限,默认值为NO
#dirmessage_enable=YES
#当用户进入某个目录时,如果该目录存在.message文件,则会显示该文件的内容,通常用来告知
#此目录存放文件的信息,默认值为NO
#nopriv_user=ftpsecure
#指定vsftpd以何帐号提供FTP服务,默认值是nobody。这样即使被cracker***vsftpd,cracker也仅能取得nobody的权限。
#ls_recurse_enable=YES
#ls_recurse_enable默认值为YES,代表禁用ls -Rl /,因为这个指令会耗费大量系统资源。
#no_anon_password=NO
#no_anon_password默认值为NO,代表anonymous不用输入密码就可登录FTP服务器。
#hide_ids=YES
#默认值为NO,若设置为YES,则登录FTP服务器会发现所有文件及目录其所有者及群组均为ftp
####################################################################
# Local FTP user Settings
# 有关本机用户的FTP相关设置(/etc/passwd中普通用户帐号)
####################################################################
#local_enable=YES
#local_enable默认值为NO,代表/etc/passwd中普通用户不能使用FTP服务。
#local_umask=022
#local-umask的意义是Local User上传文件时,文件权限会使用所指定的umask加以运算,默认值为077
#chroot_local_user=YES
#chroot_local_user的用途是将用户的HOME目录变为其FTP登录后的根目录,如此一来,所有Local User
#便不能离开起home目录。其默认值为NO。
#chroot_list_enable=YES
# chroot_list_file=/etc/vsftpd.chroot_list
#若不想利用chroot_local_user=YES把所有本地用户(Local User)都限制在其home目录,
#可利用chroot_list_enable=YES设定值,将某些帐号限制在home目录下
#当chroot_list_enable=YES时,登录用户名字若在/etc/vsftpd.chroot_list内
#则会启用chroot机制,将这个用户限制在其home目录下。
#chroot_list_enable默认值是NO,chroot_list_file默认值为/etc/vsftpd.chroot_list
#local_max_rate=7200
#local_max_rate用来限制Local user每秒的最高传输速度
#其单位是bytes/sec,默认值为0,就是没有限制。
################################################################
# Anonymous用户的相关配置
################################################################
#anonymous_enable=YES
#anonymous_enable=YES,允许用户可用匿名(anonymous)或ftp帐号,不用密码就可登录FTP服务器,默认值是YES。
#anon_world_readable_only=YES
#anon_world_readable_only=YES,用来限制匿名(anonymous)用户只能下载有开放Other可以write的文件,其默认值为YES。
#anon_upload_enable=YES
#anon_upload_enable用来限制匿名(anonymous)用户可否上传文件,默认值为NO。
#anon_umask=022
#anon_umask的意义是匿名(anonymous)用户上传文件时,文件权限会用所指定的umask加以运算,默认值为077。
#anon_mkdir_write_enable=YES
#anon_mkdir_write_enable允不允许anonymous用户建立目录,其默认值为NO。
#anon_other_write_enable=YES
#所否允许anonymous用户有write的权限,不过记得通过anon_other_write_enable的限制后,
#还得看打算写的目录或文件的权限允不允许anonymous用户write。
#chown_uploads=YES
#chown_username=whoever
#chown_uploads用户指定anonymous帐号上传的文件是否要改变其所有者。
#chown_uploads默认值为NO,chown_username用来指定新的所有者。
#anon_max_rate=7200
#anon_max_rate用来限制anonymous用户每秒的最高传输速度,
#其单位是bytes/sec,默认值是0,就是没有限制。
###############################################################
# Log Settings
# 有关FTP日志的相关规定
###############################################################
#syslog_enable=YES
#syslog_enable=YES会将本来应记录在/var/log/vsftpd.log的信息,转而传给syslogd daemon,
#由syslogd的配置文件决定存于何位置。syslog_enable默认值为NO。
#log_ftp_protocol=YES
#log_ftp_protocol=YES会将所有FTP有关的请求和回应全部记录,其默认值为NO。
#xferlog_enable=YES
#xferlog_enable=YES会详细记录有关上传/下载的信息,其默认值为NO。
#vsftpd_log_file=/var/log/vsftpd.log
#vsftpd_log_file可用来指定vsftpd的log文件位置。
#xferlog_std_format=YES
#xferlog_std_format默认值为NO,若设定为YES,则log内容会采用标准xferlog格式(wu-ftpd日志文件所采用的格式)。
#xferlog_file=/var/log/xferlog
#xferlog_file用来指定wu-ftpd格式的log的存放位置。
#dual_log_enable=YES
#dual_log_enable默认值为NO,若设定为YES,则/var/log/xferlog和/var/log/vsftpd.log均会记录FTP相关日志。
#setproctitle_enable=YES
#setproctitle_enable默认值为NO,若设定为YES,则查看系统进程状态时,会列出ftp连接的状态。
#例如执行 ps -ef | grep vsftp 可看到谁正在连接。
#nobody 4424 ... vsftpd: 127.0.0.1: not logged in
################################################################
# Transfer Settings
# 传输文件的相关规定
################################################################
#connect_from_port_20=YES
#connect_from_port_20=YES代表主动模式的数据连接是用端口20,其默认值为NO。
#idle_session_timeout=600
#idle_session_timeout设定FTP客户端多久未执行任何ftp指令操作,便将其断线,默认值为300秒。
#data_connection_timeout=120
#允许数据传输时idle的秒数,默认值是300秒。
#async_abor_enable=YES
#async_abor_enable的默认值为NO,必须要FTP客户端有支持async_abort的机制才可以打开。
#ascii_upload_enable=YES
#ascii_upload_enable的默认值为NO,若设为YES则用户可用ascii方式上传数据,不过若启用此参数可能会
#导致Dos***,所以采用默认值。
#ascii_download_enable=YES
#同上,ascii_download_enable默认值为NO,若设为YES则用户可用ascii方式下载数据,不过若启用此参数可能会
#导致Dos***,所以采用默认值。
#pasv_enable=NO
#pasv_enable默认值为YES,若设为NO,FTP客户端则无法使用被动模式FTP。
#pam_service_name=vsftpd
#vsftpd PAM模块的名称,起存放在/etc/pam.d/目录。
#listen=YES
#listen默认值为NO,若设定为YES,则vsftpd会用standalone方式启动。
启动vsftpd服务语句:
#service vsftpd start(重启restart/停止stop)
#/etc/init.d/vsftpd start (重启restart/停止stop)
四、装完之后的问题
但装完之后问题多多,根本没法成功:(1)
先是FTP的的主目录问题,虽然配置文件里允许匿名用户上传文件,但FTP主目录/srv/ftp却并不是允许任何用户有写的权限,所以必须在该目录下建
立一个允许ftp这个匿名用户写的目录,我在/srv/ftp/目录下又建了两个目录incoming,pub,其中incoming目录的权限允许其他
用户读和写,pub目录允许其他用户读,但不可写。(2)并不是某个目录允许写或读,其下的文件就允许写或读,要想理想中的操作,还必须更改文件
的权限。例如,我想下载incoming目录中的某文件,而该文件并不允许匿名用户读的话,就没法下载。所以我更改配置文件,将匿名用户上传的文件的权限
都改成匿名用户可以下载的,方法是将anon_umask=022,注意这个022是一个八进制数,其实是0022。(3)还有就是开放端口的问
题,比如我开放的FTP端口是10021,必须在SuseFirewall2中开放此端口,由于FTP的数据传输使用另一条连接,在被动模式下(个人比较
喜欢被动模式,因为他可以解决某些防火墙的问题),要开放一个端口范围(通过pasv_max_port和pasv_min_port指定),我为了方便
SuseFirewall2开放端口的方便,将这两个值都设为50000,这样SuseFirewall2就只需要再开放50000端口就行了,而不用开
放一个范围。(4)最后就是路由器的NAT问题,如果是在有网关的局域网内建FTP服务器,必须将外面对网关IP(路由器对外IP)某端口的连接转发到内网的那台服务器的IP的相应端口上。我最后是让vsftpd以standalone的方式运行,所以listen=YES得启用,且使用的是被动模式,故pasv_enable=YES要启用。
看完上述内容,你们对Suse Linux 10下如何安装配置vsftpd有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。