FTP&samba 服務簡單部署
第1章 FTP服務部署
在Linux下,我們應用最廣泛的FTP服務程序是 vsftpd (Very Secure FTP Daemon),從名字我們也可以看出,其提供了非常安全的FTP服務。vsftpd 是一個 UNIX 類操作系統上運行的服務器的名字,它可以運行在諸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服務器不支持的特征。例如:
① 非常高的安全性需求 ②帶寬限制 ③創建虛擬用戶的可能性 ④高速 ...
可以說 vsftpd 給我們提供了一個快速的、穩定的且相當安全的FTP服務
1.1 服務端配置
1.1.1 第一個裏程碑: 檢查是否有這個軟件,(沒有則安裝軟件)
[root@test ~]# rpm -qa vsftpd
在CentOS下默認沒有安裝 vsftpd 這個FTP程序
我們通過 yum install vsfptd 來進行安裝
[root@test ~]# yum install vsftpd
說明:
服務的啟動配置文件
/etc/rc.d/init.d/vsftpd
安裝完之後在/etc/vsftpd/路徑下會存在三個配置文件
/etc/vsftpd/vsftpd.conf 主配置文件
/etc/vsftpd/ftpusers 指定哪些用戶不能訪問FTP
/etc/vsftpd/user_list 指定的用戶是否可以訪問ftp服務器。
通過vsftpd.conf文件中的userlist_deny的配置來決定配置中的用戶是否可以訪問,
userlist_enable=YES ,userlist_deny=YES ,userlist_file=/etc/vsftpd/user_list
這三個配置允許文件中的用戶訪問FTP。
1.1.2 第二個裏程碑: 編寫配置文件
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
1.1.3 第三個裏程碑:創建用於FTP連接用戶,設置密碼
[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
1.1.4 第四個裏程碑: 創建ftp共享目錄,將目錄所有者屬於ftpuser,將 ftpuser用戶家目錄修改為共享目錄。
[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
1.1.5 第五個裏程碑: 啟動vsftpd 服務,並設置開機自啟動
[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
1.2 客戶端鏈接測試
第一步:打開windows上資源管理器
在地址欄中是輸入服務器地址,註意ftp格式
ftp://10.0.0.250
確定,輸入用戶名,和密碼進行登陸。
1.2.1 下載文件測試
1.2.2 上傳文件測試
1.2.3 服務端檢查
[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
1.3 linux系統掛載ftp測試
[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
第2章 samba服務配置
2.1 samba服務簡介
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共享等。
2.2 samba服務端部署
2.2.1 第一個裏程碑: 檢查軟件是否安裝(安裝samba軟件)
[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
2.2.2 第二個裏程碑: 編寫配置文件
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身份是登錄 |
2.2.3 第三個裏程碑: 創建共享目錄,修改權限
[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 。
2.2.4 第四個裏程碑: 啟動smb和nmb服務,加入開機啟動
[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服務也可以訪問
2.3 windows客戶端測試
2.3.1 windows上添加網絡位置(samba共享的文件夾)
打開資源管理器,右鍵單擊,選擇“添加網絡位置”
輸入 samba服務器的地址
格式: \\samba服務器地址\共享目錄名稱
說明:共享目錄名稱 為設置的局部變量名,我設置的為[test]。
點擊下一步,設置顯示的名稱【可以選擇默認】
至此samba共享的文件夾在winndows上添加上了 。
2.3.2 對共享文件夾進行測試
上傳測試
[root@test share_samba]# pwd /share_samba [root@test share_samba]# tree ├── test.zip └── samba sever.txt
下載文件測試
2.4 在cento 6.9上測試說明samba共享
安裝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
2.5 至此samba服務配置完成。
FTP&samba 服務簡單部署