📄 vsftp配置详解 - linuxsky - 信息资讯 - 服务器应用 - ftp服务器.htm
字号:
<BR>(2)如果ftpd_banner和banner_file同时设置,那么banner_file将覆盖ftpd_banner的设置。
<BR><BR>4.配置基本的性能和安全选项 <BR>//设置空闲的用户会话的中断时间
<BR>例如下面的配置: <BR><BR>idle_session_timeout=600
<BR><BR>将在用户会话空闲10分钟后被中断。
<BR><BR>//设置空闲的数据连接的的中断时间 <BR>例如下面的配置:
<BR><BR>data_connection_timeout=120
<BR><BR>将在数据连接空闲2分钟后被中断。
<BR><BR>//设置客户端空闲时的自动中断和激活连接的时间 <BR>例如下面的配置:
<BR><BR>accept_timeout=60 <BR>connect_timeout=60
<BR><BR>将使客户端空闲1分钟后自动中断连接,并在中断1分钟后自动激活连接
<BR><BR>//设置最大传输速率限制 <BR>例如下面的配置:
<BR><BR>local_max_rate=50000
<BR>anon_max_rate=30000
<BR><BR>将使本地用户的最大传输速率为50kbytes / sec,匿名用户的 传输速率为30
kbytes / sec。 <BR><BR>//设置客户端连接时的端口范围 <BR>例如下面的配置:
<BR><BR>pasv_min_port=50000
<BR>pasv_max_port=60000
<BR><BR>将使客户端连接时的端口范围在50000和60000之间。这提高了系统的安全性。
<BR><BR>//设置chroot <BR>在
默认配置中,本地用户可以切换到自家目录以外的目录进行浏览,并在权限许可的范围内进行下载和上传。这样的设置对于一个FTP服务器来说是不安全的。如果希望用户登录后不能切换到自家目录以外的目录,则需要设置chroot选项,涉及如下选项:
<BR><BR>chroot_local_user <BR>chroot_list_enable
<BR>chroot_list_file <BR><BR>有两种设置chroot的方法:
<BR>(1)设置对所有的本地用户执行chroot(即活动范围限制在自家目录)只要将chroot_local_user的值设
为YES即可, 即: <BR><BR>chroot_local_user=YES
<BR><BR>(2)设置指定的用户执行chroot需要如下的设置:
<BR><BR>chroot_local_user=NO
<BR>chroot_list_enable=YES <BR>chroot_list_file=
/etc/vsftpd.chroot_list
<BR><BR>这样,只有/etc/vsftpd.chroot_list文件中指定的用户才执行chroot。
<BR>注意 :上面所提及的文件/etc/vsftpd.chroot_list和下面将要提及的文件
/etc/vsftpd.user_list的格式要求均为每个 用户名占一行。
<BR><BR>5.配置基于本地用户的访问控制
<BR>要配置基于本地用户的访问控制,可以通过修改vsftpd的主配置文件/etc/vsftpd.conf来进行,
有两种限制方法: <BR><BR>1)限制指定的本地用户不能访问,而其他本地用户可访问
<BR>例如下面的设置: <BR><BR>userlist_enable= YES
<BR>userlist_deny=YES <BR>userlist_file=
/etc/vsftpd.user_list
<BR><BR>使文件/etc/vsftpd.user_list中
指定的本地用户不能访问FTP服务器,而其他本地用户可访问FTP服务器。
<BR><BR>2)限制指定的本地用户可以访问,而其他本地用户不可访问 <BR>例如下面的设置:
<BR><BR>userlist_enable= YES <BR>userlist_deny= NO
<BR>userlist_file= /etc/vsftpd.user_list
<BR><BR>使文件/etc/vsftpd.user_list中
指定的本地用户可以访问FTP服务器,而其他本地用户不可以访问FTP服务器。
<BR>注意:对于userlist_enable可以这样理解:
<BR>如果userlist_enable=YES,表示vsftpd将从userlist_file选项给出的文件名中装载一个含有用户名的清单。然后再读取userlist_deny的值来确定vsftpd.user_list中的用户是否允许访问FTP服
务器。如果用户不能访问,将在输入用户口令前被拒绝。 <BR><BR>6.配置基于主机的访问控制
<BR>由于vsftpd有两种运行方式,即:由inetd启动和独立启动。
这两种运行方式的主机访问控制配置是不同的,下面介绍的是由xinetd启动的vsftpd的主机访问控制的配置。显然,要配置这种主机访问控制,需要修改配置文件/etc/xinetd.d/vsftpd。
<BR><BR>1)只允许指定的主机访问
<BR>在配置文件/etc/xinetd.d/vsftpd的{}中添加如下的配置语句:
<BR><BR>only_from <主机表> <BR><BR>例如:only_from
192.168.1.0 <BR>表示只允许192.168.1.0网段内的主机访问。
<BR><BR>2)指定不能访问的主机
<BR>在配置文件/etc/xinetd.d/vsftpd的{}中添加如下的配置语句:
<BR><BR>no_access <主机表> <BR><BR>例如:no_access
192.168.1.0 <BR>表示只有192.168.1.0网段内的主机不能访问。
<BR><BR>关于主机表的书写形式,见下表: <BR>访问控制表时主机表的书写语法 <BR>选项值
含义 <BR>Hostname 可解析的主机名 <BR>IP Address 十进制表示的IP地址
<BR>Net_name 在/etc/networks中定义的网络名 <BR>x.x.x.0
x.x.0.0 x.0.0.0 0.0.0.0
0作为通配符看待。如:191.72.61.0匹配从191.72.61.0到191.72.61.255的所有IP地址。0.0.0.0表示匹配所有的IP地址
<BR>x.x.x.{a,b,.} x.x.{a,b,.} x.{a,b,.}
指定主机表。如:191.72.61.{1,3,123}表示包含地址191.72.61.1、191.72.61.2和191.72.61.123
<BR>IPAddress/netmask
定义要匹配的网络或子网。如:172.19.16/20匹配从172.19.16.0到172.19.31.255
<BR><BR><BR>3)配置每个客户机的最大连结数
<BR>//在置文件/etc/xinetd.d/vsftpd的{}中添加如下的配置语句:
<BR><BR>per_source = 数值 <BR><BR>例如:per_source =
5表示每个客户机的最大连接数为5。 <BR><BR>4)配置服务器总的并发连接数
<BR>在配置文件/etc/xinetd.d/vsftpd的{}中添加如下的配置语句:
<BR><BR>instances = 数值 <BR><BR>例如:instances = 200
表示FTP服务器总共支持的最高连接数为200。 <BR><BR>5)配置访问时间限制
<BR><BR>在配置文件/etc/xinetd.d/vsftpd的{}中添加如下的配置语句:
<BR><BR>access_time = hour:min-hour:min
<BR><BR>例如:access_time = 18:00-23:59
表示只有在下午6点到午夜0点之前才能访问此FTP服务器; <BR>又如:access_time =
8:30-11:30 13:00-18:00
表示只有在上午8点半到11点半和下午1点到下午6点才能访问此FTP服务器。
<BR><BR>6)指定连接失败时显示的信息
<BR>在配置文件/etc/xinetd.d/vsftpd的 {}中添加如下的配置语句:
<BR><BR>banner_fail =文件名 <BR><BR>例如:banner_fail =
/etc/vsftpd.busy_banner
表示当连接失败时显示文件/etc/vsftpd.busy_banner中的内容。
<BR>可以用下面的命令生成文件/etc/vsftpd.busy_banner:
<BR><BR>echo "421 Server busy, please try
later."> /etc/vsftpd.busy_banner
<BR><BR><BR>下面内容是基于xinetd的,因为debian用的是inetd,所以懒得修改了:(
<BR><BR>四、使用vsftpd配置高安全级别的匿名服务器
<BR>高安全级别匿名FTP服务器的配置要求: <BR><BR>仅仅允许匿名用户访问
<BR>不允许本地用户访问 <BR>关闭所有写权限 <BR>不允许匿名用户上传
<BR>设置客户端连接时的端口范围 <BR>设置匿名用户的最大传输速率限制
<BR>设置空闲的数据连接的中断时间 <BR>设置客户端空闲时的自动中断和激活连接的时间
<BR>配置每个主机的最大连接数 <BR>配置总的并发连接数 <BR>配置禁止访问的主机
<BR>配置安全日志 <BR><BR>vsftpd推荐使用这种近乎于偏执的安全
配置,如果用户只想架设匿名FTP下载服务器,出于安全性的考虑,请参考使用这种谨慎配置。
<BR><BR>这种安全匿名服务器的配置,可以从vsftpd的源代码树中获得,具体操作步骤如下:
<BR><BR>进入vsftp源代码树的EXAMPLE/INTERNET_SITE目录复制默认配置文件:
<BR># cd
/usr/local/src/vsftpd-1.1.3/EXAMPLE/INTERNET_SITE
<BR># cp vsftpd.conf /etc <BR># cp vsftpd.xinetd
/etc/xinetd.d/vsftpd
<BR>//修改主配置文件/etc/vsftpd.conf,添加一 个连接后的信息 <BR>#
cat >>/etc/vsftpd.conf < >
ftpd_banner=This FTP server is anonymous only.
<BR>> ! <BR>//显示主配置文件的内容如下: <BR># cat
/etc/vsftpd.conf <BR># Access rights
<BR>anonymous_enable=YES <BR>local_enable=NO
<BR>write_enable=NO <BR>anon_upload_enable=NO
<BR>anon_mkdir_write_enable=NO
<BR>anon_other_write_enable=NO <BR># Security
<BR>anon_world_readable_only=YES
<BR>connect_from_port_20=YES <BR>hide_ids=YES
<BR>pasv_min_port=50000 <BR>pasv_max_port=60000
<BR># Features <BR>xferlog_enable=YES
<BR>ls_recurse_enable=NO
<BR>ascii_download_enable=NO
<BR>async_abor_enable=YES <BR># Performance
<BR>one_process_model=YES
<BR>idle_session_timeout=120
<BR>data_connection_timeout=300
<BR>accept_timeout=60 <BR>connect_timeout=60
<BR>anon_max_rate=50000 <BR>ftpd_banner=This FTP
server is anonymous only.
<BR><BR>//接下来查看/etc/xinetd.d/vsftpd <BR># cat
/etc/xinetd.d/vsftpd <BR><BR>service ftp <BR>{
<BR>disable = no <BR>socket_type = stream <BR>wait
= no <BR>user = root <BR>server =
/usr/local/sbin/vsftpd <BR>per_source = 5
<BR>instances = 200 <BR>no_access = 192.168.1.3
<BR>banner_fail = /etc/vsftpd.busy_banner
<BR>log_on_success += PID HOST DURATION
<BR>log_on_failure += HOST <BR>} <BR>//重新启动xinetd
<BR><BR># service xinetd restart <BR><BR>//配置结束
<BR><BR><BR>五、配置基于IP的虚拟FTP服务器
<BR><BR>vsftpd支持基于IP的虚拟FTP服务器配置。其主要配置步骤为:
<BR><BR>配置虚拟IP地址 <BR>建立虚拟FTP的服务器目录并设置适当的权限
<BR>建立虚拟FTP的服务器的xinetd配置文件 <BR>建立虚拟FTP的服务器的主配置文件
<BR><BR>注意:虚拟FTP的服务器要有单独的xinetd配置文件和单独的主配置文件,
这两个文件不能与原配置文件重名。 <BR><BR><BR><BR><BR><BR>具体操作过程如下:
<BR><BR><BR><BR><BR><BR>1.查看本机现有的IP地址
<BR><BR><BR># ifconfig |grep -1 eth0
<BR><BR><BR>eth0 Link encap:Ethernet HWaddr
00:50:56:C7:22:DF <BR><BR><BR>inet
addr:192.168.1.222 Bcast:192.168.1.255
Mask:255.255.255.0
<BR><BR><BR>//可以看出本机的第一个网络接口eth0的IP为192.168.1.222
<BR><BR><BR>2.配置一个虚拟网络接口eth0:1 <BR><BR><BR>#
ifconfig eth0:1 192.168.1.234 up <BR><BR><BR>#
ifconfig |grep -1 eth0:1 <BR><BR><BR>eth0:1 Link
encap:Ethernet HWaddr 00:50:56:C7:22:DF
<BR><BR><BR>inet addr:192.168.1.234
Bcast:192.168.1.255 Mask:255.255.255.0
<BR><BR><BR>//可以看出本机的虚拟网络接口eth0:1的IP为192.168.1.234
<BR><BR><BR><BR><BR><BR>3.建立虚拟FTP的服务器目录
<BR><BR><BR># mkdir -p /var/ftp2/pub
<BR><BR><BR>//确保目录具有如下的权限 <BR><BR><BR># ll -d
/var/ftp2 <BR><BR><BR>drwxr-xr-x 3 root root 4096
3月12 03:00 /var/ftp2 <BR><BR><BR># ll -d
/var/ftp2/pub <BR><BR><BR>drwxr-xr-x 2 root root
4096 3月12 03:00 /var/ftp2/pub
<BR><BR><BR><BR><BR><BR>4.创建此虚拟服务器的匿名用户所映射的本地用户ftp2
<BR><BR><BR># useradd -d /var/ftp2 -M ftp2
<BR><BR><BR><BR><BR><BR>5.更改现有的配置文件/etc/xinetd.d/vsftpd
<BR><BR><BR># vi /etc/xinetd.d/vsftpd
<BR><BR><BR>// 在此文件的{}中添加如下的配置语句: <BR><BR><BR>//
bind = 192.168.1.222 <BR><BR><BR>//
将原FTP服务绑定到eth0接口,之后保存退出vi
<BR><BR><BR><BR><BR><BR>6.生成并修改新的虚拟FTP服务器的配置文件/etc/xinetd.d/vsftpd2
<BR><BR><BR># cp /etc/xinetd.d/vsftpd
/etc/xinetd.d/vsftpd2
<BR><BR><BR>//更改新的配置文件/etc/xinetd.d/vsftpd2
<BR><BR><BR># vi /etc/xinetd.d/vsftpd2
<BR><BR><BR>//在此文件的{}中添加如下的配置语句: <BR><BR><BR>bind
= 192.168.1.234 <BR><BR><BR>//将虚拟FTP服务绑定到eth0:1接口
<BR><BR><BR>//另外添加如下的配置语句: <BR><BR><BR>server_args
= /etc/vsftpd_site2.conf
<BR><BR><BR>//使vsftpd读取虚拟FTP服务器的主配置文件,之后保存退出vi
<BR><BR><BR><BR><BR><BR>7.生成并修改虚拟FTP服务器的主配置文件/etc/vsftpd_site2.conf
<BR><BR><BR># cp /etc/vsftpd.conf
/etc/vsftpd_site2.conf <BR><BR><BR>//修改新的主配置文件
<BR><BR><BR># vi /etc/vsftpd_site2.conf
<BR><BR><BR>//将如下的配置语句行:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -