如何巧妙设定安全的匿名FTP
2008-12-01 00:00:00 来源:WEB开发网限制FTP用户目录
匿名FTP可以很好地限制用户只能在规定的目录范围内活动,但正式的FTP用户默认不会受到这种限制,这样,他可以自由在根目录、系统目录、其他用户的目录中读取一些允许其他用户读取的文件。
如何才能把指定的用户象匿名用户一样限制在他们自己的目录中呢?以下我们以red hat和wu-ftp为例做一介绍。
1 创建一个组,用groupadd命令,一般可以就用ftp组,或者任何组名.
-----相关命令: groupadd ftpuser
-----相关文件: /etc/group
-----相关帮助: man groupadd
2 创建一个用户,如testuser,建立用户可用adduser命令.如果你已在先前建立了 testuser这个用户,可以直接编辑/etc/passwd文件,把这个用户加入到ftpuser这个组中.
-----相关命令: adduser testuser -g ftpuser
-----相关文件: /etc/passwd
-----相关帮助: man adduser
3 修改/etc/ftpaccess文件,加入guestgroup的定义: guestgroup ftpuser我是这样改的,加的是最后5行
compress yes all
tar yes all
chmod no anonymous
delete no anonymous
overwrite no anonymous
rename no anonymous
chmod yes guest
delete yes guest
overwrite yes guest
rename yes guest
guestgroup ftpuser
除了加 guestgroup ftpuser 这行,其他4行也要加上,否则用户登陆后,虽然可以达到用户不能返回上级目录的目的,但是却只能上传,不能覆盖、删除文件!
-----相关命令: vi /etc/ftpaccess
-----相关文件: /etc/ftpaccess
-----相关帮助: man ftpaccess,man chroot
4 向这个用户的根目录下拷贝必要的文件,拷贝ftp server自带的目录,把 /home/ftp/下的Bin,lib两个目录拷贝到这个用户的根目录下,因为一些命令(主要是ls)需要Lib支持,否则不能列目录和文件.
-----相关命令:
cp -rf /home/ftp/lib /home/testuser;cp -rf /home/ftp/bin /home/testuser
5 另外可别忘了关掉用户的telnet权,否则就白做了噢. 怎么不让用户telnet呢?很简单: 在/etc/shells里加一行/dev/null ,然后可以直接编辑/etc/passwd文件,把用户的shell设置为/dev/null就可以了.
-----相关命令: vi /etc/passwd
这一步可以在步骤2 创建一个用户时就先做好.
-----相关命令: adduser testuser -g ftpuser -s /dev/null
小经验:只要把/home/ftp下的bin和lib目录cp到/etc/skel目录里,以后新建用户都会自动把bin和lib目录CP到用户目录里,当然你也可以加上public_html目录和cgi-bin目录.
经过以上设置,testuser这个用户的所有FTP动作将限制在他的/home/testuser目录中。
更多精彩
赞助商链接