顯示具有 vsftpd 標籤的文章。 顯示所有文章
顯示具有 vsftpd 標籤的文章。 顯示所有文章

星期一, 7月 15, 2024

同時在vsftp上跑FTP跟FTPS

 事情是醬子的,由於某種特殊需求需要使用到FTP,於是興高采烈地把VSFTP架設好,很有資安意識的在上面加了SSL,就在看似美好準備打完收工之餘,此時做上最後的測試,使用WINDOWS檔案總管把FTP掛載進來,此時無論怎麼掛載都是失敗的,查了一下才發現檔案總管似乎是不支援FTPS。(WHAT ? 肥宅驚訝表情包!!!)


當下立刻把方向網內網跑FTP(檔案總管掛載),外網跑FTPS,那麼只要同時跑FTP跟FTPS 協定不就得了,就像APACHE 一樣。

於是開始Google了起來,越查案情越不單純,似乎方向都指向執行多個VSFTP。


大致的方向分成兩個部分,一個是VSFTP的CONFIG,另一個是啓動VSFTP的程序。


  1. 先複製VSFTP 的CONFIG
     sudo cp /etc/vsftpd.conf /etc/vsftpd2.conf
  2. config檔的重點大概就是listen = YES,listen_port 分別指定不同PORT,需要跑FTPS記得加上SSL相關設定。
    listen=YES
    listen_port=990
  3. 接著可以準備複製init.d的啓動程序
    sudo cp /etc/init.d/vsftpd /etc/init.d/vsftpd2
  4. 接下來只要針對複製出來的vsftpd2進行修改即可,修改的重點大概如下
    DAEMON="/usr/sbin/vsftpd"
    ARGS="/etc/vsftpd2.conf"
    NAME="vsftpd2"
    CHROOT="/var/run/vsftpd2/empty"
    ----(略)---
    --pidfile /var/run/vsftpd/vsftpd
    2.pid --exec ${DAEMON} -- ${ARGS}
  5. 接下來就可以開心地測試
    sudo /etc/init.d/vsftpd start
    sudo /etc/init.d/vsftpd2 start
  6. 檢查服務是否都有起來並且在正確的指定PORT號上
    netstat -tulpn

參考來源:

ubuntu - How do you setup multiple instances of vsftpd to run on different listen ports? - Server Fault

星期五, 9月 30, 2016

vsftpd @CentOS 7.2

Vsftpd - 一個歷久不衰的老牌FTP 軟體,原本以為可以輕輕鬆鬆地架設起來,沒想到 真沒想到限制使用者目錄那搞了許久。(苦笑)
只要我限制使用者只能在家目錄的時候,登入就會出現refusing to run with writable root inside chroot(),解除就正常,後來爬了文一下才知道。(參考下方連結網站說明)

這次沒意外的也是在CentOS7.2的平台上運作(笑)

1.安裝vsftp
yum install vsftpd
2.設定vsftp
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to  FTP service.
user_config_dir=/etc/vsftpd/userconf
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES
allow_writeable_chroot=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=NO
tcp_wrappers=YES
 3.啟動服務
systemctl start vsftpd
systemctl enable vsftpd
4.設定防火牆
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
5.設定selinux (或是停用)
vi /etc/selinux/config
 SELINUX=disabled
或是
setsebool -P allow_ftpd_full_access 1
setsebool -P ftp_home_dir 1
6.限制速度
mkdir -p /etc/vsftpd/userconf
vi /etc/vsftpd/userconf/user
local_max_rate=100000
7.進階設置,限制N次錯誤鎖定M秒
vi /etc/pam.d/vsftpd

auth required pam_tally2.so deny=N unlock_time=M



Reference
Install vsftpd for CentOS 7
[CentOS 7] 傳輸檔案的好伙伴,老當益壯的 FTP 伺服器 - vsFTPd
vsftpd解決方案 : refusing to run with writable root inside chroot()