2018年2月28日 星期三

安裝ftp server

1. 安裝 vsftpd:

yum -y install vsftpd
touch /etc/vsftpd/chroot_list
chkconfig vsftpd on

(這個在 centos 7 不一樣,建議systemctl enable vsftpd 用webmin設定)


2. 打開防火牆
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload

如果有啟用被動模式的話,再加上指派給它的通訊埠範圍。
firewall-cmd --zone=public --add-port=60101-61200/tcp
firewall-cmd --reload

3. 啟動
systemctl restart vsftpd

4.設定
vi /etc/vsftpd/vsftpd.conf

# 指定傳輸命令用的通訊埠
listen_port = 21

# 不允許主動式傳輸使用 TCP 20 埠來傳輸資料,修改成 TCP 2020 埠
connect_from_port_20 = NO
ftp_data_port = 2020

# 允許被動式傳輸,並指定可使用的通訊埠範圍為 TCP 60101 到 60200 埠
pasv_enable = YES
pasv_min_port = 60101
pasv_max_port = 60200


# 變更匿名者上傳的檔案,將擁有者改為 user999 帳號
chown_uploads = YES
chown_username = user999

# 指定主日誌檔的位置
vsftpd_log_file = /var/log/vsftpd.log

# 記錄所有上傳下載的行為,並指定傳輸記錄日誌檔的位置
xferlog_enable = YES
xferlog_file = /var/log/xferlog

# 傳輸記錄日誌檔採用詳細記錄模式,並且不使用相容於 wu-ftp 的格式
xferlog_std_format = NO
log_ftp_protocol=YES

# 主動式傳輸在 60 秒後未連線成功就斷線
connect_timeout = 60

# 被動式傳輸在 60 秒後未連線成功就斷線
accept_timeout = 60

# 在傳輸資料時,連續 120 秒 未傳輸任何資料就斷線
data_connection_timeout = 120

# 登入後,連續 600 秒未執行任何命令操作就斷線
idle_session_timeout = 600

# 允許同時 10 個用戶端連進行連線
max_clients = 10

# 同一個 IP 允許建立 2 個連線
max_per_ip = 2

# 允許登入失敗 3 次
max_login_fails = 3

# 啟用上傳功能
write_enable = YES

# 啟用下載功能
download_enable = YES

# 登入成功後的歡迎訊息,顯示一小段文字或是從純文字檔讀取,同時只能使用一種
ftpd_banner = Welcome to my FTP site.
banner_file = /etc/vsftpd/banner


# 以用戶端的本地時間為準
use_localtime = YES

# 支援 TCP Wrappers (/etc/hosts.allow 與 /etc/hosts.deny)
 tcp_wrappers = YES

# 指定 PAM 服務對應的模組名稱為 vsftpd (在 /etc/pam.d/ 裡)
pam_service_name = vsftpd

本機使用者

# 允許本機使用者登入
local_enable = YES

# 限制本機使用者的最大傳輸速度為 10Mbps (0 代表不限制)
local_max_rate = 10000000

# 禁止離開家目錄,並指定不受限制的使用者清單
chroot_local_user = YES
chroot_list_enable = YES
chroot_list_file = /etc/vsftpd/chroot_list

# 變更根目錄之後,開放根目錄的寫入權限
allow_writeable_chroot = YES

# 限制可登入的本機使用者,選擇以白名單來管理,並指定允許登入的使用者清單
userlist_enable = YES
userlist_deny = NO
userlist_file - /etc/vsftpd/user_list

# 新建目錄的預設權限 = 755 (full 777 - umask 022),新增檔案的預設權限為 644 (full 666 - umask 022)
local_umask = 022

# 變更本機使用者登入後的預設根目錄
local_root = /var/ftp


如果要讓root可以登入
/etc/vsftpd/ftpuser 刪除 root
/etc/vsftpd/user_list 刪除 root
/etc/vsftpd/chroot_list 加上 root


5. 解除selinux的限制
setsebool -P allow_ftpd_full_access 1
setsebool -P ftpd_full_access =1 (centos7 測試OK)

虛擬帳號的設定:

1.帳密的處理

1-1建立虛擬帳號名單
[root@localhost ~]# vi /etc/vsftpd/myuserlist
一列帳號一列密碼


alan
123456
andy
123456

1-2 產生虛擬帳號的資料庫

[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/myuserlist /etc/vsftpd/myuserlist.db

1-3
修改vsftpdPAM驗證
[root@localhost ~]#  vi /etc/pam.d/vsftpd 

註解原來的項目,增加

auth       required   /lib64/security/pam_userdb.so   db=/etc/vsftpd/myuserlist

account  required   /lib64/security/pam_userdb.so   db=/etc/vsftpd/myuserlist



2.設定檔的處理

3.個別的目錄

 

回目錄

沒有留言:

張貼留言