RHCE学习<7>DNS、FTP和DHCP服务配置详解

一、DNS服务器

简述:DNS服务器大多数都使用BIND作为服务器,是最早伯克利大学一名学生编写的,最新版本是9,现在由ISC编写和维护。使用TCP、UDP协议,默认53(domain),953(mdc)。

1>.DNS服务器作用

正向解析:根据主机名称(域名)查找对应的IP地址

反向解析:根据IP地址查找对应的主机域名

2>.DNS两种查询方式

递归查询:客户端—>本地DNS服务器--若不能回答,则查询根DNS服务器—>根DNS服务器查询域类型,得到IP直接给客户端。

迭代查询(循环查询):客户端—>本地DNS服务器—>查询根DNS服务器—>根DNS服务器查询域类型得到IP—>再原路返回给客户端。

3>.DNS服务器三种类型

域主DNS服务器(master):保存zone配置文件,保持该域信息

域从DNS服务器(slave):冗余负载使用,从主DNS服务抓取zone配置文件

缓存DNS服务器(caching):负载均衡、访问加速使用

1、域主DNS服务器

DNS服务器:192.168.0.202

DNS客户端:192.168.0.203


1

2

3

4

[root@dns ~]# yum install gcc gcc-c++ bind bind-chroot bind-utils

[root@dns ~]# cp -r /usr/share/doc/bind-9.8.2/sample/etc/named.conf /var/named/chroot/etc/

[root@dns ~]# cp -r /usr/share/doc/bind-9.8.2/sample/var/named/* /var/named/chroot/var/named/

[root@dns ~]# cd /var/named/chroot/var/named/


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

[root@dns named]# vi ../../etc/named.conf

options   #全局配置

{

        directory               "/var/named";     #区域文件存储目录

        listen-on port 53       { 192.168.0.202; };  #监听端口,any为所有

        listen-on-v6 port 53    { ::1; };   #ipv6支持

        allow-query             { any; };  #any对所有主机提供查询

        allow-query-cache       { any; };  #开启所有主机查询缓存

        recursion yes;  #启动递归查询

};

logging     #定义记录所有查询主机内容、信息日志

{

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};

zone "test.com" IN {      #正向区域声明

        type master;

        file "test.com.zone";

        allow-update { none; };  #允许动态更新哪些客户机地址,none 表示全部禁止

        allow-transfer { none; };  #设置允许下载该区域解析记录的从域名服务的地址,一般指定slave地址

};

zone "0.168.192.in-addr.apra" IN {   #反向区域声明

        type master;

        file "test.com.zone";

        allow-update { none; };

        allow-transfer { none; };

};

#创建正反向区域数据文件


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

[root@dns named]# cp named.localhost test.net.zone

[root@dns named]# vi test.net.zone

$TTL 1D

@       IN SOA  test.com. root.test.com. (   #第一个是该DNS区域地址,第二个是邮箱地址

                                        0       ; serial   #更新序列号

                                        1D      ; refresh  #无效地址解析的缓存时间

                                        1H      ; retry    #刷新时间

                                        1W      ; expire   #失效时间

                                        3H )    ; minimum

@       IN      NS      dns.test.com.   #域名服务器记录

dns     IN      A       192.168.0.202

mail    IN      A       192.168.0.203   #MX邮件交换记录

        IN      MX 10   mail.test.com.

www     IN      A       192.168.0.203   #A地址解析记录

203     IN      PTR     mail.test.com.  #PTR

#检测主配置文件和区域数据文件语法正确性


1

2

3

[root@dns ~]# named-checkconf /var/named/chroot/etc/named.conf

[root@dns ~]# named-checkzone test.com /var/named/chroot/var/named/test.net.zone

[root@dns ~]# named-checkzone 0.168.192.in-addr.apra /var/named/chroot/var/named/test.net.zone

#让新配的DNS作为本机首选DNS服务器


1

2

3

4

5

6

7

[root@dns ~]# vi /etc/resolv.conf

nameserver 192.168.0.202

[root@dns ~]# service named start   #启动时一直停在这

Generating /etc/rndc.key:

[root@dns ~]# rndc-confgen -r /dev/urandom -a  #执行此命令导入KEY,再启动就能启动了

[root@dns ~]# service named start

[root@dns ~]# chkconfig named on

#测试


1

2

3

4

5

6

7

8

9

10

11

[root@client ~]# nslookup www.test.com  #正向解析,也可以使用host测试

Server:         192.168.0.202

Address:        192.168.0.202#53

Name:   www.test.com

Address: 192.168.0.203

[root@client ~]# nslookup  #反向解析

> 192.168.0.203

Server:         202.106.0.20

Address:        202.106.0.20#53

203.0.168.192.in-addr.arpa      name = client.

>

2、域主从DNS服务器

主DNS服务器:192.168.0.202

从DNS服务器:192.168.0.203

主DNS服务器配置与上面配置相同,allow-transfer { none; };修改为allow-transfer { 192.168.0.203; };定义主DNS服务器允许将区域数据文件复制给从DNS服务器


1

2

3

4

5

6

[root@slaves ~]# vi /var/named/chroot/etc/named.conf

zone "test.com" IN {

        type slave;

        file "test.com.zone";

        masters { 192.168.0.202; };

};

3、缓存DNS服务器

可以为DNS指定一个上游DNS服务器地址,当自己无法完成解析,则让上游DNS服务器解析一个好的给客户端


1

2

3

4

5

6

7

[root@slaves ~]# vi /var/named/chroot/etc/named.conf

Options{

Directory “/var/named/chroot/var/named/etc/”;

Forwarders only;    #本DNS服务器不提供解析,将所有请求转发到forwarders列表

forwarders { DNS服务器IP地址;};  #定义转发请求目的ip

allow-query {any;};  #允许所有客户查询

};

二、FTP服务器

1>.FTP:C/S架构服务,使用TCP协议作为底层传输,提供数据传输的可靠性

2>.FTP连接方式

控制连接:标准端口为21,用于发送FTP命令信息

数据连接:标准端口为20,用于上传、下载数据

3>.两种工作模式:

主动模式:客户端向服务端发起请求,服务端收到请求后发起一个指令告诉客户端要打开20端口,服务器主动向20端口发起数据连接。

被动模式:客户端向服务器发起请求,服务端收到请求后随机打开一个端口,告诉客户端我是被动模式,客户端向服务端的随机端口建立数据连接。

4>.Vsftpd相关配置文件:

/etc/vsftpd/vsftp.conf:主配置文件

/etc/vsftpd/ftpusers:黑名单

/etc/vsftpd/user_list:控制名单(由配置文件控制器是白名单还是黑名单)

/var/log/xferlog:默认日志文件

5>.三种类型用户:匿名用户(默认),系统用户,虚拟用户。

6>.常见配置项及含义说明

anonymous_enable=YES        #是否允许匿名用户ftp或anonymous登录

anon_root=/var/ftp          #设置匿名用户的FPT根目录(缺省为/var/ftp)

anon_umask=022              #设置匿名用户所上传文件的默认权限掩码值

anon_world_readable_only=no #允许匿名用户浏览下载文件的权限
anon_upload_enable=YES      #是否允许匿名用户上传文件
anon_mkdir_write_enable=YES #是否允许匿名用户有创建目录的权利

anon_other_write_enable=YES #是否允许匿名用户有其他写入权限,如对文件改名、覆盖、及删除文件。

anon_max_rate               #限制匿名用户的最大传输速率(0为无限制),单位为字节
dirmessage_enable=YES       #是否显示目录说明文件,默认是YES但需要手工创建.message文件

local_enable=YES            #是否允许本地用户登录

local_umask=022             #设置本地用户所上传文件的默认权限掩码值

local_root=/var/ftp         #设置本地用户的FPT根目录(缺省为用户的宿主目录)

local_max_rate              #限制本地用户的最大传输速率(0为无限制),单位为字节

chroot_local_user=yes       #是否将FPT本地用户禁锢在宿主目录中

listen_port  21             #设置监原FTP服务的端口号

write_enable=yes            #启用任何形式的写入权限(如上传、删除文件等)都需要开启此项

download_enable=yes         #是否允许下载文件(建立仅限于浏览、上传的FTP服务器时可将其设为no)
xferlog_enable=YES          #是否记录ftp传输过程,即启用FTP日志,默认记录到/var/log/xferlog文件中

xferlog_std_format=yes      #启用标准的xferlog日志格式,若禁用此项,将使用vsftpd自已的日志格式

connect_from_port_20=YES    #是否确信端口传输来自20(ftp-data)

chown_upload=YES            #是否改变上传文件的属主
chown_username=username     #将属主改为那个用户

pasv_enable=yes             #允许被动模式连接

pasv_max_port=24600         #设置用于被动模式的服务器最大端口号

pasv_min_port=24500         #设置用于被动模式的服务器最小端口号

pam_service_name=vsftpd     #设置用于用户认证的PAM文件位置(/etc/pam.d目录中对应的文件名)

userlist_enable=yes         #是否启用user_list用户列表文件

userlist_deny=yes           #是否禁止user_list列表文件中的用户账号

max_clients=0               #最多允许多少个客户端同进连接FTP服务器(0为无限制)

max_per_ip=0                #对来自相同IP地址的客户端,最多允许多少个并发连接(0为无限制)

tcp_wrappers=yes            #是否启用tcp_wrappers访问控制

idle_session_timeout=600    #设置默认的断开不活跃session的时间 
data_connection_timeout=120 #设置数据传输超时时间,将数据连接空闲2分钟断

accept_timeout=60(秒) #将客户端空闲1分钟后断

1、安装Vsftpd并配置用户认证访问


1

2

3

4

5

6

7

8

9

10

11

12

13

[root@ftp ~]# yum install vsftpd -y

[root@ftp ~]# mkdir /data

[root@ftp ~]# vi /etc/vsftpd/vsftpd.conf #末尾添加如下

anonymous_enable=no  #禁用匿名登陆

local_root=/data     #FTP根目录

chroot_local_user=yes  #锁定宿主目录

pasv_enable=YES     #启动被动模式连接

pasv_min_port=6001  #最小端口号

pasv_max_port=6100  #最大端口号

[root@ftp ~]# service vsftpd start

[root@ftp ~]# useradd ftpadmin    #创建登陆FTP用户并设置密码

[root@ftp ~]# passwd ftpadmin

[root@ftp ~]# chown ftpadmin:ftpadmin /data/ -R

#添加防火墙允许


1

2

[root@ftp ~]# iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT

[root@ftp ~]# iptables -A INPUT -p tcp --dport 6001:6100 -j ACCEPT

2、Vsftpd虚拟用户配置

请参考:http://going.blog.51cto.com/7876557/1294765

3、Vsftpd+SSL实现加密传输

 #生成证书(包含个人密钥和证书)


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

[root@ftp vsftpd]# openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem

Generating a 2048 bit RSA private key

...........+++

...........................................+++

writing new private key to 'vsftpd.pem'

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [XX]:CN

State or Province Name (full name) []:beijing

Locality Name (eg, city) [Default City]:test

Organization Name (eg, company) [Default Company Ltd]:test

Organizational Unit Name (eg, section) []:test.com

Common Name (eg, your name or your server's hostname) []:

Email Address []:


1

[root@ftp vsftpd]# chmod 400 vsftpd.pem

#vsftpd配置SSL支持


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

[root@ftp ~]# vi /etc/vsftpd/vsftpd.conf  #末尾添加如下

anonymous_enable=no #关闭匿名访问

local_root=/ftp #指定宿主目录

chroot_local_user=YES #锁定宿主目录

ssl_enable=YES

ssl_sslv2=YES

ssl_sslv3=YES

ssl_tlsv1=YES

force_local_logins_ssl=YES #登录使用ssl认证

force_local_data_ssl=YES #数据传输使用ssl认证

force_anon_logins_ssl=YES #匿名登录使用ssl认证

force_anon_data_ssl=YES

rsa_cert_file=/etc/vsftpd/vsftpd.pem #设置证书位置

[root@ftp ~]# service vsftpd restart

[root@ftp ~]# chkconfig vsftpd on

测试:我们使用flashfxp软件来测试看到传输过程中采用ssl进行通信!

三、DHCP服务器

1、安装 dhcp


1

yum install -y dhcp

2、主配置文件修改


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf #默认配置文件是空的,复制dhcpd.conf模板

vi/etc/dhcp/dhcpd.conf

ddns-update-style interim; #设置dhcp互动更新模式

ignore client-updates;     #忽略客户端更新

shared-network test{      #这个段是一个作用域,不同子网配置多个作用域

subnet 192.168.1.0 netmask 255.255.255.0{ #子网声明

option routers 192.168.1.1;         #客户端默认获取网关

option subnet-mask 255.255.255.0;   #客户端默认获取子网掩码

option domain-name "test.com";      #DNS域

option domain-name-servers 8.8.8.8; #DNS服务器地址

range 192.168.1.200 192.168.1.202;  #分配地址池

default-lease-time3600;            #默认租期,单位秒

max-lease-time7200;                #最长租期,单位秒

可选:

#host print {                          #设置静态分配主机

#hardware ethernet 00:0C:29:7E:52:64; #静态分配主机MAC

#fixed-address 192.168.1.200;         #静态分配的IP

# }

}

}

3、启动dhcp


1

2

service dhcpd start

chkconfig dhcpd on

4、启动失败几种可能性

1>.内容不符合语法结构,例如,少个分号;

2>.声明的子网和子网掩码不符合;

3>.主机IP地址和声明的子网不在同一网段。

4>.主机没有配置IP地址。

5>.配置文件路径出问题,比如在RHEL6以下的版本中,配置文件保存在了/etc/dhcpd.conf,但是在

rhel6及以上版本中,却保存在了/etc/dhcp/dhcpd.conf。

时间: 2022-12-30

RHCE学习<7>DNS、FTP和DHCP服务配置详解的相关文章

Centos系统下配置DHCP服务步骤详解

基础环境: [root@PXE ~]# uname -a Linux PXE 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [root@PXE ~]# ifconfig eth0      Link encap:Ethernet  HWaddr 00:0C:29:70:00:DA            inet addr:1.1.1.13  Bcast:1.1.1.

Linux学习第一天——ssh登录和软件安装详解_Linux

操作环境: Ubuntu 16.04 in10系统,使用putty_V0.63 本身学习Linux就是想在服务器上使用的.实际情况,可能我很难直接到坐在服务器前,使用界面操作系统.事实上,界面对于服务器来说就是一个多于的内容.于是Linux的桌面就像一个程序一样,可以卸载.卸载后怎么用呢?使用shell命令.在哪里使用呢?当然是在遥远的另一方. 于是,我学习的第一个内容就是远程访问Linux系统,进行一系列操作. 远程访问方式很多,我不做孔乙己,所以随便选择一种简单点的入手. SSH(Secur

.NET的动态编译与WS服务调用详解

这篇文章介绍了.NET的动态编译与WS服务调用详解,有需要的朋友可以参考一下,希望对你有所帮助       动态编译与WS服务,有关系么?今天就乱弹一番,如何使用动态编译动态生成WS服务调用的代理类,然后通过这个代理类调用WS服务.     首先,动态编译这玩意在.NET里面是非常简单的,实际上只涉及到两个类型:CodeDomProvider以及CompilerParameters他们都位于System.CodeDom.Compiler命名空间.     以下代码可将源码动态编译为一个程序集:

《Python自动化运维:技术与最佳实践》一第2章 业务服务监控详解

第2章 业务服务监控详解 业务服务监控是运维体系中最重要的环节,是保证业务服务质量的关键手段.如何更有效地实现业务服务,是每个运维人员应该思考的问题,不同业务场景需定制不同的监控策略.Python在监控方面提供了大量的第三方工具,可以帮助我们快速.有效地开发企业级服务监控平台,为我们的业务保驾护航.本章涉及文件与目录差异对比方法.HTTP质量监控.邮件告警等内容.

ASP.NET MVC 5 学习教程:Edit方法和Edit视图详解

原文 ASP.NET MVC 5 学习教程:Edit方法和Edit视图详解 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控制器访问模型的数据 生成的代码详解 使用 SQL Server LocalDB Edit方法和Edit视图详解 添加查询 Entity Framework 数据迁移之添加字段 添加验证 Details 和 Delete 方法详解 在本节中,我们继续研究生成的Edit方法和视图.

DHCP服务配置

问题描述 大侠们,在Ubuntu11.04server系统,如何配置DHCP服务啊?必须两块网卡吗? 解决方案 解决方案二:推荐到这里http://forum.ubuntu.org.cn/去问问解决方案三:使用如下命令sudomv/etc/dhcpd.conf/etc/dhcpd.conf.bakup#备份原配置文件sudovi/etc/dhcpd.conf添加如下的配置行(可以删除原来文件的内容,也可以改修个别参数):ddns-update-stylenone;#不使用DHCPDNS动态更新d

rsync 服务部署详解

第1章 rsync 软件介绍 1.1 什么是rsync rsync 是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具. http://www.samba.org/ftp/rsync/rsync.html 1.1.1 全量及增量 全量:将全部数据,进行传输覆盖 增量:只传输差异部分的数据 1.2 实现增量复制的原理 Rsync通过其独特的"quick check"算法,实现增量传输数据 [root@backup ~]#man rsync Rsync  f

NVIDIA Jetson TK1学习与开发(八):图文详解OpenGL在Jetson TK1上的安装和使用

图文详解OpenGL在Jetson TK1上的安装和使用 1.入门介绍与资源推介 OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言.跨平台的编程接口规格的专业的图形程序接口.它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图形库. OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三维图形 API 的子集,针对手机.PDA和游戏主机等嵌入式设备而设计.该API由Khronos集团定义推广,Khron

NVIDIA Jetson TK1学习与开发(三):图文详解Jetson TK1平台搭建

图文详解Jetson TK1平台搭建 在<NVIDIA Jetson TK1学习与开发(一)>和<NVIDIA Jetson TK1学习与开发(二)>中已经对TK1的基本资源进行了简单介绍,并且推荐了一些很有用的网址供大家学习.本文将图文详解Jetson TK1平台的搭建. 1.开箱第一步 开箱后进入唯一的目录下, 会看到installer.sh,在当前路径执行以下命令: sudo ./installer (注意:此命令只能执行一次) 重启, sudo reboot 重启后进入开机