存档

‘技术笔记’ 分类的存档

疑难杂症-杂七杂八记录

2015年6月11日 没有评论

最近公司事情特别多(顺便吐个槽,来新公司1年,干了之前公司3年的活,累啊),遇到了很多纠结且没头没脑的事情,起初感觉很灵异,但是通过跟踪排查,所有事情都是有原因的,最重要的是坚持,只要坚持不懈的研究问题,问题肯定是会解决的,而且收获的经验也是非常宝贵的。下面是典型问题的记录:
阅读全文…

分类: 技术笔记 标签:

R620服务器idrac偶尔不可用问题解决方法 【转】

2015年4月7日 没有评论

R620服务器中,比较经常出现idrac无法连接,或者连接用户数超限的问题,有几个方法可以尝试下:
1、 升级idrac卡的firmware
下载并升级最新的1.57.57版本的firmware:http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=XH6FX
该版本的bug fix中提到过一点:
– Fix for issues that cause iDRAC7 sluggish responsiveness after a prolonged period of time (approx. 45-100 days, depending on the usage). In some cases, if the iDRAC is not reset, the iDRAC may become unresponsive and requires a server AC Power on reset. This issue was introduced in firmware release 1.50.50 and fixed in 1.56.55.

该版本解决了idrac启动45-100天后可能出现无法响应的问题。

2、 杀掉超时连接会话
有2个方法:
a. 重启bmc卡
执行命令: ipmitool mc reset cold 即可,将bmc卡重启后,所有的session都会重置释放。

b. 杀掉超时会话
前提是,允许bmc卡通过网络远程连接
ipmitool lan set 1 access on

或者在下面这个地方启用
iDRAC 设置 => 服务 => VNC 服务器 => 超时

或者在idrac卡的下面这个地方设置:
iDRAC 设置 => 网络 => IPMI 设置 => 启用 LAN 上的 IPMI

同时,建议把web server及ssh服务的timeout值适当调低:
iDRAC 设置 => 服务 => Web Server => 超时
iDRAC 设置 => 服务 => SSH => 超时
iDRAC 设置 => 服务 => Telnet => 超时
iDRAC 设置 => 服务 => VNC 服务器 => 超时

打开了ipmi lan 管理,可以通过ipmitool命令远程重置idrac连接数和远程重启服务器;
命令如下:
ipmitool -H mgr_ip -U user -P password mc reset cold 重启idrac
ipmitool -H mgr_ip -U user -P password power status 查看服务器电源状态
(status, on, off, cycle, reset, diag, soft)

分类: 技术笔记 标签:

pptp搭建的vpn代理,mtu过小不能访问韩国网站

2014年9月10日 1 条评论

最近公司海外组同事需要在韩国做运营,之前都是外面购买的vpn,不太稳定,特提出让我们帮忙解决。我们在海外机器上搭建了最简单的pptp vpn,在使用时fb tw google都能正常访问,但是韩国www.naver.com网站不能访问,不播vpn可以在国内访问www.naver.com。但是运营同事需要播着vpn。。。

排查过程:
通过简单排查,播vpn前后www.naver.com域名解析到的IP是不同的,可以访问的IP是在美国,不可以访问的IP是在韩国,说明做了DNS VIEW。不过之后就没有思路了。
只能tcpdump抓包看了,不同console分别抓包
tcpdump -i eth1 port 80
tcpdump -i ppp1

终于发现有unreachable的包
unreachable - need to frag (mtu 1396), length 556
19:02:39.732905 IP 1.1.1.1.stone-design-1 > 202.131.30.12.http: Flags [S], seq 720418897, win 64240, options [mss 1360,nop,nop

[root@static-ip- ~]# netstat -i
Kernel Interface table
Iface       MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500   0  3143805      0      0      0  1797371      0      0      0 BMRU
lo        16436   0        0      0      0      0        0      0      0      0 LRU
ppp0       1396   0      119      0      0      0       80      0      0      0 MOPRU
tun0       1500   0     5367      0      0      0     6301      0      0      0 MOPRU
tun1       1500   0        0      0      0      0        0      0      0      0 MOPRU

阅读全文…

分类: 技术笔记 标签:

NRPE: Unable to read output with visudo

2014年9月10日 没有评论

通过nrpe远程调用脚本执行MegaCli检查服务器Raid卡状态,为了让nrpe用户可以执行程序,配置了visudo及nrpe.cfg如下
visudo
Cmnd_Alias NAGIOSCMD = /usr/local/nagios/libexec/checkraid
nagios ALL=(ALL) NOPASSWD:NAGIOSCMD
————
nrpe.cfg
command[check_raid]=sudo /opt/nagios/libexec/checkraid
阅读全文…

分类: 技术笔记 标签:

Safari不能认证GoDaddy SSL Certificates 问题

2014年8月14日 没有评论

背景:
最近ios在升级7.0后,用户如果需要下载plist文件安装软件的时候,ios系统要求plist文件必须采用https方式下载。所以第三方如果想为越狱用户提供服务时,也必须采用https方式提供下载plist。

购买证书,搭建https服务器:
证书是在godaddy购买,购买细节流程不在详述,最终购买的是通配符的证书 Standard Wildcard SSL,如*.domain.com,支持信用卡和支付宝,时价是1892元/年,业务使用比较急,先自掏腰包,走的支付宝付款。
阅读全文…

分类: 技术笔记 标签:

[redis]线上大数据量redis主从一例

2014年6月18日 1 条评论

背景:
master redis 数据13GB,由于持久化没有关闭,在进行持久化时不响应服务请求,导致业务异常。现关闭持久化,所以需要做一台slave作为备份且业务可以进行read操作。
redis版本2.6.16。
过程:
redis主从配置相对简单,在slave配置中加入slaveof ip port 即可,但是在实际操作中遇到了问题,解决过程如下,备忘之:
master 13G数据
现象:
slave不停的去master上同步数据,每次都取一份完整13G rdb文件,master过两分钟就会dump一份完整的rdb文件,send给slave,导致负载上涨。
slave 在把tmp rdb文件加载到内存中后,我连接master上set key,然后在slave上不能get到,说明同步没有成功,而且发现上述过程一直持续。
由于持续同步数据,导致网络流量和cpu都有异常
redis1

redis2
阅读全文…

分类: 技术笔记 标签:

[译]圣诞节后黑客发动了大规模NTP-Reflection Attacks

2014年2月12日 1 条评论

圣诞节后黑客发动了大规模NTP-Reflection Attacks(反射攻击)。

过去几周,Symantec发现了在互联网上NTP 反射攻击的显著增加。
NTP_Spike_0

NTP 是网络时间协议,他是一个相对模糊晦涩的协议,运行在UDP 123端口,用于服务器间基于网络的时间同步。如果你曾经在PC或者服务器上设置过时间服务器,是的,那就会有NTP连接。

NTP 是一个设置即忘记的协议,之所以这么说,是因为大部分管理员配置过一次后就不再担心他了。不幸的是,上面的情况也代表不经常升级的意思,以至于易受到反射攻击的利用。

NTP 反射攻击是如何工作的?

类似于DNS放大攻击,攻击者发送一个伪造的小包,请求会返回一个非常大的数据包到目标IP地址(这个地址是伪造的,一般是受害者)

这个场景中,攻击者利用monlist命令,monlist是一个远程命令,基于老版本的NTP,请求者发送此命令,会返回连到该NTP服务器的最后600台主机列表。对于攻击者来说,monlist查询是一个伟大的嗅探工具。通常这个命令是用于帮助建立一个本地网络的概况,然而,作为DDOS工具,他是再好不过了,因为一个小的查询会被返回一个兆字节的流量。

[root@server ~]# ntpdc -c monlist [hostname]

remote address          port local address      count m ver code avgint  lstint
===============================================================================
localhost.localdomain  53949 127.0.0.1              1 7 2      0      0       0
tock.usshc.com           123 xxx.xxx.xxx.xxx         1 4 4    5d0      0      53
198.52.198.248           123 xxx.xxx.xxx.xxx         1 4 4    5d0      0      54
rook.slash31.com         123 xxx.xxx.xxx.xxx       1 4 4    5d0      0      55
eightyeight.xmission.c   123 xxx.xxx.xxx.xxx         1 4 4    5d0      0      56

大部分扫描工具,比如NMAP,集成了monlist模块进行网络信息的收集,许多其他的工具,包括嗅探工具,都集成了monlist DDOS模块。

如何保护你的服务器?最简单的办法是升级NTP 到4.2.7,移除了monlist命令实体。如果不能选择升级,那需要在启动NTP进程前,设置NTP配置文件,启用noquery选项。这将禁止模式6,7的查询包访问(这里面包括monlist)

通过禁用monlist,或者升级NTP可以使monlist命令不再被包括其中,这不仅保护了你的网络,使你远离不想要的嗅探,而且也避免了在不经意间被DDOS攻击所利用。

翻译自 symantec hackers blog

分类: 技术笔记 标签:

[SELinux] 浅析

2014年2月11日 没有评论

背景:
在搭建kerberos时,ss服务器,系统启动时启的sshd进程,不能读取root的.k5login,普通用户的可以,但是把进程kill掉,再手动启动后,就可以读取root的.k5login。此问题是由于selinux导致,比较暴力的方法是直接disable掉selinux(大多数工程师都是这么干的)。
但是selinux在发行版中已经有很长时间了,所以说明他还是有价值的,一般对0day漏洞很用意义,所以看趋势还是会使用起来的,下面是对selinux的简单学习。
SELinux 是通过MAC(Mandatory Access Control, MAC) 的方式来管理程序,他控制的主体是程序进程,目标则是该程序进程能否读取的档案文件资源。

如何工作:
主体 (Subject):
SELinux 主要想要管理的就是程序,因此你可以將『主体』跟 process 划上等号;

目标 (Object):
主体程序能否读取的目标资源,一般就是文件系统。
阅读全文…

分类: 技术笔记 标签:

systemtap监控文件读写

2014年2月10日 没有评论

背景:最近在研究搭建kerberos,想搞清楚ss服务器上的.k5login具体被谁调用,是直接被sshd进程调用,还是通过krb5的相关lib调用。

systemtap可以跟踪系统调用,系统需要安装对应内核版本的debuginfo包。
我的内核版本:2.6.32-279.19.1.el6.x86_64
debuginfo包在http://debuginfo.centos.org/6/x86_64/这里下载。
wget http://debuginfo.centos.org/6/x86_64/kernel-debuginfo-common-x86_64-2.6.32-279.19.1.el6.x86_64.rpm
wget http://debuginfo.centos.org/6/x86_64/kernel-debuginfo-2.6.32-279.19.1.el6.x86_64.rpm
下载之后安装。

测试systemtap工作是否正常
stap -ve 'probe begin { log("hello world") exit() }'
以下为正常时打印内容:
Pass 1: parsed user script and 83 library script(s) using 194428virt/23084res/2976shr kb, in 120usr/10sys/135real ms.
Pass 2: analyzed script: 1 probe(s), 2 function(s), 0 embed(s), 0 global(s) using 194956virt/23804res/3204shr kb, in 0usr/0sys/4real ms.
Pass 3: translated to C into "/tmp/stapSmCG7L/stap_1777e216df712bb34ffec7ff846df815_884_src.c" using 197044virt/24208res/3564shr kb, in 0usr/0sys/0real ms.
Pass 4: compiled C into "stap_1777e216df712bb34ffec7ff846df815_884.ko" in 1260usr/230sys/1567real ms.
Pass 5: starting run.
hello world
Pass 5: run completed in 10usr/10sys/301real ms.

打印上面内容后,说明可以正常工作。

阅读全文…

分类: 技术笔记 标签:

一些命令备忘

2014年1月10日 没有评论

perldoc:
perldoc perltoc # Perl 文档目录,了解其概要
perldoc -f # 查询 Perl 内置函数
perldoc -v # 查询 Perl 预定义变量
perldoc -q # 搜索 Perl FAQ
perldoc -m # 查看 Perl 模块
perldoc -l # 显示 Perl 模块路径
perldoc -u # 查看 Pod 源文件
perldoc -t # 无格式输出

rpm:

yum:

sed ‘/a/,/b/ s/^/#/’ file.conf 模式匹配,ab之间包括ab,行首加#

分类: 技术笔记 标签: