通过DHCP服务器可以对局域网中的主机进行IP地址的集中管理 Linux主机作为DHCP客户机,需要在网络接口配置文件中进行设置 使用NIS服务器可以实现Linux系统中用户帐号等系统信息的集中管理 NIS服务器主机中需要运行portmap和ypserv服务程序 NIS客户主机中,需要运行ypbind服务程序
FTP服务器
第2章
本章目标
了解FTP服务的基本概念 了解常用的FTP服务器和FTP客户端软件 掌握vsftpd服务器的配置和管理 掌握使用ftp命令对FTP服务器进行测试
本章结构
FTP服务器及基本原理
FTP服务的基本概念 FTP是用于进行文件传输的网络协议 FTP服务中分为服务器和客户机两个角色 FTP服务器的传输模式 主动模式:由服务器主动连接客户机建立数据链路 被动模式:FTP服务器等待客户机建立数据链路 FTP服务器使用的端口 21端口用于与客户机建立命令链路 在主动模式下服务器使用20端口向客户机建立数据链路
主动模式的连接过程
1:FTP客户机由大于1024的N端口向FTP服务器的21端口发出请求建立命令链路
2:FTP服务器由21端口向FTP客户机的N端口回应,确认建立命令链路
3:FTP服务器由20端口向FTP客户机的N 1端口主动建立数据链路连接
4:FTP客户机由N 1端口向FTP服务器的20端口回应,确认数据链路的建立
被动模式的连接过程
1:FTP客户机由大于1024的N端口向FTP服务器的21端口发出请求建立命令链路
2:FTP服务器由21端口向FTP客户机的N端口回应,确认建立命令链路
3:FTP服务器会通过已建立的数据链路通知客户机自己已经打开了大于1024的端口M,用于建路数据链路;当需要传输数据时,FTP客户机会通过N 1端口向FTP服务器的M端口请求建立数据链路
4:FTP服务器在M端口监听到FTP客户机的连接请求后,将从M端口向FTP客户机的N 1端口确认数据链路的建立
常用FTP服务器软件
Windows下常用的FTP服务器软件 IIS具有FTP服务器的功能 Serv-U是流行的FTP服务器软件 Linux下的FTP服务器 Wu-ftpd出现较早,运行稳定,安全性稍差 Proftpd在配置文件和安全性方面有很大改进 vsftpd着重强调服务的安全性,运行效率也很高 vsftpd服务器是本章学习的重点
ftp命令作为FTP客户端
ftp命令是最基本的FTP客户端软件 在Linux和Windows系统中都默认提供ftp命令 ftp命令的交互环境中使用命令对FTP服务器进行操作 ftp中很多命令与Bash中的命令类似 binary设置传输二进制文件,ascii设置传输文本文件 get命令用于下载文件,put命令用于上传文件 mget和mput用于一次下载或上传多个文件 bye命令可退出ftp命令交互环境
FTP客户端软件
FTP客户端软件的特点 运行在图形环境下的窗口程序 可使用鼠标和通过菜单进行操作 用户界面友好,操作方便 常用FTP客户端软件 CuteFTP是Windows下流行的商业软件 Filezilla是Windows下运行的开源软件 gftp是Linux中GNOME桌面环境中运行的FTP客户端软件,是GNOME的重要组成部分
安装vsftpd
vsftpd的安装需要注意以下几点 RHEL4系统中默认没有安装vsftpd服务器 vsftpd服务器的安装文件位于第1张安装光盘中 安装文件名称是vsftpd-2.0.1-5.i386.rpm 使用rpm命名可顺利安装该软件包 # rpm -ivh vsftpd-2.0.1-5.i386.rpm
vsftpd.conf配置文件
vsftpd.conf是vsftpd服务器的主配置文件 /etc/vsftpd/vsftpd.conf 配置文件中所有的配置项都有相同的格式 anonymous_enable=YES 配置文件中的注释行以“#”开始 配置文件的详细帮助信息可查询手册页 # man vsftpd.conf
vsftpd服务器的缺省配置
vsftpd.conf文件中的缺省配置为: anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES pam_service_name=vsftpd userlist_enable=YES listen=YES tcp_wrappers=YES
anonymous_enable设置为“YES”时FTP服务器允许匿名登录
local_enable设置为“YES”时允许本地用户登录
write_enable设置为“YES”时FTP服务器开放对本地用户的写权限
local_umask设置项设置本地用户的文件生成掩码
dirmessage_enable设置为“YES”时当切换到FTP服务器中的某个目录时,将显示该目录下的.message隐含文件的内容
xferlog_enable设置为“YES”时FTP服务器将启用上传和下载日志
connect_from_port_20设置为“YES”时FTP服务器将启用FTP数据端口的连接请求
xferlog_std_format设置为“YES”时FTP服务器将使用标准的ftpd xferlog日志格式
pam_service_name设置PAM认证服务的配置文件名称
userlist_enable设置为“YES”时FTP服务器将检查userlist_file设置文件中指定的用户是否可以访问vsftpd服务器
listen设置为“YES”时FTP服务器将处于独立启动模式
tcp_wrappers设置为“YES”时FTP服务器将使用tcp_wrappers作为主机访问控制方式
vsftpd.ftpusers文件
vsftpd.ftpusers用于保存不允许进行FTP登录的本地用户帐号 # head -5 /etc/vsftpd.ftpusers # Users that are not allowed to login via ftp root bin daemon adm vsftpd.ftpusers文件中可禁止高权限本地用户登录FTP服务器,提高了系统的安全性
vsftpd.user_list文件
vsftpd.user_list文件具有对vsftpd服务器更灵活的用户访问控制 /etc/vsftpd.user_list 使用vsftpd.user_list文件需要在主配置文件中进行设置 设置禁止vsftpd.user_list文件中的用户登录 userlist_enable=YES userlist_deny=YES 设置只允许vsftpd.user_list文件中的用户登录 userlist_enable=YES userlist_deny=NO
匿名用户登录
vsftpd服务器提供匿名用户登录的功能 匿名用户使用的登录用户名 anonymous ftp 匿名FTP用户登录的口令通常是使用用户的E-mail地址,在vsftpd中输入任何字符串或直接回车都可以登录 所有匿名用户都登录到相同的目录中 /var/ftp FTP服务器的匿名登录可用于构建公共的文件下载服务器
vsftpd服务的启动和关闭
服务器启动脚本 启动脚本名称是vsftpd /etc/init.d/vsftpd vsftpd服务需要设置在运行级别3和5自动启动 # chkconfig --level 35 vsftpd on 服务器启动 # service vsftpd start 服务器停止 # service vsftpd stop 服务器状态查询 # service vsftpd status
使用ftp命令登录FTP服务器
ftp命令登录FTP服务器的格式 # ftp 192.168.1.2 匿名登录 使用用户名anonymous或ftp 登录的FTP根目录为系统目录“/var/ftp” 本地用户登录 使用系统用户帐号和口令登录ftp服务器 登录FTP服务器后的目录为用户宿主目录,用户可转换到系统中的其他目录
FTP本地用户帐号的问题
使用FTP本地用户帐号存在安全性问题 FTP本地用户使用Linux系统用户帐号,存在安全隐患 使用虚拟帐号替代本地用户帐号可以增强系统的安全性 本地用户登录FTP目录后可从宿主目录转换到其他目录,不是很安全 可以设置将本地用户禁锢在宿主目录中
将FTP本地用户禁锢在宿主目录中
在vsftpd.conf文件中添加设置项 chroot_local_user=YES 重新启动vsftpd服务 # service vsftpd restart 使用ftp客户端验证 本地用户登录FTP服务器后,宿主目录将作为根(/)目录
阶段总结
FTP是进行文件传输的网络协议 FTP服务器和客户机软件在Linux和Windows平台都有多种选择 vsftpd是以安全见长的FTP服务器软件 FTP客户端可以是ftp命令或窗口程序 vsftpd服务使用vsftpd.conf文件进行核心配置 vsftpd服务器的启动脚本是vsftpd vsftpd默认配置支持匿名用户登录和本地用户登录
阶段练习
查看vsftpd.conf配置文件的默认设置 使用ftp命令匿名登录FTP服务器
vsftpd中支持的用户类型
匿名用户 使用公共的用户帐号进行登录,通常用于提供公共文件下载服务 本地用户 使用Linux系统用户帐号登录,每个用户都使用各自的宿主目录 虚拟用户 使用独立的文件保存虚拟帐号,安全性较好,可替代本地用户
vsftpd虚拟用户帐号的设置步骤
建立虚拟用户口令库文件 生成vsftpd的认证文件 建立虚拟用户所需的PAM配置文件 建立虚拟用户所要访问的目录并设置相应权限 设置vsftpd.conf配置文件
vsftpd虚拟用户配置3-1
建立虚拟用户口令库文件 口令库文件中奇数行设置用户名,偶数行设置口令 # cat logins.txt mike pwabcd john pw1234 生成vsftpd的认证文件 使用db_load命令生成认证文件 # db_load -T -t hash -f logins.txt \ /etc/vsftpd/vsftpd_login.db 设置认证文件只对用户可读可写 # chmod 600 /etc/vsftpd/vsftpd_login.db
vsftpd虚拟用户配置3-2
建立虚拟用户所需的PAM配置文件 手工建立vsftpd.vu文件 # cat /etc/pam.d/vsftpd.vu auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 建立虚拟用户及要访问的目录并设置相应的权限 建立所有FTP虚拟用户帐号使用的系统用户帐号,并设置该帐号宿主目录的权限 # useradd -d /home/ftpsite virtual # chmod 700 /home/ftpsite/
vsftpd虚拟用户配置3-3
设置vsftpd.conf配置文件 在配置文件中添加虚拟用户的配置内容 guest_enable=YES guest_username=virtual pam_service_name=vsftpd.vu 重新启动vsftpd服务程序 对vsftpd.conf文件修改后需要重新启动vsftpd服务程序 # service vsftpd restart
测试虚拟用户帐号的FTP登录
使用ftp命令登录FTP服务器 使用已配置的虚拟用户名和口令登录FTP服务器,如能够正常登录说明虚拟帐号配置成功 为了系统的安全,缺省配置的虚拟用户只具有较低的用户权限 可以通过为每个虚拟用户建立独立的配置文件增加用户的权限
对虚拟用户设置不同的权限
设置主配置文件 在vsftpd.conf文件中添加用户配置文件目录设置 user_config_dir=/etc/vsftpd_user_conf 建立用户配置文件目录 使用mkdir命令建立用户配置文件目录 # mkdir /etc/vsftpd_user_conf 为虚拟用户建立单独的配置文件 用户配置文件名称与用户名相同 /etc/vsftpd_user_conf/mike /etc/vsftpd_user_conf/john
虚拟用户配置文件中的配置项
每个FTP虚拟用户都可以独立设置其权限 anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
“anon_world_readable_only=NO”表示用户可以浏览FTP目录和下载文件
“anon_upload_enable=YES”表示用户可以上传文件
“anon_mkdir_write_enable=YES”表示用户具有建立和删除目录的权利
“anon_other_write_enable=YES”表示用户具有文件改名和删除文件的权限
配置vsftpd服务器中的资源限制
vsftpd服务器中的资源使用可以进行限制 max_clients=100 max_per_ip=5 local_max_rate=500000 anon_max_rate=200000
max_clients设置项用于设置FTP服务器所允许的最大客户端连接数,值为0时表示不限制
max_per_ip设置项用于设置对于同一IP地址允许的最大客户端连接数,值为0时表示不限制
local_max_rate设置项用于设置本地用户的最大传输速率,单位为bytes/sec,值为0时表示不限制
anon_max_rate设置项用于设置匿名用户的最大传输速率,单位为bytes/sec,值为0表示不限制
阶段总结
vsftpd服务器中可使用匿名用户、本地用户和虚拟用户三种用户类型 FTP服务器中的虚拟用户与本地用户功能类似,但更加安全 vsftpd服务器中使用虚拟用户需要维护独立的用户口令库文件 vsftpd中的每个虚拟用户可以建立用户配置文件用于设置独立的用户权限 vsftpd中可以限制客户机对服务器资源的使用
阶段练习
查看vsftpd.conf的手册页,阅读虚拟用户相关的配置项的说明 查看vsftpd.conf的手册页,阅读FTP服务器资源限制相关配置项的说明
本章总结
FTP服务器及基本原理
ftp命令与FTP客户端软件
安装vsftpd
vsftpd服务器的配置基本
vsftpd服务的启动和关闭
配置FTP服务器的虚拟用户
典型FTP服务器设置
实验
任务1:在vsftpd服务器中配置虚拟用户帐号 任务2:在vsftpd服务器中限制客户机连接数和传输速率
任务1
注意事项 提示1:虚拟用户的口令库文件需要先手工建立文本文件,再使用db_load命令生成 提示2:配置使用虚拟用户需要手工建立PAM认证文件
任务2
注意事项 提示1:在vsftpd.conf配置文件中设置资源限制配置项应明确其含义,否则容易限制错对象 提示2:每次对vsftpd.conf配置文件进行修改后都需要重新启动vsftpd服务使新的配置生效