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服务器配置。
Fedora官网:https://start.fedoraproject.org/
Step1:Hostname配置
1、设置主机名,使用hostnamectl命令
[root@fedora ~]# hostnamectl set-hostname fedora.example.com
2、设置完成,可以使用hostnamectl status查看当前主机名信息
[root@fedora ~]# hostnamectl status
3、也可以通过修改配置文件,更新主机名,使用vim工具编辑/etc/sysconfig/network文件
Step2: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)
3、显示当前活动的网卡
[root@fedora ~]# nmcli connection show --active
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 Address | 192.168.1.33 |
Client | vm.example.com (CentOS 6.7) |
Client IP Address | 192.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
Step4:Frdora服务端中配置DNS服务
1、安装了DNS软件包之后,接下来就可以配置/etc/named.conf文件,修改监听IP为所有,当然也可以指定IP地址。开启allow-query(允许查询)和allow-query-cache(允许所有用户查询服务器缓存)
[root@fedora ~]# vim /etc/named.conf
2、添加正向区域example.com文件声明和反向区域1.168.192.in-addr.arpa文件声明,以告诉DNS服务器去哪里读取正向和反向区域文件配置。下面会创建正向区域文件/var/named/example.com.host和反向区域文件/var/named/192.168.1.rev。
3、检查配置文件/etc/named.conf 有没有错误,如果没有输出,则说明配置应该没有问题
[root@fedora named]# named-checkconf /etc/named.conf
Step5:在Frdora服务器中配置防火墙规则
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 (或者使用该条命令重新加载规则)
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有无错误
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.
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
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
此外,还需修改/etc/resolv.conf文件
[root@vm ~]# vim /etc/resolv.conf
nameserver 192.168.1.33
配置完成后重启网络
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
[root@vm ~]# dig @192.168.1.33 www.example.com
[root@vm ~]# dig @192.168.1.33 rhel.example.com
[root@vm ~]# dig @192.168.1.33 mail.example.com
[root@vm ~]# dig @192.168.1.33 -x 192.168.1.21
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解析第一次:
dig解析第二次:
由于服务端Fedora的DNS服务器配置打开了allow-query-cache缓存,客户端在通过DNS服务器请求解析时,服务端会把解析的结果缓存到服务器,所以客户端在第二次以后的解析请求,直接由本地DNS服务器(这里指实验中的Fedora服务器)返回解析结果。