网络服务
第五章 网络服务
1.DHCP服务
1.1DHCP定义
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作。它是一种流行的Client/Server协议,一般用于为主机或者为路由器等指定相关的配置信息。DHCP服务在企业和家庭中得到了大量的应用,它能够自动分配ip地址以及一些其他的相关信息,整个过程对客户透明。
1.2实验规划
该实验需要两台虚拟机,一台作为DHCP服务器另一台做为主机用来验证dhcp服务是否可用.
首先新增一个网卡将他的DHCP服务关掉,将主机的网卡设置为VMnet2
1.3实验过程
服务端
1.安装DHCP服务
yum -y install dhcp*
2.修改dhcp配置文件
[root@gzh-cs8 ~]# cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf [root@gzh-cs8 ~]# vim /etc/dhcp/dhcpd.conf
在下面添加下面的内容
subnet 192.168.145.0 netmask 255.255.255.0 { range 192.168.145.100 192.168.145.200; }
3.修改VMnet2的网卡配置给一个静态ip
[root@gzh-cs8 ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens160 /etc/sysconfig/network-scripts/ifcfg-ens224 [root@gzh-cs8 ~]# nmcli con show NAME UUID TYPE DEVICE 有线连接 1 3ffd2935-0618-301b-a04e-4738c579c9c5 ethernet ens224 ens160 af04ba70-cb39-4017-afed-3f23f616c00c ethernet ens160 [root@gzh-cs8 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens224 [root@gzh-cs8 ~]# nmcli c reload
4.重启网卡并启动dhcp服务
nmcli c reload systemctl start dhcpd
主机
1.修改网卡配置文件将
BOOTPROTO
改成dhcp2.重启网卡
systemctl restart network
1.4实验结果
[root@gzh-cs8 ~]# ping 192.168.145.100
PING 192.168.145.100 (192.168.145.100) 56(84) bytes of data.
64 bytes from 192.168.145.100: icmp_seq=1 ttl=64 time=0.356 ms
64 bytes from 192.168.145.100: icmp_seq=2 ttl=64 time=0.387 ms
64 bytes from 192.168.145.100: icmp_seq=3 ttl=64 time=0.600 ms
^C
--- 192.168.145.100 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2049ms
rtt min/avg/max/mdev = 0.356/0.447/0.600/0.111 ms
2.DNS服务
2.1配置静态ip地址
vim /etc/sysconfig/network-scripts/ifcfg-ens160
2.2 安装服务软件包
[root@gzh-cs8 ~]# yum install -y bind bind-chroot bind-utils
上次元数据过期检查:9:33:52 前,执行于 2023年10月16日 星期一 22时33分11秒。
软件包 bind-32:9.11.26-6.el8.x86_64 已安装。
软件包 bind-chroot-32:9.11.26-6.el8.x86_64 已安装。
依赖关系解决。
==========================================================================================================
软件包 架构 版本 仓库 大小
==========================================================================================================
安装:
bind-utils x86_64 32:9.11.26-6.el8 AppStream 451 k
安装依赖关系:
python3-bind noarch 32:9.11.26-6.el8 AppStream 150 k
python3-ply noarch 3.9-9.el8 base 111 k
事务概要
==========================================================================================================
安装 3 软件包
总下载:712 k
安装大小:1.9 M
下载软件包:
(1/3): python3-ply-3.9-9.el8.noarch.rpm 21 kB/s | 111 kB 00:05
(2/3): python3-bind-9.11.26-6.el8.noarch.rpm 27 kB/s | 150 kB 00:05
(3/3): bind-utils-9.11.26-6.el8.x86_64.rpm 80 kB/s | 451 kB 00:05
----------------------------------------------------------------------------------------------------------
总计 126 kB/s | 712 kB 00:05
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : python3-ply-3.9-9.el8.noarch 1/3
安装 : python3-bind-32:9.11.26-6.el8.noarch 2/3
安装 : bind-utils-32:9.11.26-6.el8.x86_64 3/3
运行脚本: bind-utils-32:9.11.26-6.el8.x86_64 3/3
验证 : python3-ply-3.9-9.el8.noarch 1/3
验证 : bind-utils-32:9.11.26-6.el8.x86_64 2/3
验证 : python3-bind-32:9.11.26-6.el8.noarch 3/3
已安装:
bind-utils-32:9.11.26-6.el8.x86_64 python3-bind-32:9.11.26-6.el8.noarch python3-ply-3.9-9.el8.noarch
完毕!
2.3 配置DNS
2.3.1修改主配置文件
vim /etc/named.conf
named-checkconf # 检查是否有错误
2.3.2 修改区域配置文件
复制系统提供的zones文件为我们自己的,这里的文件名要和上图红框中所写的文件名保持一致, 注意复制时,使用参数-p保持文件权限属性一致。
cp -p /etc/named.rfc1912.zones /etc/named.gzh.zones
复制后查看复制的文件,查看文件所属组是否为named,这里如果为root的话启动服务器会失败。
[root@gzh-cs8 ~]# ll /etc/named.gzh.zones
-rw-r-----. 1 root named 1029 8月 24 2021 /etc/named.gzh.zones
修改区域配置文件 /etc/named.gzh.zones
vim /etc/named.gzh.zones
位置1处的“gzh.co”必须为我们向上一级域名机构所申请的域名,此处内容不能随便乱写。
位置2处的为正向查找(即由域名查找主机IP地址)区域所在的文件名,文件名可以任意制定,但 是必须和下面步骤所配置的正向查找区域文件名一致。
位置3处的“88.168.192”为反向查找区域(即由IP地址查找域名)网络地址的反向书写,例子中的 就是网络地址192.168.88.0/24网络,该区域指定的IP地址只能是这个网段的。
位置4处为反响查找区域所在的文件名,文件名可以任意制定,但是必须和下面步骤所配置的反向 查找区域文件名一致。
2.3.3 修改正向解析文件
配置正向查找区域,配置文件/var/named/named.gzh.co
如果文件不存在,可以复制现有的实例文件,注意加参数-p
[root@gzh-cs8 ~]# cp -p /var/named/named.localhost /var/named/named.gzh.co
[root@gzh-cs8 ~]# ll /var/named/named.gzh.co
-rw-r-----. 1 root named 152 8月 24 2021 /var/named/named.gzh.co
配置此文件
2.3.4 修改反向解析文件
配置反向查找区域,配置文件/var/named/named.18.168.192
如果文件不存在,可以复制现有的实例文件,注意加参数-p
[root@gzh-cs8 ~]# cp -p /var/named/named.loopback /var/named/named.88.168.192
[root@gzh-cs8 ~]# ll /var/named/named.88.168.192
-rw-r-----. 1 root named 168 8月 24 2021 /var/named/named.88.168.192
配置该文件
修改/etc/sysconfig/named
文件
添加
OPTIONS="-4"
启动named
systemctl start named
注意:
如果你的named服务启动失败一定要检查一下配置文件是否出错
例如:
[root@gzh pub]# named-checkconf -z /etc/named.conf
zone gzh.co/IN: loaded serial 20231117
zone 88.168.192.in-addr.arpa/IN: loaded serial 20231117
zone 0.in-addr.arpa/IN: loaded serial 0
出现这种字段的是没有问题的,如果出现其他类型的说明你的配置文件就有点问题.
下面是几个配置文件的关系
首先named.conf中调用了named.gzh.zones文件,也就是include,然后named.gzh.zones里面写的内容对应的是后面的两个文件,如果你检查出错误了,一定要在这四个文件里面去找是否哪个地方写错了,最好是逐级去找.
2.5 客户端测试
2.5.1 安装工具包
yum install -y bind-utils
dns1与服务端配置的保持一致
2.5.3 测试
[root@localhost ~]# nslookup news.gzh.co
Server: 192.168.88.137
Address: 192.168.88.137#53
Name: news.gzh.co
Address: 192.168.88.40
[root@localhost ~]# dig -x www.gzh.co
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.14 <<>> -x www.gzh.co
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 45238
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;co.gzh.www.in-addr.arpa. IN PTR
;; Query time: 0 msec
;; SERVER: 192.168.88.137#53(192.168.88.137)
;; WHEN: 二 10月 17 21:43:33 CST 2023
;; MSG SIZE rcvd: 52
如果测试失败,把防火墙关掉.
3.电子邮件服务
1.设置hostname并更新 /etc/hosts
[root@gzh ~]# hostnamectl set-hostname gzh.com
[root@gzh ~]# vim /etc/hosts
[root@gzh ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.88.137 gzh.com
2.安装并启用 Postfix 服务
[root@gzh-cs8 ~]# yum -y install postfix
[root@gzh-cs8 ~]# systemctl start postfix
[root@gzh-cs8 ~]# systemctl enable postfix
Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service.
3.安装 mailx 邮件客户端
在配置 Postfix 服务器之前,我们需要安装 mailx
yum -y install mailx
4.配置 Postfix 邮件服务器
Postfix 的配置文件位于 /etc/postfix/main.cf
中。我们需要对配置文件进行一些修改.
vim /etc/postfix/main.cf
# 更新如下
myhostname = mail.gzh.com
mydomain = gzh.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 192.168.88.0/24, 127.0.0.0/8
home_mailbox = Maildir/
完成后,保存并退出配置文件。重新启动 postfix 服务以使更改生效
systemctl restart postfix
5.测试邮件服务
首先,创建一个测试用户
useradd gzh
passwd gzh
安装telnet
yum -y install telnet
测试服务
[gzh@gzh ~]$ telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 mail.gzh.com ESMTP Postfix
ehlo localhost # 向服务器表明身份
250-mail.gzh.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 SMTPUTF8
halo mail.gzh.com
502 5.5.2 Error: command not recognized
helo mail.gzh.com
250 mail.gzh.com
mail from:root # 设置寄件人
250 2.1.0 Ok
rcpt to:gzh # 设置收件人
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
hello world!
.
250 2.0.0 Ok: queued as 38D0A61F84DB
quit
221 2.0.0 Bye
Connection closed by foreign host.
4.FTP服务
4.1 安装vsftpd
+ftp
yum install -y vsftpd
yum install -y ftp # 测试使用,搭建FTP服务器只需要vsftpd
4.2 开启服务
systemctl start vsftpd
4.3 修改配置文件
配置文件默认为/etc/vsftpd/vsftpd.conf
:
vim /etc/vsftpd/vsftpd.conf
首先修改anonymous_enable=YES
,再添加一行anon_upload_enable=YES
:
第一行的意思是允许匿名登录,第二行的意思是允许匿名上传,接着重启服务:
systemctl restart vsftpd
4.4测试准备
安装部分就算完成了,下面是测试。
在测试之前先创建测试文件:
[root@gzh ~]# cd /var/ftp/pub
[root@gzh pub]# vim test
[root@gzh pub]# cat test
my name is gzh
在主机上测试ftp
如图所示:
在测试之前要关闭防火墙和关闭SELinux
[root@gzh pub]# systemctl stop firewalld
或者是开启21端口对应的服务
firewall-cmd --add-port=21/tcp --permanent
[root@gzh pub]# setenforce 0 # 临时关闭
用户登录测试
在地址栏输入ftp://gzh@192.168.88.137
,这里可以选择是否匿名登录
还有其他ftp的测试方式可以根据书本上所说的自行测试,这里只简单做个测试.
还有一点就是我这里用的是我上面做邮件服务时新增的用户登陆的,里面存放着maildir文件夹
这个路径下存放的就是我们在邮件服务中发送的内容了.
5.注意事项
在做DHCP服务的时候要确定好自己服务端的网卡配置,服务端是两张网卡,客户端是一个网卡.
在做DNS服务的时候,一定要仔细检查修改的文件有没有问题,哪怕一个字符错了都会导致你DNS服务失败.
- 感谢你赐予我前进的力量