linux ssd优化

给自己的电脑换了一个三星的840 EVO,速度提升了很多很多,开机的时候从grub显示开始到进入gnome-shell基本10秒左右都能完成.打开chrome或者openoffice之类的也都非常快.目前各个系统对ssd的支持其实都比较完善了,什么4K对齐啥的都不是什么问题,基本不用自己去关心.linux下我就做了一下开启trim支持(挂载项加discard参数即可)和禁用了noatime,对swap分区也需要开启discard /dev/sda1 / ext4 defaults,noatime,discard,errors=remount-ro 0 1 # /home was on /dev/sda6 during installation /dev/sda6 /home ext4 defaults,noatime,discard 0 2 # swap was on /dev/sda5 during installation /dev/sda5 none swap sw,discard 0 0

February 16, 2014 · 1 min · pm

wordpress禁用google字体API

最近经常发现blog打开比较慢,发现是wordpress升级后需要使用http://fonts.googleapis.com/,google的任何服务在国内访问都麻烦的.最简单的就是装一个插件把这个关闭掉.搜索插件:Disable Google Fonts,安装后即可解决问题.现在试了试速度终于正常了.

February 16, 2014 · 1 min · pm

bind做递归DNS的一些防攻击手段

权威DNS的防攻击相对容易一些,对于一般的小公司的话可以使用rrl模块做简单的限速就能取得不错的效果。测试过开启限速后使用queryperf去打,bind的负载基本不会上升的。递归DNS的防攻击会负责很多。如果单纯使用开源的解决方案就只有rrl和rpz这2个东东可以考虑了。值得一提的是在bind9.9.4里把这2个patch合并进去了。现在最新版的bind都是可以使用rpz设置对每个不同的域名做返回策略,rrl也可以限制好单个IP或IP段的频率。编译参数: #/opt/bind/sbin/named -V BIND 9.9.4-P2 (Extended Support Version) <id:3f00a920> built with '--prefix=/opt/bind/' '--enable-rrl' '--enable-epoll' '--enable-threads' using OpenSSL version: OpenSSL 1.0.1 14 Mar 2012 rrl的配置可以参考: rate-limit { responses-per-second 20; nodata-per-second 10; nxdomains-per-second 10; errors-per-second 10; //all-per-second 60; ipv4-prefix-length 32; max-table-size 10000; slip 2; //log-only yes ; qps-scale 50000; window 5; }; 其中ipv4-prefix-length设置掩码为32位,就是对每个IP都独立限速, responses-per-second是对每个客户端响应速度上限。qps-scale是一个系数,比如设置qps-scale 250; responses-per-second 20,当访问的qps是1000的时候,对单个ip的限速就变成了250/1000*20=5。详细的配置可以参考http://ftp.isc.org/isc/bind9/cur/9.9/doc/arm/Bv9ARM.ch06.html#options [ rate-limit { [ responses-per-second number ; ] [ referrals-per-second number ; ] [ nodata-per-second number ; ] [ nxdomains-per-second number ; ] [ errors-per-second number ; ] [ all-per-second number ; ] [ window number ; ] [ log-only yes_or_no ; ] [ qps-scale number ; ] [ ipv4-prefix-length number ; ] [ ipv6-prefix-length number ; ] [ slip number ; ] ...

February 12, 2014 · 2 min · pm

bond不同模式下网卡流量分配

大家常用的bond模式主要是mode 1和4.其中mode1就是简单的主备模式,mode4是两个网卡都有流量的。以下是每种模式的简单介绍: balance-rr or 0 — Sets a round-robin policy for fault tolerance and load balancing. Transmissions are received and sent out sequentially on each bonded slave interface beginning with the first one available. broadcast or 3 — Sets a broadcast policy for fault tolerance. All transmissions are sent on all slave interfaces. 802.3ad or 4 — Sets an IEEE 802.3ad dynamic link aggregation policy. Creates aggregation groups that share the same speed and duplex settings. Transmits and receives on all slaves in the active aggregator. Requires a switch that is 802.3ad compliant. ...

January 25, 2014 · 1 min · pm

ntp 反射放大攻击

之前有介绍过DNS的反射攻击,主要是伪造受攻击的IP给开放递归DNS发起一些查询,包括不限于ANY类型的查询或者是自己制造一些很大的TXT记录,使得这些开放递归DNS对受攻击的IP回复非常大的包,达到攻击流量放大的作用。最近又有比较流行的是NTP的反射放大攻击,主要是利用里monlist去ntp服务器提供查询最近与NTP服务器有联系的600个client的信息。使用的方式类似如下: ntpdc -n -c monlist ntp.xx.xx 如果使用这个NTP服务器机器够多,那么就一定能返回600条记录,tcpdump抓包可以看到是分100个包(大小482字节)返回的,每个包含有6条记录。这样放大比就是100*482/234=206倍左右。 正是因为NTP放大攻击的倍数比较大,所以非常具有杀伤力,4M的上联带宽的家用宽带可以轻松打出800M的流量,足以把一些小网站的入口带宽打爆了。 参考:http://bugs.ntp.org/show_bug.cgi?id=1532

January 12, 2014 · 1 min · pm

屏蔽迅雷盗链下载文件

不经意间发现绝大部分流量都是来自于迅雷,一看日志里都是在下载各种硕大的ISO文件,而且每个请求下周的size也不大。为了保证正常请求能有充足的资源处理,就得把这部分请求屏蔽掉。统计了一下迅雷现在使用的UA多得不得了,很难简单的跟进UA来处理,所以只能直接找这些UA的交集做处理了,直接把UA匹配MSIE的就给封了,一般说来开源爱好者是不会使用IE的,在页面上说明一下影响也是OK的。http段增加一个map,根据ua来创建一下agent变量,主要是为了在日志打出请求是否被屏蔽: map $http_user_agent $agent { default 'false'; ~*MSIE 'true'; } server段新增localtion location ~* \.iso$ { root /mnt/nas/mirrors/; index index.html index.htm; autoindex on; if ( $request_method ~* HEAD ) { access_log off; } if ($agent = 'true') { limit_rate 1k; return 200; } } 这样对应被屏蔽的请求直接返回200.发现更新了配置后流量大降,可以看出对于一些个人站长如果做好放盗链本身也能大大降低自己的带宽开销。

January 11, 2014 · 1 min · pm

搭建公共源需要注意的一些点

最近搞了一个公共的源,把主流的镜像都同步好了.不过目前的访问量还不大,服务器的负载比较低. 在做公共的源的时候要注意自己是7X24提供服务的,所以我们在用rsync进行同步的时候需要关注一些细节的地方,主要是分2步同步.step 1:同步的时候忽略索引文件,并且不能删除源没有的文件.step 2:待第一步成功后再做一次普通的全量同步,把源里没有的文件删除掉. 这样才能使得源在同步的过程中也是具有服务能力的.

January 7, 2014 · 1 min · pm

vlan和lvs

一般说来一个服务器如果同时有公网ip和私网ip,那么网卡上都是配置一下不同的vlan tag使得网卡能用属于不同vlan内的地址。因为LVS在用DR模式只是需要Director和RS能通过1个子网通信。所以当我的机器同时都有公网IP和私网IP的时候,配RS时就写的私网的IP。结果发现是跑不通的,后来想了一下是因为这个包在走内网地址转发的时候vlan tag信息丢了,造成包到RS后是处理不了的。 在使用TUN模式的时候是么有这样的问题的,但TUN模式有个很头大的问题是在于不支持MTU协商。如果client段发的请求报文超过1440(1440+ipip头20字节+20字节tcp头+20字节ip头)那么这个请求是不能处理的。因为client端完全在是不能动的,这个时候就只有靠iptables来解决了。 iptables -A OUTPUT -s VIP -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN,ACK -j TCPMSS --set-mss 1440 上面的这条就可以让RS在和client端三次握手的时候向对方表明自己的MSS是1440,避免client段发送的报文大于1440.

December 27, 2013 · 1 min · pm

旁路阻断技术-转载

旁路阻断就是采用旁路的方式侦听通信的数据包,然后再进行协议还原,根据内容进行阻断。这类技术的优点是不影响互联网访问的速度,并且对用户没有特殊的设置要求。通俗讲是并联在互联网的出口上,不会影响原来网络的稳定性,部署也很方便。 采用旁路的方式管理网络并阻断非法连接的方法可以分为三类:1、 发送TCP Reset包2、 通过与网关产品联动,建立临时规则3、 进行基于arp的阻断方式。首先我们看一下TCP Reset,我们以IDS为例,IDS设备是一个典型的旁路监听并通过TCP Reset进行阻断的网络安全设备。IDS TCP Reset实现方法,当IDS发现一条非法得连接IDS将会向通信的两端各发送一个TCP RESET包,从而实现主动切断连接的目的,此时通信双方的堆栈将会把这个RESET包解释为另一端的回应,然后停止整个通信过程,释放缓冲区并撤销所有TCP状态信息。这个时候,攻击数据包可能还在目标主机操作系统TCP/IP堆栈缓冲区中,没有被提交给应用程序,由于缓冲区被清空了,所以攻击不会发生。 对于RESET包来说,IDS发出的RESET包的前提是知道整个会话当前的序列号和确认号,否则这个RESET包将会被忽略。我们假定一个会话得确认号必须为152如果你发送的RESET包的确认号为142,那么堆栈将会认为这是一个无效的数据包或者被破坏的数据包而将它忽略掉。 从另一方面讲所有的IDS在响应攻击时都有延迟时间,因为IDS从抓取数据包,监测攻击,产生RESET包,到最后发出RESET整个过程都要消耗一定的时间。很多的IDS使用libpcap库来抓包,大部分IDS构建在类BSD的系统上,BSD系统下是利用BPF(Berkeley Packet Filters)进行抓包,BPF默认将会开一个很大的缓冲区,在一个典型的网络中,IDS发出RESET包的过程大约会延迟半秒。在Linux和Solaris平台上,性能要稍微好一点,但是肯定也有延迟时间。 而且TCP Rest对于网络得应用来说也有着很大得局限性,其只能针对通常得标准TCP连接发送阻断信息,对于UDP会话是无能为力得。再则目前得一些网络应用软件在会话连接保持上都很强得能力,TCP Reset包对于他们得效果基本可以忽略。 通过与网关产品的联动方式主要是向防火墙发送临时规则,以及路由器或交换机发送临时ACL列表,阻断当前这个会话。 这种方式存在着这么几个方面得问题: 1、首先是联动协议问题。“联动”一直是网络安全界中的一个很时髦的概念,虽然已经有五六年的历史,但是到目前为止,还远远没有得到充分的发展。现在联动得实现是以现有得某个厂家为核心,其他厂家的产品在一些半公开的SDK的支持下实现与核心厂家的某个产品实现互联。这样导致现有和多产品有联动功能,但是没有联动得实际效果。 2、联动信息的滞后。即使产品与防火墙有着优良得联动相应方式,IDS产品在检测得过程中发现了非法得连接,生成一条临时规则发送到防火墙,防火墙应用这条规则阻断这个连接;在这一个过程中存在着三个延时,一、IDS发现非法连接,生成临时规则;二、规则传输给防火墙;三、防火墙应用规则。这三个演示得总时间最好情况下是小于两秒,而且这个过程当中IDS的检测是滞后IDS检测到非法连接时,这个连接已经建立了,如果这个连接时蠕虫,或木马,两秒的延时足够成功攻击了。 3、当遇到大规模的非法连接的时候,IDS会针对每一条会话向防火墙添加临时规则,这样势必造成防火墙临时规则增大,降低防火墙的效率,引起防火墙包转发延时,严重造成防火墙瘫痪,网络中断。 最后我们来看一下基于arp的阻断,共有三种方式ARP 欺骗、ARP 投毒和 ARP 攻击。先了解ARP的原理。ARP 用于将 IP 地址匹配到或解析至恰当的 MAC 地址,所有的网络设备都有一张 ARP 表,里面临时记忆着该设备已经匹配起来的所有的 IP 地址和 MAC 地址。ARP 表能够确保该设备不需要向已经与自己进行过通信的计算机重复 ARP 询问。当有人在未获得授权时就企图更改 MAC 和 IP 地址的 ARP 表格中的信息时,就发生了 ARP 攻击。通过这种方式我们可以伪造ARP应答包,使得非法连接主机的ARP表错误,无法连接到网关,从而阻断连接。 这种阻断方式从效果上讲是很强得,但是同时也造成了一个问题,其不但阻止了非法连接,而且也阻断了合法连接,这对于网络中的正常应用是有着很大得影响得。 综上所述,采用旁路阻断的方式在实际应用中时不可行的。 原文:http://www.rising.com.cn/newsletter/news/2012-05-23/11558.html实际大家比较常用的是采用发送TCP Reset包,上文提到的主要缺点都是可以解决的。

December 21, 2013 · 1 min · pm

BGP选路决策过程

1、选管理属性权值最大的路由2、选LOCAL_PREF最大的路由3、优选IGP路由,次选EGP路由4、优选AS_PATH最短的路由5、选源编码最低的路由,IGP低于EGP,EGP低于incomplete的路由6、选MULTI_EXIT_DISC最低的路由7、优选EBGP路由,次选联盟EBGP路由8、选NEXT_HOP最近的路由9、如果以上属性都相同,切都来自同一个临近的AS,且启用了BGP多路径就是ecmp。10、如果没有启用BGP多路径,就选路由器ID最小的路由。 PS:本来前面差不多写完了所有的BGP路由熟性,不小心刷了一下搞没了。懒得写了,其实都是从书上摘下来的。也可以看看这个。 [这个](http://mt.cucn.edu.cn/net/%E8%B5%84%E6%96%99%E4%B8%8B%E8%BD%BD/cisco/BGP%E8%B7%AF%E7%94%B1%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3(%E5%AE%8C%E6%95%B4%E7%AF%87).pdf)附上H3C的文档

December 13, 2013 · 1 min · pm