Linux_3day------------搭建ftp服務器

1.在Centos5.5下搭建ftp服務器

(1)安裝vsftpd

[root@localhost home]#yum install vsftpd

(2)完成安裝後執行

[root@xxzx /]# vi /etc/vsftpd/user_list

將root註釋掉:#root

[root@xxzx /]# vi /etc/vsftpd/ftpusers

將root註釋掉:#root

(3)設置ftp登錄後所在的目錄

[root@xxzx /]# setsebool -P ftpd_disable_trans=1
[root@xxzx vsftpd]# vi /etc/vsftpd/vsftpd.conf

在最後一行添加:local_root=/tmp

(4)重啓服務

[root@xxzx vsftpd]# service vsftpd restart
Shutting down vsftpd:   [FAILED]
Starting vsftpd for vsftpd: [  OK  ]

vsftpd.conf配置說明

  1. vsftpd.ftpusers:位於/etc目錄下。它指定了哪些用戶賬戶不能訪問FTP服務器,例如root等。

  2. vsftpd.user_list:位於/etc目錄下。該文件裏的用戶賬戶在默認情況下也不能訪問FTP服務器,僅當vsftpd.conf配置文件裏啓用userlist_enable=NO選項時才允許訪問。

  3. vsftpd.conf:位於/etc/vsftpd目錄下。來自定義用戶登錄控制、用戶權限控制、超時設置、服務器功能選項、服務器性能選項、服務器響應消息等FTP服務器的配置。

高級設置


1. 用戶登錄控制

  • anonymous_enable=YES,允許匿名用戶登錄。

  • no_anon_password=YES,匿名用戶登錄時不需要輸入密碼。

  • local_enable=YES,允許本地用戶登錄。

  • deny_email_enable=YES,可以創建一個文件保存某些匿名電子郵件的黑名單,以防止這些人使用Dos***。

  • banned_email_file=/etc/vsftpd.banned_emails,當啓用deny_email_enable功能時,所需的電子郵件黑名單保存路徑(默認爲/etc/vsftpd.banned_emails)。


2. 用戶權限控制

  • write_enable=YES,開啓全局上傳權限。

  • local_umask=022,本地用戶的上傳文件的umask設爲022(系統默認是077,一般都可以改爲022)。

  • anon_upload_enable=YES,允許匿名用戶具有上傳權限,很明顯,必須啓用write_enable=YES,纔可以使用此項。同時我們還必須建立一個允許ftp用戶可以讀寫的目錄(前面說過,ftp是匿名用戶的映射用戶賬號)。

  • anon_mkdir_write_enable=YES,允許匿名用戶有創建目錄的權利。

  • chown_uploads=YES,啓用此項,匿名上傳文件的屬主用戶將改爲別的用戶賬戶,注意,這裏建議不要指定root賬號爲匿名上傳文件的屬主用戶!

  • chown_username=whoever,當啓用chown_uploads=YES時,所指定的屬主用戶賬號,此處的whoever自然要用合適的用戶賬號來代替。

  • chroot_list_enable=YES,可以用一個列表限定哪些本地用戶只能在自己目錄下活動,如果chroot_local_user=YES,那麼這個列表裏指定的用戶是不受限制的。

  • chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,則指定該列表(chroot_local_user)的保存路徑(默認是/etc/vsftpd.chroot_list)。

  • nopriv_user=ftpsecure,指定一個安全用戶賬號,讓FTP服務器用作完全隔離和沒有特權的獨立用戶。這是vsftpd系統推薦選項。

  • async_abor_enable=YES,強烈建議不要啓用該選項,否則將可能導致出錯!

  • ascii_upload_enable=YES;ascii_download_enable=YES,默認情況下服務器會假裝接受ASCⅡ模式請求但實際上是忽略這樣的請求,啓用上述的兩個選項可以讓服務器真正實現ASCⅡ模式的傳輸。(注意:啓用ascii_download_enable選項會讓惡意遠程用戶們在ASCⅡ模式下用“SIZE/big/file”這樣的指令大量消耗FTP服務器的I/O資源。)

  • 這些ASCⅡ模式的設置選項分成上傳和下載兩個,這樣我們就可以允許ASCⅡ模式的上傳(可以防止上傳腳本等惡意文件而導致崩潰),而不會遭受拒絕服務***的危險。


3.用戶連接和超時選項

  • idle_session_timeout=600,可以設定默認的空閒超時時間,用戶超過這段時間不動作將被服務器踢出。

  • data_connection_timeout=120,設定默認的數據連接超時時間。


4.服務器日誌和歡迎信息

  • dirmessage_enable=YES,允許爲目錄配置顯示信息,顯示每個目錄下面的message_file文件的內容。

  • ftpd_banner=Welcome to blah FTP service,可以自定義FTP用戶登錄到服務器所看到的歡迎信息。

  • xferlog_enable=YES,啓用記錄上傳/下載活動日誌功能。      xferlog_file=/var/log/vsftpd.log,可以自定義日誌文件的保存路徑和文件名,默認是/var/log/vsftpd.log。

  • anonymous_enable=YES 允許匿名登錄

  • local_enable=YES 允許本地用戶登錄

  • write_enable=YES 開放本地用戶寫權限

  • local_umask=022 設置本地用戶生成文件的掩碼爲022

  •  #anon_upload_enable=YES 此項設置允許匿名用戶上傳文件      #anon_mkdir_write_enable=YES 開啓匿名用戶的寫和創建目錄的權限      dirmessage_enable=YES 當切換到目錄時,顯示該目錄下的.message隱藏文件的內容      xferlog_enable=YES 激活上傳和下載日誌

  • connect_from_port_20=YES 啓用FTP數據端口的連接請求

  • #chown_uploads=YES 是否具有上傳權限. 用戶由chown_username參數指定。      #chown_username=whoever 指定擁有上傳文件權限的用戶。此參數與chown_uploads聯用。   #xferlog_file=/var/log/vsftpd.log

  • xferlog_std_format=YES 使用標準的ftpd xferlog日誌格式      #idle_session_timeout=600 此設置將在用戶會話空閒10分鐘後被中斷      #data_connection_timeout=120 將在數據連接空閒2分鐘後被中斷      #ascii_upload_enable=YES 啓用上傳的ASCII傳輸方式

  • #ascii_download_enable=YES 啓用下載的ASCII傳輸方式      #ftpd_banner=Welcome to blah FTP service 設置用戶連接服務器後顯示消息

  • #deny_email_enable=NO 此參數默認值爲NO。當值爲YES時,拒絕使用banned_email_file參數指定文件中所列出的e-mail地址用戶登錄。

  • #chroot_list_enable=YES 設置本地用戶登錄後不能切換到自家目錄以外的別的目錄

  • #chroot_list_file=/etc/vsftpd.chroot_list

  • #ls_recurse_enable=YES

  • pam_service_name=vsftpd 設置PAM認證服務的配置文件名稱,該文件存放在/etc/pam.d/

  • userlist_enable=YES 此項配置/etc/vsftpd.user_list中指定的用戶也不能訪問服務器,若添加userlist_deny=No,則僅僅/etc/vsftpd.user_list文件中的用戶可以訪問,其他用戶都不可以訪問服務器。如過userlist_enable=NO,userlist_deny=YES,則指定使文件/etc/vsftpd.user_list中指定的用戶不可以訪問服務器,其他本地用戶可以訪問服務器。

  • listen=YES 指明VSFTPD以獨立運行方式啓動

  • tcp_wrappers=YES 在VSFTPD中使用TCP_Wrappers遠程訪問控制機制,默認值爲YES



實例1:

基礎配置:見本文開頭,再進行以下配置

1. 創建一個用戶test

adduser -d /tmp/test  -g ftp -s /sbin/nologin test#創建用戶test,用戶路徑爲/tmp/test,用戶組爲ftp,不能登錄
[root@xxzx tmp]# passwd test
Changing password for user test.
New UNIX password: 
Retype new UNIX password: 
passwd: all authentication tokens updated successfully.

2. 限制用戶目錄,不得改變目錄到上級

[root@xxzx tmp]# vi /etc/vsftpd/vsftpd.conf#編輯配置文件
chroot_list_enable=YES#註釋去掉
chroot_list_file=/etc/vsftpd/chroot_list#註釋去掉
[root@xxzx tmp]# vi /etc/vsftpd/chroot_list
test#填寫需要限制路徑的用戶名
[root@xxzx tmp]# service vsftpd restart#重啓服務
Shutting down vsftpd:  [  OK  ]
Starting vsftpd for vsftpd: [  OK  ]

3.限制匿名登錄

[root@xxzx tmp]# vi /etc/vsftpd/vsftpd.conf#編輯配置文件
anonymous_enable=NO#不允許匿名登錄
anon_upload_enable=NO#不允許匿名登錄上傳
anon_mkdir_write_enable=NO#不允許匿名登錄創建文件夾
service vsftpd restart#重啓vsftpd服務


4.最後爲了防止服務器由於斷電、重啓等現象發生,導致ftp進程在開機後未啓動,將其添加到開機啓動文件中:

[root@xxzx tmp]# vi /etc/rc.local#編輯開機啓動文件
service vsftpd start#在最後一行添加ftp服務啓動命令,保存

5.登錄測試

如果出現無法訪問,嘗試關閉防火牆測試:

臨時生效,重啓後復原

service iptables start#運行
service iptables stop#終止

永久性生效,重啓後不會復原

chkconfig iptables on#開啓
chkconfig iptables off#關閉

實例2:多用戶

  • 創建4個普通用戶和1個管理員

  • 創建普通用戶自己的文件夾和1個公共文件夾

  • 普通用戶擁有自己文件夾的完全控制權.

  • 普通用戶不能訪問其他用戶的文件夾

  • 普通用戶只能在公共文件夾上傳和下載,不能刪除

  • 管理員擁有所有文件夾的完全控制權

  • 搭建完成後再添加一個普通用戶

[root@xxzx /]# groupadd dep1
[root@xxzx /]# groupadd dep2
[root@xxzx /]# groupadd dep3
[root@xxzx /]# groupadd dep4
[root@xxzx /]# groupadd public#創建用戶組
[root@xxzx /]# useradd -s /sbin/nologin -G dep1,public user1
[root@xxzx /]# useradd -s /sbin/nologin -G dep2,public user2
[root@xxzx /]# useradd -s /sbin/nologin -G dep3,public user3
[root@xxzx /]# useradd -s /sbin/nologin -G dep4,public user4
[root@xxzx /]# useradd -s /sbin/nologin -G dep4,public,dep1,dep2,dep3 admin#創建用戶並關聯組
[root@xxzx /]# mkdir -p /tmp/ftp/dep1
[root@xxzx /]# mkdir -p /tmp/ftp/dep2
[root@xxzx /]# mkdir -p /tmp/ftp/dep3
[root@xxzx /]# mkdir -p /tmp/ftp/dep4
[root@xxzx /]# mkdir -p /tmp/ftp/public#創建文件夾
[root@xxzx /]# chown user1:dep1 /tmp/ftp/dep1
[root@xxzx /]# chown user2:dep2 /tmp/ftp/dep2
[root@xxzx /]# chown user3:dep3 /tmp/ftp/dep3
[root@xxzx /]# chown user4:dep4 /tmp/ftp/dep4
[root@xxzx /]# chown admin:public /tmp/ftp/public#關聯用戶組和文件夾
[root@xxzx /]# chmod 770 /tmp/ftp/dep1
[root@xxzx /]# chmod 770 /tmp/ftp/dep2
[root@xxzx /]# chmod 770 /tmp/ftp/dep3
[root@xxzx /]# chmod 770 /tmp/ftp/dep4
#[root@xxzx /]# chmod 1777 /tmp/ftp/public#其他用戶可以上傳和下載,且可以刪除自己建立的文件,但不能刪除其他人建立的文件.管理員可以完全控制(該權限測試不成功)
#[root@xxzx /]# chattr +a /tmp/ftp/public#設置public只能上傳和下載,不能刪除.但管理員也不能刪除(管理員不能控制,不成功)
[root@xxzx /]# passwd user1
[root@xxzx /]# passwd user2
[root@xxzx /]# passwd user3
[root@xxzx /]# passwd user4
[root@xxzx /]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
xferlog_file=/var/log/xferlog
local_umask=000#設置上傳文件的權限(即777-???),例007對應777
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
local_root=/tmp/ftp#修改用戶登錄後顯示的目錄
user_config_dir=/etc/vsftpd/ftp_config_dir#設置用戶擁有獨立的配置路徑
[root@xxzx /]# cd /etc/vsftpd/
[root@xxzx vsftpd]# vi chroot_list#如果開啓之後缺少此文件會導致無法登錄
[root@xxzx ~]# mkdir /etc/vsftpd/ftp_config_dir
[root@xxzx /]# vi  /etc/vsftpd/ftp_config_dir/user1#設置用戶獨立權限
cmds_allowed=ABOR,ACCT,APPE,CWD,CDUP,DELE,HELP,LIST,MODE,MDTM,MKD,NOOP,NLST,PASS,PASV,PORT,PWD,QUIT,REIN,RETR,RMD,RNFR,RNTO,SITE,SIZE,STOR,STAT,STOU,STRU,SYST,TYPE,USER#用戶的權限
[root@xxzx /]# cd /etc/vsftpd/ftp_config_dir
[root@xxzx ftp_config_dir]# cp user1 user2#將user1的權限拷貝給user2
[root@xxzx ftp_config_dir]# cp user1 user3
[root@xxzx ftp_config_dir]# cp user1 user4
[root@xxzx ~]# vi /etc/rc.local
service vsftpd start
[root@xxzx ~]# chkconfig iptables off
[root@xxzx ~]# service iptables stop
[root@xxzx ~]# service vsftpd restart#重啓服務

添加用戶:

[root@xxzx /]# groupadd dep5
[root@xxzx ~]# useradd -G public,dep5 -s /sbin/nologin user5
[root@xxzx ~]# mkdir -p /tmp/ftp/dep5
[root@xxzx ~]# chown user5:dep5 /tmp/ftp/dep5
[root@xxzx ~]# chmod 770 /tmp/ftp/dep5
[root@xxzx ~]# cd /etc/vsftpd/
[root@xxzx vsftpd]# cd ftp_config_dir/
[root@xxzx ftp_config_dir]# cp user1 user5
[root@localhost ~]# echo user5 >> /etc/vsftpd/chroot_list
[root@xxzx ftp_config_dir]# passwd user5



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章