Professional Documents
Culture Documents
RedHat9-vsftp 配置大全
使用者的预设目录为/home/username,若是我们不希望使用者
在 ftp 时能够 切换到上一层目录/home,则可参考以下步骤。
Step1. 修改/etc/vsftpd/vsftpd.conf
将底下三行
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
改为
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
Step2. 新增一个档案: /etc/vsftpd/chroot_list
内容增加两行:
peter
john
Step3. 重新启动 vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
若是 peter 欲切换到根目录以外的目录,则会出现以下警告:
ftp> cd /home
550 Failed to change directory.
royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程
3.2.4. 取消 anonymous 登入
若是读者的主机不希望使用者匿名登入,则可参考以下步骤。
Step1. 修改/etc/vsftpd/vsftpd.conf
将
anonymous_enable=YES
改为
anonymous_enable=NO
Step2. 重新启动 vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
3.2.5. 安排欢迎话语
若是我们希望使用者在登入时,能够看到欢迎话语,可能包括对该主
机的说明,或是目录的介绍,可参考以下步骤。
首先确定在/etc/vsftpd/vsftpd.conf 当中是否有底下这一行
dirmessage_enable=YES
RedHat9 的默认值是有上面这行的。
接着,在各目录之中,新增名为.message 的档案,再这边假设有
一个使用者 test1,且此使用者的根目录下有个目录名为 abc,那首
先我们在/home/test1
之下新增.message,内容如下:
Hello~ Welcome to the home directory
royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程
者所能使用的最高速度为 50KBytes/s
Step1. 修改/etc/vsftpd/vsftpd.conf
新增底下两行
anon_max_rate=50000
local_max_rate=200000
Step2. 重新启动 vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
在这边速度的单位为 Bytes/s,其中 anon_max_rate 所限制的
是匿名登入的使用者,而 local_max_rate 所限制的是本机的使用
者。VSFTPD 对于速度的限制,范围大概在 80%到 120%之间,
也就是我们限制最高速度为 100KBytes/s,但实际的速度可能在
80KBytes/s 到 120KBytes/s 之间,当然,若是频宽不足时,
数值会低于此限制。
3.2.8. 针对不同的使用者限制不同的速度:假设 test1 所能使用的
最 高 速 度 为 250KBytes/s , test2 所 能 使 用 的 最 高 速 度 为
500KBytes/s。
Step1. 修改/etc/vsftpd/vsftpd.conf
新增底下一行
user_config_dir=/etc/vsftpd/userconf
Step2. 新增一个目录:/etc/vsftpd/userconf
royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程
mkdir /etc/vsftpd/userconf
Step3. 在/etc/vsftpd/userconf 之下新增一个名为 test1
的档案内容增加一行:
local_max_rate=250000
Step4. 在/etc/vsftpd/userconf 之下新增一个名为 test2
的档案内容增加一行:
local_max_rate=500000
Step5. 重新启动 vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
3.2.9-1. 建置一个防火墙下的 ftp server,使用 PORT FTP
mode:预设的 ftp port:21 以及 ftp data port:20
启动 VSFTPD 之后执行以下两行指令,只允许 port 21 以及 port
20 开放, 其它关闭。
iptables -A INPUT -p tcp -m multiport --dport 21,20 -j
ACCEPT
iptables -A INPUT -p tcp -j REJECT --reject-with
tcp-reset
3.2.9-2. 建置一个防火墙下的 ftp server,使用 PORT FTP
mode:ftp port:2121
以及 ftp data port:2020
royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程
可执行以下步骤。这是简易的防火墙设定。
Step1. 确定/etc/vsftpd/vsftpd.conf 之中 tcp_wrappers
的设定为 YES,如下图所示:
tcp_wrappers=YES
这是 RedHat9 的默认值,基本上不需修改。
Step2. 重新启动 vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
Step3. 设定/etc/hosts.allow,譬如提供 111.22.33.4 以及
10.1.1.1 到 10.1.1.254 连线,则可做下图之设定:
vsftpd : 111.22.33.4 10.1.1. : allow
ALL : ALL : DENY
8.2.12. 将 vsftpd 并入 XINETD
若是读者希望将 vsftpd 并入 XINETD 之中,也就是 7.x 版的预
设设定,那么读者可以执行以下步骤。
Step1. 修改/etc/vsftpd/vsftpd.conf
将
listen=YES
改为
listen=NO
Step2. 新增一个档案: /etc/xinetd.d/vsftpd
royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程
内容如下:
service vsftpd
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
port = 21
log_on_success += PID HOST DURATION
log_on_failure += HOST
}
Step3. 重新启动 xinetd
[root@home vsftpd]# /sbin/service xinetd restart
Stopping xinetd: OK ]
Starting xinetd: OK ]
3.2.3 设定档说明
在范例中,有些省略的设定可以在这边找到,譬如联机的总数、同一
个位址的联机数、显示档案拥有者的名称等等,希望读者细读后,可
以做出最适合自己的设定。
格式
vsftpd.conf 的内容非常单纯,每一行即为一项设定。若是空白行
royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程
或是开头为#的一行,
将会被忽略。内容的格式只有一种,如下所示
option=value
要注意的是,等号两边不能加空白,不然是不正确的设定。
===ascii 设定=====================
ascii_download_enable
管控是否可用 ASCII 模式下载。默认值为 NO。
ascii_upload_enable
管控是否可用 ASCII 模式上传。默认值为 NO。
===个别使用者设定===================
chroot_list_enable
如果启动这项功能,则所有的本机使用者登入均可进到根目录之外的
数据夹,除了列
在/etc/vsftpd.chroot_list 之中的使用者之外。默认值为 NO。
userlist_enable
用法:YES/NO
若是启动此功能,则会读取/etc/vsftpd.user_list 当中的使用者
名称。此项功能可以在询
问密码前就出现失败讯息,而不需要检验密码的程序。默认值为关闭。
userlist_deny
用法:YES/NO
这个选项只有在 userlist_enable 启动时才会被检验。如果将这个
royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程
chroot_local_user
如果设定为 YES,那么所有的本机的使用者都可以切换到根目录以外
的数据夹。预设值为 NO。
hide_ids
如果启动这项功能,所有档案的拥有者与群组都为 ftp,也就是使用
者登入使用 ls -al 之类的指令,
所看到的档案拥有者跟群组均为 ftp。
默认值为关闭。
ls_recurse_enable
若是启动此功能,则允许登入者使用 ls -R 这个指令。默认值为 NO。
write_enable
用法:YES/NO
这个选项可以控制 FTP 的指令是否允许更改 file system,譬如
STOR、DELE、RNFR、RNTO、MKD、RMD、APPE 以及 SITE。
预设是关闭。
setproctitle_enable
用法:YES/NO
启动这项功能,vsftpd 会将所有联机的状况已不同的 process 呈
现出来,换句话说,使用 ps -ef 这类的指令就可以看到联机的状态。
默认值为关闭。
tcp_wrappers
用法:YES/NO
如果启动,则会将 vsftpd 与 tcp wrapper 结合,也就是可以在
royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程
/etc/hosts.allow 与
/etc/hosts.deny 中定义可联机或是拒绝的来源地址。
pam_service_name
这边定义 PAM 所使用的名称,预设为 vsftpd。
secure_chroot_dir
这个选项必须指定一个空的数据夹且任何登入者都不能有写入的权
限,当 vsftpd 不需 要 file system 的权限时,就会将使用者限
制在此数据夹中。默认值为/usr/share/empty
===纪录文件设定=====================
xferlog_enable
用法:YES/NO
如果启动,上传与下载的信息将被完整纪录在底下 xferlog_file 所
定义的档案中。预设为开启。
xferlog_file
这 个 选 项 可 设 定 纪 录 文 件 所 在 的 位 置 , 默 认 值 为
/var/log/vsftpd.log。
xferlog_std_format
如 果 启 动 , 则 纪 录 文 件 将 会 写 为 xferlog 的 标 准 格 式 , 如 同
wu-ftpd 一般。默认值为关闭。
===逾时设定======================
accept_timeout
接受建立联机的逾时设定,单位为秒。默认值为 60。
royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程
connect_timeout
响应 PORT 方式的数据联机的逾时设定,单位为秒。默认值为 60。
data_connection_timeout
建立数据联机的逾时设定。默认值为 300 秒。
idle_session_timeout
发呆的逾时设定,若是超出这时间没有数据的传送或是指令的输入,
则会强迫断线, 单位为秒。默认值为 300。
===速率限制======================
anon_max_rate
匿名登入所能使用的最大传输速度,单位为每秒多少 bytes,0 表
示不限速度。默认值 为 0。
local_max_rate
本机使用者所能使用的最大传输速度,单位为每秒多少 bytes,0 表
示不限速度。预设 值为 0。
===新增档案权限设定==================
anon_umask
匿名登入者新增档案时的 umask 数值。默认值为 077。
file_open_mode 上传档案的权限,与 chmod 所使用的数值相
同。默认值为 0666。
local_umask
本机登入者新增档案时的 umask 数值。默认值为 077。
===port 设定======================
royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程
connect_from_port_20
用法:YES/NO
若设为 YES,则强迫 ftp-data 的数据传送使用 port 20。默认值
为 YES。
ftp_data_port
设定 ftp 数据联机所使用的 port。默认值为 20。
listen_port
FTP server 所使用的 port。默认值为 21。
pasv_max_port
建立资料联机所可以使用 port 范围的上界,0 表示任意。默认值为
0。
pasv_min_port
建立资料联机所可以使用 port 范围的下界,0 表示任意。默认值为
0。
===其它========================
anon_root
使用匿名登入时,所登入的目录。默认值为无。
local_enable
用法:YES/NO
启动此功能则允许本机使用者登入。默认值为 YES。
local_root
本机使用者登入时,将被更换到定义的目录下。默认值为无。
royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程
text_userdb_names
用法:YES/NO
当使用者登入后使用 ls -al 之类的指令查询该档案的管理权时,预
设会出现拥有者的 UID,而不是该档案拥有者的名称。若是希望出
现拥有者的名称,则将此功能开启。 默认值为 NO。
pasv_enable
若是设为 NO,则不允许使用 PASV 的模式建立数据的联机。默认
值为开启。
===更换档案所有权===================
chown_uploads
用法:YES/NO
若是启动,所有匿名上传数据的拥有者将被更换为
chown_username 当中所设定的使用者。这样的选项对于安全及
管理,是很有用的。默认值为 NO。
chown_username
这里可以定义当匿名登入者上传档案时,该档案的拥有者将被置换的
使用者名称。预设值为 root。
===guest 设定=====================
guest_enable
用法:YES/NO
若是启动这项功能,所有的非匿名登入者都视为 guest。默认值为关
闭。
royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程
guest_username
这里将定义 guest 的使用者名称。默认值为 ftp。
===anonymous 设定==================
anonymous_enable
用法:YES/NO
管控使否允许匿名登入,YES 为允许匿名登入,NO 为不允许。默
认值为 YES。
no_anon_password
若是启动这项功能,则使用匿名登入时,不会询问密码。默认值为
NO。
anon_mkdir_write_enable
用法:YES/NO
如果设为 YES,匿名登入者会被允许新增目录,当然,匿名使用者必
须要有对上层目录的写入权。默认值为 NO。
anon_other_write_enable
用法:YES/NO
如果设为 YES,匿名登入者会被允许更多于上传与建立目录之外的权
限,譬如删除或是更名。默认值为 NO。
anon_upload_enable
用法:YES/NO
如果设为 YES,匿名登入者会被允许上传目录的权限,当然,匿名使
用者必须要有对上层目录的写入权。默认值为 NO。
royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程
anon_world_readable_only
用法:YES/NO
如果设为 YES,匿名登入者会被允许下载可阅读的档案。默认值为
YES。
ftp_username
定义匿名登入的使用者名称。默认值为 ftp。
deny_email_enable
若 是 启 动 这 项 功 能 , 则 必 须 提 供 一 个 档 案
/etc/vsftpd.banner_emails,内容为 email address。若是
使用匿名登入,则会要求输入 email address,若输入的 email
address 在此档案内,则不允许联机。默认值为 NO。
===Standalone 选项==================
listen
用法:YES/NO
若是启动,则 vsftpd 将会以独立运作的方式执行,若是 vsftpd 独
立执行,如 RedHat9 的默认值,则必须启动 若是 vsftpd 包含在
xinetd 之中,则必须关闭此功能,如 RedHat8。在 RedHat9 的
默认值为 YES。
listen_address
若是 vsftpd 使用 standalone 的模式,可使用这个参数定义使用
哪个 IP address 提供这项服务,若是主机上只有定义一个 IP
address,则此选项不需使用,若是有多个 IP
royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程
530 未登入。
532 储存文件需要账户登入。
550 未执行请求的操作。
551 请求的命令终止,类型未知。
552 请求的文件终止,储存位溢出。
553 未执行请求的的命令,名称不正确
royhuan@thizlinux.com.cn