LUNIX FTP

mount  /media/cdrom/---------挂载光驱

              rpm  -ivh  /media/cdrom/RedHat/RPMS/vsftpd-*

---------其中的*号可以按TAB键自动补齐

步骤三、配置匿名vsftpd服务器

              vsftpd服务器最重要的是主配置文件vsftpd.conf。vsftpd守护进程运行时首先从vsftpd.conf文件获取配置文件的信息,然后配合ftpusers和userlist文件决定可访问的用户。下表列出了与vsftpd服务器相关的目录和文件。

 

 

文件/目录名

 

说明

 

/etc/vsftpd/vsftpd.conf

 

Vsftpd服务器的主配置文件

 

/etc/vsftpd.ftpusers

 

禁止访问vsftpd服务器的用户列表(只能做黑名单)

 

/etc/vsftpd.user_list

 

根据vsftpd.conf许可或禁者访问vsftpd服务器的用户列表文件(可做白名单和黑名单)

 

/var/ftp

 

匿名用户的默认文件目录

 

下表列出了vsftpd.conf文件中比较常用的部分配置参数。

 

参数名

 

说明

 

anonymouse_enable

 

指定是否允许匿名登录,默认为YES

 

local_enable

 

指定是否允许本地用户登录,默认为YES

 

write_enable

 

指定是否开放写权限,默认为YES

 

local_umask

 

指定文件创建的初始权限

 

dirmessage_enable

 

指定是否能浏览目录内信息

 

anon_upload_enable

 

指定是否让匿名用户上传文件

 

anon_mkdir_write_enable

 

指定是否让匿名用户创建文件夹

 

xferlog_enable

 

指定是否启用日志功能

 

xferlog_std_format

 

指定采用何种日志格式

 

xferlog_file

 

指定日志文件的存放路径

 

connect_from_port_20

 

指定是否启用20端口进行数据连接

 

idle_session_timeout

 

指定用户会话空闲多少时间(秒)后自动断开

 

data_connection_timeout

 

指定数据连接空闲多少时间(秒)后自动断开

 

ftpd_banner

 

指定登录时的欢迎信息

 

banner_file

 

欢迎信息较长时可以使用某个文件内容作为欢迎信息,此参数指定该文件的路径

 

ascii_upload_enable

 

指定是否允许使用ASCII格式上传文件

 

asii_download_enable

 

指定是否允许使用ASCII格式下载文件

 

listen

 

指定 vsftpd服务器的运行方式,默认为YES以独立方式运行

 

pam_service_name

 

指定验证方式(默认为vsftpd)

 

tcp_wrappers

 

指定是否启用防火墙

 

chroot_list_enable

 

指定是否启用锁定在主目录中的用户的列表

 

chroot_list_file

 

锁定在主目录中的用户列表文件的路径

 

chroot_local_user

 

锁定本地用户在自己的根目录中

 

userlist_enable

 

指定是否启用user_list文件

 

userlist_file

 

指定黑名单或者白名单的文件路径

 

userlist_deny

 

指定名单是黑名单还是白名单(YES或NO)

 

vsftpd服务器的默认设置是允许本地用户和匿名用户登录,本地用户默认进入其个人主目录(/home/账户名),并可以切换到其他有权访问的目录,还可以上传和下载文件。匿名用户只能下载/var/ftp/目录下的文件。默认情况下/var/ftp/目录下没有任何文件。

 

我们现在将vsftpd服务器配置为专用的匿名FTP服务器,仅允许匿名用户登录。匿名用户可在/var/ftp/pub目录中新建目录、上传和下载文件。输入以下命令:

       cp  /etc/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd.conf.bak   ------------对原始文件进行备份

       vi  /etc/vsftpd/vsftpd.conf    -------------------确认如下参数的值

anonymouse_enable=yes

              local_enable=no

              write_enable=yes

              anon_upload_enable=yes

              anon_mkdir_write_enable=yes

              connect_from_port_20=yes

              listen=yes

              tcp_wrappers=yes

保存退出。输入以下命令:

       chmod     o+w /var/ftp/pub   ---修改/var/ftp/pub目录的权限允许其他用户写入文件

       service vsftpd  restart      ---重启vsftpd服务

 

步骤四、测试匿名vsftpd服务器

 

(1)在windows计算机上,运行菜单项中输入:CMD

(2)进入字符界面下,输入:ftp  192.168.21.1

       (3)连接到vsftpd服务器后,输入服务用户名,如:“tom”(本用户是本地用户)。屏幕会提示“530 This FTPserver is anonymous only. login failed”。

       (4)待屏幕出现ftp提示符“ftp>”时,先输入“close”命令断开这次连接,然后输入“open 192.168.21.1”命令,再次连接到vsftpd服务器。输入匿名用户名“anonymous”,并在“Password:”后输入口令(邮件地址)或不输入口令直接回车,即可登录到服务器。

       (5)在“ftp>”提示符后输入命令:

              cd pub     -------切换到匿名用户专用目录/var/ftp/pub

              mkdir  mydir    -------新建一个mydir的目录

        put    abc.txt              ------上传abc.txt文件

              get    abc.txt              ------下载abc.txt文件

        bye               -----------关闭FTP命令行工具

 

步骤五、配置用户专用的vsftpd服务器

 

       将vsftpd服务器配置成仅Linux用户可以使用的FTP服务器,用户只能操作其主目录,不能切换到其他目录。输入如下命令:

        vi /etc/vsftpd/vsftpd.conf   -------------------确认如下参数的值

anonymouse_enable=no

              local_enable=yes

              write_enable=yes

              connect_from_port_20=yes

              listen=yes

              tcp_wrappers=yes

              pam_service_name=vsftpd

              userlist_enable=yes

              chroot_local_user=yes

              userlist_file=/etc/vsftpd.user_list

        userlist_deny=yes   -------------不允许vsftpd.user_list列表中的用户登录FTP服务器

保存退出。

注意:

     限制某些本地用户登录服务器有多种方法:

(1)       直接编辑vsftpd.ftpusers文件,将禁止登录的用户名写入该文件中;

(2)       直接编辑vsftpd.user_list文件,将禁止登录的用户名写入该文件中,此时在vsftpd.conf文件中应设置“userlist_enable=yes”和“userlist_deny=yes”语句,则vsftpd.user_list文件中指定的用户不能访问FTP服务器。

(3)       直接编辑vsftpd.user_list文件,将允许登录的用户名写入该文件中,此时在vsftpd.conf文件中应设置“userlist_enable=yes”和“userlist_deny=no”语句,则只允许vsftpd.user_list文件中指定的用户访问FTP服务器。如果某用户同时出现在vsftpd.ftpusers和vsftpd.user_list文件中,那么该用户将不允许登录。这是因为vsftpd总是先执行vsftpd.user_list,再执行vsftpd.ftpusers文件。

编辑vsftpd.user_list文件,确认不允许登录的用户名单。

重启vsftpd服务:service vsftpd  restart

 

步骤六、测试用户专用vsftpd服务器

 

(1)在windows计算机上,运行菜单项中输入:CMD

(2)进入字符界面下,输入:ftp  192.168.21.1

       (3)连接到vsftpd服务器后,输入服务用户名,如:“anonymous”。屏幕会提示“530 Login incorrect. login failed”。

       (4)待屏幕出现ftp提示符“ftp>”时,先输入“close”命令断开这次连接,然后输入“open 192.168.21.1”命令,再次连接到vsftpd服务器。输入用户名“tom”,并在“Password:”后输入口令后按回车,即可登录到服务器。

       (5)在“ftp>”提示符后输入命令:

              pwd ----------查看用户主目录

cd  /etc     -------屏幕会提示用户无权操作

              mkdir  mydir    -------新建一个mydir的目录

        put    zeng.txt            ------上传abc.txt文件

              get    zeng.txt             ------下载abc.txt文件

        bye               -----------关闭FTP命令行工具

步骤七、配置虚拟账号vsftpd服务器

 

       VSFTPD服务器提供了对虚拟用户的支持,它采用PAM认证机制实现了虚拟用户的功能。所谓虚拟用户,是批用户本身不是系统本地用户(即该用户账号信息不存在于/etc/passwd文件中),也不是匿名用户(因为匿名用户登录时都采用统一的用户名anonymous或ftp ),每个虚拟用户都可以有自己特定的用户名称,且虚拟用户名称都存放于独立的账号数据库中。在验证时,VSFTPD需要一个系统用户的身份来读取数据库文件或数据库服务器以完成验证过程,这就是VSFTPD的guest用户。正如匿名用户也需要一个系统用户ftp一样,也可以把guest用户看成是虚拟用户在系统中的代表。

(1)       首先我们创建虚拟用户数据库文件

Vi  /etc/virtuserdb.txt

         virtuser1

         user001

         virtuser2

         user002

         virtuser3

         user003

保存退出。该文件的奇数行为虚拟用户名,偶数行为相应的口令。

然后执行如下命令生成虚拟用户数据库文件,并改变虚拟用户数据库文件的权限。

  db_load -T  -t     hash -f  /etc/virtuserdb.txt  /etc/vsftpd/vsftpd.db

  chmod    600  /etc/vsftpd/vsftpd.db

(2)       创建PAM认证文件,创建虚拟用户使用的PAM论证文件。

Vi  /etc/pam.d/vsftpd.virtual

         auth  required       /lib/security/pam_userdb.so   db=/etc/vsftpd/vsftpd

         account  required         /lib/security/pam_userdb.so  db=/etc/vsftpd/vsftpd

该PAM认证配置文件中有两条规则:第一条规则的功能是设置利用pam_userdb.so模块来进行身份认证,主要是接受用户名和口令,进而对该用户的口令进行认证,并负责设置用户的一些秘密信息。其中采用的数据库是/etc/vsftpd/vsftpd.db文件(此处省略了文件名后面的“.db”);第二条规则的功能是检查账户是否被允许登录系统,账号是否已经过期,账号的登录是否有时间限制等,设置在进行账号授权时采用的数据库也是/etc/vsftpd/vsftpd.db文件

(3)       创建虚拟用户所对应的真实账号及其所登录的目录,并设置相应的权限。

useradd     -d  /var/virtuser    virtuser

chmod   744  /var/virtuser

(4)       编辑/etc/vsftpd/vsftpd.conf文件,增加或修改的内容如下:

Vi  /etc/vsftpd/vsftpd.conf

       guest_enable=YES               ………….激活虚拟用户登录功能

       guest_username=virtuser       ………指定虚拟用户所对应的真实用户

       pam_service_name=vsftpd.virtual

….修改原文件中的pam_service_name值,设置PAM认证时所采用的文件名称。

                     保存退出。

步骤八、测试虚拟账户vsftpd服务器

 

(1)在windows计算机上,运行菜单项中输入:CMD

(2)进入字符界面下,输入:ftp  192.168.21.1

       (3)连接到vsftpd服务器后,输入服务用户名,如:“virtuser”。并在“Password:”后输入口令后按回车,即可登录到服务器。

       (5)在“ftp>”提示符后输入命令:

              pwd ----------查看用户主目录

        put    abc.txt      ------上传abc.txt文件

         get    abc.txt     ------下载abc.txt文件

        bye                   -----------关闭FTP命令行工具

注意:

       有两点需要说明,一是vsftpd指定虚拟用户登录后,本地用户就不能登录了;二是虚拟用户在某种程度中更接近于匿名用户,包括上传、下载、修改文件名、删除文件等配置所使用的指令与匿名用户的指令是相同的。例如,如果要允许虚拟用户上传文件,则需要采用如下指令:       anon_upload_enable=YES

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值