rss· 投稿· 设为首页· 加入收藏· 繁體版
当前位置: 火魔网 » 操作系统 » Redhat

redhat9-vsftp配置大全

 
 
3.2 vsftp 安全与效能兼备的ftp 服务器 
3.2.1 vsftp 概述 
ftp,file transfer protocol,这是档案传输的通讯协议,也是一般最常用来传送档案的方式。读者在使用redhat9 的时候,可能会感受到ftp server 有一些改变:第一,就是ftp server 只剩下vsftp,原有的wuftp 等都没放入 第二,就是vsftp 从xinetd 中独立出来,并将设定档从/etc/vsftpd.conf 之中移到/etc/vsftpd/vsftpd.conf。 
为什么做这样的改变?可以想见的是vsftp 已有独立运作的能力,不需要xinetd 来做更进一步的管控,并且类似sendmail、httpd、ssh、samba 等,将设定文件的放入/etc 下独立的目录。 
ftp 分为两类,一种为port ftp,也就是一般的ftp 另一类是pasvftp,分述如下: port ftp 
这是一般形式的ftp,首先会建立控制频道,默认值是port 21,也就是跟 
port 21 建立联机,并透过此联机下达指令。第二,由ftp server 端会建立数据 
传输频道,默认值为20,也就是跟port 20 建立联机,并透过port 20 作数据的 
传输。 
pasv ftp 
跟port ftp 类似,首先会建立控制频道,默认值是port 21,也就是跟 
port 21 建立联机,并透过此联机下达指令。第二,会由client 端做出数据传输 
的请求,包括数据传输port 的数字。 
这两者的差异为何?port ftp 当中的数据传输port 是由ftp server 指定, 
而pasv ftp 的数据传输port 是由ftp client 决定。通常我们使用pasv ftp, 
是在有防火墙的环境之下,透过client 与server 的沟通,决定数据传输的port。 
3.2.2 范例 
3.2.1. 直接启动vsftp 服务 
这个范例是套用redhat 的预设范例,直接启动vsftp。 
[root@relay vsftpd]# /sbin/service vsftpd start 
starting vsftpd for vsftpd: ok ] 
3.2.2. 更换port 提供服务:将预设的port 21 更换为2121 
为了安全,或是以port 来区隔不同的ftp 服务,我们可能会将ftp port 改为 
21 之外的port,那么,可参考以下步骤。 
step1. 修改/etc/vsftpd/vsftpd.conf 
新增底下一行 
listen_port=2121 
step2. 重新启动vsftpd 
[root@home vsftpd]# /sbin/service vsftpd restart 
shutting down vsftpd: ok ] 
starting vsftpd for vsftpd: ok ] 
3.2.3. 特定使用者peter、john 不得变更目录 
使用者的预设目录为/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. 
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 
this is for test only... 
接着,在/home/test1/abc 的目录下新增.message,内容如下: 
welcome to abcs directory 
this is subdir... 
那么,当使用者test1 登入时,会看到以下讯息: 
230- hello~ welcome to the home directory 
230- 
230- this is for test only... 
230- 
若是切换到abc 的目录,则会出现以下讯息: 
250- welcome to abcs directory 
250- 
250- this is subdir ... 
3.2.6. 对于每一个联机,以独立的process 来运作 
一般启动vsftp 时,我们只会看到一个名为vsftpd 的process 在运作,但若 
是读者希望每一个联机,都能以独立的process 来呈现,则可执行以下步骤。 
step1. 修改/etc/vsftpd/vsftpd.conf 
新增底下一行 
setproctitle_enable=yes 
step2. 重新启动vsftpd 
[root@home vsftpd]# /sbin/service vsftpd restart 
shutting down vsftpd: ok ] 
starting vsftpd for vsftpd: ok ] 
使用ps -ef 的指令,可以看告不同使用者联机的情形,如下图所示: 
[root@home vsftpd]# ps -ef|grep ftp 
root 2090 1 0 16:41 pts/0 00:00:00 vsftpd: listener 
nobody 2120 2090 0 17:18 ? 00:00:00 vsftpd: 192.168.10.244: 
connected 
test1 2122 2120 0 17:18 ? 00:00:00 vsftpd: 192.168.10.244/test1: 
idle 
nobody 2124 2090 0 17:19 ? 00:00:00 vsftpd: 192.168.10.244: 
connected 
test2 2126 2124 0 17:19 ? 00:00:00 vsftpd: 192.168.10.244/test2: 
idle 
root 2129 1343 0 17:20 pts/0 00:00:00 grep ftp 
[root@home vsftpd]# 
3.2.7. 限制传输档案的速度:本机的使用者最高速度为200kbytes/s,匿名登入 
者所能使用的最高速度为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 
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 
step1. 执行以下两行指令,只允许port 2121 以及port 2020 开放,其它关闭。 
iptables -a input -p tcp -m multiport --dport 2121,2020 -j accept 
iptables -a input -p tcp -j reject --reject-with tcp-reset 
step2. 修改/etc/vsftpd/vsftpd.conf 
新增底下两行 
listen_port=2121 
ftp_data_port=2020 
step3. 重新启动vsftpd 
[root@home vsftpd]# /sbin/service vsftpd restart 
shutting down vsftpd: ok ] 
starting vsftpd for vsftpd: ok ] 
在这边要注意,8、9 两个例子中,ftp client(如cuteftp)的联机方式不能 
够选择passive mode,否则无法建立数据的联机。也就是读者可以连上ftp 
server,但是执行ls、get 等等的指令时,便无法运作。 
3.2.10. 建置一个防火墙下的ftp server,使用pass ftp mode:ftp port:2121 
以及ftp data port 从9981 到9986。 
step1. 执行以下两行指令,只允许port 2121 以及port 9981-9990 开放,其它关 
闭。 
iptables -a input -p tcp -m multiport --dport 
2121,9981,9982,9983,9984,9985,9986,9987,9988,9989,9990 -j accept 
iptables -a input -p tcp -j reject --reject-with tcp-reset 
step2. 修改/etc/vsftpd/vsftpd.conf 
新增底下四行 
listen_port=2121 
pasv_enable=yes 
pasv_min_port=9981 
pasv_max_port=9986 
step3. 重新启动vsftpd 
[root@home vsftpd]# /sbin/service vsftpd restart 
shutting down vsftpd: ok ] 
starting vsftpd for vsftpd: ok ] 
在这边要注意,在10 这个例子中,ftp client(如cuteftp)的联机方式必须 
选择passive mode,否则无法建立数据的联机。也就是读者可以连上ftp 
server,但是执行ls,get 等等的指令时,便无法运作。 
8.2.11. 将vsftpd 与tcp_wrapper 结合 
若是读者希望直接在/etc/hosts.allow 之中定义允许或是拒绝的来源地址, 
可执行以下步骤。这是简易的防火墙设定。 
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 
内容如下: 
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 的内容非常单纯,每一行即为一项设定。若是空白行或是开头为#的一行, 
将会被忽略。内容的格式只有一种,如下所示 
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 启动时才会被检验。如果将这个选项设为yes,则在 
/etc/vsftpd.user_list 中的使用者将无法登入 若设为no , 则只有在 
/etc/vsftpd.user_list 中的使用者才能登入。而且此项功能可以在询问密码前就出现错误 
讯息,而不需要检验密码的程序。 
user_config_dir 
定义个别使用者设定文件所在的目录,例如定义user_config_dir=/etc/vsftpd/userconf, 
且主机上有使用者test1,test2,那我们可以在user_config_dir 的目录新增文件名为 
test1 以及test2。若是test1 登入,则会读取user_config_dir 下的test1 这个档案内的设 
定。默认值为无。 
===欢迎语设定===================== 
dirmessage_enable 
如果启动这个选项,使用者第一次进入一个目录时,会检查该目录下是否有.message 
这个档案,若是有,则会出现此档案的内容,通常这个档案会放置欢迎话语,或是对 
该目录的说明。默认值为开启。 
banner_file 
当使用者登入时,会显示此设定所在的档案内容,通常为欢迎话语或是说明。默认值 
为无。 
ftpd_banner 
这边可定义欢迎话语的字符串,相较于banner_file 是档案的形式,而ftpd_banner 是字 
串的格式。预设为无。 
===特殊安全设定==================== 
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 结合,也就是可以在/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。 
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 设定====================== 
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 
本机使用者登入时,将被更换到定义的目录下。默认值为无。 
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。默认值为关闭。 
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。 
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 
address,可定义在哪个ip address 上提供ftp 服务。若是不设定,则所有的ip address 
均会提供此服务。默认值为无。 
max_clients 
若是vsftpd 使用standalone 的模式,可使用这个参数定义最大的总联机数。超过这个 
数目将会拒绝联机,0 表示不限。默认值为0。 
max_per_ip 
若是vsftpd 使用standalone 的模式,可使用这个参数定义每个ip address 所可以联机 
的数目。超过这个数目将会拒绝联机,0 表示不限。默认值为0。 
============================= 
3.2.4 ftp 数字代码的意义 
110 重新启动标记应答。 
120 服务在多久时间内ready。 
125 数据链路埠开启,准备传送。 
150 文件状态正常,开启数据连接端口。 
200 命令执行成功。 
202 命令执行失败。 
211 系统状态或是系统求助响应。 
212 目录的状态。 
213 文件的状态。 
214 求助的讯息。 
215 名称系统类型。 
220 新的联机服务ready。 
221 服务的控制连接埠关闭,可以注销。 
225 数据连结开启,但无传输动作。 
226 关闭数据连接端口,请求的文件操作成功。 
227 进入passive mode。 
230 使用者登入。 
250 请求的文件操作完成。 
257 显示目前的路径名称。 
331 用户名称正确,需要密码。 
332 登入时需要账号信息。 
350 请求的操作需要进一部的命令。 
421 无法提供服务,关闭控制连结。 
425 无法开启数据链路。 
426 关闭联机,终止传输。 
450 请求的操作未执行。 
451 命令终止:有本地的错误。 
452 未执行命令:磁盘空间不足。 
500 格式错误,无法识别命令。 
501 参数语法错误。 
502 命令执行失败。 
503 命令顺序错误。 
504 命令所接的参数不正确。 
530 未登入。 
532 储存文件需要账户登入。 
550 未执行请求的操作。 
551 请求的命令终止,类型未知。 
552 请求的文件终止,储存位溢出。 
553 未执行请求的的命令,名称不正确

  VSFTPD的菜鸟篇

  作者:龙磊

  这是我这个菜鸟学习LINUX所写的第一篇文章,是比较基础的FTP架设的应用,如果我写有什么问题请大家多指教,我后续会陆续出进阶篇把FTP中各种详细的配置跟大家一起进行探讨。

  我所用的是LINUX AS+VSFTPD-1.2.0-4的系统架构,在这里说明的是如果对配置文件不是很熟悉,最好做个备份,以免误操作:

  1. 匿名服务器的连接(独立的服务器)

  在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项:

  Anonymous_enable=yes (允许匿名登陆)

  Dirmessage_enable=yes (切换目录时,显示目录下.message的内容)

  Local_umask=022 (FTP上本地的文件权限,默认是077)

  Connect_form_port_20=yes (启用FTP数据端口的数据连接)*

  Xferlog_enable=yes (激活上传和下传的日志)

  Xferlog_std_format=yes (使用标准的日志格式)

  Ftpd_banner=XXXXX (欢迎信息)

  Pam_service_name=vsftpd (验证方式)*

  Listen=yes (独立的VSFTPD服务器)*

  功能:只能连接FTP服务器,不能上传和下传

  注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项

  2. 开启匿名FTP服务器上传权限

  在配置文件中添加以下的信息即可:

  Anon_upload_enable=yes (开放上传权限)

  Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)

  Write_enable=yes (开放本地用户写的权限)

  Anon_other_write_enable=yes (匿名帐号可以有删除的权限)

  3. 开启匿名服务器下传的权限

  在配置文件中添加如下信息即可:

  Anon_world_readable_only=no

  注:要注意文件夹的属性,匿名帐户是其它(other)用户要开启它的读写执行的权限

  (R)读-----下传 (W)写----上传 (X)执行----如果不开FTP的目录都进不去

  4.普通用户FTP服务器的连接(独立服务器)

  在配置文件中添加如下信息即可:

  Local_enble=yes (本地帐户能够登陆)

  Write_enable=no (本地帐户登陆后无权删除和修改文件)

  功能:可以用本地帐户登陆vsftpd服务器,有下载上传的权限

  注:在禁止匿名登陆的信息后匿名服务器照样可以登陆但不可以上传下传

  5. 用户登陆限制进其它的目录,只能进它的主目录

  设置所有的本地用户都执行chroot

  Chroot_local_user=yes (本地所有帐户都只能在自家目录)

  设置指定用户执行chroot

  Chroot_list_enable=yes (文件中的名单可以调用)

  Chroot_list_file=/任意指定的路径/vsftpd.chroot_list

  注意:vsftpd.chroot_list 是没有创建的需要自己添加,要想控制帐号就直接在文件中加帐号即可

  6. 限制本地用户访问FTP

  Userlist_enable=yes (用userlistlai 来限制用户访问)

  Userlist_deny=no (名单中的人不允许访问)

  Userlist_file=/指定文件存放的路径/ (文件放置的路径)

  注:开启userlist_enable=yes匿名帐号不能登陆

  7. 安全选项

  Idle_session_timeout=600(秒) (用户会话空闲后10分钟)

  Data_connection_timeout=120(秒) (将数据连接空闲2分钟断)

  Accept_timeout=60(秒) (将客户端空闲1分钟后断)

  Connect_timeout=60(秒) (中断1分钟后又重新连接)

  Local_max_rate=50000(bite) (本地用户传输率50K)

  Anon_max_rate=30000(bite) (匿名用户传输率30K)

  Pasv_min_port=50000 (将客户端的数据连接端口改在

  Pasv_max_port=60000 50000―60000之间)

  Max_clients=200 (FTP的最大连接数)

  Max_per_ip=4 (每IP的最大连接数)

  Listen_port=5555 (从5555端口进行数据连接)

  8. 查看谁登陆了FTP,并杀死它的进程

  ps Cxf |grep ftp

  kill 进程号

  VSFTPD的高手篇

  作者:龙磊

  我可不是高手!!!^_^我只不过是个菜鸟,尽我的能力写出了我这个菜鸟觉得的高手篇,所以有什么错误请大家指正哦!!!

  环境:linux as 3.0 + vsftpd -1.2.0-4的系统架构,是在独立服务器下的哦!讨厌XINETD^_^

  1. 配置本地组访问的FTP

  首先创建用户组 test和FTP的主目录

  groupadd test

  mkdir /tmp/test

  然后创建用户

  useradd -G test Cd /tmp/test CM usr1

  注:G:用户所在的组 d:表示创建用户的自己目录的位置给予指定

  M:不建立默认的自家目录,也就是说在/home下没有自己的目录

  useradd CG test Cd /tmp/test CM usr2

  接着改变文件夹的属主和权限

  chown usr1.test /tmp/test ----这表示把/tmp/test的属主定为usr1

  chmod 750 /tmp/test ----7表示wrx 5表示rx 0表示什么权限都没有

  这个实验的目的就是usr1有上传、删除和下载的权限

  而usr2只有下载的权限没有上传和删除的权限

  当然啦大家别忘了我们的主配置文件vsftpd.conf

  要确定local_enable=yes、write_enable=yes、chroot_local_usr=yes这三个选项是有的哦!

  2. 配置独立FTP的服务器的非端口标准模式进行数据连接

  这个非常容易:在VSFTPD。CONF中添加

  Listen_port=33333

  就可以了啦!

  好了重头戏来了,这也是我为什么叫高手篇的缘故!^_^(大家不要扔鸡蛋哦!)

  3. 配置单独的虚拟FTP,使用虚拟FTP用户,并使建立的四个帐户中有不同的权限

  (两个有读目录的权限,一个有浏览、上传、下载的权限,一个有浏览、下载、删除和改文件名的权限)

  A:配置网卡

  第一块网卡地址是10.2.3.4 掩码是255.255.0.0

  ifconfig eth0:1 211.131.4.253 netmask 255.255.255.0 up

  B:写入/etc/sysconfig中(为了重起后IP地址不会丢失)

  cd /etc/sysconfig/network-scripts

  cp ifcfg-eth0 ifcfg-eth0:1

  vi ifcfg-eth0:1在其中修改内容如下

  DEVICE=eth0:1

  BROADCAST=211.131.4.255

  HWADDR=该网卡的MAC地址

  IPADDR=211.131.4.253

  NETMASK=255.255.255.0

  NETWORK=211.131.4.0

  ONBOOT=yes

  TYPE=Ethernet

  wq推出

  C:进入vsftpd.conf所在的文件夹

  cp vsftpd.conf vsftpd2.conf

  修改vsftpd.conf添加以下信息

  Listen_address=10.2.3.4

  修改vsftpd2.conf添加以下信息

  Listen_address=211.131.4.253

  Ftpd_banner=this is a virtual ftp test

  到此虚拟的FTP服务器建立好了

  D:建立logins.txt

  vi /tmp/logins.txt

  添加入下信息:

  longlei------------用户名

  longlei------------密码

  zhangweibo

  zhangweibo

  jinhui

  jinhui

  lxp

  lxp

  格式要按照我的来哦,一个用户名,一个密码啦

  F:建立访问者的口令库文件,然后修改其权限

  db_load CT Ct hash Cf /tmp/logins.txt /etc/vsftpd_login.db

  G:进如/etc/pam.d/中创建ftp.vu

  在此文件中添加如下信息

  auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login

  account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

  H:在/var/ftp/创建目录并改变其属性和它的属主

  useradd -d /var/ftp/test qiang

  chmod 700 /var/ftp/test

  在目录中添加test_file测试文件

  I:进入vsftpd2.conf修改其中的信息(我加的是)

  Listen_yes

  Anonymous_enable=no

  Local_enable=yes

  Write_enable=no

  Anon_upload_enable=no

  Anon_mkdir_write_enable=no

  Anon_other_write_enable=no

  Chroot_local_user=yes

  Guest_enable=yes----------起用虚拟用户

  Guest_username=qiang------将虚拟用户映射为本地用户

  Listen_port=5555

  Max_client=10

  Max_per_ip=1

  Ftpd_banner=this is a virtual server and users

  Pam_service_name=ftp.vu

  注:在主配置文件中给的权限越低,在后面分用户管理的时候对拥护的权限划分的空间就越大,因为主配置文件最高的限制服务先读主配置文件,然后再读用户的配置文件

  重起服务

  到此虚拟USER就建好了

  J:在VSFTPD。CONF所在的目录中创建virtaul文件目录

  并在文件目录中创建以你用户名命名的配置文件

  Longlei zhangweibo jinhui lxp

  在longlei中添加:

  Anon_world_readable_only=no

  在lxp中添加

  Anon_world_readable_only=no

  这样此两个用户就有了浏览目录的权限了

  在jinhui中添加

  Anon_world_readable_only=no

  Write_enable=yes

  Anon_upload_enable=yes

  此用户就有了上传、下载和浏览的权限

  在zhangweibo中添加

  Anon_world_readable_only=no

  Write_enable=yes

  Anon_upload_enable=yes

  Anon_other_write_enable=yes

  此用户就有了上传、下载、删除文件目录、修改文件名和浏览的权限

  K:修改vsftpd2.conf

  加入user_config_dir=/vsftpd.conf所在的目录/virtual

  重起服务器就搞定了

  好了大家别走开,现在隆重推出VSFTPD。CONF中的我所知道的所有配置信息

  Anonymous_enable=yes (允许匿名登陆)

  Dirmessage_enable=yes (切换目录时,显示目录下.message的内容)

  Local_umask=022 (FTP上本地的文件权限,默认是077)

  Connect_form_port_20=yes (启用FTP数据端口的数据连接)*

  Xferlog_enable=yes (激活上传和下传的日志)

  Xferlog_std_format=yes (使用标准的日志格式)

  Ftpd_banner=XXXXX (欢迎信息)

  Pam_service_name=vsftpd (验证方式)*

  Listen=yes (独立的VSFTPD服务器)*

  Anon_upload_enable=yes (开放上传权限)

  Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)

  Write_enable=yes (开放本地用户写的权限)

  Anon_other_write_enable=yes (匿名帐号可以有删除的权限)

  Anon_world_readable_only=no (放开匿名用户浏览权限)

  Ascii_upload_enable=yes (启用上传的ASCII传输方式)

  Ascii_download_enable=yes (启用下载的ASCII传输方式)

  Banner_file=/var/vsftpd_banner_file (用户连接后欢迎信息使用的是此文件中的相关信息)

  Idle_session_timeout=600(秒) (用户会话空闲后10分钟)

  Data_connection_timeout=120(秒) (将数据连接空闲2分钟断)

  Accept_timeout=60(秒) (将客户端空闲1分钟后断)

  Connect_timeout=60(秒) (中断1分钟后又重新连接)

  Local_max_rate=50000(bite) (本地用户传输率50K)

  Anon_max_rate=30000(bite) (匿名用户传输率30K)

  Pasv_min_port=50000 (将客户端的数据连接端口改在

  Pasv_max_port=60000 50000―60000之间)

  Max_clients=200 (FTP的最大连接数)

  Max_per_ip=4 (每IP的最大连接数)

  Listen_port=5555 (从5555端口进行数据连接)

  Local_enble=yes (本地帐户能够登陆)

  Write_enable=no (本地帐户登陆后无权删除和修改文件)

  这是一组

  Chroot_local_user=yes (本地所有帐户都只能在自家目录)

  Chroot_list_enable=yes (文件中的名单可以调用)

  Chroot_list_file=/任意指定的路径/vsftpd.chroot_list

  (前提是chroot_local_user=no)

  这又是一组

  Userlist_enable=yes (在指定的文件中的用户不可以访问)

  Userlist_deny=yes

  Userlist_file=/指定的路径/vsftpd.user_list

  又开始单的了

  Banner_fail=/路径/文件名 (连接失败时显示文件中的内容)

  Ls_recurse_enable=no

  Async_abor_enable=yes

  One_process_model=yes

  Listen_address=10.2.2.2 (将虚拟服务绑定到某端口)

  Guest_enable=yes (虚拟用户可以登陆)

  Guest_username=所设的用户名 (将虚拟用户映射为本地用户)

  User_config_dir=/任意指定的路径/为用户策略自己所建的文件夹

  (指定不同虚拟用户配置文件的路径)

  又是一组

  Chown_uploads=yes (改变上传文件的所有者为root)

  Chown_username=root

  又是一组

  Deny_email_enable=yes (是否允许禁止匿名用户使用某些邮件地址)

  Banned_email_file=//任意指定的路径/xx/

  又是单的

  Pasv_enable=yes ( 服务器端用被动模式)

  User_config_dir=/任意指定的路径//任意文件目录 (指定虚拟用户存放配置文件的路径)

顶一下
(0)
踩一下
(0)