版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://abner.blog.51cto.com/667698/147041
FTP=File Transfer Protocol(PFC959)
系统环境Linux 2.6.15-1.2054_FC5
只安装了开发工具,无图形环境
建立ftp前的一些准备工作
# useradd nobody
# mkdir /usr/share/empty/
# mkdir /var/ftp/
# useradd -d /var/ftp ftp
# chown root.root /var/ftp
# chmod og-w /var/ftp
如果系统已经做好这些工作我们就可以直接进行以下工作
下载
[url]http://vsftpd.beasts.org[/url]
安装VSFTP
cd /usr/src
tar xvzf vsftpd-2.0.5.tar.gz
cd vsftpd-2.0.5
make
make install
安装配置文件
cp vsftpd.conf /etc/
cp RedHat/vsftpd.pam /etc/pam.d/
mv /etc/pam.d/vsftpd.pam /etc/pam.d/ftp
编辑配置文件/etc/vsftpd.conf 在末尾处加入一句话:
listen=YES(使VSFTP采用单独运行模式运行)
禁用xinetd方式启动
chkconfig vsftpd off
chkconfig vsftpd --list 显示 vsftpd off
添加到开机自启动
vi /etc/rc.local添加一句话
/usr/local/sbin/vsftpd &
手动启动服务
/usr/local/sbin/vsftpd & 或/etc/rc.local停止服务 killall -9 vsftpd
察看端口,如果有21端口处于监听状态,则ftp服务运行。
netstat -tln
配置匿名用户访问及上传
vi /etc/vsftpd.conf
anonymous_enable=YES #允许匿名用户登录服务器
local_enable=YES #允许本地用户登录
write_enable=YES #允许客户端写命令
local_umask=022 #本地用户新文件的umask值(文件对同组和其他用户 来说是只读的)
anon_upload_enable=YES #允许匿名用户上传文件
anon_mkdir_write_enable=YES #允许匿名用户创建目录
dirmessage_enable=YES #允许使用目录信息(将目录下.message文件打印给用 户)
ftp_banner=welcome to ... #登录欢迎词
listen=YES #运行在监听模式
配置:
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
dirmessage_enable=YES
重启服务
killall -9 vsftpd
/usr/local/sbin/vsftpd &
上面两句话可用killall -HUP vsftpd 代替
此时可以尝试登陆FTP服务器,
ftp localhost
匿名用户anonymous/ftp可访问下载。
由于匿名帐户属于ftp组,但是/var/ftp 属于root组,且权限为755其他由户不可写
所以可以新建目录,将文件属性改为FTP组
mkdir /var/ftp/incoming
chgrp ftp incoming/
此时匿名用户可访问可以在incoming文件夹内下载上传。
但是所有匿名用户都可以看到下载删除其他匿名用户上传得东西
所以可以把ftp组可读权限去掉,这样匿名用户能上传但是不能访问不能下载。
chmod g-r incoming/
ls -ld incoming/
显示drwx-wxr-x 2 root ftp 4096 Oct 21 18:13 incoming
普通用户的目录锁定
匿名用户默认配置被锁定在:“/”目录下即/var/ftp
普通用户登录ftp时也可以锁定
需要打开
chroot_list-enable=YES
在中chtoot_list_file=/etc/vsftpd.chroot_list
写入普通用户名
redhat
test
用户控制
写入/etc/ftpusers:的用户将被拒绝访问ftp(但是可以通过修改/etc/pam.d/ftp中的sense值为allow来改成允许的用户列表)
此方法并未成功,但是可以用下列方法实现本地用户访问控制
在/etc/vsftpd.conf中添加
userlist_enalbe=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
vi /etc/vsftpd.user_list
test
这样在vsftpd.user_list中的test帐户不能访问ftp。如果是userlist_deny=NO
就变成只有test可以访问ftp
强烈推荐使用man vsftpd.conf
察看更多详细内容。
本文出自 “abner kou” 博客,请务必保留此出处http://abner.blog.51cto.com/667698/147041
FTP=File Transfer Protocol(PFC959)
系统环境Linux 2.6.15-1.2054_FC5
只安装了开发工具,无图形环境
建立ftp前的一些准备工作
# useradd nobody
# mkdir /usr/share/empty/
# mkdir /var/ftp/
# useradd -d /var/ftp ftp
# chown root.root /var/ftp
# chmod og-w /var/ftp
如果系统已经做好这些工作我们就可以直接进行以下工作
下载
[url]http://vsftpd.beasts.org[/url]
安装VSFTP
cd /usr/src
tar xvzf vsftpd-2.0.5.tar.gz
cd vsftpd-2.0.5
make
make install
安装配置文件
cp vsftpd.conf /etc/
cp RedHat/vsftpd.pam /etc/pam.d/
mv /etc/pam.d/vsftpd.pam /etc/pam.d/ftp
编辑配置文件/etc/vsftpd.conf 在末尾处加入一句话:
listen=YES(使VSFTP采用单独运行模式运行)
禁用xinetd方式启动
chkconfig vsftpd off
chkconfig vsftpd --list 显示 vsftpd off
添加到开机自启动
vi /etc/rc.local添加一句话
/usr/local/sbin/vsftpd &
手动启动服务
/usr/local/sbin/vsftpd & 或/etc/rc.local停止服务 killall -9 vsftpd
察看端口,如果有21端口处于监听状态,则ftp服务运行。
netstat -tln
配置匿名用户访问及上传
vi /etc/vsftpd.conf
anonymous_enable=YES #允许匿名用户登录服务器
local_enable=YES #允许本地用户登录
write_enable=YES #允许客户端写命令
local_umask=022 #本地用户新文件的umask值(文件对同组和其他用户 来说是只读的)
anon_upload_enable=YES #允许匿名用户上传文件
anon_mkdir_write_enable=YES #允许匿名用户创建目录
dirmessage_enable=YES #允许使用目录信息(将目录下.message文件打印给用 户)
ftp_banner=welcome to ... #登录欢迎词
listen=YES #运行在监听模式
配置:
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
dirmessage_enable=YES
重启服务
killall -9 vsftpd
/usr/local/sbin/vsftpd &
上面两句话可用killall -HUP vsftpd 代替
此时可以尝试登陆FTP服务器,
ftp localhost
匿名用户anonymous/ftp可访问下载。
由于匿名帐户属于ftp组,但是/var/ftp 属于root组,且权限为755其他由户不可写
所以可以新建目录,将文件属性改为FTP组
mkdir /var/ftp/incoming
chgrp ftp incoming/
此时匿名用户可访问可以在incoming文件夹内下载上传。
但是所有匿名用户都可以看到下载删除其他匿名用户上传得东西
所以可以把ftp组可读权限去掉,这样匿名用户能上传但是不能访问不能下载。
chmod g-r incoming/
ls -ld incoming/
显示drwx-wxr-x 2 root ftp 4096 Oct 21 18:13 incoming
普通用户的目录锁定
匿名用户默认配置被锁定在:“/”目录下即/var/ftp
普通用户登录ftp时也可以锁定
需要打开
chroot_list-enable=YES
在中chtoot_list_file=/etc/vsftpd.chroot_list
写入普通用户名
redhat
test
用户控制
写入/etc/ftpusers:的用户将被拒绝访问ftp(但是可以通过修改/etc/pam.d/ftp中的sense值为allow来改成允许的用户列表)
此方法并未成功,但是可以用下列方法实现本地用户访问控制
在/etc/vsftpd.conf中添加
userlist_enalbe=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
vi /etc/vsftpd.user_list
test
这样在vsftpd.user_list中的test帐户不能访问ftp。如果是userlist_deny=NO
就变成只有test可以访问ftp
强烈推荐使用man vsftpd.conf
察看更多详细内容。
本文出自 “abner kou” 博客,请务必保留此出处http://abner.blog.51cto.com/667698/147041