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