# Server02

# Network

Device Hostname System FQDN IP Adress Service
Server02 Server02 Linux server Server02.sdskills.com 172.16.100.202 Fto(vsftpd)、Samba
Mail(postfix、dovecot)

修改 /etc/network/interfaces 文件,增加如下语句

auto ens35
iface ens35 inet static
address 172.16.100.202/25
gateway 172.16.100.254
1
2
3
4

环境不同,网卡号不同,根据环境修改,使用命令 ip link 可以查看

修改 /etc/hosts 文件,将 127.0.0.1 debain修改为如下语句

127.0.0.1 Server02
172.16.100.202 Server02.sdskills.com  Server02
1
2

修改 /etc/hostname 文件,将内容改为对应主机名

Server02
1

新建 /etc/resolv.conf 文件,添加如下内容

nameserver 172.16.100.201
1

# Ftp(vsftpd)

使用 ftp 服务上传网页代码

  • 使用 vsftpd 服务
  • ftp 上传文件的根目录即为 web 服务器的网站根目录
  • ftp 登录的用户为 ftpuser
  • 通过 ftp 上传的文件用户为 webuser,文件权限为 644,目录权限为 755

安装 vsftpd

apt install -y vsftpd db5.3-util ftp
1

创建用户

useradd -m webuser
1

创建 ftpuser 虚拟用户,编辑 /etc/vuser

ftpuser
Skill21!
1
2

用户文件加密

db5.3_load -T -t hash -f /etc/vuser /etc/vuser.db
1

修改 /etc/vsftpd.conf 文件,取消第31行注释,增加如下内容

guest_enable=YES
guest_username=webuser
write_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/data/share/htdocs/skills
1
2
3
4
5
6
7
8

/etc/vsftpd.conf 文件的第 145 行修改为如下语句

pam_service_name=vsftpd.vu
1

重启 vsftpd

systemctl restart vsftpd
1

# Samba

安装与配置 Samba 共享服务

创建共享目录为 /share/public 的共享目录

  • 共享名为 public
  • 仅支持匿名用户的只读访问(请在该目录存放一个文件名为file.txt),文件内容为“Test File”以便于测试)

创建目录为 /share/files 的共享目录

  • 共享名为 files
  • 创建 zhangsan,wangwu 两个用户,密码均为 Skills39,并且都能从 client 客户端登录访问到该共享目录并上传文件
  • zhangsan 用户可以查看和删除所有人的文件按
  • wangwu 用户智能查看和删除自己的文件,不能查看和删除别人的文件

安装 Samba 服务

apt install -y samba
1

创建用户

useradd zhangsan
useradd wangwu
1
2

设置 samba 用户的密码

smbpasswd -a zahngsan
smbpasswd -a wangwu
1
2

创建共享目录

mkdir -p /share/public
mkdir -p /share/files
1
2

创建测试文件

echo "Test File" > /share/public/file.txt
1

设置文件夹权限

chmod o+t /share/public
1

设置文件夹的所有者

chown zhangsan /share/files
1

创建 admin 用户组

groupadd admin
1

设置文件夹的所有组

chown :admin /share/files/
1

将用户 wangwu 加入 admin 组

gpasswd -a wangwu admin
1

设置文件夹权限

chmod g+s /share/files/
1

编辑 /etc/samba/smb.conf 文件,在文件末尾添加如下内容

[public]
comment = public
path = /share/public
browseable = yes
read only = yes
guest ok = no

[files]
comment = files
path = /share/files
valid users = zhangsan,wangwu
writable = yes
create mask=0640
1
2
3
4
5
6
7
8
9
10
11
12
13

重启 samba 服务

systemctl restart smbd
1

# Mail

Postfix

  • sdskills.com 的邮件发送服务器
  • 支持 smtps(465) 协议连接,使用 Rserver 颁发的证书,证书路径为 /CA/cacert.pem
  • 创建邮箱账户 “user1 ~ user99”(共99个用户),密码为 Skill21!

Devecot

  • sdskills.com 的右键接受服务器
  • 支持 imaps(993) 协议连接,使用 Rserver 颁发的证书,证书路径为 /CA/cacert.pem
  • 请保留至少两个用户以成功登录并能正常收发邮件,以方便测试

编辑 /etc/ssl/openssl.cnf 文件

dir = /CA
state0rProvinceName = optional
organizationName = optional
1
2
3

创建 /CA 并切换至 /CA

mkdir /CA
cd /CA
1
2

创建私钥

openssl genrsa -out mail.key 4096
1

生成证书申请

openssl req -new -key mail.key -out mail.csr
1

通过 SCP 将证书申请发送至 Rserver

scp /CA/mail.csr 172.16.100.254:/CA
1

如下操作在 Rserver 上进行

cd /CA
openssl x509 -req -in mail.csr -CA /CA/cacert.pem -CAkey /CA/private/cakey.pem  -CAcreateserial -out mail.crt
scp mail.crt 172.16.100.202:/CA
scp cacert.pem 172.16.100.202:/CA
1
2
3
4

安装 postfix 服务

apt install -y postfix
1

编辑 /etc/postfix/main.cf 文件

smtpd_tls_cert_file=/CA/mail.crt
smtpd_tls_key_file=/CA/mail.key
home_mailbox = Maildir/
myorigin = sdskills.com
mydestination = $myhostname, sdskills.com, Server02, localhost.localdomain, localhost mail.sdskills.com
mynetworks = 0.0.0.0/0
1
2
3
4
5
6

编辑 /etc/postfix/master.cf 文件,取消第 29 行和第 31 行注释

smtps     inet  n       -       y       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
1
2

重启postfix服务

systemctl restart postfix
1

安装 dovecot

apt install -y dovecot-imapd
1

编辑 /etc/dovecot/dovecot.conf 文件,取消第 30 行、第 48 行注释,并修改为如下内容

listen = *
login_trusted_networks = 0.0.0.0/0
protocols = imaps
1
2
3

编辑 /etc/dovecot/conf.d/10-mail.conf 文件,将第 30 行修改为如下内容

mail_location = maildir:~/Maildir
1

编辑 /etc/dovecot/conf.d/10-ssl.conf 文件,将第 12 - 13 行修改为如下内容

ssl_cert = </CA/mail.pem
ssl_key = </CA/mail.k
1
2

新建一个 shell 脚本文件,写入如下内容批量创建用户

#!/bin/bash
for i in {1..99}
do
    useradd -m -s /bin/false "user$i"
    echo "user$i:Skill21!" |chpasswd
done
1
2
3
4
5
6