1.需要兩臺centos? 7服務器,一臺部署DNS服務器,另一臺部署ftp和Samba服務器。
2. 部署DNS 服務器?
#!/bin/bash# 更新系統
echo "更新系統..."
sudo yum update -y# 安裝 BIND 和相關工具
echo "安裝 BIND 和相關工具..."
sudo yum install -y bind bind-utils# 配置 named.conf 文件
echo "配置 BIND 配置文件..."
cat > /etc/named.conf <<EOL
options {listen-on port 53 { any; }; # 監聽所有接口listen-on-v6 port 53 { none; }; # 不啟用 IPv6directory "/var/named"; # 區域文件路徑dump-file "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";allow-query { any; }; # 允許所有查詢
};zone "zhangabc.com" IN {type master;file "/var/named/zhangabc.com.zone"; # 區域文件路徑allow-update { none; }; # 禁止動態更新
};
EOL# 創建區域文件
echo "創建區域文件..."
cat > /var/named/zhangabc.com.zone <<EOL
\$TTL 86400
@ IN SOA ns1.zhangabc.com. admin.zhangabc.com. (2024032501 ; 序列號3600 ; 刷新時間1800 ; 重試時間604800 ; 過期時間86400 ; 最小TTL
)
@ IN NS ns1.zhangabc.com.
ns1 IN A 192.168.86.129
@ IN A 192.168.86.130
www IN A 192.168.86.130
EOL# 修改權限
echo "修改文件權限..."
sudo chown named:named /var/named/zhangabc.com.zone
sudo chmod 640 /var/named/zhangabc.com.zone# 檢查配置文件是否正確
echo "檢查配置文件..."
sudo named-checkconf
sudo named-checkzone zhangabc.com /var/named/zhangabc.com.zone# 啟動并啟用 BIND 服務
echo "啟動并啟用 BIND 服務..."
sudo systemctl enable named
sudo systemctl start named# 開放防火墻 53 端口
echo "配置防火墻..."
sudo firewall-cmd --add-port=53/tcp --permanent
sudo firewall-cmd --add-port=53/udp --permanent
sudo firewall-cmd --reload# 重啟防火墻和 BIND 服務
echo "重啟防火墻和 BIND 服務..."
sudo systemctl restart named
sudo systemctl restart firewalld# 驗證 DNS 配置
echo "驗證 DNS 配置..."
nslookup zhangabc.com 127.0.0.1
3.?在此基礎上添加以下
vim /var/named/zhangabc.com.zone
$TTL 86400
@ IN SOA ns.zhangabc.com. admin.zhangabc.com. (2025032501 ; Serial3600 ; Refresh1800 ; Retry604800 ; Expire86400 ; Minimum TTL
)
@ IN NS ns.laodi.com.
zhangabc.com. IN A 192.168.86.129
ns IN A 192.168.86.129
ftp IN A 192.168.86.145
samba IN A 192.168.86.145
[root@dns ~]# vim /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.86.129
nameserver 192.168.86.2
4.在?Windows 10?遠程測試:
在另一臺centos? 7部署ftp服務
yum install vsftpd -y
6.? 創建 vsftpd使用的系統用戶, 主目錄為/home/vsftpd,禁止ssh登錄, 創建之后所有虛擬用戶使用這個系統用戶訪問文件
useradd? vsftpd? -d? /vsftpd? -s? /bin/false
7.創建虛擬用戶主目錄,比如虛擬用戶叫zhang1
mkdir -p /vsftpd/zhang1/mkdir -p /vsftpd/zhang2/chown -R vsftpd.vsftpd /vsftpd/*
8.創建虛擬用戶
vim /etc/vsftpd/loginusers.confzhang1123456zhang2456789
9.創建數據庫文件
db_load -T -t hash -f /etc/vsftpd/loginusers.conf /etc/vsftpd/loginusers.dbchmod 600 /etc/vsftpd/loginusers.dbchmod 600 /etc/vsftpd/loginusers.conf
10.?啟用數據庫文件
vim /etc/pam.d/vsftpd # 注釋掉所有內容后,增加下面的內容auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusersaccount sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusers
?11.創建虛擬用戶配置文件
mkdir -p /etc/vsftpd/userconf
12.?這里的文件名稱必須與虛擬用戶名一致
# vim /etc/vsftpd/userconf/zhang1local_root=/vsftpd/zhang1write_enable=YESanon_umask=022anon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES# vim /etc/vsftpd/userconf/zhang2local_root=/vsftpd/zhang2write_enable=YESanon_umask=022anon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES
#網絡與端口listen=NOlisten_ipv6=YESpasv_min_port=40000pasv_max_port=40010listen_port=21#超時與并發idle_session_timeout=300data_connection_timeout=600max_clients=3000max_per_ip=3000#虛擬用戶guest_enable=YESguest_username=vsftpduseruser_config_dir=/etc/vsftpd/vconfvirtual_use_local_privs=YES#日志與傳輸xferlog_enable=YESxferlog_std_format=YESascii_upload_enable=YESascii_download_enable=YES#其他配置use_localtime=YESftpd_banner=Welcome to blah FTP service.pam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YESdirmessage_enable=YESconnect_from_port_20=YESasync_abor_enable=YES
13.重啟服務使配置生效
systemctl restart vsftpd
部署Samba服務
yum install samba -y
mkdir ? -p ? /samba
chmod -R 777 /samba
?useradd ?-M ?samba ? ? ? ? ? ? ? ?#創建系統用戶不創建屬主目錄 ? ??smbpasswd -a samba ? ? ? ? ? ? #為其設置samba密碼
4.
?vim ?/etc/samba/smb.conf
[samba]comment = IMMENGXIN ? ? ? ?##共享的描述性注釋path = /samba ? ? ? ? ? ? ? ? ? ? ? ? ?##共享目錄的實際路徑public = yes ? ? ? ? ? ? ? ? ? ? ? ? ? ##表明允許未授權的用戶訪問該共享browseable = yes ? ? ? ? ? ? ? ? ? ? ? ##表示這個共享在網絡中是可見的read only = no ? ? ? ? ? ? ? ? ? ? ? ? ##意味著客戶端對該共享目錄具備讀寫權限
systemctl start smb nmb
systemctl enable smb nmb
systemctl restart smb nmb
?驗證
?smbclient //192.168.86.145 /samba -U samba