|
因工作需要,我需要在linux下面建设一个ftp服务器,具体要求如下:
1、部门1的用户为:user1,user2,admin1;部门2的用户为:user3,user4,admin2;部门3的用户为:user5,user6,admin3;..................。
2、每个用户都有自己的主目录,为了安全需要设置chroot功能限定在自己的家目录内,在自己家目录内用户有完全权限。
3、另外有一个公共文档目录,需要所有用户都能访问,普通用户在该目录下(比如/var/doc)有只读权限(对目录需要执行权限)。另外,在该目录下设有各部门工作目录(比如为/var/doc/work/part1、/var/doc/work/part3),只有admin1、admin2、admin3等用户有对应部门的上传、改写、删除权限(文件不给执行权限),而对其他目录和普通用户一样是只读权限。
4、所有用户都需要启用配额限制(这就不能用vfat磁盘格式了),假设user类用户为3G,admin类用户为5G。
5、为了安全,ftp端口改为1234,使用被动方式连接。
6、其他小的配置方面,比如iptable、配额等等就不作深入讨论
下面是我在FC4中,用vsftp做的配置文件(不完整):
####################################################################
#关于主机的设定值
connect_from_port_20=NO
listen_port=1234
pasv_max_port=65400
pasv_min_port=65500
dirmessage_enable=NO
listen=YES
#以standalone 的方式启动!
pasv_enable=YES
#被动方式连线!
use_localtime=YES
write_enable=yes
connect_timeout=60
accept_timeout=60
data_connection_timeout=300
idle_session_timeout=300
max_clients=20
max_per_ip=10
ftpd_banner='System is busy now, please try again later'
local_enable=YES
local_max_rate=0
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
#这里全部用户都需要启用chroot限制功能
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
#需要把root等系统用户添加进来
#不允许匿名登陆
anonymous_enable=NO
#关于系统安全的设定值:
ascii_download_enable=NO
ascii_upload_enable=NO
async_abor_enable=NO
check_shell=NO
one_process_model=yes
tcp_wrappers=YES
xferlog_enable=YES
xferlog_std_format=NO
xferlog_file=/var/log/vsftpd.log
nopriv_user=nobody
#######################################################################
经过分析,我发现有如下一些问题不好解决:
1、使用local方式,还是使用guest方式的帐号管理?
因为我总共有大约几十个用户,如果用local(设置nologin的shell,只能作ftp访问)方式管理会很麻烦,而且担心存在系统安全问题;但是用guest方式不知道pam认证和磁盘配额管理会不会矛盾?而且生成.db文件后,如果用户忘记口令,如何帮助用户更改口令?
2、对公共目录的访问,估计应该是使用目录映射方式(mount --bind [原有的目录] [新目录])解决,把公共文档映射到每一个用户的主目录下。但是不知道一个目录能否做多次映射?而且设置了chroot配置后,映射能否生效?
3、公共目录(即需要映射的虚拟目录)的存取权限如何设置?
关键是不同用户类型具有不同权限要求,这点还没有想到解决办法。(好像只能使用本地帐号才能解决,如果用guest帐号??)
因为目前我只有一台服务器(用的是server-U),已经有不少数据,还没有条件进行上述测试。因为系统运行不够稳定,所以想更换到linux系统,请各位大虾帮忙分析如何解决上述问题? |
|