域名dmarc记录使用范例

通常我们为了防止自己域名邮箱被伪造,会通过配置SPF记录来限制域名邮箱可以外发的IP网段。SPF相关配置说明可以参考:https://support.google.com/a/answer/33786?hl=zh-Hans例如我个人的邮箱是托管在QQ企业邮箱,因此就设置了相关的SPF记录 SPF记录相对来说只是限制了外发邮件的IP段,但是当你的邮箱被人伪造后自己实际并不知道(虽然绝大部分邮件服务器都会把SPF检查不通过的邮件放入垃圾箱)。DMARC记录相对来说是SPF记录的一种加强,相关的说明见 https://dmarc.org/overview/ 。以个人邮箱的DMARC记录为例v:版本(纯文本;必要的)值为“DMARC1”,必须作为第一个标签。p:要求的邮件接收者策略(纯文本;必要的)表明接收者根据域名所有者的要求制定的策略。none:域名所有者要求不采取特定措施quarantine:域名所有者希望邮件接收者将DMARC验证失败的邮件标记为可疑的。reject:域名所有者希望邮件接收者将DMARC验证失败的邮件拒绝。rua:发送综合反馈的邮件地址(逗号分隔的DMARC URI纯文本列表;可选的)ruf:发送消息详细故障信息的邮件地址(逗号分隔的DMARC URI纯文本列表;可选的)sp:要求邮件接收者对所有子域使用的策略(纯文本;可选的),若缺省,则“p”指定的策略将应用到该域名和子域中。adkim:(纯文本;可选的;默认为“r”)表明域名所有者要求使用严格的或者宽松的DKIM身份校验模式,有效值如下:r: relaxed modes: strict modeaspf:(纯文本;可选的;默认为“r”)表明域名所有者要求使用严格的或者宽松的SPF身份校验模式,有效值如下:r: relaxed modes: strict modefo:故障报告选项(纯文本;可选的;默认为0),以冒号分隔的列表,如果没有指定“ruf”,那么该标签的内容将被忽略。0:如果所有身份验证机制都不能产生“pass”结果,那么生成一份DMARC故障报告;1:如果任一身份验证机制产生“pass”以外的结果,那么生成一份DMARC故障报告;d:如果消息的签名验证失败,那么生成一份DKIM故障报告;s:如果消息的SPF验证失败,那么生成一份SPF故障报告。那么我这个dmarc的作用就是,告诉收件服务器将dmarc检查失败的邮件标记为可疑,并将综合反馈邮件和详细的信息都发送到我的个人邮箱。 当配置了dmarc记录后,各邮件服务器会加强对邮件源的检查从邮件头,可以看到gmail有对dmarc记录做校验。

August 14, 2018 · 1 min · pm

bind rpz常见的用法

bind 从9.10开始,将RPZ(Response Policy Zones)的性能做了进一步优化,解决了之前RPZ引起的性能下降问题,目前是可以大规模做部署。简单整理常见的RPZ规则用法1. 劫持某个域名(劫持www.google.com)./client add www.google.com.rpz.zone. A 8.8.8.8 丢弃某个域名的解析请求(丢弃对www.google.com的解析请求)./client add blog.gnuers.org.rpz.zone. CNAME rpz-drop. 3. 将某个域名解析到NXDOMAIN(www.google.com指向NXDOMAIN)./client add www.google.com.rpz.zone. CNAME .

July 15, 2018 · 1 min · pm

IPV6 ready

政策趋势从去年年底开始国家开始力推IPV6。目前看到的相关文件有1. “推进互联网协议第六版(IPv6)规模部署行动计划”,这个由中共中央办公厅、国务院办公厅印发。2. “工业和信息化部关于贯彻落实《推进互联网协议第六版(IPv6)规模部署行动计划》的通知”,这是由工信部印发。 基本方案周末有时间,把blog重新整理了一下,目前支持native IPV6 only环境访问。相关的方案1. DNS服务器迁移到cloudflare。原本是准备自己再弄个VM,部署IPV6的DNS。后来觉得太费钱,直接用了cloudflare。2. V6地址是通过He.net的隧道接入。 注意事项使用隧道接入V6,需要注意防火墙规则的设定,主要是以下几点:1. 阿里云的网络安全组上放开he的隧道接入IP。2. 服务器上itables-v4放开he的隧道接入IP。3. 服务器上的ip6tables打开相关的端口。4. nginx的上的geoip库都使用IPV6(V6的包括了V4)的 相关的防火墙规则如下:v4规则 v6规则 4. 参考链接1. http://www.gov.cn/zhengce/2017-11/26/content_5242389.htm2. http://www.miit.gov.cn/n1146295/n1652858/n1652930/n3757020/c6154756/content.html

June 11, 2018 · 1 min · pm

配置802.11r提升家用AP漫游体验

问题 网络的拓扑图大致如下虽然在客厅和主卧都有部署无线路由器,2个AP的SSID一致,实际使用的时候从客厅走入主卧时实际接入端还是在连接之前的AP。另外也经常出现电脑一会连AP1,一会连AP2导致无线中断。所有没有AC+AP的方案,都会存在以上的情况,为了提升体验就在openwrt上配置好802.11r,结果还是比较满意的。 配置方案 所有的AP需要都是桥接在同一个LAN中,我的2个WNDR3700都是把路由器的WAN口设置一个静态的IP(方便登陆管理),另外无线网络都是桥接到WAN上,所有AP的客户端的IP实际都是走光猫DHCP。 配置802.11r实际比较简单,只需要在openwrt上把wpad安装一下(默认是wpad-mini),涉及的配置如下:1. NASID: PMK-R0 Key Holder identifier,每个AP不同,可以设置为MAC地址2. Mobility Domain: 每个AP相同,随便设置4位字符3. R0 Key Lifetime: 每个AP相同,可以就用默认值100004. R1 Key Holder: 每个AP不同,可以设置为MAC地址5. Reassociation Deadline: 每个AP相同,可以设置为默认的10006. r0kh(External R0 Key Holder List),格式Valid format:,,<128-bit key as hex string> ,每个设备的配置都是相同的,可以按照格式:– MAC,NASID,32位字符串7. r1kh (External R1 Key Holder List),格式:,,<128-bit key as hex string> ,每个设备相同,可以按照格式:– MAC,MAC,32位字符串我的实际配置如下: External R0 Key Holder List: - A4:2B:8C:0C:D7:B3,A42B8C0CD7B3,8a7fcc966ed0691ff2809e1f38c16999 - 04:A1:51:9B:0D:25,04A1519B0D25,8a7fcc966ed0691ff2809e1f38c16999 External R1 Key Holder List: - A4:2B:8C:0C:D7:B3,A4:2B:8C:0C:D7:B3,8a7fcc966ed0691ff2809e1f38c16999 - 04:A1:51:9B:0D:25,04:A1:51:9B:0D:25,8a7fcc966ed0691ff2809e1f38c16999

February 11, 2018 · 1 min · pm

cobbler配置

流程记录 软件包安装 并关闭SELinux – 配置epel源,直接使用yum安装 yum install cobbler cobbler-web dhcp bind pykickstart tftp -y 需要注意dhcp/bind需要单独安装一下,cobbler没依赖dhcp/bind sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config setenforce 0 ```bash systemctl restart cobblerd 配置cobbler参数 – 修改/etc/cobbler/settings的参数 allow_dynamic_settings: 1 ```bash default_password_crypted: "$1$random-p$yqLCVPP/OBjIT02WekZic1" next_server: 192.168.117.134 manage_dhcp: 1 manage_dns: 1 server: 192.168.117.134 manage_rsync: 1 pxe_just_once: 1 #防止循环装机 manage_forward_zones: [‘gnuers.org’] manage_reverse_zones: ['10.0.0', '192.168', '172.16.123'] - 修改dhcp池配置 /etc/cobbler/dhcp.template subnet 192.168.117.0 netmask 255.255.255.0 { option routers 192.168.117.2; option domain-name-servers 192.168.117.2; option subnet-mask 255.255.255.0; range dynamic-bootp 192.168.117.10 192.168.117.20; ...

January 30, 2018 · 3 min · pm

bind 9.11和9.12简单测试总结

bind 9.11 实际已经发布很久了,之前是简单的做过测试,简单做个总结。从功能上说9.11的几个特点:1. 持续完善了9.10 开始有的prefetch 功能2. 相比9.10 RPZ 的性能得到提升。3. 支持了dnstap。4. 支持了Catalog zone,zone的增加删除更加方便。5. 终于支持了ECS(EDNS Client-Subnet)。 9.12在9.11的基础上主要是新增了1. stale-answer ,递归失败的时候使用历史记录做响应。2. 完善了dnstap的文件轮转。 实际做了一些测试,简单的总结如下:1. 9.11.2 默认开始了cookie,实测9.11.2在递归的时候失败率相比9.9版本明显增加,性能上有少量的提升。2. dnstap对性能的影响比较小,关闭query log后 dnstap 关闭/开启的性能对比大概是13W/S VS 10W/S。相比传统的querylog的性能影响实在好太多了。但是因为是二进制的文件,查看需要用dnstap-read还是非常不方便的。3. 9.12的stale-answer还很不完善,最主要的问题是还是会先尝试同步做一次递归,失败了再用历史记录响应,测试中也经常出现找不到历史缓存的情况。目前了解是的akamai收购了nominum,这个patch应该是nominum 提供的。4. bind 9.10/9.11/9.12都支持了 EDNS Client-Subnet扩展协议,不过实际配置是比较脑残的。估计再等一两个版本会好一点。5. bind 9.11/9.12目前用于生产环境的风险还是比较高,建议企业用户继续使用9.9。整体来说这两年bind的发展相比之前还是快了很多,只是dns这个领域目前国内厂商因为国内运营商的各种奇葩要求做的工作还是很多的,无论是从性能,管控的便捷程度来说国内的成熟度都是超过国外的(除了对新扩展协议的跟进支持)。

January 4, 2018 · 1 min · pm

openssh 7.6p1编译打包

新版本代码获取 从官网下载 https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.6p1.tar.gz 编译RPM包注意事项 需要注意新版的openssh的spec文件里使用的pam配置文件会导致无法登陆 #%PAM-1.0 auth required pam_stack.so service=system-auth account required pam_nologin.so account required pam_stack.so service=system-auth password required pam_stack.so service=system-auth session required pam_stack.so service=system-auth 需要修改为 #%PAM-1.0 auth required pam_sepermit.so auth include password-auth account required pam_nologin.so account include password-auth password include password-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close session required pam_loginuid.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open env_params session optional pam_keyinit.so force revoke session include password-auth ...

December 20, 2017 · 1 min · pm

各导航系统使用的时钟

概述 美国GPS导航卫星采用了铯原子钟和铷原子钟结合的方式; 欧盟Galileo导航卫星采用了铷原子钟和被动型氢原子钟结合的方式; 俄罗斯Glonass-K三代导航卫星也将采用铷原子钟和被动型氢原子钟结合的方式。 北斗导航卫星正在开展铷原子钟和被动型氢原子钟相结合的授时方式。 铷原子钟:体积小重量轻、功耗低、技术难度相对较低、可靠性高等优势,但长期稳定度和漂移率指标相对较差; 铯原子钟:低漂移特性,不过寿命是致命短板; 被动型氢原子钟:稳定度指标在传统三样中最优,研发难道高。 1. GPS 早期的GPS使用的霍普金斯大学研制的石英振荡器,相对频率稳定度为10^-11/秒。误差为14m。 1974年以后,GPS卫星采用铷原子钟,相对频率稳定度达到 10^-12/秒,误差8m。 1977年,BOKCK II型采用了马斯频率和时间系统公司研制的铯原子钟后,相对稳定频率达到10^-13/秒,误差再降为2.9m。 1981年,休斯公司研制的相对稳定频率为10^-14/秒的氢原子钟使BLOCK IIR型卫星误差降至仅为1m。 2. 北斗 早期北斗试验系统的卫星原子钟是由瑞士进口 北斗二号的星载原子钟逐渐开始使用中国航天科工二院203所提供的国产铷原子钟。 2015年有发射载有星载氢原子钟的北斗卫星。 203所2017年9月30日成功研发了星载铯钟,预计北斗三号可能使用。

October 13, 2017 · 1 min · pm

tshark实时抓包获取DNS请求信息

1. tshark的安装 CentOS6 YUM源内的wireshark安装后,不支持GeoIP,需要自己编译一下最新的版本。 yum install GeoIP GeoIP-devel geoipup date -y ./configure –with-geoip=/usr/share/GeoIP/ –enable-tshark=yes make rpm-package wireshark自身Makefile带了各发型版的打包功能,所以直接make rpm-package就能make出rpm包 2. 使用范例 抓取DNS请求 sudo /usr/local/bin/tshark -i eth0 -o "ip.use_geoip:TRUE" -Y "udp.dstport == 53" -T fields -E separator='|' -e ip.src -e ip.geoip.src_country -e ip.geoip.src_asnum -e dns.flags -e dns.id -e dns.qry.name -e dns.qry.type -e dns.count.answers -e dns.count.answers -e dns.flags.rcode -e ip.len 抓到的内容如下: 211.138.19.28|China,China|AS24445 Henan Mobile Communications Co.,Ltd,AS24445 Henan Mobile Communications Co.,Ltd|0x00000010|0x0000355f|fxxxx.com|28||0||82 221.204.186.218|China,China|AS4837 CNCGROUP China169 Backbone,AS4837 CNCGROUP China169 Backbone|0x00000000|0x00004111|xxxx.com|1||0||75 123.157.135.3|China,China|AS4837 CNCGROUP China169 Backbone,AS4837 CNCGROUP China169 Backbone|0x00000000|0x00001108|xxxx.com|1||0||85 58.30.131.56|China,China|AS9811 srit corp.,beijing.,AS9811 srit corp.,beijing.|0x00000000|0x00005901|xxxxx.com|28||0||82 101.226.66.17|China,China|AS4812 China Telecom (Group),AS4812 China Telecom (Group)|0x00000010|0x00008d2a|xxxx.com|1||0||92 60.31.184.168|China,China|AS4837 CNCGROUP China169 Backbone,AS4837 CNCGROUP China169 Backbone|0x00000000|0x00005b22|xxxxx.com|1||0||79 60.31.184.168|China,China|AS4837 CNCGROUP China169 Backbone,AS4837 CNCGROUP China169 Backbone|0x00000000|0x0000da7e|lxxxx.com|1||0||74 74.125.176.202|United States,United States|AS15169 Google Inc.,AS15169 Google Inc.|0x00000000|0x0000ca93|xxxx.com|1||0||79 ...

May 4, 2017 · 1 min · pm

使用TLS增强docker的安全性

之前部署docker的时候都是没对docker的HTTP/socker接口进行加密。最近在线上部署的时候就得考虑这个。使用证书对docker进行加密主要参考官方的文档:1. https://docs.docker.com/v1.13/engine/security/https/2. https://github.com/docker/swarm/issues/341 docker engine配置TLS 主要注意做swarm cluster的时候 需要签发证书的时候subjectAltName里把本机的IP。生成证书的从网上找到的一个脚本做了修改,直接在里面把集群的IP都填进去,这样每个机器可以证书相同: #!/bin/bas h # This script will help you setup Docker for TLS authen tication. # Run it passing in the arguement for the FQDN of your docker server # For example: ./create-docker-tls.sh myhost.docker.com The script will also create a profile.d (if it exists) entry which configures your docker client to use TLS We will also overwrite /etc/sysconfig/docker (again, if it exists) to configure the daemon. A backup will be created at /etc/sysconfig/docker.unixTimestamp MIT License applies to this script. I don’t accept any responsibility for damage you may cause using it. set -e STR=2048 ...

March 21, 2017 · 4 min · pm