linux课堂笔记5--vsftpd服务器的配置
一般而言,用户必须经过身份验证才能登录服务器上的文件。
本地用户是在
Vsftpd服务器的用户分为两类:
Vsftpd服务器,然后才能访问和传输本地用户和匿名用户
。
FTP
Vsftpd服务器上拥有账号的用户。本地用户输入自己的用户名和口令后
可登录Vsftpd服务器,并且直接进入该用户的主目录。步骤一、检查所需的
RPM包是否已经安装在系统中,方法是:
检查是否已安装
vsftpd软件包
rpm –qa |grep vsftpd
步骤二、安装所需的否则请转入第三步。
RPM包
若在步骤一中发现所需的RPM包没有安装,则需使用下面的命令来安装软件包,
mount /media/cdrom/---------挂载光驱rpm
-ivh
/media/cdrom/RedHat/RPMS/vsftpd-*
---------其中的*号可以按TAB键自动补齐
步骤三、配置匿名
vsftpd服务器
vsftpd.conf。vsftpd守护进程运行时首先从ftpusers和userlist文件决定可访问的用户。
vsftpd服务器最重要的是主配置文件
vsftpd.conf文件获取配置文件的信息,然后配合下表列出了与
vsftpd服务器相关的目录和文件。文件/目录名
/etc/vsftpd/vsftpd.conf /etc/vsftpd/ftpusers /etc/vsftpd/user_list /var/ftp
说明
Vsftpd服务器的主配置文件
禁止访问vsftpd服务器的用户列表(只能做黑名单)
根据vsftpd.conf许可或禁者访问匿名用户的默认文件目录
vsftpd服务
器的用户列表文件(可做白名单和黑名单)
下表列出了vsftpd.conf文件中比较常用的部分配置参数。
参数名
anonymouse_enable local_enable write_enable local_umask dirmessage_enable anon_upload_enable anon_mkdir_write_enable xferlog_enable xferlog_std_format
说明
指定是否允许匿名登录,默认为指定是否允许本地用户登录,默认为指定是否开放写权限,默认为指定文件创建的初始权限指定是否能浏览目录内信息指定是否让匿名用户上传文件指定是否让匿名用户创建文件夹指定是否启用日志功能指定采用何种日志格式
YES YES
YES
xferlog_file
connect_from_port_20 idle_session_timeout data_connection_timeout ftpd_banner banner_file
ascii_upload_enable asii_download_enable listen
pam_service_name tcp_wrappers chroot_list_enable chroot_list_file chroot_local_user userlist_enable userlist_file userlist_deny
指定日志文件的存放路径指定是否启用开
指定数据连接空闲多少时间(秒)后自动断开
指定登录时的欢迎信息
欢迎信息较长时可以使用某个文件内容作为欢迎信息,此参数指定该文件的路径指定是否允许使用指定是否允许使用以独立方式运行指定验证方式(默认为指定是否启用防火墙
指定是否启用锁定在主目录中的用户的列表锁定在主目录中的用户列表文件的路径锁定本地用户在自己的根目录中指定是否启用
user_list文件
YES或NO)
指定黑名单或者白名单的文件路径指定名单是黑名单还是白名单(
vsftpd)ASCII格式上传文件ASCII格式下载文件
YES
20端口进行数据连接
指定用户会话空闲多少时间(秒)后自动断
指定 vsftpd服务器的运行方式,默认为
vsftpd服务器的默认设置是允许本地用户和匿名用户登录,能下载/var/ftp/目录下的文件。默认情况下我们现在将
vsftpd服务器配置为专用的匿名
本地用户默认进入其个人主目录
(/home/账户名),并可以切换到其他有权访问的目录,还可以上传和下载文件。匿名用户只
/var/ftp/目录下没有任何文件。
FTP服务器,仅允许匿名用户登录。匿名用户
可在/var/ftp/pub目录中新建目录、上传和下载文件。输入以下命令:
cd /etc/vsftpd cp vsftpd.conf ls vi
vsftpd.conf
-------------------确认如下参数的值
anonymous_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目录的权限允许其他用户写入文件
ll /var/ftp 确认自己的IP地址:
vsftpd.conf.bak
------------对原始文件进行备份
ifconfig eth0 setup
service network restart service vsftpd 步骤四、测试匿名
start
---启动vsftpd服务
vsftpd服务器
CMD
“tom”(本用户是本地用户)。屏
(1)在windows计算机上,运行菜单项中输入:(2)进入字符界面下,输入:
ftp 192.168.21.1
(3)连接到vsftpd服务器后,输入服务用户名,如:(4)待屏幕出现
幕会提示“530 This FTPserver is anonymous only. login failed”。
ftp提示符“ftp>”时,先输入“close”命令断开这次连接,然后输入
vsftpd服务器。输入匿名用户名“
anonymous”,并
“open 192.168.21.1”命令,再次连接到
(5)在“ftp>”提示符后输入命令:
cd pub mkdir put get bye
-------切换到匿名用户专用目录mydir abc.txt abc.txt
------上传abc.txt文件------下载abc.txt文件
/var/ftp/pub
-------新建一个mydir的目录
在“Password:”后输入口令(邮件地址)或不输入口令直接回车,即可登录到服务器。
-----------关闭FTP命令行工具
vsftpd服务器
Linux用户可以使用的
FTP服务器,用户只能操作其主目录,
步骤五、配置用户专用的
将vsftpd服务器配置成仅vi
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
保存退出。注意:
限制某些本地用户登录服务器有多种方法:
(1)直接编辑vsftpd/ftpusers文件,将禁止登录的用户名写入该文件中;(2)
直接编辑
vsftpd/user_list文件,将禁止登录的用户名写入该文件中,此时在
vsftpd.conf文件中应设置“userlist_enable=yes”和“userlist_deny=yes”语句,
-------------不允许vsftpd/user_list列表中的用户登录
FTP服务器
则vsftpd/user_list文件中指定的用户不能访问
(3)
直接编辑
FTP服务器。
vsftpd/user_list文件,将允许登录的用户名写入该文件中,此时在
FTP服务器。如果某用户同时出
vsftpd.conf文件中应设置“userlist_enable=yes”和“userlist_deny=no”语句,则只允许vsftpd/user_list文件中指定的用户访问
现在vsftpd/ftpusers和vsftpd/user_list文件中,那么该用户将不允许登录。这是因为vsftpd总是先执行vsftpd/user_list,再执行vsftpd/ftpusers文件。
编辑vsftpd/user_list文件,确认不允许登录的用户名单。
vi
/etc/vsftpd/user_list
请注意添加2用户帐户!!!useradd aaa passwd aaa
修改密码
重启vsftpd服务:service vsftpd restart 步骤六、测试用户专用
vsftpd服务器
CMD
“anonymous”。屏幕会提示“530
(1)在windows计算机上,运行菜单项中输入:(2)进入字符界面下,输入:Login incorrect. login failed”。
(4)待屏幕出现
ftp 192.168.21.1
(3)连接到vsftpd服务器后,输入服务用户名,如:
ftp提示符“ftp>”时,先输入“close”命令断开这次连接,然后输入
“open 192.168.21.1”命令,再次连接到vsftpd服务器。输入用户名“tom”,并在“Password:”后输入口令后按回车,即可登录到服务器。
(5)在“ftp>”提示符后输入命令:
pwd ----------查看用户主目录cd /etc mkdir put get bye
mydir abc.txt abc.txt
-------屏幕会提示用户无权操作
-------新建一个mydir的目录------上传abc.txt文件------下载abc.txt文件vsftpd服务器
PAM认证机制实现了虚拟用户的功
/etc/passwd
anonymous或ftp ),
-----------关闭FTP命令行工具
步骤七、配置虚拟账号
VSFTPD服务器提供了对虚拟用户的支持,它采用能。所谓虚拟用户,是指用户本身不是系统本地用户
(即该用户账号信息不存在于
文件中),也不是匿名用户(因为匿名用户登录时都采用统一的用户名
每个虚拟用户都可以有自己特定的用户名称,且虚拟用户名称都存放于独立的账号数据库中。在验证时,VSFTPD需要一个系统用户的身份来读取数据库文件或数据库服务器以完成验证过程,这就是
(1)
VSFTPD的guest用户。正如匿名用户也需要一个系统用户
ftp一样,也
可以把guest用户看成是虚拟用户在系统中的代表。
首先我们创建虚拟用户数据库文件Vi
/etc/virtuserdb.txt virtuser1 user001
virtuser2 user002 virtuser3
user003
保存退出。该文件的奇数行为虚拟用户名,偶数行为相应的口令。
然后执行如下命令生成虚拟用户数据库文件,并改变虚拟用户数据库文件的权限。
db_load -T -t chmod
(2)
Vi
hash -f /etc/virtuserdb.txt
/etc/vsftpd/vsftpd.db
600 /etc/vsftpd/vsftpd.db
PAM论证文件。
db=/etc/vsftpd/vsftpd
db=/etc/vsftpd/vsftpd
创建PAM认证文件,创建虚拟用户使用的
/etc/pam.d/vsftpd.virtual auth required account required
/lib/security/pam_userdb.so
/lib/security/pam_userdb.so
该PAM认证配置文件中有两条规则:第一条规则的功能是设置利用pam_userdb.so模块来进行身份认证,主要是接受用户名和口令,进而对该用户的口令进行认证,并负责设置用户的一些秘密信息。其中采用的数据库是/etc/vsftpd/vsftpd.db文件(此处省略了文件名后面的“间限制等,设置在进行账号授权时采用的数据库也是
(3)
useradd chmod
(4)
Vi
-d /var/virtuser 744 /var/virtuser
virtuser
.db”);第二条规则的功/etc/vsftpd/vsftpd.db文件
能是检查账户是否被允许登录系统,账号是否已经过期,账号的登录是否有时创建虚拟用户所对应的真实账号及其所登录的目录,并设置相应的权限。
编辑/etc/vsftpd/vsftpd.conf文件,增加或修改的内容如下:
/etc/vsftpd/vsftpd.conf guest_enable=YES guest_username=virtuser
….修改原文件中的所采用的文件名称。
保存退出。
………….激活虚拟用户登录功能………指定虚拟用户所对应的真实用户pam_service_name值,设置PAM认证时
pam_service_name=vsftpd.virtual
步骤八、测试虚拟账户vsftpd服务器
CMD
“virtuser”。并在“Password:”后
(1)在windows计算机上,运行菜单项中输入:(2)进入字符界面下,输入:
ftp 192.168.21.1
(3)连接到vsftpd服务器后,输入服务用户名,如:输入口令后按回车,即可登录到服务器。
(5)在“ftp>”提示符后输入命令:
pwd ----------查看用户主目录put get bye
注意:
有两点需要说明,一是vsftpd指定虚拟用户登录后,
abc.txt abc.txt
------上传abc.txt文件------下载abc.txt文件
-----------关闭FTP命令行工具
本地用户就不能登录了;
二是虚拟
用户在某种程度中更接近于匿名用户,包括上传、下载、修改文件名、删除文件等配置所使
用的指令与匿名用户的指令是相同的。下指令:
anon_upload_enable=YES
例如,如果要允许虚拟用户上传文件,则需要采用如