RedHat 6自帶的vsftpd是2.2.2版本,存在'ls.c' 遠端拒絕服務漏洞(CVE-2011-0762),為了安全起見,通過編譯源碼包的方式将其更新到3.0.3版本。本文将介紹更新配置過程。
一、準備工作
1、系統環境:Redhat 6.5 x86_64
2、源碼包:vsftpd-3.0.3.tar.gz
3、xinetd包:xinetd-2.3.14-39.el6_4.x86_64.rpm
4、解除安裝系統自帶的vsftpd:rpm -e vsftpd-2.2.2-11.el6_4.1.x86_64
二、更新過程
1、安裝xinetd,源碼安裝的vsftpd将使用xinetd來控制服務的啟停
1
<code>rpm -ivh </code><code>/tmp/xinetd-2</code><code>.3.14-39.el6_4.x86_64.rpm</code>
2、解壓vsftpd的源碼包
<code>tar</code> <code>zxf </code><code>/tmp/vsftpd-3</code><code>.0.3.</code><code>tar</code><code>.gz -C </code><code>/tmp</code>
3、編譯安裝vsftpd
2
3
<code>cd</code> <code>/tmp/vsftpd-3</code><code>.0.3</code>
<code>make</code>
<code>make</code> <code>install</code>
如果make的時候出現關于/lib/libpam.so.0和/lib/libcap.so.1的報錯,可以使用以下方法解決:
4
5
6
7
8
9
10
11
12
13
14
15
16
<code>cd</code> <code>/lib</code>
<code>mv</code> <code>libpam.so.0 libpam.so.0.bak</code>
<code>ln</code> <code>-s </code><code>/lib64/libpam</code><code>.so.0.82.2 </code><code>/lib/libpam</code><code>.so.0</code>
<code>mv</code> <code>libcap.so.1 libcap.so.1.bak</code>
<code>ln</code> <code>-s </code><code>/lib64/libcap</code><code>.so.1.10 </code><code>/lib/libcap</code><code>.so.1</code>
<code>make</code> <code>clean</code>
<code>rm</code> <code>-f libpam.so.0</code>
<code>mv</code> <code>libpam.so.0.bak libpam.so.0</code>
<code>rm</code> <code>-f libcap.so.1</code>
<code>mv</code> <code>libcap.so.1.bak libcap.so.1</code>
四、配置vsftpd
主要是設定禁止匿名登入、允許上傳、禁止切換目錄、禁止root使用者登入、使用xinetd管理vsftpd服務
<code>cp</code> <code>/tmp/vsftpd-3</code><code>.0.3</code><code>/RedHat/vsftpd</code><code>.pam </code><code>/etc/pam</code><code>.d</code><code>/ftp</code>
<code>sed</code> <code>-i </code><code>'s/lib/lib64/g'</code> <code>/etc/pam</code><code>.d</code><code>/ftp</code>
<code>cp</code> <code>/tmp/vsftpd-3</code><code>.0.3</code><code>/vsftpd</code><code>.conf </code><code>/etc</code>
<code>sed</code> <code>-i </code><code>'s/anonymous_enable=YES/#anonymous_enable=YES/'</code> <code>/etc/vsftpd</code><code>.conf</code>
<code>sed</code> <code>-i </code><code>'s/#local_enable=YES/local_enable=YES/'</code> <code>/etc/vsftpd</code><code>.conf</code>
<code>sed</code> <code>-i </code><code>'s/#write_enable=YES/write_enable=YES/'</code> <code>/etc/vsftpd</code><code>.conf</code>
<code>sed</code> <code>-i </code><code>'s/#local_umask=022/local_umask=002/'</code> <code>/etc/vsftpd</code><code>.conf</code>
<code>sed</code> <code>-i </code><code>'s/listen=YES/listen=NO/'</code> <code>/etc/vsftpd</code><code>.conf</code>
<code>sed</code> <code>-i </code><code>'s/#chroot_local_user=YES/chroot_local_user=YES/'</code> <code>/etc/vsftpd</code><code>.conf</code>
<code>echo</code> <code>"allow_writeable_chroot=YES"</code> <code>>></code><code>/etc/vsftpd</code><code>.conf</code>
<code>echo</code> <code>"userlist_deny=YES"</code> <code>>></code><code>/etc/vsftpd</code><code>.conf</code>
<code>echo</code> <code>"root"</code> <code>></code><code>/etc/ftpusers</code>
五、驗證與測試
1、重新開機服務和設定服務開機啟動
<code>service xinetd restart</code>
<code>chkconfig xinetd on</code>
<a href="https://s2.51cto.com/wyfs02/M00/08/4A/wKiom1nfEd6wIALwAABbAVD0uOQ650.png" target="_blank"></a>
2、檢視vsftpd版本
<code>vsftpd -</code><code>v</code>
<a href="https://s5.51cto.com/wyfs02/M01/08/4A/wKiom1nfEkvgN-uHAAAM7PZF6eg120.png" target="_blank"></a>
3、測試
<a href="https://s4.51cto.com/wyfs02/M00/A7/02/wKioL1nfFw3Cfa-SAADUy3sNDjU123.png" target="_blank"></a>
本文轉自Mr大表哥jianlong1990 部落格,原文連結: http://blog.51cto.com/jiangjianlong/1971742 如需轉載請自行聯系原作者