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
<code>我的部落格已遷移到xdoujiang.com請去那邊和我交流</code>
<code>一、基礎環境</code>
<code>1、版本</code>
<code>cat</code> <code>/etc/debian_version</code>
<code>7.8</code>
<code>2、核心</code>
<code>uname</code> <code>-r</code>
<code>3.2.0-4-amd64</code>
<code>3、vsftpd版本</code>
<code>vsftpd: version 2.3.5</code>
<code>4、ip(eth0)</code>
<code>192.168.1.124</code>
<code>5、proftpd官網</code>
<code>vsftpd.beasts.org</code>
<code>6、需求</code>
<code>隻允許fileftp使用者連接配接并登入</code><code>ftp</code><code>并鎖定在自定義的家目錄中 其他系統(匿名)使用者不能登入</code><code>ftp</code><code>,監聽在本機的eth0位址</code>
<code>二、安裝配置vsftpd服務端</code>
<code>1、apt方式安裝</code>
<code>apt-get -y </code><code>install</code> <code>vsftpd</code>
<code>2、建立</code><code>ftp</code><code>目錄</code>
<code>mkdir</code> <code>/opt/ftp</code> <code>-p</code>
<code>3、建立</code><code>ftp</code><code>賬戶并修改密碼</code>
<code>1)添加fileftp使用者</code>
<code>useradd</code> <code>-s </code><code>/bin/false</code> <code>-d </code><code>/opt/ftp</code> <code>fileftp</code>
<code>2)設定密碼</code>
<code>echo</code> <code>fileftp:redhat|chpasswd</code>
<code>4、修改配置</code>
<code>1)備份下配置</code>
<code>cp</code> <code>/etc/vsftpd</code><code>.conf </code><code>/etc/vsftpd</code><code>.conf.bak</code>
<code>cp</code> <code>/etc/ftpusers</code> <code>/etc/ftpusers</code><code>.bak</code>
<code>cp</code> <code>/etc/shells</code> <code>/etc/shells</code><code>.bak</code>
<code>2)</code><code>cat</code> <code>/etc/vsftpd</code><code>.conf</code>
<code>listen_port=21</code>
<code>listen_address=192.168.1.124</code>
<code>listen=YES</code>
<code>local_enable=YES</code>
<code>write_enable=YES</code>
<code>local_umask=022</code>
<code>xferlog_enable=YES</code>
<code>dual_log_enable=YES</code>
<code>xferlog_file=</code><code>/var/log/xferlog</code><code>.log</code>
<code>vsftpd_log_file=</code><code>/var/log/vsftpd</code><code>.log</code>
<code>xferlog_std_format=YES</code>
<code>chroot_local_user=YES</code>
<code>pam_service_name=vsftpd</code>
<code>anonymous_enable=NO</code>
<code>local_root=</code><code>/opt/ftp</code>
<code>userlist_enable=YES</code>
<code>userlist_file=</code><code>/etc/vsftpd</code><code>.user_list</code>
<code>userlist_deny=NO</code>
<code>3)配置隻能fileftp可以登入</code><code>ftp</code><code>服務</code>
<code>cat</code> <code>/etc/passwd</code><code>|</code><code>grep</code> <code>-</code><code>v</code> <code>"fileftp"</code><code>|</code><code>awk</code> <code>-F: </code><code>'{print $1}'</code> <code>> </code><code>/etc/ftpusers</code>
<code>4)檢視下</code>
<code>cat</code> <code>/etc/ftpusers</code>
<code>root</code>
<code>daemon</code>
<code>bin</code>
<code>sys</code>
<code>sync</code>
<code>games</code>
<code>man</code>
<code>lp</code>
<code>mail</code>
<code>news</code>
<code>uucp</code>
<code>proxy</code>
<code>www-data</code>
<code>backup</code>
<code>list</code>
<code>irc</code>
<code>gnats</code>
<code>nobody</code>
<code>libuuid</code>
<code>sshd</code>
<code>jimmy</code>
<code>messagebus</code>
<code>ftp</code>
<code>5)</code><code>ftp</code><code>會檢查</code><code>/etc/shells</code><code>檔案,因為上面添加使用者時使用的shell是</code><code>/bin/false</code>
<code>echo</code> <code>"/bin/false"</code> <code>>> </code><code>/etc/shells</code>
<code>6)檢視下</code>
<code>cat</code> <code>/etc/shells</code>
<code># /etc/shells: valid login shells</code>
<code>/bin/sh</code>
<code>/bin/dash</code>
<code>/bin/bash</code>
<code>/bin/rbash</code>
<code>/bin/false</code>
<code>7)如果沒有這個檔案 就建立1個檔案</code>
<code>echo</code> <code>"fileftp"</code> <code>> </code><code>/etc/vsftpd</code><code>.user_list</code>
<code>5、配置說明</code>
<code>listen_port=21 </code><code>#監聽端口</code>
<code>listen_address=192.168.1.124 </code><code>#監聽位址</code>
<code>listen=YES </code><code>#使用standalone方式啟動服務</code>
<code>local_enable=YES </code><code>#使用系統使用者登入</code>
<code>write_enable=YES </code><code>#允許上傳</code>
<code>local_umask=022 </code><code>#本地使用者檔案屬性</code>
<code>xferlog_enable=YES </code><code>#開啟日志</code>
<code>xferlog_file=</code><code>/var/log/xferlog</code><code>.log </code><code>#日志存放地方</code>
<code>xferlog_std_format=YES </code><code>#以标準xferlog的格式輸出日志</code>
<code>vsftpd_log_file=</code><code>/var/log/vsftpd</code><code>.log </code><code>#日志存放地方</code>
<code>dual_log_enable=YES </code><code>#啟用雙份日志</code>
<code>chroot_local_user=YES </code><code>#限制在家目錄中</code>
<code>pam_service_name=vsftpd </code><code>#使用pam認證,具體配置看/etc/pam.d/vsftpd</code>
<code>anonymous_enable=NO </code><code>#不允許匿名使用者登入</code>
<code>local_root=</code><code>/opt/ftp</code> <code>#登入的ftp賬戶的家目錄在/opt/ftp</code>
<code>userlist_enable=YES </code><code>#啟用vsftpd.user_list檔案</code>
<code>userlist_file=</code><code>/etc/vsftpd</code><code>.user_list </code><code>#具體配置檔案存放路徑</code>
<code>userlist_deny=NO </code><code>#在vsftpd.user_list中的使用者才可以連接配接ftp</code>
<code>6、重新開機vsftpd服務</code>
<code>/etc/init</code><code>.d</code><code>/vsftpd</code> <code>restart</code>
<code>Stopping FTP server: vsftpd.</code>
<code>Starting FTP server: vsftpd.</code>
<code>7、檢視端口</code>
<code>netstat</code> <code>-tupnl|</code><code>grep</code> <code>21</code>
<code>tcp 0 0 192.168.1.124:21 0.0.0.0:* LISTEN 5713</code><code>/vsftpd</code>
<code>8、檢視程序</code>
<code>ps</code> <code>-ef |</code><code>grep</code> <code>vsftpd</code>
<code>root 5713 1 0 10:09 ? 00:00:00 </code><code>/usr/sbin/vsftpd</code>
<code>三、測試</code>
<code>1、安裝lftp用戶端</code>
<code>apt-get -y </code><code>install</code> <code>lftp</code>
<code>2、建立fileftp傳輸目錄</code>
<code>mkdir</code> <code>/opt/ftp/fileftp</code> <code>-p && </code><code>cd</code> <code>/opt/ftp/</code> <code>&& </code><code>chown</code> <code>fileftp.fileftp fileftp -R</code>
<code>3、測試登陸(linux下)</code>
<code>lftp fileftp:</code><code>'redhat'</code><code>@192.168.1.124</code>
<code>lftp jimmy:</code><code>'redhat'</code><code>@192.168.1.124</code>
<code>lftp root:</code><code>'redhat'</code><code>@192.168.1.124</code>
<code>lftp 192.168.1.124</code>
<code>4、檢視日志(從1台ip為192.168.1.120測試的)</code>
<code>Sat Aug 1 12:33:38 2015 [pid 2] CONNECT: Client </code><code>"192.168.1.120"</code>
<code>Sat Aug 1 12:33:38 2015 [pid 1] [fileftp] OK LOGIN: Client </code><code>"192.168.1.120"</code>
<code>PS:檢視到隻有fileftp登入成功,root和jimmy和匿名使用者都登入失敗</code>
<code>5、工具測試</code>
<a href="http://s3.51cto.com/wyfs02/M00/70/BA/wKioL1W8Z4Kj-HzNAAMVM-e8oEQ466.jpg" target="_blank"></a>
<code>四、配置ssl</code>
<code>1、安裝包</code>
<code>apt-get -y </code><code>install</code> <code>openssl</code>
<code>2、建立一個證書(時間365天)并填寫相關一些資訊</code>
<code>openssl req -x509 -nodes -days 365 -newkey rsa:2048 -out </code><code>/etc/ssl/certs/vsftpd</code><code>.pem -keyout </code><code>/etc/ssl/certs/vsftpd</code><code>.pem</code>
<code>Generating a 2048 bit RSA private key</code>
<code>..........+++</code>
<code>.............+++</code>
<code>writing new private key to </code><code>'/etc/ssl/certs/vsftpd.pem'</code>
<code>-----</code>
<code>You are about to be asked to enter information that will be incorporated</code>
<code>into your certificate request.</code>
<code>What you are about to enter is what is called a Distinguished Name or a DN.</code>
<code>There are quite a few fields but you can leave some blank</code>
<code>For some fields there will be a default value,</code>
<code>If you enter </code><code>'.'</code><code>, the field will be left blank.</code>
<code>Country Name (2 letter code) [AU]:CN</code>
<code>State or Province Name (full name) [Some-State]:shanghai</code>
<code>Locality Name (eg, city) []:shanghai</code>
<code>Organization Name (eg, company) [Internet Widgits Pty Ltd]:aaa</code>
<code>Organizational Unit Name (eg, section) []:aaa</code>
<code>Common Name (e.g. server FQDN or YOUR name) []:aaa</code>
<code>Email Address []:</code>
<code>3、修改權限</code>
<code>chmod</code> <code>0400 </code><code>/etc/ssl/certs/vsftpd</code><code>.pem</code>
<code>4、ssl具體配置</code><code>/etc/vsftpd</code><code>.conf最後添加</code>
<code>ssl_enable=YES</code>
<code>rsa_cert_file=</code><code>/etc/ssl/certs/vsftpd</code><code>.pem</code>
<code>ssl_sslv2=YES</code>
<code>ssl_sslv3=YES</code>
<code>ssl_tlsv1=YES</code>
<code>ssl_enable=YES </code><code>#開啟vsftpd對ssl協定的支援</code>
<code>ssl_sslv2=YES </code><code>#支援SSL v2 protocol</code>
<code>ssl_sslv3=YES </code><code>#支援SSL v3 protocol</code>
<code>ssl_tlsv1=YES </code><code>#支援TSL v1</code>
<code>rsa_cert_file=</code><code>/etc/ssl/certs/vsftpd</code><code>.pem </code><code>#存放證書地方</code>
<code>6、重新開機服務</code>
<code>7、測試</code>
<code>1)lftp fileftp:</code><code>'redhat'</code><code>@192.168.1.124</code>
<code>ls</code><code>: Fatal error: Certificate verification: Not trusted</code>
<code>解決在</code><code>/etc/lftp</code><code>.conf檔案中添加1行到最後</code>
<code>set</code> <code>ssl:verify-certificate no</code>
<code>再登入一次就OK了</code>
<code>2)檢視日志</code>
<code>Sat Aug 1 13:52:23 2015 [pid 2] CONNECT: Client </code><code>"192.168.1.124"</code>
<code>Sat Aug 1 13:52:23 2015 [pid 2] DEBUG: Client </code><code>"192.168.1.124"</code><code>, </code><code>"Connection terminated without SSL shutdown - buggy client?"</code>
<code>Sat Aug 1 13:56:25 2015 [pid 2] CONNECT: Client </code><code>"192.168.1.120"</code>
<code>Sat Aug 1 13:56:25 2015 [pid 1] [fileftp] OK LOGIN: Client </code><code>"192.168.1.120"</code>
<code>8、工具測試(flashfxp)</code>
<a href="http://s3.51cto.com/wyfs02/M00/70/BA/wKioL1W8Z6-DvZdKAAF_eazDch0333.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M00/70/BD/wKiom1W8ZdWTJ6l2AAGsnFufwBA975.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M01/70/BD/wKiom1W8ZebwhCbeAAJUqbTf_Q4457.jpg" target="_blank"></a>
<code>五、參考文章</code>
<code>http:</code><code>//rajaseelan</code><code>.com</code><code>/2011/12/18/lftp-fatal-error-certificate-verification-not-trusted/</code>
本文轉自 xdoujiang 51CTO部落格,原文連結:http://blog.51cto.com/7938217/1680797,如需轉載請自行聯系原作者