DNS基本概念及iptables显示扩展

                                                           资源记录的类型
区记录:
       SOA       定义一个DNS区
       NS          标志区的服务器,授权子域
基本记录:
       A              名字到地址的转换
       AAAA      名字到IPv6地址转换
       PTR       地址到名字的转换
       MX        控制邮件的路由
安全记录:
       DS               签发子区的密钥散列 
       DNSKEY    DNS名称的公钥
       NSEC      和DNSSEC一起使用,用于否定回答
       RRSIG     带签名,经过身份验证的资源记录集
可选记录:
       CNAME     主机的昵称或者别名
       LOC           地理位置和范围
       SRV           提供知名服务的位置
       TXT           注视或者非键入信息
                                                             Domain和zone

Domain:是主机组成的范围,它是一个逻辑结构,例如example.com由zone(forward)和zone(reverse)构成;而区域zone是一个个文件构成的物理结构;Domain可包含zone,zone也可包含Domain。Domain的一级域包括组织域,国家域和反向域;组织域有:.com;.org;.net;.gov;.edu;.mil , 国家域有:.cn;.jp;.hk;.uk;.rq;.us 。
文件/etc/hosts的Search匹配一个域名列表,当主机名不全时,Search可以使其补全而得到查询结果;nameserver字段表示指定了域名解析服务器,它最多可以有3个,当第一个nameserver连接不上时,第二个nameserver才启用,当第一个nameserver未解析到时,第二个nameserver不会启动。

                               DNS的测试命令:host;dig;nslookup;Stub Resolver
host
1.)显示查询的简要信息
2.)不查询/etc/hosts文件,直接向DNS服务器发送查询
3.)支持Search,可以使用简称查询信息
4.)`host -t  NS(资源记录类型)  example.com(域名)`查询域名为example.com资源记录类型为NS的简要信息
5.)`host -t  A   ns.example.com`解析主机名为ns.example.com的IP地址
6.)`host -t  PTR 192.168.0.29`反向解析192.168.0.29的主机名信息
dig
1.)以文件格式显示查询的详细信息
2.)不查询/etc/hosts文件,直接向DNS服务器发送查询
3.)不支持Search,必须制定全名
4.)`dig -t NS(资源记录类型)  example.com(域名)`查询域名为example.com资源记录类型为NS的详细信息
5.)`dig -x  192.168.0.29`反向解析192.168.0.29的主机名信息
6.)`dig +trace example.com`解析域名的整个过程的解析信息
7.)`dig -t axfr example.com`显示所在域的区域传送信息
nslookup在Windows下使用可用set q=NS|MX|SOA 来查询解析信息;Stub Resolver提供一个gethostbyname()本地解析器来发送解析请求。
SOA的数据:管理员邮箱;DNS服务器的主机全名;序列号;从服务器每个多少时间来更新数据一次;若从服务器未更新成功,从服务器在每个多少时间在访问一次;挡住服务器down掉之后,从服务器可以代理域名解析多少时间;否定回答需要对方的缓存时间是多少。

DNS定义了:
1.)用主机和IP地址的一个有层次结构的名字空间
2.)作为一个分布式数据库实现的主机列表
3.)一个查询这个数据库的“解析器”
4.)改进的路由电子邮件机制
5.)一种用于在网络上查×××的机制
6.)一种用于交换命名信息的协议
创建子域:
1.)选择本地环境中唯一的域名
2.)确定两台或多台主机作为新域的服务器
3.)与父域管理员取得协商
DNS资源记录划分为4组:
1.)区记录--标识域和它们之间的名字服务器
2.)基本记录--将名字映射到地址并路由邮件
3.)安全记录--向区文件添加身份验证和签名
4.)可选记录--提供有关主机和域的额外信息
 
 
                                                      BIND的组成
 
1.)称为named的守护进程,他回答查询
2.)库程序,他联系DNS分布式数据库的服务器,解析主机的查询
3.)DNS的命令行接口,nslookup,dig和host
在named.conf中使用的语句:
include          插入一个文件
options          设置名字服务器的全局配置选项和默认值
acl              定义访问控制列表
key              定义验证信息
trusted-keys     使用预先设置的密钥
server           指定每个服务所特有的选项
masters          定义一个主服务器列表,包含在存根去和从区里
logging          指定日志记录及其目录的位置
zone             定义资源记录的一个区
controls         用ndc来定义用于控制名字服务器的渠道
view             定义域名空间的一个视图(veiw)
lwres            指定应该也是一个解析器的名字服务器

DNS的解析过程:
1.)主机首先查看DNS缓存中的信息是否有匹配的,若有则直接解析域名,若没有则进行下一步
2.)主机读取/etc/hosts的信息,若有匹配则解析域名,若没有匹配则进行下一步
3.)主机通过gethostbyname()本地解析器向本地DNS服务器发送解析请求;本地DNS服务器接受请求后,先查看它的DNS缓存是否有匹配项,若有则直接反馈主机解析域名,否则迭代向外查询;它先向根DNS服务器发出查询,本地服务器接到回复后,再向下一级DNS发出请求,直到找到目的主机所在域,它找到域名解析信息后存储到它的DNS缓存内,再传给主机;主机接收到信息后,先缓存到主机DNS缓存,再去访问目的主机
 

                                                    iptables的显示扩展补充
 
string:根据字符串做匹配
在INPUT链上做字符串匹配,可匹配其能容;下面是凡是到192.168.0.0网段的内容中出现字符串为"test"的均过滤:
iptables -A INPUT -d 192.168.0.0/24 -m string --string "test"  --algo -j bm DROP
在FORWARD链上做字符串匹配,不匹配内容,只过滤URL;下面是到192.168.0.0网段的URL中出现"test"的均过滤:
iptables -A FORWARD -d 192.168.0.0/24 -m string --string "test" --algo kmp -j DROP
time:根据时间做匹配
--datestart       指定匹配的开始日期
--datestop        指定匹配的结束日期
--timestart       指定匹配的开始时间
--timestop        指定匹配的结束时间
--mounthdays      按月份作匹配
--weekdays        按星期做匹配
下面表示192.168.0.0网段在每天12:00到18:00不能上网:
iptables -A FORWARD -d 192.168.0.0/24 -p tcp --dport 80 -m time --timestart 12:00 --timestop 18:00 -j DROP
connlimit对并发连接数的限制
! --connlimit-above 6      表示并发连接数不能大于6个
multiport:表示多端口服务
--source-ports            表示多个源端口
--destination-port        表示多个目标端口
--ports                   表示多个端口,包括源端口和目标端口
下面表示凡是来自192.168.0.0网段的经21,80端口的数据包均丢弃:
iptables -A FORWARD -s 192.168.10.0/24 -p tcp --ports 21,80 -j DROP