LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 900|回复: 2

FC6下配置安全高效的VSFTPD

[复制链接]
发表于 2007-3-30 14:49:15 | 显示全部楼层 |阅读模式
FC6下配置安全高效的VSFTPD
VsFTPD的安装就不写了,去找RPM的吧,YUM也可以,www.rpmfind.net找也可以.
实现目的
1.匿名不能登入
2.有不同权限,有些用户能写能读能改名字,有些只能读不能写等等.....
3.特殊用户要有自己的空间,别人进不去.

配置  --(如果你找不到某些配置,就把它添加到vsftpd.conf的下面)
vi /etc/vsftpd/vsftpd.conf

1. 禁止匿名用户访问, 我们不需要什么匿名用户,直接禁止掉:

anonymous_enable=NO

2.允许本地用户登陆,因为我们需要使用ftp用户来对我们网站进行管理:

local_enable=YES

3.可以上传(全局控制).

write_enable=YES
#本地用户上传文件的umask

local_umask=022

4.只允许系统中的ftp用户或者某些指定的用户访问ftp,因为系统中帐户众多,不可能让谁都访问。

打开用户文件列表功能:

userlist_enable=YES
只允许用户文件列表中的用户访问ftp:

userlist_deny=YES
用户名文件列表路径:

userlist_file=/etc/vsftpd.user_list   
然后在/etc下建立文件 vsftpd.user_list 文件,一行一个,把用户ftp加进去,同时也可以加上你允许访问的系统帐户名

5. 禁止某些用户登陆ftp:

pam_service_name=vsftpd

指出VSFTPD进行PAM认证时所使用的PAM配置文件名,默认值是vsftpd,默认PAM配置文件是/etc/pam.d/vsftpd。

/etc/vsftpd.ftpusers

VSFTPD禁止列在此文件中的用户登录FTP服务器,用户名是一行一个。这个机制是在/etc/pam.d/vsftpd中默认设置的。

这个功能和(3)里的功能有点类似,他们俩能结合使用,那样就最好了


6. 把本地用户锁定在自己的主目录,防止转到其他目录,比如把/etc/passwd给下载了:

chroot_local_users=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list

然后在/etc下建立vsftpd.chroot_list文件,里面把我们要限制的本地帐户加进去,一行一个,我们加上ftp,防止它登陆到系统

7. 隐藏文件真实的所有用户和组信息,防止黑客拿下ftp后查看更多系统用户信息:

hide_ids=YES



8.取消ls -R命令,节省资源,因为使用该命令,在文件列表很多的时候将浪费大量系统资源:

ls_recurse_enable=NO

9. ftp的banner信息,为了防止黑客获取更多服务器的信息,设置该项:

ftpd_banner=Welcome to Server-U FTP service

把后面的banner string设为你需要的banner提示信息,为了安全,建议不要暴露关于vsFTPd的任何信息。

另外,如果你的信息比较多的话,可以设置为提示信息是读取一个文件中的信息:

banner_file=/directory/vsftpd_banner_file

10. 打开日志功能:

xferlog_enable=YES

同时设置日志的目录:

xferlog_file=/var/log/vsftpd.log

启用详细的日志记录格式:

xferlog_enable=YES

11.空闲连接超时,登陆FTP超时将退出

idle_session_timeout=600

数据传输超时

data_connection_timeout=120


12.开启tcp_wrappers支持

tcp_wrappers=YES

13.定义PAM 所使用的名称,预设为vsftpd。

pam_service_name=vsftpd

现在FTP可以用了.但是还不能实现权限功能.下面继续...


实现不同用户不同权限

现在我们就来实现三个用户的不同权限:

a.play用户,可以上传下载,可以新建文件夹,但不能删除文件和文件夹,不能重命名原有文件和文件夹;



b.test用户,只能下载;



c.admin用户,管理员,可以上传,可以下载,可以新建文件夹,可以删除和更改文件和文件夹名。这些用户都不能登录系统,并且用ftp连接时锁定在自己的家目录中不能进入系统文件夹

useradd -d /home/ftpsite virtual;

chmod 700 /home/ftpsite

vi /etc/vsftpd.conf在此文件中插入下面的配置语句

guest_enable=YES(启用虚拟用户)

guest_username=virtual(将虚拟用户映射为本地virtual用户)  

user_config_dir=/etc/vsftpd_user_conf(指定不同虚拟用户配置文件的存放路径)  

保存退出
mkdir /etc/vsftpd_user_conf

开放不同用户的不同权限 

echo "anon_world_readable_only=NO">/etc/vsftpd_user_conf/test(开放test用户的下载权限——只能下载;注意这个不地方不要写成YES,否则将不能列出文件和目录)

cp /etc/vsftpd_user_conf/test /etc/vsftpd_user_conf/play  

vi /etc/vsftpd_user_conf/play,添加下列行   

write_enable=YES (增加写权限)   

anon_upload_enable=YES(增加上传权限)  

anon_mkdir_write_enable=YES (增加创建目录的权限)   

cp /etc/vsftpd_user_conf/play /etc/vsftpd_user_conf/admin   

增加一行:

anon_other_write_enable=YES(增加管理员用户的删除/重命名的权限)

匿名用户的传输比率(b/s)

anon_max_rate=51200



#本地用户的传输比率(b/s)

local_max_rate=5120000

现在配置一个特殊的客户,他不想和大家在一个目录,他要单独在一个目录.别人无法查看他的目录.
他对自己的空间有读写改所有权限.
mkdir /home/cap
chown virtual.virtual /home/cap
chmod 600 /home/cap
useradd -d /home/cap -g /sbin/nologin cap    (这样添加的FTP用户是只能登FTP服务,不能登陆系统的)
passwd cap

cp /etc/vsftpd_user_conf/admin /etc/vsftpd_user_conf/cap
vi /etc/vsftpd_user_conf/cap
在最下面加入
local_root=/home/cap




添加FTP用户,如果没必要都不要给shell
useradd -s /sbin/nologin user

下面是我自己的FTP配置

anonymous_enable=NO
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=120
ftpd_banner=Welcome to Server-U FTP service
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=NO
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=virtual
anon_max_rate=4300000
user_config_dir=/etc/vsftpd/vsftpd_user_conf
userlist_file=/etc/vsftpd/user_list
hide_ids=YES
 楼主| 发表于 2007-3-30 14:56:10 | 显示全部楼层
FTP 数字代码的意义



110 重新启动标记应答。

120 服务在多久时间内ready。

125 数据链路埠开启,准备传送。

150 文件状态正常,开启数据连接端口。

200 命令执行成功。

202 命令执行失败。

211 系统状态或是系统求助响应。

212 目录的状态。

213 文件的状态。

214 求助的讯息。

215 名称系统类型。

220 新的联机服务ready。

221 服务的控制连接埠关闭,可以注销。

225 数据连结开启,但无传输动作。

226 关闭数据连接端口,请求的文件操作成功。

227 进入passive mode。

230 使用者登入。

250 请求的文件操作完成。

257 显示目前的路径名称。

331 用户名称正确,需要密码。

332 登入时需要账号信息。

350 请求的操作需要进一部的命令。

421 无法提供服务,关闭控制连结。

425 无法开启数据链路。

426 关闭联机,终止传输。

450 请求的操作未执行。

451 命令终止:有本地的错误。

452 未执行命令:磁盘空间不足。

500 格式错误,无法识别命令。

501 参数语法错误。

502 命令执行失败。

503 命令顺序错误。

504 命令所接的参数不正确。

530 未登入。

532 储存文件需要账户登入。

550 未执行请求的操作。

551 请求的命令终止,类型未知。

552 请求的文件终止,储存位溢出。

553 未执行请求的的命令,名称不正确
回复 支持 反对

使用道具 举报

发表于 2007-3-30 15:00:35 | 显示全部楼层
沙发 ~~~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表