1. 程式人生 > >linux ftp搭建及多埠監聽

linux ftp搭建及多埠監聽

 

一、前述

 本來公司用的是window是的伺服器,突然經常出現問題,現在需要搭建linux環境。必定linux相對穩定一點。

二、具體

1、顯示如下圖則表示已安裝 vsftp軟體。如果未顯示則需要安裝vsftpd軟體。

 

如果沒有則通過yum進行安裝,命令如下:

yum install -y vsftpd

2、安裝完成之後

進入到ftp的根目錄預設是/etc/vsftpd/檔案中進行配置

/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置檔案

/etc/vsftpd/ftpusers:用於指定哪些使用者不能訪問FTP 伺服器。  黑名單



/etc/vsftpd/user_list:指定允許使用vsftpd 的使用者列表檔案。  白名單

/etc/vsftpd/chroot_list:指定允許使用vsftpd 的使用者列表檔案。  控制名單下的目錄能不能離開ftp根目錄

vsftpd.conf具體配置如下:

anonymous_enable=NO  #允許匿名使用者訪問為了安全選擇關閉
local_enable=YES   # 允許本地使用者登入
write_enable=YES   # 是否允許寫入
local_umask=022  # 本地使用者上傳檔案的umask


dirmessage_enable=YES #為YES則進入目錄時顯示此目錄下由message_file選項指定的文字檔案(,預設為.message)的內容
xferlog_enable=YES #開啟日誌

xferlog_std_format=YES #標準格式
connect_from_port_20=YES
xferlog_file=/var/log/xferlog   #ftp日誌目錄

idle_session_timeout=6000 #設定客戶端連線時間

data_connection_timeout=1200 #設定資料連線時間 針對上傳,下載


chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list #設定為YES則下面的控制有效
chroot_list_enable=YES #若為NO,則記錄在chroot_list_file所指定的檔案(預設是/etc/vsftpd.chroot_list)中的使用者將被chroot在登入後所在目錄中,無法離開.如果為YES,則所記錄的使用者將不被chroot.這裡YES.
chroot_local_user=YES
userlist_deny=NO #若設定為YES則記錄在userlist_file選項指定檔案(預設是/etc/vsftpd.user_list)中的使用者將無法login,並且將檢察下面的userlist_deny選項
userlist_enable=YES #若為NO,則僅接受記錄在userlist_file選項指定檔案(預設是/etc/vsftpd.user_list)中的使用者的login請求.若為YES則不接受這些使用者的請求.
userlist_file=/etc/vsftpd/user_list #白名單
chroot_list_enable=YES
local_root=/var/ftp/pub #根目錄
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES


3、新增使用者

 使用以下命令 建立myftp使用者,並指定預設目錄

useradd -d /website/test myftp

因為ftp使用者是共用的linux使用者。使用passwd 進行密碼修改,連續兩次輸入密碼。

//修改密碼
passwd myftp

注意:如果你的密碼比較簡單的話,系統會提示密碼過於簡單,不過不必在意,也是可以設定成功的。不過為了安全考慮,還是建議輸入一個符合要求的密碼。

 因為是公用的linux使用者,為了安全考慮限定使用者myftp不能telnet,只能myftp

usermod -s /sbin/nologin myftp

也可以使用以下命令,使myftp回覆正常:

usermod -s /sbin/bash myftp

使用以下命令更改預設根目錄:

usermod -d /website/test myftp

 如果這個使用者建立錯誤,可以刪除使用者重新建立:

userdel -r myftp 

 新建使用者並不能夠訪問,新增到user_list和chroot_list中去,才可以訪問。

4、關閉防火牆 

centoos 7操作為systemctl stop firewalld.service 

centoos 6操作位service stop iptables;

5.啟動ftp伺服器

cetoos 7操作為/bin/systemctl restart  vsftpd.service

centoos 6操作為 service vsftpd restart

6.賦權,將ftp指定的根目錄賦權為777許可權

chmod 777 /var/ftp/pub

7.檢查SElinux狀態並關閉

 getsebool -a|grep ftp

若centoos7到此結束 用ftp工具即可訪問  或者本地ftp 伺服器測試  通過rpm  -ivh rpm..安裝包  安裝ftp客戶端配置。

若centoos 6 則在設定幾個許可權:

通過:setsebool httpd_enable_ftp_server 1 設定成如下狀態即可。通過 getsebool -a|grep ftp檢視。

至此ftp安裝完成。

在我這個專案中存在需要使用兩個不同的ftp埠的問題。到網上查找了以下,結合自己測試,整理出兩種可行的方案。

方案1:

複製vsftpd.conf 一份,然後把裡面的埠改成你自己想要的埠,其他內容不變。

重啟vsftpd 服務, 使用netsat -ntlp 檢視情況 。

netstat -ntlp 

 

方案2:

 使用埠轉發的方式實現:

iptables -t nat -A PREROUTING -p tcp -d 192.168.2.121 --dport 21 -j DNAT --to 192.168.2.121:2121

如此簡單。

兩種方式各有優缺點,個人根據自己需要選擇。

參考資料:https://www.cnblogs.com/LHWorldBlog/p/8516837.html