存档

作者存档

Nginx ssl 一些问题

2017年11月2日 没有评论

官网说明:

Syntax:	ssl on | off;
Default:	
ssl off;
Context:	http, server
Enables the HTTPS protocol for the given virtual server.

It is recommended to use the ssl parameter of the listen directive instead of this directive.

这个是nginx官网对ssl的说明,官方建议采用监听在端口上设置ssl 如:listen 443 ssl;但是nginx没说为什么,下面通过测试了解下工作过程。

server {
listen 80;
listen 443;
server_name abc.x.com;
root /data/www
#index.html;
ssl on;
}

如果在server Context 内设置ssl on,且此server在http Context是第一个server,那么这个server所监听的所有端口(这里是80和443,其他端口也如此),都会绑定ssl协议,在配置之后的server context时,如果想使用80端口作为http端口使用,访问时则会报错400 Bad Request,The plain HTTP request was sent to HTTPS port。

如果不想被占用,两个办法
方法 一

http {
server {
listen 80;
server_name foo.x.com;
root /data/www
#index.html;
}

server {
listen 80;
listen 443;
server_name abc.x.com;
root /data/www
#index.html;
ssl on;
}

}

在配置ssl on;的server之前,配置一个http plain的server,这样80端口就会被绑定在http plain上了。(此方法属于奇技淫巧)
通过实际测试,nginx的端口应该是哪个协议先占用端口,之后这个端口在全局范围内就只能使用这个协议了。

方法二

server {
listen 80;
listen 443  ssl;
server_name abc.x.com;
root /data/www
#index.html;
}

通过监听listen 443 ssl; 来配置,这样就精确指定某个端口采用ssl协议了,不会影响其他端口。

这就是nginx官方为啥推荐采用listen 443 ssl;的原因吧
-简单备忘下,写的比较水

分类: Nginx使用及开发 标签:

疑难杂症-杂七杂八记录

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
阅读全文…

分类: 技术笔记 标签:

[perl]命令行命令备忘

2014年4月29日 没有评论

岁数大了,脑子不好用了,好多命令不经常用,容易忘。好记性不如烂笔头,记录备忘下。
一些引用:

http://www.ibm.com/developerworks/cn/linux/sdk/perl/l-p101/index.html

http://www.ibm.com/developerworks/cn/linux/sdk/perl/l-p102/index.html

具体使用

$ perl -MData::Dumper -e'print Dumper \@ARGV' a b -w
$VAR1 = [
          'a',
          'b',
          '-w'
        ];

$ perl -e 'print "$$\n"'
6321

-e 指定字符串以作为脚本(多个字符串迭加)执行
-M 导入模块
-I 指定目录以搜索标准位置前的模块 整洁性
-w 打开警告 -Mstrict 打开严格编译指示(pragma) 数据 -0 (这是个零)指定输入记录分隔符
-a 将数据分割成名为 @F 的数组 -F 指定分割时 -a 使用的模式(请参阅 perldoc -f split)
-i 在适当的位置编辑文件(请参阅 perldoc perlrun 以获取大量详细信息)
-c 进行perl的语法检查,但不执行perl命令.
-F 把缺省的分离号改为你想要的.例如把分离号定为非字符
-l 使用 -l 有两个效果,第一自动 chomp 输入分隔号,第二 把$/ 值付给 $\ ( 这样 print 的时候就会自动在末尾加 \n )
-n 使用 <> 将所有 @ARGV 参数当作文件来逐行运行,会将读入的内容隐式的逐一按行来遍历文件.
每一行将缺省保存在 $_ -p 和 -n 一样,但是还会打印 $_ 的内容 请注意 -p 开关和 -n 开关的使用.
当您想显式打印数据时,使用 -n 开关. -p 开关隐式地将 print $_ 语句插入到 -n 开关所产生的循环中.因此, -p 开关更适用于对文件进行的 完全处理,而 -n 开关更适用于 选择性文件处理,这样的处理只需打印特定数据. 

阅读全文…

分类: PERL/PHP技术 标签:

[译]圣诞节后黑客发动了大规模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):
主体程序能否读取的目标资源,一般就是文件系统。
阅读全文…

分类: 技术笔记 标签: