今天我们来实现一个linux的基础项目,多做项目可以加深我们对每个服务的掌握程度,能更加的熟悉各个服务的使用,以及每个服务之间如何相互应用,我们可以有一个清晰的认知,那么接下来我们就开始项目的实操。
一、 项目背景介绍
某游戏创业公司刚成立,初期计划招收的人员较少。为满足公司业务发展和运营需求,决定基于Linux服务器和免配置交换机部署一个小型局域网。使用Linux服务器提供各种基础网络服务,以实现企业内部的数据通信和资源共享
二、 网络拓扑
三、 项目需求介绍
1. DNS服务器
配置DNS服务器的A记录
- ftp.test.com指向FTP服务器192.168.180.120
- samba.test.com指向Samba服务器192.168.180.130
2. FTP服务器
- 安装FTP服务器时,创建虚拟账号vsftpd
- 将目录设置为/var/ftp/pub,并对目录设置vsftpd属主属组
准备文件共享磁盘
- 挂载一块新磁盘/dev/sdb,使用LVM方式对磁盘进行管理
- 分别创建PV、卷组和逻辑卷,将磁盘分区格式化后挂载到/data目录下
- 创建虚拟用户oppic,将/data目录作为文件存储目录
3. Samba服务器
准备单独的文件共享磁盘
- 挂载一块新磁盘/dev/sdb,分区并格式化(xfs)
- 开机自动挂载到/data目录
为Samba服务创建用户和组
- john用户属于manager经理组,对/data/manager目录拥有读写权限
- mike用户属于market市场组,对/data/market目录拥有读写权限
- admin用户属于管理员组,对上述两个目录均拥有读写权限
在每一个服务的搭建之前,我们可以习惯性的把防火墙都关闭,并且把每台主机名称修改一下,方便后续的操作。
每做完一个实验都可以写一份属于自己的实验操作文档,当下一次想要拿出来温习的时候,就可以照着自己的实验文档照着写,不仅方便,还可以巩固。并且忘了哪一步操作的时候也可以随时翻出来查看,每一篇操作文档都很重要,可以好好保存起来。
四、 实操过程
1. 全部关闭防火墙
systemctl stop firewalld
setenforce 0
2. 修改主机名称
//192.168.180.110
hostnamectl set-hostname DNS-server && bash
//192.168.180.120
hostnamectl set-hostname FTP-server && bash
//192.168.180.130
hostnamectl set-hostname samba-server && bash
3. 在这个实验当中,可以全部使用本地yum源,会方便些,本地yum的具体操作可以查看我之前的博客本地yum源搭建https://blog.csdn.net/m0_68472908/article/details/143856929?spm=1001.2014.3001.5501
DNS-server:192.168.180.110
1. 安装DNS
yum install -y bind bind-utils
2. 配置主配置文件
vim /etc/named.conf
zone "test.com" IN {
type master;
file "test.com.zone";
};
全部修改为“any“
在文件后面添加内容
3. 配置正向区域文件
cd /var/named/
cp -p named.empty test.com.zone
vim test.com.zone
NS ns1.test.com.
ns1 IN A 192.168.180.110
ftp IN A 192.168.180.120
samba IN A 192.168.180.130
注意!!不要忘记了ns1.test.com. 最后这个点“.“
4. 开启服务
systemctl start named
5. 配置resolv文件,将DNS指向自己
vim /etc/resolv.conf
6. 测试DNS解析,能够解析成功
FTP-server:192.168.180.130
1. 安装软件 //因为我拿本机当作客户端验证,所以也安装了客户端工具ftp
yum install -y vsftpd ftp
2. 创建虚拟用户文件
cd /etc/vsftpd/
vim vusers.list
这里的vsftpd和oppic是项目要求
abc-123是密码,可以自己定义
3. 将用户文件转换为数据库文件
db_load -T -t hash -f vusers.list vusers.db
4. 修改文件权限
chmod 600 vusers.*
5. 创建映射用户
useradd -d /var/ftp/pub -s /sbin/nologin test1
6. 创建共享文件目录
mkdir /data
7. 设置共享目录权限
chmod 755 /var/ftp/pub/
chmod 755 /data/
8. 设置PAM认证文件
vim /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
9. 配置主配置文件
vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=test1
anon_umask=022
user_config_dir=/etc/vsftpd/vusers_dir
allow_writeable_chroot=YES
修改为NO,并添加内容
在文件的最后面要记得把pam认证要修改,修改为我们创建的那么pam认证文件的名字
10. 创建虚拟用户权限存放目录
mkdir /etc/vsftpd/vusers_dir
cd /etc/vsftpd/vusers_dir/
touch vsftpd oppic
vim oppic
local_root=/data
anon_upload_enable=YES
anon_mkdir_write_enable=YES
vim vsftpd
local_root=/var/ftp/pub
anon_upload_enable=YES
anon_mkdir_write_enable=YES
local_root=/data:宿主目录存放处
anon_upload_enable=YES:允许匿名用户上传文件
anon_mkdir_write_enable=YES:允许创建目录,并具有写入权限
11. 开启服务
systemctl start vsftpd
12. 设置LVM卷(提前添加好新的磁盘)
//分区
fdisk /dev/sdb
//创建物理卷
pvcreate /dev/sdb1
//创建卷组
vgcreate vg_data /dev/sdb1
//创建逻辑卷
lvcreate -l 100%FREE -n lv_data vg_data
//格式化为XFS格式
mkfs.xfs /dev/vg_data/lv_data
//挂载
mount /dev/vg_data/lv_data /data
//自动挂载
vim /etc/fstab
/dev/vg_data/lv_data /data xfs defaults 0 0
13. 添加DNS记录,方便域名访问
vim /etc/resolv.conf
14. 访问测试,两个访问都能成功
分别创建测试文件
进行访问-先用oppic进行测试,使用域名进行访问
用vsftpd访问
samba-server:192.168.180.130
1. 安装软件
yum install -y samba
2. 挂载新磁盘,并格式化,自动挂载
fdisk /dev/sdb
mkfs.xfs /dev/sdb1
mkdir /data
mount /dev/sdb1 /data
vim /etc/fstab
/dev/sdb1 /data xfs defaults 0 0
3. 创建用户,并添加至对应的组,并且将系统用户转换为samba用户
//创建系统用户
useradd john
passwd john
useradd mike
passwd mike
useradd admin
passwd admin
//创建组
groupadd manager
groupadd market
//创建目录
mkdir /data/manager
mkdir /data/market
//将用户加入至对应的组
gpasswd -a john manager
gpasswd -a mike market
usermod -a -G manager,market admin
//授予权限
chown -R :manager /data/manager
chmod -R 770 /data/manager/
chown -R :market /data/market/
chmod -R 770 /data/market/
//将系统用户转换为samba用户
pdbedit -a -u john
pdbedit -a -u mike
pdbedit -a -u admin
4. 配置主配置文件
vim /etc/samba/smb.conf
[manager]
comment = Manager Share
path = /data/manager
valid users = @manager,@admin
writable = yes
create mask = 0770
directory mask = 0770
force create mode = 0770
force directory mode = 0770
[market]
comment = Market Share
path = /data/market
valid users = @market,@admin
writable = yes
create mask = 0770
directory mask = 0770
force create mode = 0770
force directory mode = 0770
5. 创建测试文件,在/data/manager目录创建测试文件sa.txt,并写入“samba test.”内容
cd /data/manager/
vim sa.txt
6. 将/var/log/secure文件复制到/data/market目录下
cp /var/log/secure /data/market/
7. 配置resolv文件
vim /etc/resolv.conf
8. 开启服务
systemctl start smb
9. 在客户端上使用john和admin用户访问”\\samba.test.com”,查看测试文件sa.txt(我这里使用的是真机)
使用john访问
可以查看到该文件
不能访问market文件
可以使用net use * /del,用户删除cmd的缓存
使用admin用户访问
两个文件都可查看
10. 在客户端上使用mike用户mount挂载到本地的目录,“mount -t cifs //samba.abc.com/market /opt/market -o username=mike,password=123456”,查看测试文件secure
因为windows的客户端不能使用这条命令,所以使用另外一种方法也可以访问进去
右击此电脑,点击映射网络驱动器
输入:\\samba.test.com\market
输入mike用户登录
登陆成功!!!
问题!!!
如果当我们访问的时候可能会出现这个错误,这个问题是因为我们之前用过john和admin用户登陆过,他有记录缓存,其实很简单,只需要把缓存清一下就可以了
到这里实验就完美结束了!!!
如果对你有帮助就请点个赞吧⭐⭐⭐