第一步、安裝
1. 從https://security.appspot.com/vsftpd.html下載vsftpd.tar.gz;
2. 執行以下命令:
tar -zxvf vsftpd-xx.tar.gzcd vsftpd-xx
3. 編輯Makefile檔案,編輯結果如下所示:
# Makefile for systems with GNU toolsCC = gccINSTALL = installIFLAGS = -idirafter dummyinc#CFLAGS = -gCFLAGS = -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 \ -Wall -W -Wshadow -Werror -Wformat-security \ -D_FORTIFY_SOURCE=2 \ #-pedantic -WconversionLIBS = `./vsf_findlibs.sh`LINK = -Wl,-sLDFLAGS = -fPIE -pie -Wl,-z,relro -Wl,-z,nowOBJS = main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o \ tunables.o ftpdataio.o secbuf.o ls.o \ postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o \ banner.o filestr.o parseconf.o secutil.o \ ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o \ tcpwrap.o ipaddrparse.o access.o features.o readwrite.o opts.o \ ssl.o sslslave.o ptracesandbox.o ftppolicy.o sysutil.o sysdeputil.o \ seccompsandbox.o.c.o: $(CC) -c $*.c $(CFLAGS) $(IFLAGS)vsftpd: $(OBJS) $(CC) -o vsftpd $(OBJS) $(LINK) $(LDFLAGS) $(LIBS)install: if [ -x /usr/local/sbin ]; then \ $(INSTALL) -m 755 vsftpd /usr/local/sbin/vsftpd; \ else \ $(INSTALL) -m 755 vsftpd /usr/sbin/vsftpd; fi if [ -x /usr/share/man ]; then \ $(INSTALL) -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \ $(INSTALL) -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \ elif [ -x /usr/local/man ]; then \ $(INSTALL) -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \ $(INSTALL) -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \ else \ $(INSTALL) -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \ $(INSTALL) -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi if [ -x /etc/xinetd.d ]; then \ $(INSTALL) -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; ficlean: rm -f *.o *.swp vsftpd
4. 執行以下命令:
makels -l vsftpduseradd nobodymkdir /usr/share/emptymkdir /var/ftpuseradd -d /var/ftp ftpchown root.root /var/ftpchmod og-w /var/ftpcp vsftpd.conf.5 /usr/local/man/man5cp vsftpd.8 /usr/local/man/man8cp vsftpd /usr/local/sbin/vsftpdmake installcp vsftpd.conf /etc
5. 啟動服務,測試登入
啟動服務:/usr/local/sbin/vsftpd測試登入ftp localhost使用者名稱為ftp,密碼為空白
第二步:修改連接埠
1. 修改/etc/vsftpd.conf,在末尾添加:
listen_port=801
表示將連接埠號碼修改為801。
2. 編輯/etc/services檔案,將“ftp 21/tcp”改為“ftp 801/tcp”。
3. 重啟FTP服務。
第三步:設定密碼登入
1. 修改vsftpd.conf,把anonymouns=yes改成anonymouns=no
2. useradd -d /var/ftp test
3. passwd test
4. 重啟vsftpd即可
第四步:有防火牆的外網訪問
FTP訪問包括請求介面和資料庫連接介面,對FTP的訪問包括PASV和PORT兩種方式,我們通常會用PASV方式,所以除暴露FTP的訪問連接埠(即listen_port的值)外,還需要暴露PASV指定的連接埠,在vsftpd.conf中添加以下配置:
listen_port=30pasv_enable=YESpasv_min_port=55443pasv_max_port=55443
表赤FTP連接埠是30,資料訪問連接埠是55443,對外只需要暴露這兩個連接埠即可用外網訪問FTP。