在Linux下,咱們應用最普遍的FTP服務程序是 vsftpd (Very Secure FTP Daemon),從名字咱們也能夠看出,其提供了很是安全的FTP服務。vsftpd 是一個UNIX 類操做系統上運行的服務器的名字,它能夠運行在諸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持不少其餘的 FTP 服務器不支持的特徵。例如:linux
① 很是高的安全性需求 ios
②帶寬限制 vim
③建立虛擬用戶的可能性 windows
④高速 瀏覽器
...安全
能夠說 vsftpd 給咱們提供了一個快速的、穩定的且至關安全的FTP服務服務器
[root@test ~]# rpm -qa vsftpd # 在CentOS下默認沒有安裝 vsftpd 這個FTP程序
咱們經過 yum install vsfptd 來進行安裝網絡
[root@test ~]# yum install vsftpd
說明:session
服務的啓動配置文件併發
/etc/rc.d/init.d/vsftpd
安裝完以後在/etc/vsftpd/路徑下會存在三個配置文件
/etc/vsftpd/vsftpd.conf 主配置文件 /etc/vsftpd/ftpusers 指定哪些用戶不能訪問FTP服務器,這裏的用戶包括root在內的用戶。 /etc/vsftpd/user_list 指定的用戶是否能夠訪問ftp服務器。 經過vsftpd.conf文件中的userlist_deny的配置來決定配置中的用戶是否能夠訪問, userlist_enable=YES ,userlist_deny=YES ,userlist_file=/etc/vsftpd/user_list 這三個配置容許文件中的用戶訪問FTP。
ftp服務有默認的配置文件,將原配置文件備份,從新編寫配置文件
[root@test ftp]# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak [root@test ~]# cat /etc/vsftpd/vsftpd.conf #20171014 #HZS anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
默認配置文件說明:
參數 |
說明 |
anonymous_enable=YES |
容許匿名用戶 |
local_enable=YES |
容許使用本地用戶帳號登錄 |
write_enable=YES |
容許ftp用戶寫數據 |
connect_from_port_20=YES |
經過20端口傳輸數據 |
#anon_mkdir_write_enable=YES |
是否容許匿名帳戶在FTP服務器中建立目錄 |
xferlog_enable=YES |
啓用上傳和下載日誌功能 |
#ascii_download_enable=YES |
是否容許使用ASCII格式來上傳和下載文件 |
pam_service_name=vsftpd |
/設置PAM認證服務的配置文件名稱,該文件存放在/etc/pam.d/目錄下. |
userlist_enable=YES |
用戶列表中的用戶是否容許登陸FTP服務器,默認是不容許 |
tcp_wrappers=YES |
/使用tcp_wrqppers做爲主機訪問控制方式 |
其餘的配置參數說明:
ftpd_banner=welcome to ftp service :設置鏈接服務器後的歡迎信息 idle_session_timeout=60 :限制遠程的客戶機鏈接後,所創建的控制鏈接,在多長時間沒有作任何的操做就會中斷(秒) data_connection_timeout=120 :設置客戶機在進行數據傳輸時,設置空閒的數據中斷時間 accept_timeout=60 設置在多長時間後自動創建鏈接 connect_timeout=60 設置數據鏈接的最大激活時間,多長時間斷開,爲別人所使用; max_clients=200 指明服務器總的客戶併發鏈接數爲200 max_per_ip=3 指明每一個客戶機的最大鏈接數爲3 local_max_rate=50000(50kbytes/sec) 本地用戶最大傳輸速率限制 anon_max_rate=30000匿名用戶的最大傳輸速率限制 pasv_min_port=端口 pasv-max-prot=端口號 定義最大與最小端口,爲0表示任意端口;爲客戶端鏈接指明端口; listen_address=IP地址 設置ftp服務來監聽的地址,客戶端能夠用哪一個地址來鏈接; listen_port=端口號 設置FTP工做的端口號,默認的爲21 local_root=path 不管哪一個用戶都能登陸的用戶,定義登陸賬號的主目錄, 若沒有指定,則每個用戶則進入到我的用戶主目錄; chroot_local_user=yes/no 是否鎖定本地系統賬號用戶主目錄(全部);鎖定後,用戶只能訪問用戶的主目錄/home/user; chroot_list_enable=yes/no 啓用不鎖定用戶在主目錄的名單 chroot_list_file=/etc/vsftpd/chroot_list指定列表文件 userlist_enable=YES/NO 是否加載用戶列表文件; userlist_deny=YES 表示上面所加載的用戶容許登陸; userlist_file=/etc/vsftpd/user_list 指定列表文件
注意:
在這裏要禁止匿名登錄anonymous_enable=NO
[root@test ~]# useradd ftpuser -s /sbin/nologin -M [root@test ~]# echo "ftpuser" |passwd --stdin ftpuser Changing password for user ftpuser. passwd: all authentication tokens updated successfully
[root@test ~]# mkdir /ftpshare [root@test ~]# chown ftpuser.ftpuser /ftpshare [root@test ~]# usermod ftpuser -d /ftpshare
檢查配置是否正確:
[root@test ~]# ll /ftpshare/ -d drwxr-xr-x 2 ftpuser ftpuser 4096 Oct 14 10:48 /ftpshare/ [root@test ~]# tail -1 /etc/passwd ftpuser:x:501:501::/ftpshare:/sbin/nologin
[root@test ~]# /etc/init.d/vsftpd start Starting vsftpd for vsftpd: [ OK ] [root@test bin]# chkconfig vsftpd on [root@test bin]# chkconfig |grep vsftpd vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
第一步:打開windows上資源管理器
在地址欄中是輸入服務器地址,注意ftp格式
ftp://10.0.0.250
肯定,輸入用戶名,和密碼進行登錄。
[root@test ftpshare]# ll total 7072 -rw-r--r-- 1 ftpuser ftpuser 7234678 Oct 14 11:13 cwRsync.zip -rw-r--r-- 1 root root 60 Oct 14 11:05 訪問正常.txt
[root@test ~]# mount -t nfs -o rw 10.0.0.250:/ftpshare/ /opt/ [root@test ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 19G 1.7G 17G 10% / tmpfs 238M 0 238M 0% /dev/shm /dev/sda1 190M 40M 141M 22% /boot 10.0.0.250:/ftpshare/ 19G 1.7G 17G 10% /opt
Samba是一個能讓Linux系統應用Microsoft網絡通信協議的軟件,而SMB是Server Message Block的縮寫,即爲服務器消息塊,SMB主要是做爲Microsoft的網絡通信協議,後來Samba將SMB通訊協議應用到了Linux系統上,就造成了如今的Samba軟件。後來微軟又把 SMB 更名爲 CIFS(Common Internet File System),即公共 Internet 文件系統,而且加入了許多新的功能,這樣一來,使得Samba具備了更強大的功能。
Samba最大的功能就是能夠用於Linux與windows系統直接的文件共享和打印共享,Samba既能夠用於windows與Linux之間的文件共享,也能夠用於Linux與Linux之間的資源共享,因爲NFS(網絡文件系統)能夠很好的完成Linux與Linux之間的數據共享,於是 Samba較多的用在了Linux與windows之間的數據共享上面。
SMB是基於客戶機/服務器型的協議,於是一臺Samba服務器既能夠充當文件共享服務器,也能夠充當一個Samba的客戶端,例如,一臺在Linux 下已經架設好的Samba服務器,windows客戶端就能夠經過SMB協議共享Samba服務器上的資源文件,同時,Samba服務器也能夠訪問網絡中 其它windows系統或者Linux系統共享出來的文件。
Samba在windows下使用的是NetBIOS協議,若是你要使用Linux下共享出來的文件,請確認你的windows系統下是否安裝了NetBIOS協議。
組成Samba運行的有兩個服務,一個是SMB,另外一個是NMB;SMB是Samba 的核心啓動服務,主要負責創建 Linux Samba服務器與Samba客戶機之間的對話, 驗證用戶身份並提供對文件和打印系統的訪問,只有SMB服務啓動,才能實現文件的共享,監聽139 TCP端口;而NMB服務是負責解析用的,相似與DNS實現的功能,NMB能夠把Linux系統共享的工做組名稱與其IP對應起來,若是NMB服務沒有啓動,就只能經過IP來訪問共享文件,監聽137和138 UDP端口。
例如,某臺Samba服務器的IP地址爲10.0.0.163,對應的工做組名稱爲davidsamba,那麼在Windows的IE瀏覽器輸入下面兩條指令均可以訪問共享文件。其實這就是Windows下查看Linux Samba服務器共享文件的方法。
\\10.0.0.163\共享目錄名稱
\\davidsamba\共享目錄名稱
Samba服務器可實現以下功能:WINS和DNS服務; 網絡瀏覽服務; Linux和Windows域之間的認證和受權; UNICODE字符集和域名映射;知足CIFS協議的UNIX共享等。
[root@test ~]# rpm -qa samba
安裝samba服務
[root@test ~]# yum install samba -y Dependency Installed: libtalloc.x86_64 0:2.1.5-1.el6_7 libtdb.x86_64 0:1.3.8-3.el6_8.2 libtevent.x86_64 0:0.9.26-2.el6_7 samba-common.x86_64 0:3.6.23-45.el6_9 samba-winbind.x86_64 0:3.6.23-45.el6_9 samba-winbind-clients.x86_64 0:3.6.23-45.el6_9
samba服務默認配置文件位置爲/etc/samba/smb.conf 備份該文件,從新寫配置文件
[root@test ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
配置文件內容:
[root@test ~]# vim /etc/samba/smb.conf [global] workgroup = WORKGROUP netbios name = Test_samba server string = Linux Samba Server TestServer security = share [test] path = /share_samba writeable = yes browseable = yes guest ok = yes ~ "/etc/samba/smb.conf" 11L, 189C written
配置文件參數說明:
參數 |
說明 |
[global] |
這段是全局配置,是必段寫的。 |
workgroup |
就是Windows中顯示的工做組 |
netbios name |
就是在Windows中顯示出來的計算機名 |
server string |
就是Samba服務器說明,能夠本身來定義;這個不是什麼重要的 |
security |
這是驗證和登陸方式,這裏咱們用了share 用share,就是不用設置用戶和密碼了 |
[test] |
這個在Windows中顯示出來是共享的目錄 |
path |
能夠設置要共享的目錄放在哪裏 |
writeable |
是否可寫,這裏我設置爲可寫 |
browseable |
是否能夠瀏覽,能夠;能夠瀏覽意味着,咱們在工做組下能看到共享文件夾。若是您不想顯示出來,那就設置爲browseable=no |
guest ok |
匿名用戶以guest身份是登陸 |
[root@test ~]# mkdir -p /share_samba [root@test ~]# id nobody uid=99(nobody) gid=99(nobody) groups=99(nobody) [root@test ~]# chown nobody.nobody /share_samba -R
說明:
關於受權nobody,咱們先用id命令查看了nobody用戶的信息,發現他的用戶組也是nobody,咱們要以這個爲準。有些系統nobody用戶組並不是是nobody 。
[root@test ~]# /etc/init.d/smb start Starting SMB services: [ OK ] [root@test ~]# chkconfig smb on [root@test ~]# chkconfig |grep smb smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
說明:
因爲未涉及域名解析,因此不啓動nmb服務也能夠訪問
打開資源管理器,右鍵單擊,選擇「添加網絡位置」
輸入 samba服務器的地址
格式: \\samba服務器地址\共享目錄名稱
說明:共享目錄名稱 爲設置的局部變量名,我設置的爲[test]。
點擊下一步,設置顯示的名稱【能夠選擇默認】
至此samba共享的文件夾在winndows上添加上了 。
上傳測試
[root@test share_samba]# pwd /share_samba [root@test share_samba]# tree ├── test.zip └── samba sever.txt
下載文件測試
安裝samba客戶端
[root@test ftp]# yum install samba-client
[root@test ~]# smbclient //172.16.1.250/test WARNING: The security=share option is deprecated Enter root's password: Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-45.el6_9] Server not using user level security and no password supplied. smb: \> ls . D 0 Sat Oct 14 14:38:47 2017 .. DR 0 Sat Oct 14 13:49:02 2017 samba sever.txt A 60 Sat Oct 14 03:05:00 2017 redhat-release 27 Sat Oct 14 14:49:16 2017 test.zip A 7234678 Sat Oct 14 11:08:50 2017 38152 blocks of size 524288. 32854 blocks available
掛載方式
[root@test ~]# mount.tmpfs //10.0.0.250/test/ /mnt/ [root@test ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 19G 1.7G 17G 10% / tmpfs 238M 0 238M 0% /dev/shm /dev/sda1 190M 40M 141M 22% /boot //10.0.0.250/test/ 238M 0 238M 0% /mnt
至此samba服務配置完成。
做者:慘綠少年
出處:http://clsn.io 本文版權歸做者全部,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利。