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
如此簡單。
兩種方式各有優缺點,個人根據自己需要選擇。