本文介紹了Centos6.9安裝vsftpd并配置多用戶的方法,分享給大家,具體如下:
一、安裝vsftpd
1
2
3
4
5
6
7
8
|
#安裝vsftpd yum -y install vsftpd #設置開機啟動 chkconfig vsftpd on #查看服務狀態 service vsftpd status #默認是關閉的,如下 # vsftpd is stopped |
二、修改系統保留FTP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#添加組 groupadd -g 1002 vsftpd #創建用戶組目錄 mkdir -p /home/vsftpd #添加用戶 useradd -c "FTP User" -d /home/vsftpd/vsftpd -g vsftpd -s /sbin/nologin -u 1002 vsftpd useradd -c "FTP User" -d /home/vsftpd/test -g vsftpd -s /sbin/nologin test #設置密碼(格式:passswd 用戶名),輸入密碼回車,再次輸入密碼回車 passwd vsftpd #創建指定訪問目錄 mkdir -p /data/vsftpd #更改權限 chown vsftpd:vsftpd /data/vsftpd chmod -R 775 /data/vsftpd |
可以查看添加進來的新用戶
1
2
3
4
|
cat /etc/passwd #如下 # vsftpd:x:1002:1002:FTP User:/home/vsftpd/vsftpd:/sbin/nologin # test:x:1003:1002:FTP User:/home/vsftpd/test:/sbin/nologin |
說下/bin/false跟/sbin/nologin的區別
1、/bin/false什么也不做只是返回一個錯誤狀態,然后立即退出。將用戶的shell設置為/bin/false,用戶會無法登錄,并且不會有任何提示。
2、/sbin/nologin會禮貌的向用戶顯示一條信息,并拒絕用戶登錄:This account is currently not available.
3、有一些軟件,比如一些ftp服務器軟件,對于本地非虛擬賬戶,只有用戶有有效的shell才能使用ftp服務。這時候就可以使用/sbin/nologin使用戶即不能登錄系統,還能使用一些系統服務,比如ftp服務。/bin/false則不行,這是二者的重要區別之一
三、修改配置文件
1
2
3
4
5
6
|
#備份原文件 mv /etc/vsftpd/vsftpd .conf /etc/vsftpd/vsftpd .conf.txt #生成新的配置文件 touch /etc/vsftpd/vsftpd .conf #編輯配置文件 vim /etc/vsftpd/vsftpd .conf |
粘貼下面這些配置進去
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
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
# Example config file /etc/vsftpd/vsftpd.conf # # 如果vsftpd處于獨立模式,則這是它將偵聽傳入FTP連接的端口。 listen_port=21 # # 登入目錄 local_root=/data/vsftpd # # 是否允許匿名用戶登錄 anonymous_enable=NO # # 設定本地用戶可以訪問。注:如使用虛擬宿主用戶,在該項目設定為NO的情況下所有虛擬用戶將無法訪問 local_enable=YES # # 設定允許進行寫操作(上傳、刪除),默認為YES write_enable=YES # # 是否使用本地時間 #use_localtime=YES # # 此參數在VSFTPD使用單獨(standalone)模式下有效。此參數定義了FTP服務器最大的并發連接數,當超過此連接數時,服務器拒絕客戶端連接。默認值:0(無限制)。 #max_clients=5 # # 此參數在VSFTPD使用單獨(standalone)模式下有效。此參數定義每個IP地址最大的并發連接數目。超過這個數目將會拒絕連接。此選項的設置將影響到象網際快車這類的多進程下載軟件。默認值為0,表示不限制。 #max_per_ip=3 # # 掩飾碼 local_umask=002 # # 是否允許匿名FTP用戶上傳文件。 #anon_upload_enable=NO # # 是否允許匿名FTP用戶能夠創建新目錄 #anon_mkdir_write_enable=NO # # 激活目錄消息 - 當遠程用戶進入某個目錄時發送的消息。 dirmessage_enable=YES # # 設置為yes時,用戶上傳和下載文件都會被記錄下來,記錄文件位置與xferlog_file=/var/log/vsftpd/xferlog xferlog_enable=YES # # 在vsftpd_log_file和xferlog_file文件之間切換登錄文件信息,NO 寫入 vsftpd_log_file, YES 寫入 xferlog_file xferlog_std_format=YES # # 設置另外一個vsftpd的日記文件,也可以不設置 dual_log_enable=YES xferlog_file=/var/log/vsftpd/xferlog # # 設置日志目錄 vsftpd_log_file=/var/log/vsftpd/vsftpd.log # # 端口樣式連接始發的端口(只要名稱不正確的 connect_from_port_20 啟用),默認值:20 connect_from_port_20=YES # # 是否修改匿名用戶所上傳文件的所有權。YES,匿名用戶所上傳的文件的所有權將改為另外一個不同的用戶所有,用戶由chown_username參數指定。此選項默認值為NO。 #chown_uploads=YES # # 指定擁有匿名用戶上傳文件所有權的用戶 #chown_username=whoever # # 遠程客戶端建立與PASV樣式數據連接的連接的超時(以秒為單位),默認值:60。 #accept_timeout=60 # # 遠程客戶端響應我們的端口樣式數據連接的超時時間(秒)。默認值:60。 #connect_timeout=60 # # 遠程客戶端可能在FTP命令之間花費的最長時間(以秒為單位)。如果超時觸發,遠程客戶端將被啟動。默認值:300 #idle_session_timeout=300 # # 超時時間(以秒為單位),大概是允許數據傳輸停止而無進度的最大時間。如果超時觸發,遠程客戶端將被啟動。默認值:300 #data_connection_timeout=300 # # 創建上傳文件的權限。Umasks應用于此值的頂部。如果要上傳的文件可執行,您可能希望更改為0777。默認值:0666 #file_open_mode=002 # # 本地認證用戶允許的最大數據傳輸速率(以字節為單位)。默認值:0(無限制) #local_max_rate=0 # # 建議您在系統上定義一個唯一的用戶,ftp服務器可以用作完全獨立且無特權的用戶。 #nopriv_user=ftpsecure # # 是否啟動異步傳輸功能 #async_abor_enable=YES # # 是否啟用ASCII功能 ascii_upload_enable=YES ascii_download_enable=YES # # 自定義登錄顯示的字符串 #ftpd_banner=Welcome to blah FTP service. # # 指定某個純文本作為用戶登錄時顯示的歡迎字眼,也可以放置一些讓用戶知道本FTP服務器的目錄架構 #banner_file=/etc/vsftpd/welcome.txt # # 您可以指定一個不允許的匿名電子郵件地址的文件。 顯然有助于打擊某些DoS攻擊。 #deny_email_enable=YES # (default follows) #banned_email_file=/etc/vsftpd/banned_emails # # 鎖定某些用戶在自家目錄中。即當這些用戶登錄后,不可以轉到系統的其他目錄,只能在自家目錄(及其子目錄)下。 # 當chroot_local_user=YES,chroot_list_enable=YES時,chroot_list_file目錄里面的用戶不被chroot在主目錄中。 # 當chroot_local_user=YES,chroot_list_enable=NO時,chroot_list_file目錄里面的用戶全部給被chroot在主目錄中 chroot_local_user=YES chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd/chroot_list # # 此選項默認值為NO , 此時ftpusers 文件中的用戶禁止登錄FTP 服務器;若此項設為YES ,則 user_list 文件中的用戶允許登錄 FTP 服務器,而如果同時設置了 userlist_deny=YES ,則 user_list 文件中的用戶將不允許登錄FTP 服務器,甚至連輸入密碼提示信息都沒有,直接被FTP服務器拒絕 userlist_enable=YES # # 此項默認為YES ,設置是否阻扯user_list 文件中的用戶登錄FTP 服務器,設置為NO時只允許user_list 當中的用戶使用ftp,對于后新建的用戶起到屏蔽作用,如果想要使用ftp則必須加入這個列表文件中 userlist_deny=NO # # 當userlist_enable=YES,當userlist_deny=YES,這里面的用戶不能登錄,當userlist_deny=NO時,只有這里面的用戶才能登錄ftp 。 userlist_file=/etc/vsftpd/user_list # # 當啟用“listen”指令時,vsftpd以獨立模式運行,并在IPv4套接字上偵聽。 該指令不能與listen_ipv6指令一起使用。 listen=YES # # 此指令允許偵聽IPv6套接字。 要監聽IPv4和IPv6套接字,您必須運行兩個vsftpd副本和兩個配置文件。請確保其中一個listen選項被注釋! #listen_ipv6=YES # # 設置 PAM 外掛模塊提供的認證服務所使用的配置文件名 ,即/etc/pam.d/vsftpd 文件 pam_service_name=vsftpd # # 是否開啟用虛擬用戶功能 #guest_enable=YES # # 指定虛擬用戶的宿主用戶,CentOS中已經有內置的ftp用戶了 #guest_username=ftp # # 匿名客戶端允許的最大數據傳輸速率(以字節為單位)。默認值:0(無限制) #anon_max_rate=0 # # 為匿名用戶設置文件創建的umask的值。注意!如果要指定八進制值,請記住“0”前綴,否則該值將被視為基數10整數!默認值:077 #anon_umask=002 # # 設定虛擬用戶個人vsftp的CentOS FTP服務文件存放路徑。存放虛擬用戶個性的CentOS FTP服務文件(配置文件名=虛擬用戶名) #user_config_dir=/etc/vsftpd/virtual_conf # # 如果要禁止PASV方法獲取數據連接,請設置為NO。 pasv_enable=YES # # 設定在PASV模式下,建立數據傳輸所可以使用port范圍的下界和上界,0 表示任意。默認值為0。把端口范圍設在比較高的一段范圍內 pasv_min_port=20000 pasv_max_port=30000 # # 默認值為NO。為YES時,將關閉PASV模式的安全檢查。該檢查確保數據連接和控制連接是來自同一個IP地址。小心打開此選項。此選項唯一合理的用法是存在于由安全隧道方案構成的組織中。 #pasv_promiscuous=YES # # 如果您不想使用PORT方法獲取數據連接,則設置為NO。 #port_enable=YES # # 默認值為NO。如果要禁用PORT安全檢查,確保傳出數據連接只能連接到客戶端,請設置為YES。 #port_promiscuous=YES # # 表明服務器使用 tcp_wrappers 作為主機訪問控制方式,tcp_wrappers 可以實現linux 系統中網絡服務的基于主機地址的訪問控制,在/etc 目錄中的hosts.allow 和hosts.deny 兩個文件用于設置tcp_wrappers 的訪問控制,前者設置允許訪問記錄,后者設置拒絕訪問記錄。例如想限制某些主機對FTP 服務器12.36.126.141 的匿名訪問,編緝/etc/hosts.allow 文件,如在下面增加兩行命令:vsftpd:192.168.2.1:DENY 和vsftpd:192.168.2.20:DENY 表明限制IP 為192.168.2.1/192.168.2.20 主機訪問IP 為12.36.126.141 的FTP 服務器,此時FTP 服務器雖可以PING 通,但無法連接 tcp_wrappers=YES # |
四、設置FTP用戶信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#建立限制用戶訪問目錄的空文件 touch /etc/vsftpd/chroot_list #添加ftp用戶進來 vim /etc/vsftpd/user_list #注釋掉上面的用戶,在后面加上 vsftpd test #創建日志文件 mkdir -p /var/log/vsftpd touch /var/log/vsftpd/xferlog touch /var/log/vsftpd/vsftpd.log |
五、開啟防火墻20000到30000端口
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# 查看防火墻是否有端口,有就退出編輯,沒有就執行下句 vim /etc/sysconfig/iptables #添加端口 iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 20000:30000 -j ACCEPT #保存 /etc/init .d /iptables save #另外需要注意,如果是阿里云的,還需要登錄阿里云在安全組里面添加入方向規則 #重啟iptables 服務 service iptables restart |
六、重啟vsftpd服務
1
2
3
4
5
6
7
8
9
10
11
|
#停止vsftpd 服務 service vsftpd stop #啟動vsftpd 服務 service vsftpd start #重啟vsftpd 服務 service vsftpd restart 可以查看 ftp 端口是否已經給占用,一般情況下是21端口 netstat -lnp| grep 21 |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:http://www.jianshu.com/p/7800351e3fa5?utm_source=tuicool&utm_medium=referral