Fedora 是一个Linux的发行版,Fedora (第七版以前为Fedora Core)是一款基于 Linux ,从Red Hat Linux发展出来的免费操作系统,Fedora在2015年11月3日已更新到第23版Fedora 23。而红帽的Red Hat Enterprise Linux 7(简称RHEL7)对应的Fedora版本,则是从Fedora 19开始。目前RHEL系列已更新到RHEL7.2。

    Fedora 是一款由全球社区爱好者构建的面向日常应用的快速、稳定、强大的操作系统。它允许任何人自由地使用、修改和重发布,无论现在还是将来。它由一个强大的社群开发,这个社群的成员以自己的不懈努力,提供并维护自由、开放源码的软件和开放的标准。Fedora 项目由 Fedora 基金会管理和控制,得到了 Red Hat 的支持。Fedora 由Fedora Project社区开发、红帽公司赞助,目标是创建一套新颖、多功能并且自由和开源的操作系统。

     Fedora的功能对于用户而言,它是一套功能完备、更新快速的免费操作系统,而对赞助者Red Hat公司而言,它是许多新技术的测试平台,被认为可用的技术最终会加入到Red Hat Enterprise Linux中。

    Fedora和Red Hat Enterprise Linux、CentOS相似,这意味着假如你懂得操作Red Hat,或者是CentOS,那么你操作Fedora起来完全没有压力。

    随着企业级RHEL7的发布,并带来了许多新特性,如全新的安装界面、systemd命令、firewall防火墙等,在Fedora 23中都有体现。本文主要介绍Fedora 23的网络配置,防火墙配置、Selinux、以及主要的NDS服务器配置。

wKiom1ad3l6wQSf7AACi-FOpIbk269.jpg

Fedora官网:https://start.fedoraproject.org/


Step1:Hostname配置


1、设置主机名,使用hostnamectl命令

[root@fedora ~]# hostnamectl set-hostname fedora.example.com

2、设置完成,可以使用hostnamectl status查看当前主机名信息

[root@fedora ~]# hostnamectl status

wKioL1ad55rg8GVmAABgKyPfSpw672.jpg

3、也可以通过修改配置文件,更新主机名,使用vim工具编辑/etc/sysconfig/network文件

wKioL1ad6Z6jwle6AAArykS6tuY225.jpg


Step2:Fedora 23/RHEL7配置ip地址


1、使用nmcli命令配置静态IP地址、dns

    Fedora 23

[root@fedora ~]# nmcli connection modify "eno16777736" ipv4.addresses "192.168.1.33/24"
[root@fedora ~]# nmcli connection modify "eno16777736" ipv4.gateway "192.168.1.2"
[root@fedora ~]# nmcli connection modify "eno16777736" ipv4.dns "202.96.128.86,202.96.134.33"
[root@fedora ~]# nmcli connection modify "eno16777736" ipv4.method m  ;手动方法

    RHEL7

#nmcli connection modify "网卡设备名" ipv4.addresses "192.168.1.33/24 192.168.1.2"
#nmcli connection modify "网卡设备名" ipv4.dns "202.96.128.86 202.96.134.33"
#nmcli connection modify "网卡设备名" ipv4.method m


2、激活网卡及查看网卡状态

[root@fedora ~]# nmcli connection up "eno16777736"
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/4)

wKiom1ad77OBH_ZnAACkuMtbnus562.jpg

wKioL1ad8B_wUQu2AAB5EHx6j3A562.jpg


3、显示当前活动的网卡

[root@fedora ~]# nmcli connection show --active

wKioL1ad8UDylQgnAABYtKtne_Y795.jpg


4、如果需要停止指定网卡,使用命令nmcli connection down <设备名称>

[root@fedora ~]# nmcli connection down eno16777736 
Connection 'eno16777736' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)


Step3:Fedora中安装DNS服务器

1、试验环境

DNS Server fedora.example.com (Fedora 23)
Server IP Address192.168.1.33
Client vm.example.com (CentOS 6.7)
Client IP Address192.168.1.218

2、Fedora服务端安装DNS服务器

   Fedora 23的自动安装工具yum更新为yum2版本,可以通过dnf install <软件包名>,安装软件。用法和yum相同。

查询软件包:# dnf search <软件包名>
列出软件包:# dnf list |grep <软件包名>

   安装DNS服务器仅需要安装bind、bind-utils这两个包。查询这两个软件并安装它。

[root@fedora ~]# dnf -y install bind bind-utils

wKioL1ad-6ywu96GAAD4yIRl29M997.jpg


Step4:Frdora服务端中配置DNS服务


1、安装了DNS软件包之后,接下来就可以配置/etc/named.conf文件,修改监听IP为所有,当然也可以指定IP地址。开启allow-query(允许查询)和allow-query-cache(允许所有用户查询服务器缓存)

[root@fedora ~]# vim /etc/named.conf

wKioL1ad_5OSMC8IAADdSTC8Ji8588.jpg


2、添加正向区域example.com文件声明和反向区域1.168.192.in-addr.arpa文件声明,以告诉DNS服务器去哪里读取正向和反向区域文件配置。下面会创建正向区域文件/var/named/example.com.host和反向区域文件/var/named/192.168.1.rev。

wKiom1aeH2uQoLBLAABaGCMORWE290.jpg


3、检查配置文件/etc/named.conf 有没有错误,如果没有输出,则说明配置应该没有问题

[root@fedora named]# named-checkconf /etc/named.conf


Step5:在Frdora 23/RHEL7服务器中配置防火墙规则

4、配置完/etc/named.conf文件,还需要添加防火墙规则,打开DNS默认监听的UDP端口号53的防火墙允许规则,使用firewall-cmd 命令操作。

[root@fedora ~]# firewall-cmd --permanent --list-all     ;列出防火墙规则列表
FedoraWorkstation (default)
  interfaces: 
  sources: 
  services: dhcpv6-client http mdns samba-client ssh
  ports: 1025-65535/tcp 1025-65535/udp
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules:
[root@fedora ~]# firewall-cmd --add-port=53/udp (使防火墙规则临时生效,若要永久生效则需要配合permanent使用)
[root@fedora ~]# firewall-cmd  --add-port=53/udp --permanent (--permanent为永久保存)
[root@fedora ~]# firewall-cmd --reload  (或者使用该条命令重新加载规则)

wKiom1aeAe3QMfqgAABn-uKsft8153.jpg


Step5:在Frdora服务器中配置Selinux上下文规则

5、如果启用了Selinux,那么必须设置/etc/named.conf和/etc/named.rfc1912.zones文件的上下文为named_conf_t,这里的上下文是相对于DNS配置文件。如果是Apache服务器,那么应该把/var/www/网站目录的上下文设置为httpd_sys_content_t。

[root@fedora ~]# semanage fcontext -a -t named_conf_t /etc/named.conf
[root@fedora ~]# semanage fcontext -a -t named_conf_t /etc/named.rfc1912.zones
[root@fedora ~]# restorecon -RFvv /etc/named.conf (在rhel7中可能还需要这条命令使配置生效)

通过以下命令查看上下文设置:

[root@fedora ~]# ls -lZ /etc/named.conf 
-rw-r-----. 1 root named system_u:object_r:named_conf_t:s0 1729 1月  19 17:19 /etc/named.conf
[root@fedora ~]# ls -lZ /etc/named.rfc1912.zones 
-rw-r-----. 1 root named system_u:object_r:named_conf_t:s0 931 6月  21 2007 /etc/named.rfc1912.zones


Step6:创建正向区域文件和反向区域文件


1、首先创建一个正向区域文件,用于DNS服务器的正向解析

[root@fedora ~]# cd /var/named/
[root@fedora named]# cp named.localhost example.com.host

[root@fedora named]# vim example.com.host 
$TTL 1D
@       IN      SOA     @ root.example.com. (
                                        2016011918              ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      fedora.example.com.     ;DNS服务器域名NS记录    
fedora  IN      A       192.168.1.33            ;DNS服务器IP地址A记录
rhel    IN      CNAME   fedora.example.com.     ;创建一个别名记录
mail    IN      MX  5   mail.example.com.       ;创建一个邮件主机的mail记录
mail    IN      A       192.168.1.21            ;创建一个邮件主机的A记录
www     IN      A       192.168.1.21            ;创建一个A记录指向www这个域名
~

2、使用named-checkzone 命令检查配置example.com.host有无错误

wKioL1aeJ0qD2boFAAAhKMcnM_k888.jpg


3、创建一个反向区域文件,用于DNS服务器的反向解析

[root@fedora named]# vim 192.168.1.rev 
$TTL 1D
@       IN      SOA     @ root.example.com. (
                                        2016011919              ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      fedora.example.com.
33      IN      PTR     fedora.example.com.
21      IN      PTR     www.example.com.

wKioL1aeKNSCxm3-AAA2vRHuUFc164.jpg


4、检查192.168.1.rev文件配置有无错误

[root@fedora named]# named-checkzone "1.168.192.in-addr.arpa" /var/named/192.168.1.rev 
zone 1.168.192.in-addr.arpa/IN: loaded serial 2016011919
OK

5、此外,还需要检查这两个区域文件的所属组是否为named,否则它将影响你的解析,用以下命令更改

[root@fedora named]# chgrp named example.com.host
[root@fedora named]# chgrp named 192.168.1.rev


Step7:Fedora服务端启动DNS服务


1、设置DNS服务开机启动

[root@fedora ~]# systemctl enable named.service

2、启动/重启DNS服务

[root@fedora ~]# systemctl restart named

3、查看DNS服务状态

[root@fedora ~]# systemctl status named

wKiom1aeK-_ShvB4AAC7Jkwcz5I541.jpg


Step8:在CentOS6.7客户端进行测试Fedora服务端DNS服务解析


1、安装bind-utils软件

[root@vm ~]# yum -y install bind-utils

2、修改Centos6.7的DNS为服务端IP192.168.1.33

编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件,在末尾增加

DNS1=192.168.1.33

wKioL1ae2l-TG7YuAAA0XpUZFeY060.jpg

此外,还需修改/etc/resolv.conf文件

[root@vm ~]# vim /etc/resolv.conf

nameserver 192.168.1.33

wKiom1aeN22DGRLzAAAHne2czZM142.jpg

配置完成后重启网络


3、使用host命令解析example.com

[root@vm ~]# host fedora.example.com
fedora.example.com has address 192.168.1.33

[root@vm ~]# host www.example.com
www.example.com has address 192.168.1.21

[root@vm ~]# host mail.example.com
mail.example.com has address 192.168.1.21
mail.example.com mail is handled by 5 mail.example.com.

4、使用nslookup命令解析example.com

[root@vm ~]# nslookup 
> set type=SOA          
> example.com
Server:192.168.1.33
Address:192.168.1.33#53
example.com
origin = example.com
mail addr = root.example.com
serial = 2016011918
refresh = 86400
retry = 3600
expire = 604800
minimum = 10800

> set type=NS 
> example.com
Server:		192.168.1.33
Address:	192.168.1.33#53

example.com	nameserver = fedora.example.com.

> set type=A
> fedora.example.com
Server:192.168.1.33
Address:192.168.1.33#53
Name:fedora.example.com
Address: 192.168.1.33

> set type=A
> www.example.com
Server:		192.168.1.33
Address:	192.168.1.33#53

Name:	www.example.com
Address: 192.168.1.21


> set type=PTR
> 192.168.1.21
Server:		192.168.1.33
Address:	192.168.1.33#53

21.1.168.192.in-addr.arpa	name = www.example.com.
> set type=PTR
> 192.168.1.33
Server:		192.168.1.33
Address:	192.168.1.33#53

33.1.168.192.in-addr.arpa	name = fedora.example.com.


> set type=CNAME
> rhel.example.com
Server:		192.168.1.33
Address:	192.168.1.33#53

rhel.example.com	canonical name = fedora.example.com.


5、使用dig命令解析example.com

[root@vm ~]# dig example.com +nssearch     ;查找example.com域的授权DNS服务器
SOA example.com. root.example.com. 2016011918 86400 3600 604800 10800 from server 192.168.1.33 in 0 ms.

[root@vm ~]# dig @192.168.1.33 fedora.example.com

wKiom1aeSVnxHmQBAAB_-GL1UQM315.jpg


[root@vm ~]# dig @192.168.1.33 www.example.com

wKioL1aeSa6il0jDAACGYwgTvUE921.jpg


[root@vm ~]# dig @192.168.1.33 rhel.example.com

wKioL1aeScXyyWSEAACDycSuDzE936.jpg


[root@vm ~]# dig @192.168.1.33 mail.example.com

wKioL1aeO1_Dj3COAACG-5Cd4tk265.jpg


[root@vm ~]# dig @192.168.1.33 -x 192.168.1.21

wKiom1aeO5XQifexAACRLAL65JY266.jpg


Setp9:在Fedora服务端配置DNS缓存服务器

配置DNS服务器缓存,需要安装包bind-chroot,并将bind运行的根目录更改为/var/named/chroot/,使bind在chroot模式下运行

1、在Fedora安装bind-chroot软件包

[root@fedora ~]# yum -y install bind-chroot

2、创建一个软链接使/etc/named.conf链接到/var/named/chroot/etc/named.conf

[root@fedora ~]# ln -s /etc/named.conf /var/named/chroot/etc/named.conf

3、重启DNS服务

[root@fedora ~]# systemctl restart named


Setp10:在客户端CentOS6.7测试DNS服务器的缓存


1、使用dig sohu.com命令测试解析,注意观察查询的时间变化

dig解析第一次:

wKiom1aePdSSqeZwAADuq7lzRAE658.jpg

dig解析第二次:

wKiom1aePfeiM7QpAADrTmx1QI0214.jpg

由于服务端Fedora的DNS服务器配置打开了allow-query-cache缓存,客户端在通过DNS服务器请求解析时,服务端会把解析的结果缓存到服务器,所以客户端在第二次以后的解析请求,直接由本地DNS服务器(这里指实验中的Fedora服务器)返回解析结果。