vsFTPd服务器实用培训教程(doc 19页)
- 格式:doc
- 大小:8.64 MB
- 文档页数:23
vsftpd配置手册(实用)1、vsftpd配置参数详细整理#接受匿名用户anonymous_enable=YES#匿名用户login时不询问口令no_anon_password=YES#匿名用户主目录anon_root=(none)#接受本地用户local_enable=YES#本地用户主目录local_root=(none)#如果匿名用户需要密码,那么使用banned_email_file里面的电子邮件地址的用户不能登录deny_email_enable=YES#仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录check_shell=YES#若启用此选项,userlist_deny选项才被启动userlist_enable=YES#若为YES,则userlist_file中的用户将不能登录,为NO则只有userlist_file的用户可以登录userlist_deny=NO#如果和chroot_local_user一起开启,那么用户锁定的目录来自/etc/passwd每个用户指定的目录(这个不是很清楚,很哪位熟悉的指点一下)passwd_chroot_enable=NO#定义匿名登入的使用者名称。
默认值为ftp。
ftp_username=FTP#################用户权限控制################可以上传(全局控制).write_enable=YES#本地用户上传文件的umasklocal_umask=022#上传文件的权限配合umask使用#file_open_mode=0666#匿名用户可以上传anon_upload_enable=NO#匿名用户可以建目录anon_mkdir_write_enable=NO匿名用户其它的写权利(更改权限?)anon_other_write_enable=NO如果设为YES,匿名登入者会被允许下载可阅读的档案。
实训八 FTP服务器配置1、实验目的要求(1)掌握FTP服务器的配置(2)掌握常用FTP客户端命令2、实验主要内容(1)vsftpd服务器的安装与启动(2)配置允许匿名用户上传(3)配置服务器欢迎信息(4)配置本地用户禁止切换到其他目录(5)配置用户访问速度、超时时间与连接数(6)配置基于本地用户的访问控制3、实验仪器设备网络实验室,Linux操作系统4、实验步骤实训项目一:创建一台FTP服务器(10.196.3.2X),允许匿名用户有浏览、上传和下载和创建目录的权限,上传目录为/var/ftp/pub,测试时在该目录上创建一个子目录,名为wj0913X。
新建一个用户userX,并测试登录、上传一文件名为userX的文件。
一、准备工作(1)配置服务器的网络参数#ifconfig eth0 10.196.6.1 netmask 255.255.255.0 up#ifconfig 查看网络配置参数信息,并截屏(2)vsftpd服务器的安装与启动检查vsftpd软件包是否安装# rpm –qa |grep vsftpd如果没有安装,则先安装该软件包将RedHat LinuxAS5安装盘“加”入到光驱中,然后执行以后命令安装# mount /dev/cdrom /mnt/cdrom# cd /mnt/cdrom/Server# rpm –ivh vsftpd-1.1.3-8.i386.rpm(3)备份vsftpd的配置文件#cp /etc/vsftpd/vsftpd.conf / etc/vsftpd/vsftpd.conf.bak二、修改/etc/vsftpd/vsftpd.conf配置文件,具体的步骤如下:第1步:激活以下两项,即将原文件中以下两行前的“#”去掉。
# 允许匿名用户上传anon_upload_enable=YES# 允许匿名用户创建新目录anon_mkdir_write_enable=YES第2步:在原配置文件中添加下面一行,目的是开放匿名用户的浏览权限。
第五章VSFTP服务全攻略内容简介FTP服务的简介FTP的工作原理主动模式和被动模式VSFTP服务的安装VSFTP的三种用户形式案例详解FTP服务的简介FTP是文件传输控制协议。
它可以使文件通过网络从一台主机传送到另一台主机上,而不受计算机类型和操作系统类型的限制。
无论是PC机、服务器、大型机,还是DOS操作系统、Windows 操作系统、Linux操作系统,只要双方都支持FTP协议,就可以方便地传送文件。
FTP的工作原理FTP服务的具体工作过程如下(图1)。
①当FTP客户端发出请求时,系统将动态分配一个端口(如1032)。
②若FTP服务器在端口21侦听到该请求,则在FTP客户端的端口1032和FTP服务器的端口21之间建立起一个FTP会话连接。
③当需要传输数据时,FTP客户端再动态打开一个连接到FTP服务器的端口20的第2个端口(如1033),这样就可在这两个端口之间进行数据的传输。
当数据传输完毕后,这两个端口会自动关闭。
④当FTP客户端断开与FTP服务器的连接时,客户端上动态分配的端口将自动释放掉。
主动模式和被动模式根据数据连接的建立方式,FTP服务的数据传输可以分为Port(主动)模式和Passive(被动)模式。
主动模式是FTP服务器向FTP客户端传输数据的默认模式。
当FTP客户端请求以主动模式传输数据时,由客户端向服务端发送准备接收数据的IP地址和端口Y,该端口是大于1024的非特权端口。
服务端主动发起并建立连接到指定的IP地址和端口Y,所以称为”主动”模式。
在被动模式下,客户端通过PASV命令获得服务端IP地址和数据端口,然后向服务端发起连接请求,从而建立数据连接。
因此,服务器端只是被动地监听在指定端口上的请求,所以称之为”被动”模式。
主动模式和被动模式在主动模式中,FTP客户端随机开启一个大于1024的端口X向服务器的21号端口发起控制连接请求,然后开放X+1号端口进行监听;FTP服务器接受请求并建立控制连接会话。
Vsftpd服务详解Vsftpd的配置⽂件/etc/vsftpd/vsftpd.conf //主配置⽂件/etc/vsftpd/ftpusers //指定哪些⽤户不能访问ftp服务器/etc/vsftpd/user_list当在主配置⽂件vsftpd.conf中设置了userlist_enable=YES,userlist_deny=YES时,user_list中指定的⽤户不能访问ftp服务器。
当在主配置⽂件vsftpd.conf中设置了userlist_enable=YES,userlist_deny=NO时,仅仅user_list中指定的⽤户能访问ftp服务器。
增加新⽤户及设置⽤户的⼯作⽬录root@srsman]# adduser -d /opt/srsman -g ftp -s /sbin/nologin srsman [root@srsman]# passwd srsman可以修改⽤户的⼯作⽬录可以使⽤usermod命令使⽤⽅式: usermod -d 路径登录⽤户名修改⽤户⽬录的权限chown ftp /var/ftp/upload chmod 777 /var/ftp/upload实体账号不能登录时[root@www ~]# getsebool -a | grep ftpallow_ftpd_anon_write --> offallow_ftpd_full_access --> offallow_ftpd_use_cifs --> offallow_ftpd_use_nfs --> offftp_home_dir --> off<==就是这玩意⼉!要设定 on 才⾏!....(底下省略)....[root@www ~]#setsebool -P ftp_home_dir=1实体或匿名账号不能上传时:不过,在实际测试当中,却发现还是没办法上传呢!怎么回事啊?如果你有去看⼀下 /var/log/messages 的话,那就会发现啦!⼜是SELinux 这家伙呢!怎么办?就透过『 sealert -l ... 』在 /var/log/messages ⾥⾯观察到的指令丢进去,⽴刻就知道解决⽅案啦!解决⽅案就是放⾏ SELinux 的匿名 FTP 规则如下:[root@www ~]# setsebool -P allow_ftpd_anon_write=1[root@www ~]# setsebool -P allow_ftpd_full_access=1匿名ftp⽅式⼀般⽤于公共⽹络中,只要保证anonymous_enable=YES,即开启了匿名⽅式,重新加载配置⽂件或重启服务器即可。
Ftp服务器地址172.16.10.20/24Client地址172.16.10.10/24一.安装vsftp套件,确认是否安装vsftpd没有则挂载第三张系统盘安装vsftpd的rpm包(1)打开虚拟机把网卡模式设为桥接(如果以及是桥接则跳过步骤)虚拟机→设置→网络适配器→桥接→确认(2)将第三张系统盘的ISO镜像放入虚拟光驱,安装vsftpd套件[root@mail root]# rpm -q vsftpdvsftpd-1.1.3-8虚拟机→设置→CD/DVD→使用iso镜像→redhat9.0第一张光盘#mount /dev/cdrom /mnt/cdromt //挂载光驱#cd /mnt/cdrom/RedHat/RPM/# rpm -ivh vsftpd-1.1.3-8.i386.rpm(3)用vi编辑器编辑/etc/samba/smb.conf文件# cd /etc/vsftpd# vi vsftpd.conf改成如下内容:# 关于主机与安全性的设定use_localtime=YESdirmessage_enable=YESconnect_from_port_20=YESxferlog_enable=YESxferlog_std_format=YESpam_service_name=vsftpdtcp_wrappers=YES# 关于anonymous 的设定anonymous_enable=YES# 关于real user 的设定local_enable=YESwrite_enable=YESlocal_umask=022userlist_enable=YES二.启动vsftpd服务,检查权限# /etc/rc.d/init.d/vsftpd restart (#service vsftp start)为vsftpd 启动vsftpd:[ 确定]#cd /var/ftp[root@mail ftp]# ll -d . //查看ftp目录权限,如果允许匿名用户上传数据请确保other组可写drwxrwxr-x 5 root root 4096 11月26 15:30 .#chmod o+w ftp三.测试客户端(1)匿名登陆:(2)本地用户登录:(3)下载(4)上传t (5).message文件,欢迎内容#cd /home/redhat#echo “welcom”> .message(6)使用IE浏览器登陆。
我们用pkill vsftpd 来杀死vsftpd进程,这样就把vsFTPd关闭,用psgrep vsftpd 来查看进程,如果没有进程,证明vsFTPd已经关掉;当然也要用到root权限。
[root@localhost ~]# pkill vsftpd[root@localhost ~]# pgrep vsftpd4.2、在Fedora/Redhat/CentOS中vsFTPd 服务器的启动和关闭:在Fedora/Redhat/CentOS中,也可以用下面的方法来启动vsFTPd;当然也要用到root权限;[root@localhost beinan]# /etc/init.d/vsftpd start为vsftpd 启动vsftpd: [ 确定 ]重新启动vsFTPd用下面的命令;[root@localhost beinan]# /etc/init.d/vsftpd restart关闭vsftpd:[ 确定 ]为vsftpd 启动vsftpd: [ 确定 ]关掉vsFTPd服务器,应该用下面的命令;[root@localhost beinan]# /etc/init.d/vsftpd stop关闭vsftpd:[ 确定 ]5、vsFTPd的服务器和防火墙及SELINUX的关系;(重要)我在论坛上看到有些弟兄说vsFTPd服务器启动正常,但却不能访问或用户不能上传文件,我感觉应该是防火墙或SELINUX的事;可能FTPD服务器被防火墙或SELINUX的安全机制防住了。
所以您必须要让防火墙通过ftp,当然也要让SELINUX通过ftp服务器才行;在Fedora/Redhat/CentOS中,您要设置一下防火墙,可以把防火墙关掉,或者在自定义中让ftp “通过”防火墙;[root@localhost ~]# system-config-securitylevel-tui或者运行一下如下的命令,清除防火墙规则(通用);[root@localhost beinan]# iptables -F关于SELINUX服务器的解说,可能老手或新手对SELINUX都有点麻烦,建议您SELINUX;或者让vsFTPd服务器跳过SELINUX启动;也就是说要用到;这在Fedora/Redhat/CentOS中这样启动vsFTPd 服务器是有效的;当然您可也可以关掉SELINUX,在/etc/selinux/config 配置文件如下;/etc/selinux/config# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - SELinux is fully disabled.SELINUX=Disabled #这样就把SELINUX服务器关掉了,请重新启动系统;# SELINUXTYPE= type of policy in use. Possible values are:# targeted - Only targeted network daemons are protected.# strict - Full SELinux protection.SELINUXTYPE=targeted6、500 OOPS: vsftpd: refusing to run with writable anonymous root如果我们已经把vsFTPd服务器启动好了,但登录测试是会出现类似下面的提示;500 OOPS: vsftpd: refusing to run with writable anonymous root这表示ftp用户的家目录的权限不对,应该改过才对;[root@localhost ~]# more /etc/passwd |grep ftpftp:x:1000:1000:FTP User:/var/ftp:/sbin/nologin我们发现ftp用户的家目录在/var/ftp,就是这个/var/ftp的权限不对所致,这个目录的权限是不能打开所有权限的;是您运行了chmod 777 /var/ftp所致;如果没有ftp用户这个家目录,当然您要自己建一个;如下FTP用户的家目录是不能针对所有用户、用户组、其它用户组完全开放;[root@localhost ~]# ls -ld /var/ftpdrwxrwxrwx 3 root root 4096 2005-03-23 /var/ftp修正这个错误,应该用下面的办法;[root@localhost ~]# chown root:root /var/ftp[root@localhost ~]# chmod 755 /var/ftp有的弟兄可能会说,那匿名用户的可读、可下载、可上传怎么办呢?这也简单,在/var/ftp下再建一个目录,权限是777的就行了,再改一改vsftpd.conf就OK了;没有什么难的;vsFTPd出于安全考虑,是不准让ftp用户的家目录的权限是完全没有限制的,您可以去读一下vsFTPd 的文档就明白的了;否则也不能称为最安全的FTP服务器了,对不对?7、关于vsFTPd配置文件的说明;vsftpd.conf是vsFTPd服务器的配置文件,此文件一般是/etc/vsftpd.conf或/etc/vsftpd/vsftpd.conf ,以系统为准吧。
vsftpd.conf配置文件就是vsFTPd服务器的全局控制文件,此配置文件中,每行应该算做一个规则;前面带有#号的服务器不会解释,这和apache 的配置文件类似;#后所接的内容一般是说明性的,或者是关掉某些功能的选项;vsftpd.conf 这个配置文件并不包括所有您想实现的功能,有些功能的实现,我们要自己动手来解决,我们要学会查vsFTPd的文档和FAQ等,虽然是英文的,但都是比较简单的;我们要习惯看洋文文档,为什么呢?因为Linux本来就是洋人厉害,重量级的软件都是洋人的。
呵,兄弟不要抱怨,谁让我们落后了呢?注意:修改完配置文件后,一定要重启vsFTPd服务器才能生效,切记~~8、关于vsFTPd服务器的一些常用功能的实现;8.1、关于匿名上传下载的实现;关于匿名上传,其实也比较简单,首先我们要修改一下vsftpd.conf ,此文件位于/etc/目录下,可能是/etc/vsftpd.conf,也可能是/etc/vsftpd/vsftpd.conf文件。
以您的系统环境为准;首先:我们要改一下vsftpd.conf,确保有以下几行;anonymous_enable=YESanon_upload_enable=YESanon_mkdir_write_enable=YESanon_umask=022其次:在ftp用户家目录的下建一个文件夹,并修改其权限为完全开放;ftp用户的家目录在哪?我们前面已经说了,要通过/etc/passwd来查看;也可以通过finger ftp来查看;[root@localhost beinan]# finger ftpLogin: ftp Name: FTP User Directory: /var/ftp Shell: /sbin/nologin这说明ftp用户的家目录在/var/ftp ,我们要在这个目录下建一个目录,然后把他的权限设置为任何用户可读可写可执行就行了;一般的情况下,在发行版中,有一个/var/ftp/pub的目录,如果没有,您也可以自己建一个;把配置文件改好后,只要把/var/ftp下的任何一个目录的权限打开,都可以用来匿名上传和下载;比如您想让匿名用户上传和下载都在/var/ftp/pub,就可以把/var/ftp/pub的权限打开,如果没有这个目录,您要自己建一个;[root@localhost ~]# mkdir /var/ftp/pub[root@localhost ~]# chmod 777 /var/ftp/pub这样上传的时候传到pub目录就OK了,对不对??8.2、关于添加本地用户及打开读写权限示例;FTP用户一般是不能登录系统的,这也是为了安全。
在系统中,没有权限登录系统的用户一般也被称之为虚拟用户;虚拟用户也是要写进/etc/passwd中;这只是一种虚拟用户的方法,但说实在的并不是真正的虚拟用户,只是把他登录SHELL的权限去掉了,所以他没有能力登录系统;如果我们想把beinan这个用户目录定位在/opt/beinan这个目录中,并且不能登录系统;我们应该如下操作[root@localhost ~]# adduser -d /opt/beinan -g ftp -s /sbin/nologin beinan[root@localhost ~]# passwd beinanChanging password for user beinan.New password:Retype new password:passwd: all authentication tokens updated successfully.[root@localhost ~]#其实这还是不够的,还要改一下配置文件vsftpd.conf ,以确保本地虚拟用户能有读写权限;local_enable=YESwrite_enable=YESlocal_umask=0228.4、如何实现虚拟路径?比如:/home/a 映射为 ftp://localhost/a/home/b/c 则为 ftp://localhost/c其实这个不能说是vsFTPd的内容,其实我们早就接触过了,可能我们没有注意,我们可以通过如下的方法来实现。
[root@localhost ~]# mount --bind [原有的目录] [新目录]比如我的ftp的默认目录是/var/ftp,我想把/mnt/LinG/WinSoft文件夹,映射到/var/ftp目录中,我就如下操作我们要先在/var/ftp目录中建一个目录[root@localhost ~]# mkdir /var/ftp/WinSoft然后执行mount命令[root@localhost ~]# mount --bind /mnt/LinG/WinSoft /var/ftp/WinSoft这样就OK了。