vsftpd服务器的基础设置
1.所需要的软件以及软件结构
vsftpd所需要的软件只有一个,就是vsftpd。如果你的centos没有安装,请利用yum install vsftpd进行安装;
严格来说,整个vsftp的配置文件就只有
/etc/vsftpd/vsftpd.conf
1./etc/pam.d/vsftpd
主要用来作为身份认证,还有阻挡一些用户身份的功能;
[root@linzefeng ~]# cat /etc/pam.d/vsftpd
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
2./etc/vsftpd/ftpusers
与上一个文件有关系,只要你不想让它登录的FTP账号写入这个配置文件即可
[root@linzefeng ~]# cat /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
...
3./etc/vsftpd/user_list
这个文件是否生效取决于两个参数,分别是userlist_enable和userlisrt_deny;事实上这个文件与/etc/vsftpd/ftpusers几乎一模一样
[root@linzefeng ~]# cat /etc/vsftpd/user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
...
4./usr/sbin/vsftpd
这就是vsftpd的主要执行文件,vsftpd只有这一个执行文件而已
5./var/ftp
这是vsftpd默认匿名用户登录的根目录。
2.vsftpd.conf 配置值说明
(1)与服务器环境比较相关的值
1.ftp-data的端口号
43 connect_from_port_20=YES
2.vsftpd使用的命令通道是port,如果想要用不正规的端口号,可以在这个项目中修改(对于super daemon 无效)
listen_port=21
3.当用户进入某个目录时,会显示该目录需要注意的内容,显示的文件默认是**.message**
37 dirmessage_enable=YES(NO)
4.当dirmessage_enable=YES时,可以设置这个项目让vsftpd寻找该文件来显示信息
message_file=.message
5.若设置为YES,表示vsftpd是以stand alone的方式来启动。
115 listen=NO
6.支持数据流的被动式连接模式。一定设置为YES
pasv_enable=YES(NO)
7.是否使用本地时间?
use_locatime=YES(NO)
8.如果你允许用户上传数据时,就要启动这个设置值
write_enable=YES(NO)
9.在数据连接的主动式连接模式下,我们发出的连接信号在60s内得不到客户端的回应。则不等待并强制下线
connect_timeout=60
10.如果服务器启用passive port并等待Client超过60s而无回应,那么强制断线
accept_timeout=60
11.如果服务器与客户端的数据连接成功建立(不论主动/被动),但是可能由于线路问题导致300s内还是无法顺利地完成数据的传送,那么客户端的连接被我们vsftpd强制剔除。
data_connection_timeout=300
12.如果用户在300s内没有命令操作,强制脱机!(避免占用无用空间)
idle_session_timeout=300
13.如果vsftpd是以stand alone方式启动的,那么这个设置项目可以设置同一时间最多有多少Client可以同时连接上vsftpd,限制FTP的用量
max_clients=0
14.设置同一个IP在同一时间允许多少连接
max_per_ip=0
15.如果你想要使用65400-65410这11个port来进行被动式连接,可以设置:
pasv_max_port=65410以及pasv_mix_port=65400。
如果是0的话,表示随机取用而不限制
pasv_mix_port=0、pasv_max_port=0
16.欢迎界面
ftpd_bannner=一些文字说明
17.指定文本作为用户登录的欢迎字眼
banner_file=/path/file
(2)与实体用户想关的设置值
1.将任何实体账号,均设置为guest(默认不开放)
guest_enable=YES(NO)
2.指定访客身份
guest_username=ftp
3.在/etc/passwd内账号用实体用户登录我们的vsftpd(开启)
local_enable=YES
4.实体用户的传输速度限制,单位是(bytes/second),0为不限制
local_max_rate=0
5.将用户目录设置在主目录内(chroot)
chroot_local_user=YES(NO)
6.是否启动chroot写入列表功能
chroot_list_enable=YES(NO)
7.是否借助vsftpd的阻挡机制来处理某些不受欢迎的账号
userlist_enable=YES(NO)
8.设置文件下的用户是否登录vsftpd服务器
userlist_deny=YES(NO)
9.在userlist_deny=YES,在文件内的账号无法使用vsftpd服务器
userlist_file=/etc/vsftpd/user_list
(3)匿名用户登录的设置值
1.是否开启匿名用户登录**(如果这个没有开启,下面的没有意义)**
anonymous_enable=YES(NO)
2.仅允许anonymous具有下载可读文件的权限,默认YES
anno_world_readable_only=YES(NO)
3.是否允许anonymous具有除了写入以外的权限
anon_orher_write_enable=YES(NO)
4.是否让anonymous具有建立目录的权限
anon_mkdir_write_enable=YES(NO)
5.是否让anonymous具有上传数据的功能
anon_upload_enable=YES(NO)
6.将某些特殊的E-mail address阻挡住,不让那些anonymous登录
deny_email_enable=YES(NO)
7.如果deny_email_enable=YES时,可以利用这个设置项目来规定哪个
E-mail address不可登录我们的vsftpd。
banned_email_file=/etc/vsftpd/banned_email
8.当设置为YES时,表示anonymous将会略过密码检验步骤,而直接进入vsftpd服务器内。默认是NO
no_anon_password=YES(NO)
10.限制anonymous的传输速度,0为不限制
anon_max_rate=0
11.限制anonymous上传文件的权限!
anon_umask=007
007表示anonymous传送过来的文件权限会是-rw---------
(4)关于系统安全方面的一些设置
1.Client是否优先使用ASCII格式下载文件(默认YES)
ascii_download_enable=YES(NO)
2.与上一条相似,只是这个设置针对上传而言(默认NO)
ascii_upload_enable=YES(NO)
3.设置每个建立的连接都会拥有一个process在负责,可以提高vsftpd的效率。不过除非你的系统比较安全,而且硬件配置比较高,否则容易耗尽系统资源。
one_process_model=YES(NO)
4.设置TCP Wrappers支持
tcp_wrappers=YES(NO)
5.用户上传下载的时候用来记录操作
xferlog_enable=YES(NO)
6.如果上面是xferlog_enable=YES,这里就可以设置。这是一个日志文件的文件名
xferlog_file=/var/log/xferlog
7.是否设置为wu-ftp相同的日志文件格式,默认为No,因为日志文件比较容易读
xferlog_std_format=YES(NO)
8.除了/var/log/xferlog的wu-ftp格式日志文件之外,还可以具有vsftpd的独特日志文件格式
dual_log_enable=YES、vsftpd_log_file=/var/log/vsfptd.log
9.vsftpd默认以nobody作为此服务执行者的权限,因为nobody的权限相当低,因此即使被入侵,入侵者仅能获得nobody的权限
nopriv_user=nobody
10.这个是PAM模块的名称,我们设置在/etc/pam.d/vsftpd中就是这个
pam_service_name=vsftpd