天天看点

vsftp安装及配置

一、安装

1

2

3

4

5

6

<code># 安装vsftpd</code>

<code>yum -y installvsftpd</code>

<code># 启动</code>

<code>service vsftpdstart</code>

<code># 开机启动</code>

<code>chkconfig vsftpdon</code>

二、配置文件

2.1 vsftpd.conf

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

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

<code>anonymous_enable=NO</code>

<code>local_enable=YES</code>

<code>write_enable=YES</code>

<code>local_umask=022</code>

<code>dirmessage_enable=YES</code>

<code>xferlog_enable=YES</code>

<code>connect_from_port_20=YES</code>

<code>xferlog_file=</code><code>/var/log/vsftpd</code><code>.log</code>

<code>xferlog_std_format=YES</code>

<code>listen=YES</code>

<code>pam_service_name=vsftpd</code>

<code>userlist_enable=YES</code>

<code>userlist_deny=YES</code>

<code>userlist_file=</code><code>/etc/vsftpd/user_list</code>

<code>use_localtime=</code><code>yes</code>

<code>tcp_wrappers=YES</code>

<code>local_root=</code><code>/ftp</code>

<code>chroot_list_enable=</code><code>yes</code>

<code>chroot_list_file=</code><code>/etc/vsftpd/chroot_list</code>

<code>************************************分割线,各配置项说明*****************************************</code>

<code>#禁止匿名用户anonymous登录,默认为YES</code>

<code>#允许本地用户登录</code>

<code>#让登录的用户有写权限(上传,删除)</code>

<code>#默认umask文件的权限掩码</code>

<code>#开启目录标语,默认是YES</code>

<code>#开启日志,默认是YES</code>

<code>#指定FTP使用20端口进行数据传输,默认值为YES。</code>

<code>#设置日志文件名和路径,默认值为/var/log/vsftpd.log。</code>

<code>#如果启用,则日志文件将会写成xferlog的标准格式</code>

<code>#设置vsftpd服务器是否以standalone模式运行。</code>

<code>#若设置为NO,则vsftpd不是以独立的服务运行,要受到xinetd服务的管控,功能上会受到限制。</code>

<code>#</code>

<code>#PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证</code>

<code>userlist_enable=YES </code>

<code>#是否借助vsftpd的抵挡机制来处理某些不受欢迎的账号,与下面的参数设置有关</code>

<code>#当 userlist_enable=YES 时才会生效的设定,若此设定值为 YES 时,则当使用者账号被列入到相应的文件时, </code>

<code>#在该文件内的使用者将无法登入vsftpd服务器!该文件名与下面设置(userlist_file=/etc/vsftpd/user_list)有关。</code>

<code>#若设置为YES,则/etc/vsftpd/user_list文件中的用户不允许访问FTP,若设置为NO,则只有/etc/vsftpd/user_list文件中的用户才能访问FTP。</code>

<code>#/etc/vsftpd/ftpusers文件里的用户将禁止登录ftp服务器,优先级高于user_list</code>

<code>#详细可参考</code>

<code>#http://yuanbin.blog.51cto.com/363003/108262/</code>

<code>#http://blog.chinaunix.net/uid-26495963-id-3538970.html</code>

<code> </code> 

<code>#控制用户访问FTP的文件,里面写着用户名称,一个用户名称一行;</code>

<code>#若上面 userlist_deny=YES 时,则这个设置就有用处了!在这个文件内的账号都无法使用 vsftpd !</code>

<code>#是否使用本地时间,vsftpd 预设使用 GMT 时间(格林威治),所以预设的 FTP</code>

<code>#的日期会比中国晚 8 小时,建议修改设定为 YES </code>

<code>#如果启用,则vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny </code>

<code>#中的设置,来决定请求连接的主机,是否允许访问该FTP服务器</code>

<code>#锁定ftp访问目录(默认没有此项)</code>

<code>#设置为YES,即让chroot_list文件里的用户列表有效。设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。</code>

<code>#需要手动建立chroot_list文件,用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。</code>

2.2 ftpusers

此文件中的用户禁止登录ftp服务器

<code># Users that are not allowed to login via ftp</code>

<code>root</code>

<code>bin</code>

<code>daemon</code>

<code>adm</code>

<code>lp</code>

<code>sync</code>

<code>shutdown</code>

<code>halt</code>

<code>mail</code>

<code>news</code>

<code>uucp</code>

<code>operator</code>

<code>games</code>

<code>nobody</code>

2.3 user_list

在该文件内的使用者将无法登入vsftpd服务。

关联配置项:

pam_service_name=vsftpd

userlist_enable=YES

userlist_deny=YES

userlist_file=/etc/vsftpd/user_list

<code># vsftpd userlist</code>

<code># If userlist_deny=NO, only allow users in this file</code>

<code># If userlist_deny=YES (default), never allow users in this file, and</code>

<code># do not even prompt for a password.</code>

<code># Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers</code>

<code># for users that are denied.</code>

2.4 chroot_list

将某些账号的使用者 chroot 在他们的家目录下.

chroot_list_enable=yes

chroot_list_file=/etc/vsftpd/chroot_list

<code>test</code> <code>/ftp/test</code>

<code>#用户名 限制访问的目录</code>

三、创建用户

<code>1.拥有读写权限</code>

<code>#mkdir /ftp</code>

<code>#useradd -s /sbin/nologin -d /ftp -M admin</code>

<code># passwd admin</code>

<code>Changing password </code><code>for</code> <code>user admin.</code>

<code>New UNIX password: </code>

<code>BAD PASSWORD: it is too short</code>

<code>Retype new UNIX password: </code>

<code>passwd</code><code>: all authentication tokens updated successfully.</code>

<code>#chown admin:admin /ftp</code>

<code>#chmod 755 /ftp</code>

<code>2.只拥有读权限</code>

<code>#mkdir -p /ftp/test</code>

<code>#useradd -s /sbin/nologin -d /ftp/test -M test</code>

<code># passwd test</code>

<code>Changing password </code><code>for</code> <code>user </code><code>test</code><code>.</code>

<code>#chown test:admin /ftp/test</code>

<code>#chmod 575 /ftp/test</code>

<code>3.限制用户只访问所指定的目录,不能访问其他路径</code>

<code>启用chroot_list_enable=YES,chroot_local_user=NO,chroot_list_file=</code><code>/etc/vsftpd/chroot_list</code><code>。</code>

<code>在</code><code>/etc/vsftpd</code><code>.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。</code>

<code>创建并编辑</code><code>/etc/vsftpd/chroot_list</code><code>文件,将受限制的用户添加进去,每个用户名一行</code>

<code>vim </code><code>/etc/vsftpd/chroot_list</code>

<code>添加后如下:</code>

<code>即</code><code>test</code><code>用户不能切换到其他目录,未添加到chroot_list文件中的admin用户可以切换。</code>

<code>共分为一下四种情况:</code>

<code>①当chroot_list_enable=YES,chroot_local_user=YES时,在</code><code>/etc/vsftpd</code><code>.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。</code>

<code>②当chroot_list_enable=YES,chroot_local_user=NO(默认值)时,在</code><code>/etc/vsftpd</code><code>.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。</code>

<code>③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。</code>

<code>④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。</code>

<code>chroot_local_user=YES</code><code>/NO</code><code>(NO)</code>

<code>用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。</code>

四、测试

1.使用admin用户列出目录

<code># curl ftp://10.10.60.197 -u admin:admin -s</code>

<code>-rw-r--r--    1 503      504             0 Nov 12 01:53 123</code>

<code>dr-xrwxr-x    2 501      504          4096 Nov 12 02:04 ctrip</code>

<code>dr-xrwxr-x    2 502      504          4096 Nov 12 02:05 </code><code>test</code>

<code># curl ftp://10.10.60.197/test/ -u admin:admin -s  </code>

<code>-rw-r--r--    1 503      504             0 Nov 12 02:05 123</code>

<code>-rw-r--r--    1 0        0               0 Nov 12 01:22 </code><code>test</code><code>.</code><code>file</code>

<code>(注意</code><code>test</code><code>后有斜线,否则会返回"curl: (19) RETR response: 550)</code>

<code>[root@server </code><code>ftp</code><code>]</code><code># curl ftp://10.10.60.197/test -u test1:test1 </code>

<code>curl: (19) RETR response: 550</code>

<code>[root@server </code><code>ftp</code><code>]</code><code># </code>

<code>[root@server </code><code>ftp</code><code>]</code><code># curl ftp://10.10.60.197/test/ -u test1:test1 </code>

<code>-rw-r--r--    1 503      504             0 Nov 12 02:04 123</code>

<code>-r-xrwxr-x    1 501      504           339 Nov 12 01:02 </code><code>test</code><code>.</code><code>file</code>

<code>-rw-r--r--    1 504      504           556 Nov 12 04:25 </code><code>test</code><code>.sh</code>

<code>-rw-r--r--    1 501      504          5865 Nov 02 23:42 </code><code>test</code><code>.txt</code>

2.测试上传与下载

<code>客户端上传</code>

<code>[root@client ~]</code><code># echo "123" &gt; 123</code>

<code>[root@client ~]</code><code># </code>

<code>使用admin账户传到</code><code>test</code> <code>ftp</code><code>目录下</code>

<code>[root@client ~]</code><code># curl ftp://10.10.60.197/test/ -u admin:admin -T 123</code>

<code>  </code><code>% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current</code>

<code>                                 </code><code>Dload  Upload   Total   Spent    Left  Speed</code>

<code>100     4    0     0  100     4      0     10 --:--:-- --:--:-- --:--:--    11</code>

<code>使用admin账户传到其</code><code>ftp</code><code>目录下</code>

<code>[root@client ~]</code><code># curl ftp://10.10.60.197 -u admin:admin -T 123 </code>

<code>100     4    0     0  100     4      0     11 --:--:-- --:--:-- --:--:--    12</code>

<code>服务器端查看</code>

<code>[root@server ~]</code><code># cd /ftp/</code>

<code>[root@server </code><code>ftp</code><code>]</code><code># pwd</code>

<code>/ftp</code>

<code>[root@server </code><code>ftp</code><code>]</code><code># ll</code>

<code>total 12</code>

<code>-rw-r--r-- 1 admin admin    4 Nov 12 03:33 123</code>

<code>dr-xrwxr-x 2 </code><code>test</code>  <code>admin 4096 Nov 12 03:29 </code><code>test</code>

<code>[root@server </code><code>ftp</code><code>]</code><code># cat 123</code>

<code>123</code>

<code>[root@server </code><code>ftp</code><code>]</code><code># cat test/123</code>

本文转自 xoyabc 51CTO博客,原文链接:http://blog.51cto.com/xoyabc/1871983,如需转载请自行联系原作者

继续阅读