FTP

来源:互联网 发布:2k16捏脸数据 姚明 编辑:程序博客网 时间:2024/06/07 05:07

     第九单元 FTP

匿名用户上传文件时需要有权限:chown ftp dir; chmod 775 dir
or chmod 777 dir;(chmod 773 dir: 此时,部分用户将不可看到目录列表信
息)
Selinux的影响:
getsebool -a | grep ftp
setsebool -P allow_ftpd_anon_write on
setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on
#允许本地普通用户用ftp登录后
可以浏览自己的家目录
[root@station40 ~]# lftp -u lee 192.168.0.40 #本地用户登录ftpserver
Password:
vi /etc/vsftpd/vsftpd.conf:
匿名上传:
anonymous_enable=YES
anon_upload_enable=YES
匿名用户可创建目录:
anon_mkdir_write_enable=YES
anon_root = /home :改变匿名用户目录
允许匿名登入者下载可阅读的档案(为YES时)
anon_world_readable_only=NO (此时只可查看列表,不可下载)
anon_other_write_enable=YES:如果设为YES,则允许匿名登入者更多于上
传或者建立目录之外的权限,譬如删除或者重命名。(如果
anon_upload_enable=NO,则匿名用户不能上传文件,但可以删除或者重命名已
经存在的文件;如果 anon_mkdir_write_enable=NO,则匿名用户不能上传或者
新建文件夹,但可以删除或者重命名已经存在的文件夹。)默认值为NO。
anon_umask=077
客户机使用主机中的帐户权限:(匿名用户上传的文件的默认属性是ftp:ftp)
chown_uploads=yes:设置是否改变匿名用户上传文件(非目录)的属主。默
认值为NO
chown_username=ww (设置匿名用户上传文件(非目录)的属主名,使用本
机中的用户)
/etc/vsftpd/ftpusers:用于保存不允许进行 FTP登录的本地用户帐号 (永久
的。)
禁止vsftpd.user_list文件中的用户登录
主配置文件vsftpd.conf中修改如下两项,
userlist_enable=yes
userlist_deny=yes
说明:配置完以后,除了vsftpd.ftpusers文件和vsftpd.user_list文件中记
录的ftp用户不能登录vsftp服务以外,其他的ftp用户都可以登录。
只允许vsftpd.user_list文件中的用户登录;
配置文件 vsftpd.conf 中的语句修改如下两项:userlist_enable=yes
userlist_deny=no
说明:配置完以后,只允许vsftpd.user_list文件中记 录的ftp用户能登录
vsftp服务,其他的ftp用户都不可以登录。
lftp -u user servername(将登录到user用户的家目录,并可切换到根目录)
是否允许切换到根目录:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
(在chroot_list中添加的用户不可切换到根目录)
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES
(在chroot_list中添加的用户可切换到根目录)
chroot_list_enable=NO
chroot_local_user=YES
(所有的用户均不能切换到其他目录)
chroot_list_enable=NO
chroot_local_user=NO
(所有的用户均可以切换到其他目录)
localuser管理:
local_root=/var/ftp (锁定普通用户登录后的目录,将不再登录到家目录)
local_enable=YES //允许本地用户登陆
write_enable=YES //允许本地客户端写命令
local_umask=022 //本地用户新文件的umask值
file_open_mode=0755
本地用户上传档案后的档案权限,与chmod 所使用的数值相同。默认值为
0666。
欢迎语设置
dirmessage_enable=YES/NO(YES)
如果启动这个选项,那么使用者第一次进入一个目录时,会检查该目录下是否
有.message这个档案,如 果有,则会出现此档案的内容,通常这个档案
会放
置欢迎话语,或是对该目录的说明。默认值为开启。
message_file=.message
设置目录消息文件,可将要显示的信息写入该文件。默认值 为.message。
banner_file=/etc/vsftpd/banner
当使用者登入时,会显示此设定所在的档案内容,通常为欢迎话语或是说明。
默认值为无。如果欢迎信息较多, 则使用该配置项。更改默认端口:
listen_port=5000
lftp 192.168.0.4:5000
Max_clients=100 :表示最多可以有100个用户同时访问
是否开户被动模式
pasv_enable=yes
被动模式最小端口
pasv_min_port=5000
被动模式最大端口
pasv_max_port=6000
服务器使用双ip地址:
ifconfig eth0:1 192.168.0.41 netmask 255.255.255.0
使用不同地址登录时,拥有不同的权限
vi vsftpd.conf
listen_address=192.168.0.4
anonymous_enable=YES
lftp 192.168.0.4
vi vsftpd1.conf
listen_address=192.168.0.41
anonymous_enable=NO
lftp 192.168.0.41
匿名用户与普通用户拥有不同的传输速率
local_max_rate=102400 (100K)
anon_max_rate=10240
访问控制设置
两种控制方式:一种控制主机访问,另一种控制用户访问。
1控制主机访问:
tcp_wrappers=YES/NO(YES)
设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制。默认值为
YES。如果启用,则vsftpd服务器会检查/etc/hosts.allow 和/etc
/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。这两
个文件可以起到简易的防火墙功能。比如:
vi /etc/hosts.allow
vsftpd:192.168.0.0/255.255.255.0
EXCEPT 192.168.0.254
vi /etc/hosts.deny
ALL:ALL
2控制用户访问:
对于用户的访问控制可以通过/etc目录下的vsftpd.user_list和ftpusers文件来
实现。userlist_file=/etc/vsftpd.user_list
控制用户访问FTP的文件,里面写着用户名称。一个用户名称一行。
userlist_enable=YES/NO(NO)
是否启用vsftpd.user_list文件。
userlist_deny=YES/NO(YES)
决定vsftpd.user_list文件中的用户是否能够访问FTP服务器。若设置为YES,
则 vsftpd.user_list文件中的用户不允许访问FTP,若设置为NO,则只有
vsftpd.user_list文件中的用户才能访问FTP。
/etc/vsftpd/ftpusers文 件专门用于定义不允许访问FTP服务器的用户列表
(注意:如果userlist_enable=YES,userlist_deny=NO,此时如果在
vsftpd.user_list和ftpusers中都有某个 用户时,那么这个用户是不能够访问FTP
的,即ftpusers的优先级要高)。默认情况下vsftpd.user_list和ftpusers,这两个
文件已经预设置了一些不允许访问FTP服务器的系统内部账户。如果系统没有这两个
文件,那么新建这两个文件,将用户添加进去即可。
连接相关的设置
listen=YES/NO(YES)
设置vsftpd服务器是否以standalone模式运行。以standalone模式运行是一
种较好 的方式,此时listen必须设置为YES,此为默认值。建议不要更改,有很多与
服务器运行相关的配置命令,需要在此模式下才有效。若设置为NO,则 vsftpd不是
以独立的服务运行,要受到xinetd服务的管控,功能上会受到限制。
max_clients=0
设置vsftpd允许的最大连接数,默认值为0,表示不受限制。若设置为100时,
则同时允许有100个 连接,超出的将被拒绝。只有在standalone模式运行才有效。
max_per_ip=0
设置每个IP允许与FTP服务器同时建立连接的数目。默认值为0,表示不受限
制。只有在 standalone模式运行才有效。
listen_address=IP地 址
设置FTP服务器在指定的IP地址上侦听用户的FTP请求。若不设置,则对服务器
绑定的所有IP地址进行 侦听。只有在standalone模式运行才有效。
setproctitle_enable=YES/NO(NO)
设置每个与FTP服务器的连接,是否以不同的进程表现出来。默认值为NO,此时使用
ps aux |grep ftp只会有一个vsftpd的进程。若设置为YES,则每个连接都会有一个
vsftpd的进程。
虚拟用户设置:
guest_enable=YES (虚拟用户登录,匿名登录应关闭)
guest_username=ftp (默认值为ftp)
virtual_use_local_privs=YES/NO(NO)
当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。当此参数关
闭(NO)时,虚拟用户使用与 匿名用户相同的权限。默认情况下此参数是关闭的
(NO)
虚拟用户登录实例(用于大批量用户):
yum install db4-utils
cd /etc/vsftpd/vi users
aaa
passwd1
bbb
passwd2
db_load -T -t hash -f users login.db (将文本文件转换为数据库文件)
-T 转换数据库文件。 -t 指定参数。
cd /etc/pam.d/
vi virtual
auth required
account required
pam_userdb.so db=/etc/vsftpd/login
pam_userdb.so db=/etc/vsftpd/login
vi vsftpd.conf
pam_service_name=virtual
local_root=/var/ftp/
guest_enable=YES
guest_username=qq (qq应为系统实际存在的用户)
userlist_enable=YES
tcp_wrappers=YES
lftp -u aaa serverip;
为不同的用户设置不同的登录目录并拥有不同的权限:
pam_service_name=virtual
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=qq
local_root=/var/ftp/$USER
指定虚拟用户目录。
user_config_dir=/etc/vsftpd/condir 指定子配置文件。
user_sub_token=$USER
或者把虚拟用户的登录目录这定在下面的子配置文件中。
cd /etc/vsftpd/condir(为不同的虚拟用户设置不同的权限)
vi aaa
anon_upload_enable=YES
anon_world_readable_only=NO (此时只可查看列表,不可下
载)
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
vi bbb
anon_mkdir_write_enable=YES
anon_world_readable_only=YES
dirlist_enable = NO (列表隐藏,不可查看)
cd /var/ftp
mkdir aaa
mkdir bbbchown ftp:ftp aaa (但实际上客户端所创建的文件夹与上传文件的属主为
“guest_username=qq”中设定的)
chmod 777 aaa
chown ftp:ftp bbb
chmod 777 bbb
lftp -u bbb serverip (创建的文件夹属于用户qq,登录后的目录为:/etc/
vsftpd/bbb)
listen_address 192.168.0.40
list_port 5000 监听端口
监听的ip
pasv_max_port 在被动传输模式下连接端口的范围。
pasv_min_port
local_max_rate 本地用户最大传输速率
anon
 

1 0
原创粉丝点击