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。



本文转自 李振良OK 51CTO博客,原文链接:http://blog.51cto.com/lizhenliang/1331472,如需转载请自行联系原作者

相关文章
|
19天前
|
SQL 监控 数据库连接
数字安全网:深入解析服务容错的三大绝招“
数字安全网:深入解析服务容错的三大绝招“
18 1
|
21天前
|
监控 Ubuntu 安全
Ubuntu开启FTP服务教程
在Ubuntu服务器上配置FTP服务是一个常见的需求,无论是用于文件分享、网站管理还是数据备份。FTP(文件传输协议)是一种用于在网络上传输文件的协议,它可以让用户通过身份验证下载或上传文件。本文将指导您如何在Ubuntu系统上安装和配置FTP服务器,以及如何管理用户权限来保证服务器的安全性。
46 0
|
24天前
|
域名解析 网络协议
IP协议, TCP协议 和DNS 服务分别是干什么的?
IP协议, TCP协议 和DNS 服务分别是干什么的?
215 0
|
1月前
|
安全 算法 网络协议
【Linux】文件服务FTP(File Transfer Protocol)
【Linux】文件服务FTP(File Transfer Protocol)
35 0
|
22天前
|
弹性计算 Ubuntu
Ubuntu 20.04安装FTP服务
以阿里云ECS为服务器,搭建FTP服务并在本机使用FileZilla连接服务。
235 2
|
26天前
|
网络协议 Linux 网络安全
Linux服务器配置指南:网络、用户管理、共享服务及DNS配置详解
Linux服务器配置指南:网络、用户管理、共享服务及DNS配置详解
101 0
|
30天前
|
人工智能 算法
AI写真服务计费说明解析
AI写真服务计费说明解析 随着人工智能技术的不断发展,AI写真服务已经成为了众多用户和企业的新宠。然而,对于AI写真的计费方式,许多用户仍然感到困惑。今天,我们就来详细解析一下AI写真的计费规则及方式。
17 1
|
1月前
|
缓存 负载均衡 网络协议
【Linux】DNS服务
【Linux】DNS服务
21 0
|
2月前
|
Docker 容器
docker 安装ftp服务
docker 安装ftp服务
|
2月前
|
存储 Dubbo Java
从源码全面解析 dubbo 服务订阅的来龙去脉
从源码全面解析 dubbo 服务订阅的来龙去脉

相关产品

  • 云解析DNS
  • 推荐镜像

    更多