1.此次为了测试了解一下,VSFTP,采用RPM包安装方式
qps –A | grep vsftpd
首先
rpm -qa | grep vsftpd ---------查看有无安装,若没有,则要安装,我采用的是yum
yum install vsftpd
见下:
[root@ftp sbin]# yum install vsftpd
[root@ftp sbin]# service vsftpd status
vsftpd is stopped
[root@ftp sbin]# service vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@ftp sbin]#
2.设置每次开机时自动运行及手工启动它:
chkconfig vsftpd on
service vsftpd start
netstat -tl 可以查看ftp端口是否在侦听了!
相关配置文件:/etc/vsftpd/vsftpd.conf里面;
3.至此已经可以FTP已经可以正常运行了,
4.FTP配置参考以下设置:
关于主机的设定值
connect_from_port_20=YES (NO)
这个设定项目在启动主动联机的port 20
listen_port=21
使用的vsftpd命令通道的port number设定,如果想要使用非
正规的ftp port,在这个设定项目修改吧!
dirmessage_enable=YES (NO)
当使用者进入某个目录时,会显示该目录需要注意的内容,显示的
档案预设是.message,当然,可以使用底下的设定项目来修订!
message_file=.message
当dirmessage_enable=YES时,可以设定这个项目来让vsftpd
寻找该档案来显示讯息!您也可以设定其它档名
listen=YES (NO)
若设定为YES表示vsftpd是以standalone的方式来启动的!
pasv_enable=YES (NO)
启动被动式联机(passive mode),一定要设定为YES
use_localtime=YES (NO)
是否使用主机的时间?!预设使用GMT时间(格林威治)
write_enable=YES (NO)
是否允许使用者具有写入的权限?这包括删除与修改等功能!
connect_timeout=60
单位是秒,如果client尝试连接我们的vsftpd命令通道超过60秒,
则不等待,强制断线咯。
accept_timeout=60
当使用者以被动式PASV来进行数据传输时,如果主机启用passive
port 并等待client超过60秒,那么就给他强制断线!
data_connection_timeout=300
如果client与Server间的数据传送在300秒内都无法传送成功,
那Client的联机就会被我们的vsftpd强制剔除!
idle_session_timeout=300
如果使用者在300秒内都没有命令动作,强制离线!
max_clients=0
如果vsftpd是以stand alone方式启动的,可以设定同一时间最多有多少client可以同时连上vsftpd
max_per_ip=0
是同一个IP同一时间可允许多少联机?
connect_from_port_20=YES
使用标准的20端口来连接ftp
listen_address=192.168.0.2
绑定到某个IP,其它IP不能访问
关于匿名者登入的设定值
anonymous_enable=YES (NO)
设定为允许anonymous登入我们的vsftpd主机!预设是YES,底下的
所有相关设定都需要将这个设定为anonymous_enable=YES后生效!
anon_world_readable_only=YES (NO)
仅允许anonymous具有下载可读档案的权限,预设是YES。
anon_other_write_enable=YES (NO)
是否允许anonymous具有写入的权限?预设是NO!如果要设定为
YES,那么开放给anonymous写入的目录亦需要调整权限,让vsftpd
的PID拥有者可以写入才行!
anon_mkdir_write_enable=YES (NO)
是否让anonymous具有建立目录的权限?默认值是NO!如果要设定为
YES,那么anony_other_write_enable必须设定为YES!
anon_upload_enable=YES (NO)
是否让anonymous具有上传数据的功能,预设是NO,如果要设定为
YES,则anon_other_write_enable=YES必须设定。
no_anon_password=YES (NO)
当设定为 YES 时,表示 anonymous 将会略过密码检验步骤,
而直接进入 vsftpd 服务器内喔!所以一般预设都是 NO 的!
anon_max_rate=0
这个设定值后面接的数值单位为 bytes/秒,限制 anonymous 的传输
速度,如果是 0 则不限制(由最大频宽所限制),如果您想让
anonymous 仅有 30 KB/s 的速度,可以设定
『anon_max_rate=30000』
anon_umask=077
限制 anonymous 的权限!如果是 077 则 anonymous 传送过来的档案
权限会是 -rw-------
关于本地用户登入的设定值
local_enable=YES # default NO
local_umask=022
userlist_deny 为NO时,仅允许/etc/vsftpd/user_list中的用户登录ftp
userlist_deny 为YES时(默认),不允许/etc/vsftpd/user_list中的用户登录ftp
/etc/vsftpd/ftpusers 强制文件中列出的用户不可登录ftp
guest_enable=YES (NO)
若这个值设定为 YES 时,那么任何非 anonymous 登入的账号,均会被
假设成为 guest (访客) 喔!
local_enable=YES (NO)
这个设定值必须要为 YES 时,在 /etc/passwd 内的账号才能以
实体用户的方式登入我们的 vsftpd 主机喔!
local_max_rate=0
实体用户的传输速度限制,单位为 bytes/second, 0 为不限制。
chroot_local_user=YES (NO)
将使用者限制在自己的家目录之内(chroot)!这个设定在 vsftpd
当中预设是 NO,因为有底下两个设定项目的辅助
所以不需要启动他!
chroot_list_enable=YES (NO)
是否启用将某些实体用户限制在他们的家目录内?预设是 NO ,
不过,如果想要让某些使用者无法离开他们的家目录时,
可以考虑将这个设定为 YES ,并且规划下个设定值
chroot_list_file=/etc/vsftpd.chroot_list
如果 chroot_list_enable=YES 那么就可以设定这个项目了!他里面
可以规定那一个实体用户会被限制在自己的家目录内而无法离开!
(chroot) 一行一个账号即可!
userlist_deny=YES (NO)
若此设定值为 YES 时,则当使用者账号被列入到某个档案时,在该档
案内的使用者将无法登入 vsftpd 服务器!该档案文件名与下列设定项
目有关。
userlist_file=/etc/vsftpd.user_list
若上面 userlist_deny=YES 时,在这个档案内的账号都无法使用
vsftpd
关于系统安全的设定值
ascii_download_enable=YES (NO)
如果设定为 YES ,那么 client 就可以使用 ASCII 格式下载档案。
一般来说,由于启动了这个设定项目可能会导致 DoS 的攻击,因此预
设是NO。
ascii_upload_enable=YES (NO)
与上一个设定类似的,只是这个设定针对上传而言!预设是 NO。
async_abor_enable=YES (NO)
如果您的 FTP client 会下达“async ABOR”这个指令时,这个设定才
需要启用一般来说,由于这个设定并不安全,所以通常都是将他取的!
check_shell=YES (NO)
如果想让拥有任何奇怪的 shell 的使用者(在 /etc/passwd 的 shell 字段) 可以使用 vsftpd 的话,这个设定可以设定为 NO
xferlog_enable=YES (NO)
当设定为 YES 时,使用者上传与下载档案都会被纪录起来。记录档案
与下一个设定项目有关:
xferlog_file=/var/log/vsftpd.log
如果上一个 xferlog_enable=YES 的话,这里就可以设定了!
这个是登录档的档名
xferlog_std_format=YES (NO)
是否设定为 wu ftp 相同的登录档格式?预设为 NO ,因为登录档会比
较容易读!不过,如果您有使用 wu ftp 登录文件的分析软件,这里才
需要设定为 YES
nopriv_user=nobody
vsftpd 预设以 nobody 作为此一服务执行者的权限。因为 nobody 的
权限相当的低,因此即使被入侵,入侵者仅能取得 nobody 的权限
pam_service_name=vsftpd
是 pam 模块的名称,放置在 /etc/pam.d/vsftpd
针对仅有开放实体用户登入的设定
1.使用本地的时间而不是 GMT 时间;
2.所有在 /etc/passwd 里面出现的实体账号均能登入 vsftpd 主机;
3.但是系统账号 (如 root 等, UID 小于 500 的账号)均不能使用 vsftpd ;
4.而且由于 user1 与 user2 这两个账号使用者被关在自己的家目录当中(chroot);
5.并且限制数据的传输速度为 100 Kbytes/second;
6.当使用者进入 /home 这个目录时,显示:『hello』的字样在 Client 端的屏幕上;
7.使用者可以进行上传、下载以及修改档案等等动作
1、[root@test root]# vi /etc/vsftpd/vsftpd.conf (或 /etc/vsftpd.conf)
# 关于主机与安全性的设定
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
pam_service_name=vsftpd
tcp_wrappers=YES
# 关于 anonymous 的设定
anonymous_enable=NO
# 关于 Real User 的设定
local_enable=YES
write_enable=YES
local_umask=022
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
local_max_rate=100000
2、限制实体用户在自己的家目录内 (chroot) 的设定档
[root@test root]# vi /etc/vsftpd.chroot_list
user1
user2
# 没有写到这个档案内的其它用户,就可以离开自己的家目录,
# 而到其它目录里面去浏览了!
3、以 PAM 模块限制某些账号无法登入主机的设定
[root@test root]# vi /etc/pam.d/vsftpd
# 会发现这样的字句:
auth ..... file=/etc/vsftpd.ftpusers ....
# 那个 file=.. 后面接的文件名就是以 PAM 模块抵挡的账号内容了
或者以 userlist_file 抵挡某些账号的登入
[root@test root]# vi /etc/vsftpd.user_list
# 这个档案的设定与上面 /etc/vsftpd.ftpusers 相同即可
4、设定进入目录时,显示的讯息:
[root@test root]# vi /home/.message
hello
针对仅有开放匿名使用者登入的设定
1.使用本地的时间,而非 GMT 时间;
2.仅开放 anonymous 的登入;
3.档案传输的速限为 30 Kbytes/second;
4.允许 anonymous 上传档案到 /var/ftp/upload 这个目录当中,并且允许 anonymous 建立目录;
5.数据连接的过程 (不是命令通道!) 只要超过 60 秒没有回应,就强制 Client 断线!
6.只要 anonymous 超过十分钟没有动作,就予以断线;
7.被动式连接的端口为 65400 到 65420 这几个 port number 即可;
8.最大同时上线人数限制为 50 人,且同一 IP 来源最大联机数量为 5 人;
9.不许使用 ASCII 格式上传或下载!
1、[root@test root]# vi /etc/vsftpd/vsftpd.conf
# 与主机与安全性有关的设定
use_localtime=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
data_connection_timeout=60
idle_session_timeout=600
max_clients=50
max_per_ip=5
ascii_upload_enable=NO
ascii_download_enable=NO
connect_from_port_20=YES
pasv_min_port=65400
pasv_max_port=65420
pam_service_name=vsftpd
tcp_wrappers=YES
nopriv_user=ftp
# 关于 anonymous 的设定
anonymous_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
deny_email_enable=YES
banned_email_file=/etc/vsftpd.banned_emails
anon_max_rate=30000
# 关于 real user 的设定
local_enable=NO
2、建立可以上传的目录
# 因为我们的 nopriv_user 设定为 ftp ,所以上传的目录拥有者为 ftp
[root@test root]# mkdir -p /var/ftp/upload
[root@test root]# chown ftp /var/ftp/upload
用户登陆限制进其它的目录,只能进它的主目录
设置所有的本地用户都执行chroot
Chroot_local_user=yes (本地所有帐户都只能在自家目录)
设置指定用户执行chroot
Chroot_list_enable=yes (文件中的名单可以调用)
Chroot_list_file=/任意指定的路径/vsftpd.chroot_list
注意:vsftpd.chroot_list 是没有创建的需要自己添加,要想控制帐号就直接在文件中加帐号即可
限制本地用户访问FTP
Userlist_enable=yes (用userlistlai 来限制用户访问)
Userlist_deny=no (名单中的人不允许访问)
Userlist_file=/指定文件存放的路径/ (文件放置的路径)
注:开启userlist_enable=yes匿名帐号不能登陆