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服務器提供的共享服務。