Linux_FTP服务器

  • 格式:doc
  • 大小:56.50 KB
  • 文档页数:7

FTP服务器及基本原理 • FTP服务的基本概念  FTP是用于进行文件传输的网络协议

 FTP服务中分为服务器和客户机两个角色 • FTP 服务器的传输模式

 主动模式:由服务器主动连接客户机建立数据链路

 被动模式:FTP 服务器等待客户机建立数据链路 • FTP 服务器使用的端口

 21 端口用于与客户机建立命令链路

 在主动模式下服务器使用20 端口向客户机建立数据链路 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

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中支持的用户类型 • 匿名用户  使用公共的用户帐号进行登录,通常用于提供公共文件下载服务 • 本地用户  使用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配置文件