一、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.confoptions   #全局配置{        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 {      #正向区域声明        typemaster;        file"test.com.zone";        allow-update { none; };  #允许动态更新哪些客户机地址,none 表示全部禁止        allow-transfer { none; };  #设置允许下载该区域解析记录的从域名服务的地址,一般指定slave地址};zone "0.168.192.in-addr.apra"IN {   #反向区域声明        typemaster;        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.202mail    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.confnameserver 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.202Address:        192.168.0.202#53Name:   www.test.comAddress: 192.168.0.203[root@client ~]# nslookup  #反向解析> 192.168.0.203Server:         202.106.0.20Address:        202.106.0.20#53203.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.confzone "test.com"IN {        typeslave;        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.confOptions{Directory “/var/named/chroot/var/named/etc/”;Forwarders only;    #本DNS服务器不提供解析,将所有请求转发到forwarders列表forwarders { DNS服务器IP地址;};  #定义转发请求目的ipallow-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@ftpvsftpd]# openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pemGenerating 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 incorporatedinto 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 blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:CNState or Province Name (full name) []:beijingLocality Name (eg, city) [Default City]:testOrganization Name (eg, company) [Default Company Ltd]:testOrganizational Unit Name (eg, section) []:test.comCommon Name (eg, your name or your server's hostname) []:Email Address []: | 
| 
       1
       | [root@ftpvsftpd]# 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=YESssl_sslv2=YESssl_sslv3=YESssl_tlsv1=YESforce_local_logins_ssl=YES #登录使用ssl认证force_local_data_ssl=YES #数据传输使用ssl认证force_anon_logins_ssl=YES #匿名登录使用ssl认证force_anon_data_ssl=YESrsa_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.confddns-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 startchkconfig 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,如需转载请自行联系原作者
 
                            