FTP
常見的FTP伺服器程式:vsftpd,Serv-U,wu-ftpd,Proftpd,IIS
常見的FTP用戶端程式:ftp指令,FlashFXP,LeapFTP,gftp,Filezilla
資料連接配接的建立類型
主動模式:服務端從20端口主動向用戶端發起連接配接
被動模式:服務端在指定範圍内的某個端口被動等待用戶端發起連接配接
FTP傳輸模式
文本模式:ASCII模式,以文本序列傳輸資料
二進制模式:Binary模式,以二進制序列傳輸資料
vsftpd的主配置檔案/etc/vsftpd/vsftpd.conf
local_enable=YES #本地使用者登入開啟
anon_enable=YES #匿名使用者登入開啟
anon_root=/var/ftp #匿名使用者的FTP根目錄
write_enable=YES #本地使用者可寫權限開啟
download_enable=YES #是否允許下載下傳檔案
local_umask=022 #本地使用者上傳檔案的umask(掩碼)值
anon_other_write_enable=YES #匿名使用者建立目錄權限開啟
anon_mkdir_write_enable=YES #匿名使用者其他寫入權限開啟
anon_upload_enable=YES #匿名使用者允許上傳檔案
chroot_local_user=YES #鎖定所有使用者家目錄
chroot_list_enable=YES #對一些使用者鎖定使用者家目錄功能開啟
chroot_list_file=/etc/vsftpd/chroot_list #鎖定家目錄使用者清單存儲檔案路徑
xferlog_enable=YES #開啟傳輸日志功能
xferlog_std_format=YES #指定傳輸日志的格式
xferlog_file=/var/log/xferlog #傳輸日志存儲檔案所在位置
anon_max_rate=0 #匿名使用者的最大傳輸速度(0表示不限制速度,速度機關是位元組)
local_max_rate=0 #本地使用者的最大傳輸速度
max_clients=100 #該FTP伺服器的最大并發連接配接數
max_per_ip=2 #一個IP最多可創的連接配接數
connect_form_port=20 #允許FTP伺服器使用主動模式
ascii_upload_enable=YES #ASCII傳輸模式開啟
ftpd_banner=Welcome to FTP #列印歡迎資訊
listen_address=192.168.0.252 #設定監聽的IP位址
listen_port=21 #設定監聽FTP服務的端口号
userlist_enable=YES #是否啟用user_list清單檔案
userlist_deny=YES # 是否禁用user_list中的使用者
ls_recurse_enable=YES #使用ls指令是可以遞歸
listen=YES #表示是該服務程序獨立守護程序
tcp_wrappers=YES #表示該服務支援tcp_wrappers
pam_service_name=vsftpd #PAM認證所用檔案
ssl_enable=YES #應用SSL加密資料傳輸
ssl_tlsv1=YES #使用SSL的類型
rsa_cert_file=/etc/vsftpd/ssl/vsftpd.pem #授權FTP服務證書的存放路徑
rsa_private_key_file=/etc/vsftpd/ssl/vsftpd.key #FTP伺服器的私鑰存放路徑
force_anon_login_ssl=YES #匿名使用者登入時使用SSL
force_anon_date_ssl=YES #匿名使用者進行資料傳送時進行SSl加密
若開啟selinux的功能,需要打開allow_ftpd_anon_write功能,同時為共享目錄打上public_content_rw_t的标簽,其指令為:`getbool -a | grep ftp` ; `setsebool -P allow_ftpd_anon_write on` ; `chcon -t public_content_rw_t incoming/`。
FTP使用虛拟使用者
1.建立虛拟FTP使用者的帳号資料庫檔案(單行使使用者賬号,雙行是上一行的密碼)
vim /etc/vsftpd/vusers.txt
wendy
123456
sandy
456
cd /etc/vsftpd/
db_load -T -t hash -f vusers.txt vusers.db
file vusers.db
vusers.db: Berkeley DB (Hash, version 8, native byte-order)
chown 600 /etc/vsftpd/vusers.*
2.建立FTP根目錄及虛拟使用者映射的系統使用者
useradd -d /var/ftproot -s /sbin/nologin vsftp
3.建立支援虛拟使用者的PAM認證檔案
vim /etc/pam.d/ftp
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
4.在vsftpd.conf檔案中添加支援配置
vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=vsftp
pam_service_name=ftp
5.為個别虛拟使用者建立獨立的配置檔案
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_dir
mkdir /etc/vsftpd/users
cd /etc/vsftpd/users
vim wendy
anon_upload_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
cp wendy sandy
vim sandy
anon_upload_enable=NO
anon_other_write_enable=NO
anon_mkdir_write_enable=NO
6.重新加載vsftpd配置
service vsftpd restart
7.使用虛拟FTP賬戶通路測試wendy使用者可以登入,并可以浏覽、下載下傳檔案,可以上傳jsandy使用者可以登入,并可以浏覽,但不可以下載下傳檔案,也不可以上傳
NFS
/etc/exports檔案列舉出通過NFS導出的檔案系統,以及可以通路每個檔案系統的客戶機。客戶機清單和檔案系統之間以空白分隔,每個客戶機之後緊跟着用括号括起來,以逗号分隔的一系列選項。
/etc/exports檔案的客戶機說明
1.)主機名 hostname 單個主機
2.)網絡組 @groupname NIS網絡組
3.)通配符 *和? 具有通配符的FQDN,“*”不比對點号"."
4.)IP網絡 ipaddr/mask CIDR風格,長格式可作為比對
/etc/exports的常用導出選項
rw,ro 以讀寫的方式導出(預設方式)以隻讀的方式導出
sync 同步寫入,直接寫入硬碟
async 讓伺服器在實際寫磁盤之前就先回應寫請求
root_squash 将UID0和GID0映射成anonuid和anongid所指定的值
no_root_squash
all_squash 将所用的UID和GID映射到它們各自的匿名版本上
showmount -e hostname 列印出hostname主機的共享檔案系統
exports -a 導出所有的檔案系統
exports -r 重新輸出所有檔案系統
exports -v 列印出檔案系統的詳細資訊
exports -u 指定解除安裝的檔案系統
NFS共享時的注意事項
1.)包含伺服器的配置檔案不要導出
2.)導出整個檔案系統,最好不是目錄
3.)不要使用no_root_squash的方式導出檔案系統
4.)使用crossmnt和nohide時要慎用
Samba 伺服器
/etc/samba/smb.conf
[globe] 全局設定
workgroup 工作組的名稱,注意主機群要相同
server string 主機的簡易說明
security 表示伺服器的安全級别有user,Server,domain,share4個設定值
passdb backend samba有單獨的檔案存放賬号的密碼
load printers 共享列印機
cups options 列印機選項
[homes] 使用者家目錄共享設定
comment 對這個目錄的說明
browseable 此共享隻能有屬主能看到
writeable 設定是否可以寫入
[printers] 列印機共享設定
comment 對列印機做簡單描述
path 共享列印機的路徑
browseable 此共享列印機隻能有屬主能看到
guest ok 設定是否讓所有可以登入的使用者看到此列印機
valid users 設定哪些使用者可通路此資源
printable 是否為列印資源
[分享名稱] 自定義名稱共享目錄設定
comment 對此目錄的說明
path 共享目錄的路徑
public 設定是否讓所有可以登入的使用者看到此目錄
writeable 設定是否可以寫入
write list 定義一定範圍的使用者具有寫權限
printable 是否是列印資源
定義samba的密碼
useradd redhat
smbpasswd -a redhat
檢視,上傳,下載下傳共享資源
smbclient -L 192.168.0.29
smbclient //192.168.0.29/shared -U redhat
挂載samba共享資源
mount -t cifs service mountpoint -o option1,option2
若開啟了Selinux服務需要給共享目錄打上smaba_share_t的标簽:`chcon -t smaba_share_t /shared -R`,這樣就可以正常使用smaba伺服器提供的共享服務。