Bootstrap

Linux基础项目包含(DNS,FTP,Samba)

今天我们来实现一个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源搭建icon-default.png?t=O83Ahttps://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用户登陆过,他有记录缓存,其实很简单,只需要把缓存清一下就可以了


到这里实验就完美结束了!!!

如果对你有帮助就请点个赞吧⭐⭐⭐

;