vsftp部署和優化

安裝vsftpd:

[root@localhost ~]# yum install -y vsftpd db4-utils

這裏安裝兩個軟件包,同時會把依賴的包安裝上。其中db4-utils用來生成密碼庫文件。

由於21端口被pure-ftpd所佔用,需要用killall殺死:

[root@localhost ~]# killall pure-ftpd

[root@localhost ~]# killall pure-ftpd

pure-ftpd: 沒有進程被殺死

[root@localhost ~]# /etc/init.d/vsftpd start   (啓動vsftpd)

爲 vsftpd 啓動 vsftpd:                                    [確定]

[root@localhost ~]# netstat -lnp  (查看端口占用情況)

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name

tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      8134/vsftpd

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1093/sshd

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1169/master

tcp        0      0 0.0.0.0:35353               0.0.0.0:*                   LISTEN      984/rpc.statd

tcp        0      0 :::49810                    :::*                        LISTEN      984/rpc.statd

tcp        0      0 :::22                       :::*                        LISTEN      1093/sshd

tcp        0      0 ::1:25                      :::*                        LISTEN      1169/master

udp        0      0 0.0.0.0:40590               0.0.0.0:*                               984/rpc.statd

udp        0      0 0.0.0.0:68                  0.0.0.0:*                               1357/dhclient

udp        0      0 127.0.0.1:736               0.0.0.0:*                               984/rpc.statd

udp        0      0 :::36546                    :::*                                    984/rpc.statd

[root@localhost ~]# passwd user3

更改用戶 user3 的密碼 。

新的 密碼: (LIUHONG521)

重新輸入新的 密碼:

passwd: 所有的身份驗證令牌已經成功更新。

客戶端登錄lftp:

[root@qiangge ~]# lftp [email protected]

口令:

lftp [email protected]:~>

服務端查看user3的家目錄:

[root@localhost ~]# grep user3 /etc/passwd    (查看家目錄)

user3:x:500:500::/home/user3:/bin/bash

[root@localhost ~]# ls /home/user3

[root@localhost ~]# touch /home/user3/1122.txt      (創建文件)

[root@localhost ~]# mkdir /home/user3/aabb           (創建目錄)

[root@localhost ~]# ls /home/user3

1122.txt  aabb

ftp的客戶端查看:

wKioL1lHdUSQaxxzAAAbGLb07uI552.jpg

因爲客戶端課一進入到任意的目錄下,進行任意的操作,所以這是非常危險的,我們應該創建虛擬的用戶映射,這樣才能更加安全:

1、在配置文件中做限制亦可:

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf  (服務端配置文件)

(由於篇幅較長,只選局部)

# You may specify an explicit list of local users to chroot() to their home

# directory. If chroot_local_user is YES, then this list becomes a list of

# users to NOT chroot().

chroot_local_user=YES   (將前面的#去掉)

#chroot_list_enable=YES

# (default follows)

#chroot_list_file=/etc/vsftpd/chroot_list

#

# You may activate the "-R" option to the builtin ls. This is disabled by

保存之後,重新啓動:

[root@localhost ~]# /etc/init.d/vsftpd restart

關閉 vsftpd:                                                  [確定]

爲 vsftpd 啓動 vsftpd:                                    [確定]

登錄lftp客戶端:

[root@qiangge ~]# lftp [email protected]

口令:

lftp [email protected]:~> cd /etc

cd `/etc' [正在發送命令...]

cd:

Access Failed:550 Failed to change directoyr. (/etc)

lftp [email protected]:/>

lftp [email protected]:/>

因爲被限制了,所以只能在當前目錄下操作,總之ftp使用系統的用戶是不太安全的,所以我們使用虛擬用戶的映射是必不可少的。

創建虛擬用戶:

[root@localhost ~]# useradd virftp -s /sbin/nologin

[root@localhost ~]# vim /etc/vsftpd/vfstpd_login  (虛擬用戶存放的用戶名和密碼)

test1               (用戶名)

111222aaa     (密碼)

test2

111222bbb

~

~

:wq

[root@localhost ~]# chmod 600 /etc/vsftpd/vsftpd_login (權限更改,只允許root可以看)

vsftpd使用的密碼文件不是明文的,需生成對應的庫文件:

[root@localhost ~]# db_load -T -t hash -f /etc/vdftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

建立虛擬賬號相關的目錄以及配置文件:

[root@localhost ~]# mkdir /etc/vsftpd/vsftpd_user_conf

[root@localhost ~]# cd /etc/vsftpd/vsftpd_user_conf

創建跟用戶名對應的配置文件:

[root@localhost vsftpd_user_conf]# vim test1

local_root=/home/virftp/test1           (限定家目錄)

anonymous_enable=NO                  (匿名用戶是否可用)

write_enable=YES                           (是否可寫)

local_umask=022                              

anon_upload_enable=NO                   (匿名用戶是否可上傳)

anon_mkdir_write_enable=NO             (匿名用戶是否可創建)

idle_session_timeout=600

data_connection_timeout=120

max_clients=10

max_per_ip=5

local_max_rate=50000                          (傳輸速度)

說明:

local_root爲該賬號的家目錄,anonymous_enable用來限定是否允許匿名賬號登錄,若爲NO表示不允許匿名賬號登錄,write_enable=YES 表示可寫,local_umask指定umask值。

[root@localhost vsftpd_user_conf]# mkdir /home/virftp/test1   (創建test1)

[root@localhost vsftpd_user_conf]# chown -R virftp:virftp/home/virftp/test1  (修改權限,修改爲所映射的用戶)

[root@localhost vsftpd_user_conf]# vim /etc/pam.d/vsftpd   (認證相關的配置文件,用什麼方式去認證)

在最開頭添加兩行 :

auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login   //如果是64位系統則改爲/lib64/security/pam_userdb.so

account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login   //如果是64位系統則改爲/lib64/security/pam_userdb.so

附加:[root@localhost vsftpd_user_conf]# uname -a

Linux localhost 2.6.32-431.el6.i686 #1 SMP Fri Nov 22 00:26:36 UTC 2013 i686 i686 i386 GNU/Linux

查看系統位數,是32還是64.

修改全局配置文件/etc/vsftpd.conf

#vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES改爲anonymous_enable=NO

#anon_upload_enable=YES 改爲 anon_upload_enable=NO

#anon_mkdir_write_enable=YES 改爲 anon_mkdir_write_enable=NO

再增加

  1. chroot_local_user=YES

  2. guest_enable=YES

  3. guest_username=virftp

  4. virtual_use_local_privs=YES

  5. user_config_dir=/etc/vsftpd/vsftpd_user_conf

啓動vsftpd服務/etc/init.d/vsftpd restart  

如果服務啓動不了,很可能是前面的pure-ftpd服務還沒有關閉。測試過程和前面的pure-ftpd一樣。另外,如果用戶登錄不了,請查看一下/var/log/secure日誌。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章