如何正确调教ConoHa

我是标题党哈哈哈。。。看到标题想歪的请自重。。。

前几天开了台ConoHa当冗余,延迟还凑合,北京联通网络下100+ms,当然,相比我放主站和Blog的Linode东京机房的50ms延迟还是没法比的。

结果,上周,实验室破网上不去ConoHa面板,我手贱挂了代理,然后就无法充值了,系统提示我“因无法确认客户登录信息的正确性,现停止一部分服务使用。请联系客服中心。”。。。。。。

于是,我就联系了ConoHa的客服,中文、英语、日语,在线表格提交、发电子邮件全部不琴梨我!

然后我很生气的给ConoHa的母公司GMO发了投诉信,结果,第二天,ConoHa的客服回复我了!

客服说,不让挂代理到面板充值,我说好啊,本来就支持支付宝,我挂个毛代理,那次纯粹是实验室网太烂我脑子抽了,然后客服就帮我恢复了。。。。。。

在此,我提醒其他使用ConoHa的小伙伴们,后台面板千万别挂代理登陆,哪怕偶尔网抽风,登陆不上去。

怼一台Conoha

这两天Linode老连不上,官方说因为机房被D了。。。于是,补了一台Conoha当冗余。疯狂scp拷配置文件之后呼呼呼瞎改了一发,基本部署完毕了。。。Conoha的东京机房感觉比Linode的慢一些,ping也略高一些,不过总体试用感觉还可以。现在是主站和blog扔到了Linode,大流量或者占硬盘的东西全扔到了Conoha。。。

为Postfix添加SPF过滤

这几天,莫名其妙收了一沓子垃圾邮件,以及有几个邮件用的是我自己的域名发给我的。

检查各种日志后,排除了被入侵或者拿到密码的可能性。(讲道理,虽然我自认为我vps还是很安全的,没开任何没用端口,ssh什么的还是秘钥认证+非默认端口号。。。当然,还请各位大哥手下留情。。。)

于是,怀疑是有人冒充我的smtp服务器。于是,赶紧给postfix加了spf的过滤。

过程如下:

首先上https://launchpad.net/postfix-policyd-spf-perl看了下这东西的最新版本号是2.010

然后下载过来

wget https://launchpad.net/postfix-policyd-spf-perl/trunk/release2.010/+download/postfix-policyd-spf-perl-2.010.tar.gz

然后解压

tar xzvf postfix-policyd-spf-perl-2.010.tar.gz

然后copy到postfix的目录底下

cp postfix-policyd-spf-perl-2.010/postfix-policyd-spf-perl /usr/libexec/postfix/policyd-spf-perl

接下来配置postfix的master.cf添加

policy unix - n n - 0 spawn
user=nobody argv=/usr/bin/perl /usr/libexec/postfix/policyd-spf-perl

最后,在postfix的main.cf里smtpd_recipient_restrictions =后面添加

,check_policy_service unix:private/policy-spf
systemctl restart postfix

重启一发postfix

然后,拿swaks给自己域发了一封伪造邮件,看maillog,发现

Mar 25 10:31:16 mail postfix/spawn[29477]: warning: command /usr/bin/perl exit status 2
Mar 25 10:31:16 mail postfix/smtpd[29471]: warning: premature end-of-input on private/policy-spf while reading input attribute name
Mar 25 10:31:17 mail postfix/spawn[29477]: warning: command /usr/bin/perl exit status 2
Mar 25 10:31:17 mail postfix/smtpd[29471]: warning: premature end-of-input on private/policy-spf while reading input attribute name
Mar 25 10:31:17 mail postfix/smtpd[29471]: warning: problem talking to server private/policy-spf: Connection reset by peer

什么鬼!!!

于是,cd到/usr/libexec/postfix/

看了下/usr/libexec/postfix/policyd-spf-perl权限,没错啊,有x啊。。。然后,./policyd-spf-perl出错了!

Can't locate Sys/Syslog.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./policyd-spf-perl line 31. BEGIN failed--compilation aborted at ./policyd-spf-perl line 31.

啊。。。突然想起来我不用perl的。。。于是肯定少东西,然后

yum install perl-core

然后,再

systemctl restart postfix

之后,好啦!

拿所里的dsp.ac.cn邮箱发了一封,然后结果是

Mar 25 10:39:40 mail postfix/policy-spf[29517]: Policy action=PREPEND Received-SPF: none (dsp.ac.cn: No applicable sender policy available) receiver=mail; identity=mailfrom; envelope-from="[email protected]"; helo=cstnet.cn; client-ip=159.226.251.xxx

Received-SPF: none像话么!中科院研究所的邮箱不带spf记录什么鬼。。。

然后,继续拿swaks给自己发伪造邮件,结果是

Mar 25 10:41:16 mail postfix/policy-spf[29517]: Policy action=PREPEND Received-SPF: softfail (xxx.com: Sender is not authorized by default to use '[email protected]' in 'mfrom' identity, however domain is not currently prepared for false failures (mechanism '~all' matched)) receiver=mail; identity=mailfrom; envelope-from="[email protected]"; helo=vbox.localdomain; client-ip=111.204.175.xxx

这就对了嘛~Received-SPF: softfail了~

默认是如果发现spf不对,不拒绝,只是在header里加个Received-SPF: softfail什么的,为了不漏某些邮件系统配的莫名其妙的人发来的邮件,我打算none收,softfail就拒绝掉,于是

/etc/postfix/header_checks里添加

/Received-SPF: softfail/ REJECT

然后main.cf里添加

header_checks = pcre:/etc/postfix/header_checks

之后再重启postfix,测试,一切正常

讲道理,当年我自己的邮件系统当初可是spf+dkim的。。。后来重装的时候,dkim懒了没配,至少我还带spf好不好。。。为啥好多人dns里不写spf。。。

字体跨域问题的解决

尝试把自己的收藏夹整理做一个导航站,拿Bootstrap当前端框架,然而遇到了奇怪的

“Font from origin ‘xxx’ has been blocked from loading by Cross-Origin Resource Sharing policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘xxx’ is therefore not allowed access.”

这个问题。

Google一发,原来是发现是为了安全考虑,字体跨域不被允许。然而我所有子站用的css啊js啊字体啊什么的全扔在主站了。

然后,我在有这个字体的站的VirtualHost里添加了

<IfModule mod_headers.c>
Header add Access-Control-Allow-Origin "*"
</IfModule>

然后,就好啦!

“npm WARN cannot run in wd”的解决办法

最近在使用npm -install的时候遭遇了”npm WARN cannot run in wd”这个令人挠头的问题。

Google一番后,找到了答案。

问题出在我懒,用root执行了npm -install,然而处于安全性考虑,造成了这样的问题。

解决方法也简单,要么使用普通用户安装,要么root下使用”npm install –unsafe-perm”即可。

隐藏
变装