第十三節課:第11章和第12章,vsftpd服務與samba和nfs服務
第十一章
(借鑑請改動)
11.1、檔案傳輸協議
FTP檔案穿數協議,埠20用於資料傳輸,21埠用於傳輸相關FTP命令
ftp協議的兩種工作模式:
主動模式:ftp向客戶端發起
被動模式(預設):等待客戶端發起
yun install vsftpd -y
vsftpd的住配置檔案 /etc/vsftpd/vsftpd.conf 其中大部分是註釋
把配置檔案更名 vsftpd.conf_bak 然後用 grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf 過濾註釋,得到的常用引數:
listen=[YES|NO] //是否以獨立執行的方式監聽服務
listen_address=IP地址 //設定要監聽的IP地址
listen_port=21 //設定FTP服務的監聽埠
download_enable=[YES|NO] // 是否允許下載檔案
userlist_enable=[YES|NO] //設定使用者列表為“允許”還是“禁止”操作
userlist_deny=[YES|NO] //設定使用者列表為“允許”還是“禁止”操作
max_clients=0 // 最大客戶端連線數,0為不限制
max_per_ip=0 // 同一IP地址的最大連線數,0為不限制
anonymous_enable=[YES|NO] //是否允許匿名使用者訪問
anon_upload_enable=[YES|NO] //是否允許匿名使用者上傳檔案
anon_umask=022 // 匿名使用者上傳檔案的umask值
anon_root=/var/ftp // 匿名使用者的FTP根目錄
anon_mkdir_write_enable=[YES|NO] //是否允許匿名使用者建立目錄
anon_other_write_enable=[YES|NO] // 是否開放匿名使用者的其他寫入許可權(包括重新命名、刪除等操作許可權)
anon_max_rate=0 // 匿名使用者的最大傳輸速率(位元組/秒),0為不限制
local_enable=[YES|NO] // 是否允許本地使用者登入FTP
local_umask=022 //本地使用者上傳檔案的umask值
local_root=/var/ftp //本地使用者的FTP根目錄
chroot_local_user=[YES|NO] //是否將使用者許可權禁錮在FTP目錄,以確保安全
local_max_rate=0 //本地使用者最大傳輸速率(位元組/秒),0為不限制
11.2、vsftpd服務程式
匿名開放模式:任何人都可以登入,不安全
本地使用者模式:通過伺服器本地使用者登入
虛擬使用者模式:三種中最安全的認證方式,建立使用者資料庫,虛擬出來使用者登入
需先安裝:yum install ftp -y
匿名開放模式 (/var/ftp)
1、修改配置檔案中的部分引數:
anonymous_enable=YES //允許匿名訪問模式
anon_umask=022 //匿名使用者上傳檔案的umask值
anon_upload_enable=YES // 允許匿名使用者上傳檔案
anon_mkdir_write_enable=YES //允許匿名使用者建立目錄
anon_other_write_enable=YES //允許匿名使用者修改目錄名稱或刪除目錄
2、修改目錄許可權和selinux的域並重啟服務
3、測試服務(ftp預設訪問的是/var/ftp目錄)
本地使用者模式
1、修改部分配置檔案:
anonymous_enable=NO //禁止匿名訪問模式
local_enable=YES //允許本地使用者模式
write_enable=YES //設定可寫許可權
local_umask=022 //本地使用者模式建立檔案的umask值
userlist_deny=YES // 啟用“禁止使用者名稱單”,名單檔案為ftpusers和user_list
userlist_enable=YES // 開啟使用者作用名單檔案功能
2、修改selinux域並重啟服務
setsebool -p ftpd_full_access=on
3、本地使用者模式預設不允許root使用者登入,如需登入,需要把/etc/vsftpd/user_list和/etc/vsftpd/ftpusers中root使用者去掉(死亡筆記)
虛擬使用者模式
pam模組:可插拔認證模組。是一種認證機制,通過一些動態連結庫和統一的API把系統服務與認證方式分開,靈活的調整不同認證方式。
1、建立用於認證的使用者資料庫檔案,並加密與授權,刪除原檔案
[[email protected] vsftpd]# vim vuser.list //一行使用者名稱一行密碼交替
zhangsan
redhat
lisi
redhat
db_load -T -t hash -f vuser.list vuser.db //加密
chmod 600 vuser.db
rm -rf vuser.db
2、把建立的虛擬使用者對映到本地使用者
useradd -d /var/ftproot -s /sbin/nologin virtual //用於對映虛擬使用者
chmod -Rf 755 /var/ftproot
3、建立用於認證的pam模組
vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
4、寫入配置檔案
anonymous_enable=NO //禁止匿名開放模式
local_enable=YES //允許本地使用者模式
guest_enable=YES //開啟虛擬使用者模式
guest_username=virtual // 指定虛擬使用者賬戶
pam_service_name=vsftpd.vu // 指定PAM檔案
allow_writeable_chroot=YES // 允許對禁錮的FTP根目錄執行寫入操作,而且不拒絕使用者的登入請求
5、為使用者設定許可權並寫入配置檔案
vim /etc/vsftpd/vusers_dir/zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_dir
6、設定selinux域並重啟服務
11.3、簡單文字傳輸協議
yum install tftp-server tftp -y //安裝tftp
vim /etc/xinetd.d/tftp 把其中的disable 項改成yes
防火牆新增埠:
firewall-cmd --permanent --add-port=69/udp
firewall-cmd --reload
tftp的根目錄為 /var/lib/tftpboot 相關引數解釋:
? //幫助資訊
put //上傳檔案
get //下載檔案
verbose //顯示詳細的處理資訊
status //顯示當前的狀態資訊
binary //使用二進位制進行傳輸
ascii //使用ASCII碼進行傳輸
timeout //設定重傳的超時時間
quit //退出
重啟服務:systemctl restart xinetd
第十二章
samba和nfs(nfs只能linux之間)總結:
Windows和linux:(smb服務)
linux 服務端:安裝Samba,將共享目錄寫入/etc/samba/smb.conf並且設定許可權、selinux、防火牆。然後pdbedit建立smb登入使用者,重啟服務。
windows客戶端:開始搜尋欄直接:\\192.168.10.10
linux 和 linux :(smb服務)
服務端:與上述一樣正常配置Samba服務即可
linux客戶端:yum安裝cifs-utils並寫入認證檔案auth.smb,然後寫入掛載檔案/etc/fstab
例如://192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0
nfs的linux與linux(只能linux):
服務端:安裝nfs,把共享目錄寫入/etc/export,設定許可權,selinux,防火牆,並重啟服務(rpc-bind和nfs-server)
/etc/export的寫入格式:共享目錄路徑 允許訪問nfs客戶端(共享許可權引數)
客戶端:showmount -e 檢視服務端共享目錄,並掛載,使用mount -t 檔案型別掛載
詳細如下:
12.1、samba檔案共享服務
yum install samba -y 安裝Samba服務
主配置檔案 /etc/samba/smb.conf 中的引數解釋:
[global] #全域性引數。
workgroup = MYGROUP //#工作組名稱
server string = Samba Server Version %v //#伺服器介紹資訊,引數%v為顯示SMB版本號
log file = /var/log/samba/log.%m //#定義日誌檔案的存放位置與名稱,引數%m為來訪的主機名
max log size = 50 //#定義日誌檔案的最大容量為50KB
security = user //#安全驗證的方式,總共有4種
#share: //來訪主機無需驗證口令;比較方便,但安全性很差
#user: //需驗證來訪主機提供的口令後才可以訪問;提升了安全性
#server: //使用獨立的遠端主機驗證來訪主機提供的口令(集中管理賬戶)
#domain: //使用域控制器進行身份驗證
passdb backend = tdbsam // #定義使用者後臺的型別,共有3種
#smbpasswd: //使用smbpasswd命令為系統使用者設定Samba服務程式的密碼
#tdbsam: //建立資料庫檔案並使用pdbedit命令建立Samba服務程式的使用者
#ldapsam: //基於LDAP服務進行賬戶驗證
load printers = yes //#設定在Samba服務啟動時是否共享印表機裝置
cups options = raw //#印表機的選項
[homes] //#共享引數
comment = Home Directories //#描述資訊
browseable = no //#指定共享資訊是否在“網路上的芳鄰”中可見
writable = yes // #定義是否可以執行寫入操作,與“read only”相反
[printers] //#印表機共享引數
comment = All Printers
path = /var/spool/samba //#共享檔案的實際路徑(重要)。
browseable = no
guest ok = no // #是否所有人可見,等同於"public"引數。
writable = no
printable = yes
(服務端配置)配置共享資源
1、寫入配置檔案並且建立smb使用者
vim /etc/samba/smb.conf
[database] //共享名稱為database
comment = Do not arbitrarily modify the database file //警告使用者不要隨意修改資料庫
path = /home/database //共享目錄為/home/database
public = no //關閉“所有人可見”
writable = yes // 允許寫入操作
pdbedit -a -u linuxprobe
pdbedit 用於管理Samba使用者 。 pdbedit 【選項】 【賬戶】。
-a 使用者名稱 // 建立Samba賬戶 -x 使用者名稱 //刪除使用者名稱
-L //列出賬戶列表 -Lv //列出賬戶詳細列表
2、建立共享檔案目錄/home/database 並授權和selinux的安全上下文和selinux域
3、清空防火牆並重啟服務
(客戶端)配置共享
window端:直接在開始的搜尋欄:\\192.168.10.10 並輸入使用者名稱密碼
linux端:yum install cifs -y ,寫認證檔案並授權,建立掛載目錄,寫入/etc/fstab中,mount -a掛載使用
vim auth.smb
username=linuxprobe
password=redhat
domain=MYGROUP
chmod -Rf 600 auth.smb
vim /etc/fstab
//192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0
複習:ftp的本地模式
預習:第十二章,第十三章 13.5