如下內容將分別詳細闡述兩款文件服務器的搭建和經常使用功能及選項。html
FTP服務器搭建linux
FTP:File Transfer Protocol文件傳輸協議,是大多數網頁瀏覽器和文件管理器都可以支持的文件傳輸協議,它的歷史據今天已經整整40年的時間,是一種基於明文認證的協議。它的整個傳輸過程經過創建兩個連接來實現。一種爲數據連接,在有數據傳輸是纔會創建,端口20;另外一種爲控制連接,用於指令的傳輸,這個連接一直保持,端口20;web
數據的傳輸模式也有兩種:一種爲服務器從接口主動連接客戶端,叫作主動模式;另外一種爲現有客戶端發出請求再創建連接進行數據傳輸。數據傳輸的格式一樣分爲兩種:二進制碼和ASCII碼。數據庫
FTP用戶服務類型有匿名用戶、本地用戶和虛擬用戶。匿名用戶指不用輸入帳號密碼或是使用ftp用戶ftp密碼進行登陸;本地用戶指的是本地主機用戶登陸,可是通常不推薦此種方式進行登陸,由於本地用戶登陸容易遭到***使用緩衝區溢出從而提高至root權限;虛擬用戶是較爲穩妥的登陸方式,它由多個虛擬用戶映射一個本地用戶的機制來實現,虛擬用戶使用對應虛擬用戶密碼來訪問,從而實現與本地用戶分離的目的。vim
下面詳細介紹構建基於虛擬用戶的vsftpd服務器瀏覽器
1.安裝vsftpd安全
- yum install vsftpd
2.調整主配置文件服務器
- vim /etc/vsftpd/vsftpd.conf
- local_enable=
- #本機用戶可登錄,使用本機用戶來登錄ftp服務器
- write_enable=YES
- #是否登錄可建立文件
- anon_upload_enable=YES
- #是否容許上傳文件
- dirmessage_enable=YES
- message_file=/var/ftp/message
- #定義歡迎信息
- idle_connection_timeout=300
- #空閒超時斷開時間
- data_connection_timeout=120
- #數據鏈接超時斷開時間
- chroot_list_enable=YES
- chroot_list_file=/etc/vsftpd/chroot_list #具體的限制列表
- #是否顯示用戶活動範圍僅限於其家目錄
- chown_upload=YES
- chown_username=
- #將上傳文件屬主改變成」=「後用戶
3.Ftp服務SSL加密的啓用網絡
ssl加密啓用後將原來的明文傳輸加密dom
- vim /etc/vsftpd/vsftpd.conf
- #配置文件中加入
- ssl_enable=YES
- ssl_tlsv1=YES
- ssl_sslv2=YES
- ssl_sslv3=YES
- allow_anon_ssl=NO
- force_local_data_ssl=YES
- force_local_logins_ssl=YES
- rsa_cert_file=/etc/vsftpd/ssl/vsftpd.pem
- rsa_private_key_file=/etc/vsftpd/ssl/vsftpd.key
4.創建虛擬FTP用戶的帳號數據庫文件
- yum install -y db4-utils
- #安裝轉換虛擬用戶軟件包
- vim /etc/vsftpd/vusers.list
- mike
- 123
- john
- 456
- #編輯虛擬用戶帳號密碼
- db_load -T -t hash -f vusers.list vusers.db
- #生成數據文件
- chmod 600 vuser.*
- #chown root vuser.*
- #更改權限屬主
在使用 db_load 命令時,「-f」選項用於指定用戶名/密碼列表文件,「-T」選項容許非Berkeley DB的應用程序使用從文本格式轉換的DB數據文件,「-t hash」選項指定讀取數據文件的基本方法。關於db_load命令的詳細說明可參閱/usr/share/doc/db4-utils-4.3.29/utility/db_load.html文件
5.建立FTP根目錄以及虛擬用戶映射的系統用戶
- mkdir /var/ftproot
- useradd -d /var/ftproot -s /sbin/nologin virtual
- #vsftpd虛擬用戶須要有一個對應的系統用戶賬號(該賬號無需設置密碼及登陸Shell),該用戶賬號的宿主目錄做爲全部虛擬用戶登陸後的共同FTP根目錄
- chmod 755 /var/ftproot
- #去掉寫權限
6.建立支持虛擬用戶的PAM認證文件
- vim /etc/pam.d/vsftpd.vu
- #%PAM-1.0
- auth required pam_userdb.so db=/etc/vsftpd/vusers
- account required pam_userdb.so db=/etc/vsftpd/vusers
- #PAM配置文件(名稱能夠自行定義)主要用於爲程序提供用戶認證控制,vsftpd服務使用的默認PAM配置文件爲/etc/pam.d/vsftpd,能夠參考該文件的格式創建新的PAM配置文件,用於虛擬用戶認證控制
7.在vsftpd.conf 中添加支持配置
- vim /etc/vsftpd/vsftpd.conf
- guest_enable=YES
- guest_username=virtual
- pam_service_name=vsftpd.vu
- #在vsftpd.conf配置文件中添加guest_enable、guest_username配置項,將訪問FTP服務的全部虛擬用戶對應到同一系統用戶賬號virtual。並修改pam_service_name配置項,指向上一步創建的PAM配置文件/etc/pam.d/vsftpd.vu
8.爲個別虛擬用戶創建獨立的配置文件
- user_config_dir=/etc/vsftpd/vusers_dir
- #在vsftp.conf文件中添加
- mkdir /etc/ vsftpd/vusers_dir
- cd /etc/ vsftpd/vusers_dir
- #爲用戶mick jhon創建獨立的配置文件
- touch mike
- #配置文件與用戶名相同
- vim mike
- anon_upload_enable=YES
- anon_mkdir_write_enable=YES
9.從新加載vsftp配置
- sevice vsftpd reload
Samba服務器搭建
samba一款實現安裝unix系列操做系統與安裝Windows主機之間文件共享的開源軟件,它基於SMB/CIFS、NetBIOS等多個協議,在兩種OS的文件共享間架起了一座橋樑。經過samba的共享使得Windows用戶能夠像訪問普通Windows下文件夾那樣訪問unix目錄。
下面就談一談Samba的服務的搭建
1.samba服務的安裝
- yum list samba*
- #查看相關samba相關的rpm其中samba-client、samba、samba-swat是咱們假設服務所須要用到的
- yum install -y samba-swat samba samba-client
- #安裝samba客戶端 服務器端和swat
2.samba服務的配置
- vim /etc/samba/smb.conf
- #samba的主配置文件
- [global]全局控制文件
- workgroup=WORKGROUP #工做組
- server string=TEST #註釋信息
- security=user
- passdb backend = tdbsam #指使用哪中凡是存放密碼
- cups options=raw #定義打印的方式
- [homes]控制是否可以訪問家目錄的
- comment= home directory #說明信息
- browserable=no #非屬主是否可以查看當前目錄內容
- writable=yes #是否可寫
- [printer]控制打印機
- guest ok=no #打印機是否公開 ;是否支持來賓帳號打印
- security=user
- 這個選項比較重要它定義samba的安全級別{share:容許任何匿名共享;|默認是user:帳號和密碼來訪問(用戶是本地用戶可是密碼卻不是;|domain/server:集中式的用戶認證,有第三方服務器集中管理帳號密碼 ;|ads:基於kerberos來實現}
3.自定義文件選項
所謂自定義文件選項其實也就是自定義規則實現訪問控制等功能的共享文件目錄。自定義選項卸載主配置文件中,下面是做者定義的一個簡單的自定義選項:
- [file] #自定義選項一樣由[]引導,內容爲其餘共享用戶看到的目錄名
- comment=mytools #標示信息
- path = /share #文件路徑,指明共享文件本機所在的位置
- browserable = yes #此文件是否容許查看
- guest ok = no #是否容許匿名用戶登錄
- writable = yes #是否可寫,此處還取決於文件自己的權限
- write list=gentoo #設置寫權限的用戶名單
4.啓動服務
- testparm
- #配置完成後首先檢查配置文件語法
- service smb start
- #啓動服務
- chkconfig smb on
- #設置2345運行級別開機啓用
- netstat -tunl
- #查看tcp13九、445以及udp13七、138端口爲監聽狀態標示服務成功啓動
5.設置登錄用戶的帳號/密碼
- 全部的samba用戶,必須爲本地用戶,但其用來登錄的密碼卻和本地密碼絲絕不相干。
- useradd gentoo
- #建立gentoo本地用戶且不設置密碼
- smbpasswd -a gentoo
- #設置gentoo用戶的samba密碼
6.文件共享的Windows和linux中的Samba客戶端
Windows網絡鄰居à查看工做組選項(samba主配置文件中定義的工做組是WORKGROUP)找到TEST主機,使用gentoo用戶登錄。
可見圖中有兩個共享文件夾:file和gentoo。
file文件夾既是上文自定義選項所定義的文件夾;
gentoo文件夾則是對應用戶的家目錄。
Linux中登錄samba服務器
- smbclient -L 192.168.0.72 -U gentoo
- #顯現查看目的主機有哪些共享目錄
- Domain=[TEST] OS=[Unix] Server=[Samba 3.0.33-3.14.el5] #對應顯示:域名爲TEST 操做系統爲Unix族 版本號爲Samba 3.0.33-3.14.el5
- Sharename Type Comment #對應顯示:共享目錄的名稱,類型,註釋信息
- --------- ---- -------
- file Disk mytesting
- IPC$ IPC IPC Service (Test)
- Server Printer Printing Server
- gentoo Disk Home Directories
- smbclient //192.168.0.72/gentoo -U gentoo
- #登入目標服務器目錄中
7.組訪問控制
上面已經實現了單用戶的訪問控制,若是要實現多用戶的訪問控制,直接對用戶的附加組進行操做便可。
- groupadd sambagrp
- #建立一個組
- useradd slackware
- usermod -G sambagrp slackware
- usermod -G sambagrp gentoo
- #將兩個用戶添加附加組
- vim /etc/samba/smb.conf
- write list=@sambagrp
- #設置該組可訪問自定義的file目錄
8.指定主機訪問
- hosts allow = 127. 192.168.
- #表示容許127.0.0.1和192.168.0.0網段用戶訪問
9.將smb共享文件夾掛載到本地
amba也支持相似於nfs以掛載的模式實現共享
- mount -t cifs //192.168.0.72/file /mnt/ -o username=gentoo
- #使用gentoo用戶將目標主機目錄掛載到本地
10.samba-swat的使用
samba-swat是基於自身提供的web服務器來實現對samba服務的配置。
- vim /etc/xinetd/swat
- service swat
- {
- port = 901 #服務端口
- socket_type = stream
- wait = no
- only_from = 192.168.0.0/24 #容許訪問的網段
- user = root #容許訪問的用戶
- server = /usr/sbin/swat
- log_on_failure += USERID
- disable = no #服務是否啓用
- }
注意:登陸格式 http://192.168.0.72:901,端口號不要忘了。
使用root用戶登錄後: