存档

2010年3月 的存档

openssh5.4升级后ssh无法登陆

2010年3月30日 评论已被关闭
杯具啊! 新装的服务器,从openssh5.2升级到openssh5.4,重启sshd服务后发现无法登陆了!!!
没办法,找机房人员终端登陆上去开启telnet,又把版本降了回来,汗一个!
谁让手欠呢!
分类: OpenSource 标签:

nginx代理模式下,伪造X-Forwarded-For头的测试

2010年3月18日 6 条评论

测试环境: nginx+resin
IP: 内网:172.16.100.10

客户端IP:123.123.123.123

测试页面: test.jsp
<%
out.println(“x-forwarded-for: ” + request.getHeader(“x-forwarded-for”));
out.println(“remote hosts: ” + request.getRemoteAddr());
%>

nginx 配置一
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

wget测试
wget -O aa –header=”X-Forwarded-For:192.168.0.1″ “http://2hei.net/test.jsp
页面返回结果:
x-forwarded-for: 192.168.0.1, 123.123.123.123
remote hosts: 172.16.100.10

curl测试
curl -H “X-Forwarded-For:192.168.0.1” “http://2hei.net/test.jsp
x-forwarded-for: 192.168.0.1, 123.123.123.123
remote hosts: 172.16.100.10

nginx 配置二
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

wget测试:
wget -O aa –header=”X-Forwarded-For:192.168.0.1″ “http://2hei.net/test.jsp
页面返回结果:
x-forwarded-for: 123.123.123.123
remote hosts: 172.16.100.10

curl测试
curl -H “X-Forwarded-For:192.168.0.1” “http://2hei.net/test.jsp
x-forwarded-for: 123.123.123.123
remote hosts: 172.16.100.10

测试结果:
1、配置  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
增加了一个真实ip X-Forwarded-For,并且顺序是增加到了“后面”。

2、配置  proxy_set_header X-Forwarded-For $remote_addr;
清空了客户端伪造传入的X-Forwarded-For,
保证了使用request.getHeader(“x-forwarded-for”)获取的ip为真实ip,
或者用“,”分隔,截取X-Forwarded-For最后的值。

分类: nginx, OpenSource 标签:

ethtool maybe caused by “TCP checksum offload”

2010年3月3日 评论已被关闭

使用tcpdump抓包时发现有这样的错误信息:

Transmission Control Protocol, Src Port: 44937 (44937), Dst Port: https (443), Seq: 111, Ack: 147, Len: 6

Checksum: 0x5edd [incorrect, should be 0x15db (maybe caused by “TCP checksum offload”?)]
 Good Checksum: False
 Bad Checksum: True

或许是TCP checksum offload的原因

查看本机的网卡信息
2hei# ethtool -k eth0
Offload parameters for eth0:
Cannot get device rx csum settings: Operation not supported
Cannot get device udp large send offload settings: Operation not supported
rx-checksumming: off
tx-checksumming: on
scatter-gather: on
tcp segmentation offload: off
udp fragmentation offload: off
generic segmentation offload: off

其他一些帮助
ethtool -K|–offload DEVNAME    Set protocol offload
                [ rx on|off ]
                [ tx on|off ]
                [ sg on|off ]
                [ tso on|off ]
                [ ufo on|off ]
                [ gso on|off ]

关闭rx和tx
#ethtool -K rx off
#ethtool -K tx off
#ethtool -K eth0 rx off tx off tso off gso off

也可用这个命令
#ethtool -K eth0 tx off tso off

打开
#ethtool -K eth0 tx on
#ethtool -K eth0 tso on

关闭tx和rx后,再次抓包,结果显示正常。

CheckSum Offload实际上是将传输层的一部分工作交给了硬件完成,以节约系统的CPU资源。wireshark在本地抓包时看到是系统随机填充的校验和,所以会显示Checksum Offload,实际并不影响数据包的正常传输。
微软的测试表明它可以最多节约30%的CPU资源。IBM里AIX的文档则指出:对于PCI接口的千兆网卡来说还不如让400Mhz以上的CPU来计算校验和,而PCI-X的千兆网卡启用此项后可以达到线路速度,从而节约CPU资源。

详细可见: http://www.microsoft.com/whdc/device/network/taskoffload.mspx

分类: OpenSource 标签: