一台主機要 設定 A 帳號可以 FTP Login, 此帳號不允許 SSH Login.
其它帳號(A 以外的帳號) 只允許 SSH Login, 不允許 FTP Login.
主要是把 FTP User 獨立開來, 並 FTP 只限制存取某個目錄.
其它自己的帳號, 不要有 FTP 的存取權限 (自己的帳號都走 SSH).
前置資料準備
- 允許 FTP Login 帳號: guest (此帳號不允許 SSH Login)
- 允許 SSH Login 帳號: tsung (此帳號不允許 FTP Login)
安裝 SSH、Proftpd
- apt-get install proftpd ssh
開啟帳號
- adduser tsung
- adduser guest
SSH 不允許 guest 登入設定
- vim /etc/ssh/sshd_config # 增加下面那一行
DenyUsers guest user1
user2 - 這樣 guest, user1, user2 就無法由 SSH Login 囉~
- root 不允許 SSH 登入可見: 設定 Debian/Ubuntu 不允許使用 root ssh 登入
FTP 不允許 tsung / root 登入 設定
- vim /etc/proftpd/proftpd.conf # 於最後一行加入
<Limit LOGIN>
Order Allow,Deny
DenyUser OR root,tsung
</Limit> - /etc/init.d/proftpd restart # 這樣子 root, tsung 就無法 FTP Login 囉~
限制 FTP 登入後, 只能在自己目錄活動
- vim /etc/proftpd/proftpd.conf # 找空白處新增此行
DefaultRoot ~
- /etc/init.d/proftpd restart
註: 上述設定完成, 並不代表主機安全, 若有 CGI 的權限, 還是可以用 CGI 的方式存取到主機資源~
相關網頁
- Proftpd DenyUser - DenyUser 參數說明
- ProFTPD mini-HOWTO - Configuring <Limit>s - Limit 參數有哪些可以用
- Linux proftp 架設範例 1
- 如何建立安全的 ProFTPD應用經驗談
- Top 20 OpenSSH Server Best Security Practices - 關於 ssh 的設定, 非常詳細