您的位置:首页 > 运维架构 > Linux

CentOS安装vsftpd并限制用户访问自己目录

2012-01-30 11:29 519 查看
1.yum安装vsftpd:

1
yum
install
vsftpd
2
touch
/var/log/vsftpd.log
#
创建vsftp的日志文件
2.设置每次开机时自动运行及手工启动它:

1
chkconfig vsftpd on
2
service vsftpd start
3
netstat
-tl
可以查看ftp端口是否在侦听了!

3.配置文件

配置/etc/vsftpd/ftpusers 和 /etc/vsftpd/user_list,#不能登陆FTP的用户;

配置 /etc/vsftpd/vsftpd.conf

1
#anonymous_enable=YES
2
anonymous_enable=NO
#设定不允许匿名用户访问
3
chroot_local_user=YES
#把系统内所有的FTP用户都限制在家目录中
xferlog_file=/var/log/vsftpd.log设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来
4
ascii_upload_enable=YES
5
ascii_download_enable=YES 设定支持ASCII模式的上传和下载功能。
6
pam_service_name=vsftpd PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
4.设定FTP目录

1
#修改 /home/wwwroot 目录属性:
2
chmod
-R
777 /home/wwwroot
3
#递归地给此目录下所有文件和子目录的读、写、执行权限
4
chgrp
-R
ftp
/home/wwwroot
递归地把此目录及该目录下所有文件和子目录的组属性设置成ftp组

5.增加FTP用户

1
adduser -d /home/wwwroot -g
ftp
-s
/sbin/nologin 用户名
2
#增加用户,组是FTP,目录是/home/wwwroot
3
passwd
用户名
4
#设定用户密码
5
Changing password
for
user
beinan.
6
New password:
7
Retype new password:
8
passwd
:
all authentication tokens updated successfully.
6.重启FTP

1
service vsftpd restart
2
guest_enable=YES
#设定启用虚拟用户功能。
3
guest_username=
ftp
#指定虚拟用户的宿主用户。-CentOS中已经有内置的ftp用户了
4
user_config_dir=/etc/vsftpd/vuser_conf
#设定虚拟用户个人vsftp的配置文件存放路径。存放虚拟用户个性的配置文件(配置文件名=虚拟用户名)
7.有时会出现上传多个小文件时卡住的情况,可以编辑/etc/vsftpd/vsftpd.conf如下:

1
vi
/etc/vsftpd/vsftpd.conf
2
connect_from_port_20=YES
3
pasv_min_port=49152
4
pasv_max_port=65534
5
data_connection_timeout=1
或者将文件打包上传到服务端再解压来解决此问题。

8.修改已有用户的FTP目录

1
usermod
-d
/home/www/abc.com abc
注: /home/www/abc.com 为修改的目标文件夹 abc 为要修改目录的用户名

9.vsftpd的默认设置是所有目录都可以被客户进入,极为不安全,因此要限制用户可以访问目录,限制用户只能访问自己家目录,设置方法如下:

1
chroot_local_user=YES
chroot_local_user=YES就行了。

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list代替也行。

在vsftpd.conf最下面增加这一行,重启ftp即可

本机可以测试:

01
[root@hexuweb101 username]
#
ftp
02
ftp
>
open
127.0.0.1
03
Connected to 127.0.0.1 (127.0.0.1).
04
220 (vsFTPd 2.0.5)
05
Name (127.0.0.1:root): username
06
331 Please specify the password.
07
Password:
08
230 Login successful.
09
Remote system
type
is
UNIX.
10
Using binary mode to transfer files.
11
ftp
>
quit
12
221 Goodbye.
说明可以正常访问了。 如果外部不能访问就需要检查Iptable设置了。

如果不能正常访问,查看是什么问题:

1. 查看配置:

2. 查看登陆情况:

1
tail
-f
/var/log/secure
3. 查看Iptables

在Iptables添加:

1
vi
/etc/sysconfig/iptables
2
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
3
iptables -A INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: