|
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 |
|