共计 3245 个字符,预计需要花费 9 分钟才能阅读完成。
CentOS 下 vsftpd 服务器搭建
1. 最为简单的 vsftpd 服务器搭建
1. 安装 vsftpd
1.yum 安装
yum install vsftpd
2.rpm 文件安装 (如果没有 rpm 文件,可以到 http://rpmfind.net/ 网站下载)
rpm -ivh vsftpd-2.2.2-11.el6_4.1.x86_64.rpm
2. 防火墙 (centos 6.5 使用的是 iptables 防火墙)
1. 开放 21 端口
1
|
iptables -A INPUT -p tcp --dport 21 -j ACCEPT |
2. 开放 20 端口
1
|
iptables -A INPUT -p tcp --dport 20 -j ACCEPT |
3. 开放 20 主动端口
1
|
iptables -A INPUT -m state --state NEW -p tcp --dport 20 -j ACCEPT |
4. 开放 21 主动端口
1
|
iptables -A INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT |
5. 写入被动模式端口
1
2
|
echo pasv_min_port=30000 >> /etc/vsftpd/vsftpd .conf echo_pasv_max_port=31000 >> /etc/vsftpd/vsftpd .conf |
(注意:min 和 max 可以随意填写,但要遵守如下规则
max > min && min > 1000 && max < 65536)
6. 写入被动端口
1
|
iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT |
7. 保存配置
1
|
/etc/init .d /iptables iptables save |
8. 重启 iptables 防火墙
1
|
/etc/init .d /iptables iptables restart |
3. 赋予权限
1
|
chmod -R 755 /var/ftp |
4. 测试
成功!!!
2.ftp 匿名服务器
1. 配置
在 /etc/vsftpd/vsftpd.conf(此为 vsftpd 的主配置文件) 下:
打开以下配置即可 (删除前面的 #号,如果没有,可以自行添加,默认配置文件最好不要注释掉)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
anonymous_enable=YES # 允许匿名访问 local_enable=YES # 支持本地端实体用户登录 write_enable=YES # 如果要允许用户上传 local_umask=022 # 限制上传文件的权限 anon_upload_enable=YES # 允许上传文件 anon_mkdir_write_enable=YES # 允许建立文件夹 anon_other_write_enable=YES # 对文件有读写操作权限,意味着可以删除文件 xferlog_enable=YES # 记录日志 xferlog_file= /var/log/xferlog # 日志位置 pam_service_name=vsftpd # 支持 PAM 模块的管理 tcp_wrappers=YES # 支持 TCP Wrappers 的防火墙机制 |
2. 测试
能够访问,并且能够下载但是不能上传
3.selinux 的配置
查看 selinux:
1
|
getsebool -a | grep ftp |
设置
1
|
setsebool -P allow_ftpd_anon_write=1 && setsebool -P allow_ftpd_full_access=1 & |
命令执行比较慢,可以放入后台执行
4. 测试
成功
3. 实体用户配置
1. 配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
anonymous_enable=no # 禁止匿名用户访问 local_enable= yes # 支持实体用户登录 write_enable= yes # 拥有写权限 local_umask=077 # 默认目录权限是 755 默认文件权限是 644 dirmessage_enable= yes # 显示文件内容 connect_from_port_20=YES # 主动连接 xferlog_std_format=YES # 记录日志 listen=YES # 使用 stand alone 方式启动 pam_service_name=vsftpd # 支持 pam 模块 tcp_wrappers= yes # 支持 tcp 防火墙 userlist_enable= yes # 不允许 /etc/vsftpd/user_list 内的用户登录 vsftpd |
2.selinux 的设置
1
|
setsebool -P ftp_home_dir=1 |
3. 测试
成功!!!
4.ftp 服务器安全
1.chroot
目录:/etc/vsftpd/chroot_list
使用:
1. 将需要限制的用户名写入即可,一排一个用户名,最好通过 >> 来写入
2. 设置 vsftpd.conf
chroot_list_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot
目的:
在文件内的用户名登录 ftp 之后,只能在用户主目录下
2.userlist
目录:/etc/vsftpd/user_list
使用:
1. 将需要限制的用户名写入即可,一排一个用户名,最好通过 >> 来写入
2. 设置 vsftpd.conf
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
如果 [userlist_deny=NO]; 那么
此时文件内的用户才能访问 ftp
另外 [userlist_deny=YES]; 那么
此时文件内的用户不能访问 ftp
目的:
想让某人使用或者不使用 ftp 都可以
5. 总结
1.ftp 使用的端口为 20,21 其中 21 为通道端口,20 为连接端口
2. 防火墙与 selinux 开发规则即可
玩转 vsftpd 服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm
vsFTPd 配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm
Ubuntu 实用简单的 FTP 架设 http://www.linuxidc.com/Linux/2012-02/55346.htm
Ubuntu 上架设 FTP 服务器和 Apache 服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm
Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm
RHEL6 平台下 SeLinux 和 vsftpd 的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm
Linux 系统 vsftpd 源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm
openSUSE 13.2/13.1 下安装配置 FTP 服务器 vsftpd http://www.linuxidc.com/Linux/2014-12/110070.htm
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-07/133305.htm