When enabled, a special FTP command known as "async ABOR" will be enabled. Only ill advised FTP clients will use this feature.Addtionally, this feature is awkward to handle, so it is dis-abled by default. Unfortunately, some FTP clients will hang when cancelling a transfer unless this feature is available, so you may wish to enable it.
ftpd_banner=Welcome to chenlf FTP service. 定制欢迎信息
banned_email_file=/etc/vsftpd.banned_emails 是否容许禁止匿名用户使用某些邮件地址,若是是输入禁止的邮件地址的路径和文件名
chroot_list_file=/etc/vsftpd.chroot_list 是否将系统用户限止在本身的home目录下,若是选择了yes那么chroot_list_file=/etc/vsftpd.chroot_list中 列出的是不chroot的用户的列表
3 配置实例
如下是个人配置文件.容许匿名FTP,容许上传,chroot用户目录,上传文件属主改成root
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=root
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
pam_service_name=vsftpd
chroot_local_user=YES
4 起动服务
vsftpd和wu-ftpd不能同时起动,因此修改/etc/xinetd.d/wu-ftpd将disable设置为yes,而后修改/etc/vsftpd将disable设置为NO
执行/etc/initd.d/xinetd restart
就能够了.好了,如今咱们就建了一个所谓的很是安全的ftp服务器了,你们试试吧
VSFTPD的菜鸟篇
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 –xf |grep ftp
kill 进程号
VSFTPD的高手篇
1. 配置本地组访问的FTP
首先建立用户组 test和FTP的主目录
groupadd test
mkdir /tmp/test
而后建立用户
useradd -G test –d /tmp/test –M usr1
注:G:用户所在的组 d:表示建立用户的本身目录的位置给予指定
M:不创建默认的自家目录,也就是说在/home下没有本身的目录
useradd –G test –d /tmp/test –M 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 –T –t hash –f /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=/任意指定的路径//任意文件目录 (指定虚拟用户存放配置文件的路径)
VSFTP安全与效能兼备的ftp服务器
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。
范例
直接启动VSFTP 服务
这个范例是套用
RedHat 的预设范例,直接启动vsftp。
[root@relay vsftpd]# /sbin/service vsftpd start
Starting vsftpd for vsftpd: OK ]
更换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 ]
特定使用者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.
取消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 ]
安排欢迎话语
如果咱们但愿使用者在登入时,可以看到欢迎话语,可能包括对该主机的 说明,或是目录的介绍,可参考如下步骤。
首先肯定在/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 abc’s directory
This is subdir...
那么,当使用者test1 登入时,会看到如下讯息:
230- Hello~ Welcome to the home directory
230-
230- This is for test only...
230-
如果切换到abc 的目录,则会出现如下讯息:
250- Welcome to abc’s directory
250-
250- This is subdir ...
对于每个联机,以独立的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]#
限制传输档案的速度
本机的使用者最高速度为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 之间,固然,如果频宽不足时,数值会低于此限制。
针对不一样的使用者限制不一样的速度
假设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 ]
建置一个防火墙下的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
建置一个防火墙下的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 ]
在这边要注意,八、9 两个例子中,ftp client(如cuteftp)的联机方式不能 够选择passive mode,不然没法创建数据的联机。也就是读者能够连上ftp server,可是执行ls、get 等等的指令时,便没法运做。
建置一个防火墙下的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 等等的指令时,便没法运做。
将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
将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 ]
设定档说明
在范例中,有些省略的设定能够在这边找到,譬如联机的总数、同一个位 址的联机数、显示档案拥有者的名称等等,但愿读者细读后,能够作出最适合本身的设定。
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。
FTP 数字代码的意义 windows
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架设及要点补充
1。操做环境是
RedHat 9.0,vsFTPd的版本是Redhat 9.0所带的vsftpd-1.1.3-8.i386.rpm,在安装盘的第三张中
2。vsFTPd实现的最基本的目的:用系统中存在的真实用户能登入FTP,能用匿名访问。
3。 本帖中vsFTPd运行模式是在standalone模式下运行的,也就是说,本帖中vsFTPd全部的功能都是在standalone模式下运行的。至 于有些功能是否能在xinetd模式下运行,您就得测试了,不能照搬照抄。由于有些功能是必须运行在特定的模式下的。
4。服务器的IP和和DNS设定
第一块网卡
IP:192.168.0.1
子掩码:255.255.255.0
网关不设置:
第二块网卡:
IP:192.168.0.2
子掩码:255.255.255.0
网关不设置
因 为个人操做环境是一个小型的局域网,因此其它的机器的IP都是在192.168.0这个网段上。ADSL是接在服务器的第一个网卡上。服务器的第二个网卡 是接集线器,其它的客户机都是接在集线器上。为了能让ADSL访问internet,由于本身手动设置了IP,因此DNS也要本身来设置,DNS以下:
202.96.134.133
202.96.168.68
设置工具是:
[root@linuxsir001 root]#
RedHat-config-network
一。用vsFTPd来架设FTP服务器,vsFTPd服务器是目前最好的FTP服务器软件,优势是体积小,可定制强,效率高
1。查看是否安装了vsFTPd软件
[root@linuxsir001 root]# rpm -qa | grep vsftpd
若是没有任何显示,说明没有把vsFTPd安装上,若是出现的是下面的这样的提示,就证实已经安装上了。
[root@linuxsir001 root]# rpm -qa | grep vsftpd
vsftpd-1.1.3-8
我以
RedHat 9.0,以其自带的vsFTPd包vsftpd-1.1.3-8版原本为本帖约定。
[root@linuxsir001 root]# rpm -ivh vsftpd*.rpm
2。打开vsFTPd服务器。
[root@linuxsir001 root]# ntsysv
把vsftpd服务器打开,也就是在运行 ntsysv命令后,把vsftpd服务选中。
[*] vsftpd
3。运行/etc/init.d/vsftpd start
[root@linuxsir001 root]# /etc/init.d/vsftpd start
为 vsftpd 启动 vsftpd: [ 肯定 ]
[root@linuxsir001 root]#
4。 配制vsFTPd,vsFTPd的运行有两种模式,一种是standalone "initd"模式,另一种是xinetd模式,上面咱们所说的就是standalone "initd"运行模式。两种模式运行机制不是相同的,stardard initd模式,适合专业FTP,且FTP老是一直有人访问,占用资源也是比较大,若是您的FTP老是有人访问和登入。就要用这种模式。若是您的FTP访 问人数比较小,建议您用xinetd模式。xinetd模式,是当用户请求时,vsFTPd才会启动。
不一样的环境,固然得用不一样的启动模式。
1]咱们主要把vsFTPd的配制文件改一下就好了。配制文件在/etc/vsftpd/vsftpd.conf,用您喜欢的编辑器打开。请参考下面的配制文件。安全
# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are very paranoid. This sample file服务器
# loosens things up a bit, to make the ftp daemon more usable.
#
# Allow anonymous FTP?
anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that turning on ascii_download_enable enables malicious remote parties
# to consume your I/O resources, by issuing the command "SIZE /big/file" in
# ASCII mode.
# These ASCII options are split into upload and download because you may wish
# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
# on the client anyway..
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
pam_service_name=vsftpd
userlist_enable=YES
#enable for standalone mode
listen=YES
tcp_wrappers=YES
2]更改完配制文件后,咱们能够用下面的命令来重启vsFTPd服务器
[root@linuxsir001 root]# /etc/init.d/vsftpd restart
关闭 vsftpd: [ 肯定 ]
为 vsftpd 启动 vsftpd: [ 肯定 ]
[root@linuxsir001 root]#
3]以匿名方式来访问测试,在text模式下:
注意:在text模式下,要用用户名ftp,密码ftp来访问,这才是在text中匿名访问FTP。看以下的操做:
[root@linuxsir001 root]# ftp 192.168.0.1
Connected to 192.168.0.1.
220 (vsFTPd 1.1.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.0.1:root): ftp 这里写上ftp
331 Please specify the password.
Password:[这里添写ftp的密码],匿名登入密码也是ftp
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,0,1,137,151)
150 Here comes the directory listing.
drwxr-xr-x 6 0 0 4096 May 25 13:54
RedHat90
drwxr-xr-x 2 0 0 4096 Feb 28 19:21 pub
226 Directory send OK.
ftp>
那匿名用户所访问的是哪一个目录?是/var/ftp这个目录
出现问题的解决:有时出错,是由于没有ftp和nobody用户,因此要在系统中添加这两个用户,通常的状况下,这两个用户在系统中是存在的。看下面的操做。
[root@linuxsir001 root]# adduser ftp
adduser: user ftp exists
[root@linuxsir001 root]# adduser nobody
adduser: user nobody exists
从上面的操做中可知ftp和nobody用户是存在的,因此没有必要添加ftp和nobody用户了。若是不存在,必定要添加这两个用户,不然会出现匿名用户不能访问的状况。
4]若是要以系统中存在的普通用户登入FTP,也没有什么能够设置的,添加一个用户就行。好比我要添加beinan这个用户,就要用下面的办法
[root@linuxsir001 root]# adduser beinan
[root@linuxsir001 root]# passwd beinan
Changing password for user beinan.
New password:
BAD PASSWORD: it does not contain enough DIFFERENT characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@linuxsir001 root]#
这样的话,就在/home目录中出现一个beinan的用户目录:以下:
[root@linuxsir001 root]# ls /home/
beinan
若是咱们想让beinan这个用户做为虚拟用户,也就是说,beinan这个用户是不能登入系统的,只能是登入FTP。 那这样的用户应该如何添加呢??
[root@linuxsir001 backupNow]# adduser -g ftp -s /sbin/nologin beinan
[root@linuxsir001 backupNow]# passwd beinan
Changing password for user beinan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@linuxsir001 backupNow]#
注: 这仅仅是vsFTPd添加虚拟用户的一个方法,还有更好的办法须要咱们去学习!另外的办法也在测试之中。严格上来讲,这种办法不能算虚拟用户。还有另外的 一个办法,就是经过pam认证,用db_load来添加用户,目前我也弄成功了,不过相对要复杂一点。正在测试之中。
若是咱们想把用户目录定位到别的目录应该怎么办呢??这个也比较简单,看一下useradd就比较明白了。好比我想添加beinan这个用户,并把目录放在/opt目录中:以下操做:
[root@linuxsir001 root]# adduser -d /opt/beinan beinan
[root@linuxsir001 root]# passwd beinan
Changing password for user beinan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
若是是添加虚拟用户,也就是不让用户登入系统,只能登入FTP的用户。若是咱们想把beinan这个用户目录定位在/opt/beinan这个目录中,根据上面的方法。咱们应该以下操做
[root@linuxsir001 backupNow]# adduser -d /opt/beinan -g ftp -s /sbin/nologin beinan
[root@linuxsir001 backupNow]# passwd beinan
Changing password for user beinan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@linuxsir001 backupNow]#
看一下是否是已经成功添加到了beinan这个用户,并把beinan的家目录放在了/opt目录中呢??
[root@linuxsir001 root]# ls /opt/
beinan
证实已经成功。
咱们能够在text模式下以beinan用户登入,而后来访问ftp。
[root@linuxsir001 root]# ftp 192.168.0.1
Connected to 192.168.0.1.
220 (vsFTPd 1.1.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.0.1:root): beinan
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
是否是成功了???
咱们也能够用gftp来访问beinan用户,并上传相应的东西,所传上的东西就放在beinan用户所在的家目录中,普通用户的家目录在哪里,写您所用的添加用户的方法有关。我在前面已经说了两种办法,一种是默认的添加方法,就是放在/home目录中。
在本例中,我是采用默认的添加用户的方法。也就是不特别指定用户用户,这样的话,用户目录就在/home目录中。好比用beinan登入FTP时,访问的就是/home/beinan这个目录。让传的东西也在这个目录中。
那匿名用户所访问的是哪一个目录呢???
应该是:/var/ftp这个目录
5]访问ftp的几种方法
第一种方法就是text访问,也就是用ftp命令来访问。这个前面已经说过了。
第 二种方法是以客户端FTP软件来访问,在linux中有gftp。在本例中,个人FTP地址是经过局域网访问的。地址栏中,添上192.168.0.1, 端口是21,用户名和密码的添写,若是您是用匿名登入,请不要添写用户名和密码。若是用普通用户登入,这个是必需要用用户名和密码的。
第三种办法是和浏览器访问:若是匿名登入,就直接用下面的方法:
ftp://192.168.0.1
若是是用户登入方式,应该是
ftp://beinan@192.168.0.1
若是想让在互联网上的用户能访问到,若是您是用ADSL来访问互联网,要查找到您的动态IP,用下面的办法
[root@linuxsir001 root]# ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol
inet addr:218.61.7.23 P-t-P:218.61.7.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:24245 errors:0 dropped:0 overruns:0 frame:0
TX packets:20411 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:23103297 (22.0 Mb) TX bytes:3588337 (3.4 Mb)
从上面的能够知道,能让在internet访问的地址是:218.61.7.23
二。如何让局域网经过这个FTP安装Linux呢??以
RedHat 9.0为例:
1。咱们要在/var/ftp中,为每一个发行版建一个目录,而后把每一个发行版的每一个版本再建一个目录。把每一个版本的ISO都解压到相应的目录里。举个例子:
好比我想让其它的客户机,经过个人服务器来安装
RedHat9.0,我就要在/var/ftp目录中建一个RedHat90的目录,而后把RedHat 9.0的三个ISO都解到这个目录中。
这样服务器的设置就完成了。
2。客户机方面如何引导及设置???咱们能够作一个系统的引志盘,但有的发行版也没有必要。这也要以各个发行版的状况而定。好比
RedHat 9.0的安装,若是您的客户机上有windows,就直接经过局域网的FTP,dosutils images isolinux三个目录放到一个在fat32分区中建的目录中,好比说在客户机上建一个Redhat9的目录,而后把三个文件拷到客户机中的fat32 分区中的Redhat9的目录中。
3.客户机安装及操做:
以DOS盘引导,不要加载CDROM,直接进入客户机中fat32分区
RedHat9dosutils目录,执行下面的命令。
autoboot
这样就开始了安装:
4.出现的画面中,咱们要选ftp安装。在设置网络环境时,咱们要设置好IP和网关之类的。
以个人局域网为例:
客户机的IP设置成192.168.0.5,掩码也是2552555.255.0,网关设置成192.168.0.1。name 服务能够不设置。以匿名方式访问FTP。
下一步会出现让咱们添写FTP,及安装源的地址,仍是以个人局域网为例:
地址:192.168.0.1
路径:由于我是把三个ISO放在了/var/ftp/
RedHat90的目录下,我应该写以下的
/
RedHat90
这样就OK了,一切和其它的安装方式都是同样的了。
由于每一个发行版不太同样,因此经过网络安装,有的要作引导盘,如何作引导盘,我想你们早就知道了。若是不知道这方面的,请用搜索来找这方面的帖子。
vsFTP服务器,相关的一系统补充
补充一:如何有选择的把用户限制在家目录中呢?
咱们要本身建一个文件,在/etc目录中
#touch /etc/vsftpd.chroot_list
以beinan和nanbei这两个用户限制在他们所在的家目录中,而其它的FTP用户不作此限制。
在vsftpd.chroot_list这个文件中,把beinan和nanbei添上去就行,注意,每一个用户占一行。
beinan
nanbei
而后改/etc/vsftpd/vsftpd.conf文件,找以下的两行
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
把前面的#号去掉,也就是这样的
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
若是没有这样的两行,就能够本身添加上去也是同样的。
设置好后,从新vsFTPD服务器。
补充一之补充:如何把系统内全部的FTP用户都限制在家目录中呢??经juliaugong兄的提示,我查找了vsFTPd的洋文说明,证实这个选项是一刀切的解决全部的用户都能限制在家目录中
咱们能够经过更改vsftpd.conf文件,加入以下的一行
chroot_local_user=YES
改完配制文件,不要忘记重启vsFTPd服务器
[root@linuxsir001 root]# /etc/init.d/vsftpd restart
关闭 vsftpd: [ 肯定 ]
为 vsftpd 启动 vsftpd: [ 肯定 ]
[root@linuxsir001 root]#
补充二:打开vsFTP服务器的日志功能:
把下面xferlog_file前面的#号对掉,也就是把vsftp的log功能打开,这样咱们就能在/var/log目录下查看vsftpd.log。这是vsFTP的日志功能,这对于咱们来讲是极为重要的。
#xferlog_file=/var/log/vsftpd.log
补充三:如何让绑定IP到vsFTP?也就是说,如何让用户只能经过某个IP来访问FTP。其实这个功能颇有意思。若是绑定的是内网的IP,外部是没有办法访问的。若是绑定的是对外服务的IP,内网也只能经过对外服务的IP来访问FTP
在/etc/vsftpd/vsftpd.conf中加一行,以个人局域网为例,请看第一帖中的操做环境,这样外网就不能访问个人FTP了,内网也可能经过192.168.0.2来访问FTP
listen_address=192.168.0.2
加完后,要重启vsFTP服务器
[root@linuxsir001 root]# /etc/init.d/vsftpd restart
关闭 vsftpd: [ 肯定 ]
为 vsftpd 启动 vsftpd: [ 肯定 ]
[root@linuxsir001 root]#
补充四:如何让vsFTP服务器限制连接数,以及每一个IP最大的连接数??
答:应该改vsFTP服务器的配制文件vsftpd.conf,加入下面的两行:
max_clients=数字
max_per_ip=数字
举例:我想让个人vsFTP最大支持连接数为100个,每一个IP,最多能支持5个连接,因此我应该在vsftpd.conf中加上以下的两行:
max_clients=100
max_per_ip=5
改好了配制文件,不要忘记启动vsftp服务器。
补充五:如何限制下载的速度?
anon_max_rate=数字 注:这是匿名的下载速度
local_max_rate=数字 注:这是vsFTP服务器上普通用户的下载速度
注:这个数字的单位是字节,因此咱们要计算一下。好比我想让匿名用户和vsFTP上的用户都以80KB下载,因此这个数字应该是1024x80=81920
因此咱们要在vsftpd.conf中加入下面的两行
anon_max_rate=81920
local_max_rate=81920
不要忘记重启vsftpd服务
补充六:个人硬盘空间有限,如何把账号ftp默认的路径/var/ftp更改到别处?或者是,个人linux全部的目录都放在/根分区,由于空间紧张,我可否把ftp这个用户的默认路径放到别的分区??
能够,应该以下操做!
首先要把ftp这个用户删除
#userdel -r ftp
会有错误信息,不过不用理,这是正常的。
而后咱们再把这个用户添加上,好比我想为账号ftp的家目录设置在/mnt/LinG/ftp,咱们就能够以下操做
[root@linuxsir001 root]# mkdir /mnt/LinG
[root@linuxsir001 root]# adduser -d /mnt/LinG/ftp -g ftp -s /sbin/nologin ftp
仅仅是这样作还不行,由于这样仍是不能让匿名用户找到它的家目录,因此咱们必须改变/mnt/LinG/ftp这个目录的权限。
[root@linuxsir001 root]# chmod 755 /mnt/LinG/ftp/
[root@linuxsir001 root]# chown -R root.root /mnt/LinG/ftp/
补充七:如何定制欢迎信息,也就是咱们登入有些FTP以后,会出现相似:欢迎您来到LinuxSir FTP,在这里,您会获得最真诚的帮助,若是有什么问题和建议,请来信,多谢。
实现这个并不难,咱们能够查看vsftpd.cof文件中,是否有这行。
dirmessage_enable=YES
若是没有就加上,若是dirmessage_enable=YES前面有#号,就把#号去掉。
而后咱们制定一个.message文件,写上您想要写的东西,好比是.message的内容是以下的:
欢迎您来到LinuxSir FTP!
在这里,您会获得最真诚的帮助;
若是有什么问题和建议,请来信,多谢。
咱们能够用编辑器来写这个.message,我想这个过程就不用说了吧。
而后咱们把.message这个文件复制到各个用户的家目录中。好比个人FTP的一个用户是beinan,这个用户所在的家目录是/home/beinan
我 们就要把.message放在/home/beinan这个目录下。若是系统用户ftp,他的目录就是/var/ftp这个目录,这个是默认的,当匿名用 户登入时就访问的是/var/ftp这个目录。咱们要让匿名用户能看到欢迎信息。就要把.message放在/var/ftp目录中。其它的用户,也无非 就是相似的操做。
补充八:如何实现虚拟路径?
好比:
/home/a 映射为
ftp://localhost/a
/home/b/c 则为
ftp://localhost/c
其实这个不能说是vsFTPd的内容,其实咱们早就接触过了,可能咱们没有注意,咱们能够经过以下的方法来实现。
#mount --bind [原有的目录] [新目录]
好比个人ftp的默认目录是/var/ftp,我想把/mnt/LinG/WinSoft文件夹,映射到/var/ftp目录中,我就以下操做
咱们要先在/var/ftp目录中建一个目录
#mkdir /var/ftp/WinSoft
而后执行mount命令
#mount --bind /mnt/LinG/WinSoft /var/ftp/WinSoft
这样就OK了。
补充九:如何上匿名访问、上传,并支持下载和执行?
在默认的状况下,vsftp是不支持匿名用户的访问的,因此咱们要本身打开相应的选项。如今我针对这个问题,咱们要打开以下的选项。
anonymous_enable=YES 注:容许匿名访问
anon_upload_enable=YES 注:容许上传
anon_mkdir_write_enable=YES 注:容许创建相应的目录
anon_umask=022 把上传到FTP的文件或者目录改变权限
当 然打开这些选项仍是不行的,咱们还要让匿名写入文件的上一级目录有写入权,以我所作的FTP为例,我所作的FTP的匿名访问的目录是/var/ftp,在 vsFTPd中,/var/ftp这个目录是不能让匿名用户有写入权限的,这是为了安全考虑,因此咱们必须本身在/var/ftp目录中建一个目录,让这 个目录有写入权。
好比:我在/var/ftp目录建一个upload目录,而后把它的权限设置成777,这样匿名用户就能写入了。
#mkdir /var/ftp/upload
#chmod 777 /var/ftp/upload
改了一系列的文件,不要忘记重启vsFTPd服务器
我是用standalone模式的,固然用下面的方法
[root@linuxsir001 root]# service vsftpd restart
关闭 vsftpd: [ 肯定 ]
为 vsftpd 启动 vsftpd: [ 肯定 ]
[root@linuxsir001 root]#
若是您用的是xinetd模式来启动vsFTPd,咱们要重启xinetd服务器
[root@linuxsir001 root]# service xinetd restart
中止 xinetd: [ 肯定 ]
启动 xinetd: [ 肯定 ]
[root@linuxsir001 root]# ]
补充十:经过pam认证方式,添加虚拟用户
经过pam认证,用db_load添加用户,是真正的虚拟用户。如今咱们简单的介绍一下,经过之后的学习,咱们再深刻补充:
1。在/etc/pam.d/目录中建立一个文件ftp
[root@linuxsir001 root]# touch /etc/pam.d/ftp
2。在/etc/pam.d/ftp里面加上以下的两行
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
3。建立一系统的用户名用密码的文件logins.txt
[root@linuxsir001 root]# touch logins.txt
在 logins.txt文件中,输入以下的内容。这个内容您能够本身来定。好比我下面的。其实linuxsir007是FTP的虚拟用户名,123456是 linuxsir007的密码;linuxsir008是虚拟用户名,234567是linuxsir008的密码,以此类推,您想加入几个就是几个;下 面是我添加的FTP的虚拟用户名和密码。
linuxsir007
123456
linuxsir008
234567
linuxsir009
567890
linuxsir010
678901
linuxsir011
789012
4。建立一个真实的用户名linuxsir006,这个linuxsir006的用户,所在的家目录由您来定。我在这里很少说了。我是按系统默认的来添加的。
[root@linuxsir001 root]# useradd linuxsir006
5。把/etc/hosts复制到/home/linuxsir006,并改变它的属主
[root@linuxsir001 root]#cp /etc/hosts /home/linuxsir006/hosts
[root@linuxsir001 root]#chown linuxsir006.linuxsir006 /home/linuxsir006/hosts
6。经过db_load来建立虚拟用户的库文件。咱们在前面建的logins.txt文件,我是放在了/root用户目录下。因此我们得把目录切换到/root目录来建立虚拟用户的库文件。
[root@linuxsir001 root]# db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
7。更改vsftpd.conf文件,加入以下的几行
pam_service_name=ftp
guest_enable=YES
guest_username=linuxsir006
anon_world_readable_only=NO
8。重启vsFTPd服务器;改了一系列的文件,不要忘记重启vsFTPd服务器
我是用standalone模式的,固然用下面的方法
[root@linuxsir001 root]# service vsftpd restart
关闭 vsftpd: [ 肯定 ]
为 vsftpd 启动 vsftpd: [ 肯定 ]
[root@linuxsir001 root]#
若是您用的是xinetd模式来启动vsFTPd,咱们要重启xinetd服务器
[root@linuxsir001 root]# service xinetd restart
中止 xinetd: [ 肯定 ]
启动 xinetd: [ 肯定 ]
[root@linuxsir001 root]#
9。若是您想让用户登入FTP时,登入成功的相应的信息,请把您制做的.message复制到您的用户的家目录中,这方面的请参考前面的补充。
10。测试:
[root@linuxsir001 root]# ftp 192.168.0.1
Connected to 192.168.0.1.
220 (vsFTPd 1.1.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.0.1:root): linuxsir007
331 Please specify the password.
Password:
230-欢迎光临LinuxSir自由FTP
230-在这里,您将获得最真诚的帮助!
230-本站限度为30KB!
230-每一个IP限四个线程
230-请你们遵照FTP的有关规定。
230-多谢合做!
230-
230-LinuxSir管理部
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,0,1,85,171)
150 Here comes the directory listing.
-rw-r--r-- 1 ftp ftp 174 Jun 01 12:59 hosts
drwxr-xr-x 3 ftp ftp 4096 Jun 01 13:29 linuxsir008
drwxr-xr-x 2 ftp ftp 4096 Jun 01 13:24 sun
226 Directory send OK.
ftp>
补充十一:如何把
RedHat 9.0中系统默认安装的vsftpd-1.1.3-8.i386.rpm,系统默认vsFTPd是用standalone启动方式 ,改成xinetd启动方式 ?
若是是用源码包安装的,安装后就是xinetd模式,若是是用RPM包安装的,在
RedHat 9.0中,应该用下面的方法来解决。 1.在/etc/xinetd.d/目录中建立一个文件vsftpd [root@linuxsir001 root]# touch /etc/xinetd.d/vsftpd /etc/xinetd.d/vsftpd内容以下: service ftp { socket_type = stream wait = no user = root server = /usr/sbin/vsftpd # server_args = # log_on_success += DURATION USERID # log_on_failure += USERID nice = 10 disable = no } 2。 复制vsftpd.conf到/etc/目录下,由于xinetd对vsFTPd配制文件应该在/etc目录下,因此咱们就必须把这个文件复制到/etc 目录下,不然会出现系统中local用户没法登入,也就是说,不复制这个文件会出现ftp非匿名用户没法访问,只能用匿名用户访问。 [root@linuxsir001 root]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd.conf 3。更改配制文件/etc/vsftpd.conf,把以下的项注掉: 也就是把 listen=YES改成 #listen=YES 或者是把这行删除也行。 4。把/etc/init.d/vsftpd这个文件删除。其实最好的备份到别处,由于咱们有时实验来实验去,可能还会转到standalone模式启动。我就直接移动到别的目录,好比是/root下面的backup目录。 [root@linuxsir001 root]#mkdir /root/backup [root@linuxsir001 root]# mv /etc/init.d/vsftpd /root/backup 5。运行ntsysv,把vsftpd的服务取消 [root@linuxsir001 root]#ntsysv [ ] vsftpd 6。重启xinetd服务 [root@linuxsir001 root]# service xinetd restart