tkm_71のブログ

自分のための備考録みたいなものです。

Twitterに自分のサイトがスパム判定されてしまいました…

タイトルの通りですが…

ConoHaでサーバをレンタルして、一日。
Nodejsで作ったTwitter連携アプリをwebに公開してみよう!と意気込んで、初レンタル鯖を手に入れ
ついにアプリ公開だ!!ってテンション高めで作業をしていたら、自分のVPS上で起動しているアプリケーションで
Twitteroauth認証ページに飛ぼうとすると、以下のようなエラーが…

Error: The given URL is considered malware

さすがに英語できない僕でも理解できました…Twitterマルウェアだと見なされた?!って。。。

とりあえず検索かけると、どうやらTwitterに間違ってスパム判定されてしまいました〜解除してください!って連絡すればいいとのこと。

全くめんどくさいことをしてくれますよ…

しょうがないので、以下の説明を読み、

Unsafe links on Twitter | Twitter Help Center
f:id:tkm_71:20160322184955p:plain

文章内の「こちら」をクリックし

以下の二番目「Twitterがスパムと判断したため、リンクをツイートできません。」にチェックを入れて、チケットの作成をしました。
f:id:tkm_71:20160322185041p:plain

すると、少ししてから登録したメールアドレス宛てに、以下の様なメール。
f:id:tkm_71:20160322185137p:plain

不自然な日本語だけど、「Twitterでは安全性を高めるために、自動でスパムっぽいサイトを検出して、ツイートできないようにしてるよ。とりあえず報告してもらった、サイトはあとで内容チェックして対応するね!」みたいな感じらしい。

これで、スパムじゃないと判定されればきっと解除されるはずだ。

はたして、ここからどれくらい待てばスパムじゃないと判断されて解除されるのだろうか…もしくはやっぱりこれスパム!!って判定されて解除されないとか??

まあ待つしかないですかね。

ちなみに、自分の場合はOauthの認証ページに飛べなくて気がついたけど、自分のサイトのURLをツイートしようとすると、エラーがでてツイートできなくなってましたね…

めんどくさいけど、まあしょうがないです。

きっと、デバッグ中にアクセスしすぎたのが原因ですかね。

もっとしっかり、ローカルでデバッグするようにすればよかったと反省。

追記 (2016/03/26)

スパム判定が解除されました

結論から言うとスパム判定は解除されていまでは、通常どおりにURLをTwitterにツイートすることもできるようになりました。

ただ、この記事の追記以前に書いた方法は何やら必要なかったようです。

原因はspamhaus.orgにスパムリスト登録されてしまっていた

The Spamhaus Projectというのは「ワールドワイドのスパム対策で非常に評判の高いブロックリスト」らしい。
(ここより引用 => Spamhausとは - はてなキーワード

ようするに、今回はこいつに自分のドメインがスパムとして、リストに登録されていたのが原因のようだ。
そのため、Twitter側にいくら報告しても何の返事もないし解決しないわけです。

とりあえず今回スパム判定されてしまっていたのを、どう解決したか順番に書きます。
所要時間は作業で10分、解除待ちで30分くらいでしょうかね。

step.1 spamhaus.orgに自分のドメインがリスト登録されているか調べる

https://www.spamhaus.org/query/domain/sample.com」のように、自分のドメインを入力してアクセス。
そして以下のように「sample.com is listed in the DBL」となっていたら、きっとスパムリストに入れられている、くそめ!

f:id:tkm_71:20160326180504p:plain

step.2 リストから削除してくださいとお願いします

step1で、自分のドメインをクリックすると、以下のような画面になるので、「DBL removal form」をクリック
f:id:tkm_71:20160326180533p:plain

step.3 ファームにメールアドレスなどを入力して、解除してくれ申請します

とりあえずフォームに必要事項書いて、送信します。
※メールアドレスはgmailなどのフリーのやつはダメらしい。しょうがないので、ezweb.ne.jpのものを使用した。

step.4 入力したメールアドレスに送られてきたメールをチェック

入力したメールアドレスにメールが届くので中身を確認し、中身に記載されているURLを踏むと、解除完了。
以下のような画面が出ればOKだとおもわれ。

f:id:tkm_71:20160326180911p:plain

step.5 休憩

step4までできっとスパムリストからの解除ができているが、すぐには反映されないためちょっとの間休憩しましょう。
自分の場合は、20分ほど放置してソシャゲ(クラロワを数戦)していたら、Twitterに自分のドメインでURLを書き込めるし、連携アプリケーションのログイン(oauth認証)も通るようになっていた。

一件落着である。


終わりに

長かった…初めTwitterのヘルプセンターに連絡していたが、そっちではなくspamhaus側で対応しなくてはいけなかったらしい。ここに気が付かなければTwitterヘルプセンターから連絡こないな〜とより無駄な時間を過ごしていただろう。
はぁー、Twitterがspamhausなるものを利用していることを知らなかった。外部のスパムリストを利用してスパムからユーザを保護しようとしているのですね。いやー本当に、サーバ借りて初日でスパム登録されるからびっくりしちゃいました。


参考

とりあえず今回この記事によって全てが解決したので、本当にありがとうございました、と言いたいです。

[1] ドメインがスパムリストに登録されてしまいTwitterと連携できなくなった時の対処法 - Qiita

CentOS7で自動起動設定を行う

centOS6までは、mongoDBやnginxなどをOS起動時に自動で起動するようにするには「chkconfig」を利用していたようですが、
centOS7から「systemctl」になった模様。

CentOS6までは
$ sudo chkconfig mongod on
CentOS7
//自動起動を設定
$ systemctl enable nginx.service
//自動起動を解除
$ systemctl disable nginx.service

らしいです。

※よくわからないけど、CentOS7でもmongoDBは以下でできた。

chkconfig  mongod  on

全部が全部、systemctlってわけではないのかなー

centos 7 + nginx + nodejsのnginxの設定メモ

nginxの設定を以下にメモ。

設定ファイルの作成

/etc/nginx/conf.d/default.confを同じ階層にコピーして、sample.confみたいにする。

/etc/nginx/conf.d/sample.conf

upstream node-sampleapp {
    server localhost:3000;
}

server {
    listen       80;
    server_name  www.aaa.bbb.ccc;

    charset utf-8;
    access_log /var/log/nginx/access-nodeApp.log main;
    error_log /var/log/nginx/error-nodeApp.log;

    proxy_redirect      off;
    proxy_set_header Host                   $host;
    proxy_set_header X-Real-IP              $remote_addr;
    proxy_set_header X-Forwarded-Host       $host;
    proxy_set_header X-Forwarded-Server     $host;
    proxy_set_header X-Forwarded-For        $proxy_add_x_forwarded_for;

    location / {
         proxy_pass http://node-sampleapp/;
    }


    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

これで、www.aaa.bbb.cccにアクセスするだけで、www.aaa.bbb.ccc:3000などを指定する必要がなくなる!

注意
//これは☓
proxy_pass node-sampleapp/;

//これでOK
proxy_pass http://node-sampleapp/;

ここを気をつけないと以下のエラーがでてしまうようだ。しっかり、「http://」を付けましょう。

nginx: [emerg] invalid URL prefix in /etc/nginx/conf.d/node-app.conf:21
nginx: configuration file /etc/nginx/nginx.conf test failed

CentOS 7 にemacs24.3をインストール

以下を参考に行いました
[1]CentOS 6.4 に Emacs 24.3 をインストールする | Jaxx2104.info

こちらも簡単に利用したコマンドのみメモ

事前準備

sudo yum -y install gcc make ncurses-devel

emacs24.3を入れる

//ダウンロード(バージョンは適宜設定)
$ wget http://ftp.jaist.ac.jp/pub/GNU/emacs/emacs-24.3.tar.gz

//解答
$ tar xvf emacs-24.3.tar.gz

//移動
$ cd emacs-24.3

//makeするために
$ ./configure

//makeします!
$ make
$ sudo make install

これで使えました。

元からemacs23などが入っている場合は、プロファイルの設定が必要かもしれないです。

Emacsでsudoをして、ファイルを開く

$ sudo emacs test.txt

とすると、怒られた。

とりあえず以下で対応

//emacsを開いてから、Ctrl + Fでファイルを開こうとする.
//そして、ファイルのパスをいれるミニバッファが開くので
Find file: /sudo::/etc/.../.../test.txt

パスワードを聞かれるので、sudoするときに使うパスワードぶち込んでsudoで開けた。

簡単に書くと
「/sudo::「ファイルパス」」

これで書き込み権限ないって言われるやつも編集できそう。

参考
tramp - Emacsでsudoしつつファイルを開く方法 · DQNEO起業日記

ConoHaでVPSを借りて、SSH接続などの初期設定

先日ConohaでVPSを借りて、公開鍵認証でログインできるようになどしようとしたのですが、なかなかうまく行かず地味に時間がかかってしまった…
とりあえずやったことだけまとめておく。

今回やったこと

以下をやりました。

  • root以外のユーザを作る
  • SSH接続(公開鍵認証で接続)
  • パスワード認証をできなくする
  • rootからログインできないようにする
  • SSH接続するportを22から変更

以上は、以下の記事を参考にさせて頂きました。ありがとうございました!
[1] ConohaにVPSを設置して、SSHログイン、ポート番号変更、rootログイン禁止までを30分で! - Qiita
[2] ヾ(o゚ω゚o)ノ゙ConoHaちゃんに作業用ユーザ追加してssh接続するやで! - Qiita


まず下準備
  • Conohaコントロールパネルで、IPアドレスを調べておく
  • Conohaコントロールパネルからコンソールを起動しておく

(コンソールでやる必要は別にないと思いますよ)



一旦パスワード認証でSSH接続してみる

以下を打ち込んで、接続確認。

$ ssh root@aaa.bbb.ccc.ddd -p 22
//パスワード聞かれるので、サーバ構築時に設定した9桁以上(だったはず)のパスワードを入れる

とりあえずログインできた。


root以外のユーザを作る

galileo」というガリレオさんのユーザを作ることにします。

$ adduser galileo
$ passwd galileo
$ gpasswd -a galileo wheel

ユーザ作れた!

$ su galileo

これで作ったユーザでログイン。

[galileo@aaa-bbb-ccc-ddd ~]$

のようになっていれば、ログインできてるので、とりあえず以下でsudoできるかなどを確認

$ sudo echo "galileo now!!"

//rootになるか確認
$su
//rootになれるの確認したら戻ってきてね
$su galileo

これでとりあえずユーザできたのでよいよい。


SSH接続(公開鍵認証で接続)

次は公開鍵認証でSSHできるようにします。

$ sudo vi /etc/ssh/sshd_config 

sshd_configを編集します。

そこそこ文字数多いので、viでうまいこと検索かけて以下のようにする。

//#←コメントついてたら消して、noならyesに
RSAAuthentication yes

//#←コメントついてたら消して、noならyesに
PubkeyAuthentication yes

//元々これになってたのでOK
AuthorizedKeysFile      .ssh/authorized_keys

終わったらこれで再起動

$ sudo service sshd restart

以上で公開鍵認証は使える設定になった気がするので、あとは秘密鍵と公開鍵を用意する。
このへんあまり知らないけど、基本的にはローカルPCで作って、公開鍵をVPS上に置くのが普通らしい?

ということで、一旦ローカルPCに戻ります。自分の場合はMacなので、Terminalを開く。

そして以下にディレクトリを作る。あるなら大丈夫だと思う。

cd ~/
mkdir .ssh

こんな感じにできた「/Users/galileo/.ssh」作った。
そしたら、.sshに移動して、公開鍵と秘密鍵を作る。

$ cd ~/.ssh
$ ssh-keygen -t rsa -b 2048

ファイル名や、パスフレーズを聞かれるのでそのへんは適当に。

すると以下のようなのができる。

$ ls 
id_rsa		id_rsa.pub

.pubが公開鍵で、付いてないほうが秘密鍵
公開鍵はVPS上においてくる。

以下で、公開鍵をVPS上においてきます。
と、その前にまたコンソールに戻り、以下で新しく作ったユーザのホームディレクトリに.sshディレクトリを作成。

//以下は新しく作ったroot以外の自分用のユーザで行った
$ cd ~/           //  これで/home/galileoに移動
$ mkdir .ssh
$ chmod 700 .ssh
$ cd .ssh
$ pwd            //  /home/galileo/.sshになってればOK

あとは「/home/galileo/.ssh」にローカル(Mac)から公開鍵を設置するだけ。

ローカル(Mac)に戻ります。
そして以下を実行。

$ sudo scp id_rsa.pub galileo@aaa.bbb.ccc.ddd:/home/galileo/.ssh

これで、VPS上に公開鍵を置けたので、再度VPSで作業します。(コンソールに戻る)

ここで、少し前に以下のコマンドで「AuthorizedKeysFile」を「.ssh/authorized_keys」としているので、
ファイル名を変更します。

============再掲=============

$ sudo vi /etc/ssh/sshd_config 
//元々これになってたのでOK
AuthorizedKeysFile      .ssh/authorized_keys

=============================

$ mv id_rsa.pub authorized_keys
$ chmod 600 authorized_keys

これで以下のコマンド叩けば、新しく作ったユーザでパスワード認証ではなく、公開鍵認証でSSHできるはず!

$ ssh galileo@aaa.bbb.ccc.ddd -p 22
パスワード認証をできなくする

変える場所は一箇所。

$ sudo vi /etc/ssh/sshd_config 

をもう一度開いて、

//#←コメントついてたら消して、yesならnoに
PasswordAuthentication no
$ sudo service sshd restart
rootからログインできないようにする

パスワード認証できなくする、とほぼおなじ感じに。
変える場所は一箇所。

$ sudo vi /etc/ssh/sshd_config 

をもう一度開いて、

//#←コメントついてたら消して、yesならnoに
PermitRootLogin no 
$ sudo service sshd restart
SSH接続するportを22から変更
$ sudo yum install iptables-services

iptablesをインストール。

$ sudo vi /etc/sysconfig/iptables

を開いて、

//以下の22の部分を
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

//こんな感じに使いたいポート番号に変更。
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10022 -j ACCEPT
//iptablesを再起動
$ sudo service iptables restart

もう一点変更します。
何度も編集していますが、再度以下を編集!

$ sudo vi /etc/ssh/sshd_config 
//「Port」で検索して、22になっている所を変更。
// #が付いてコメントになっていたらそれを取る。
Port 10022
$ sudo service sshd restart
$ ssh galileo@aaa.bbb.ccc.ddd -p 10022

で接続できた!!

接続を簡単にしましょう

ここまででだいたいOKだけど、ローカル(Mac)から接続を楽にするために、
「~/.ssh/config」を書きます。

ローカルPCに戻ったら、

「~/.ssh/config」

#ConoHa
Host conoha
  HostName aaa.bbb.ccc.ddd
    User galileo
	Port 10022
	IdentityFile ~/.ssh/id_rsa

を書いて保存しておく。

これで、ローカルPC(Mac)から

$ ssh conoha

とやれば、galileoで(公開鍵認証で)簡単にSSH接続できました!


ふー疲れた

とりあえず、VPSを借りてみたのでこれから勉強にもなるので、色々やっていきたいですな。


上にも書きましたが、本当に参考にさせて頂いてわかりやすかったので、以下の記事を再掲。
[1] ConohaにVPSを設置して、SSHログイン、ポート番号変更、rootログイン禁止までを30分で! - Qiita
[2] ヾ(o゚ω゚o)ノ゙ConoHaちゃんに作業用ユーザ追加してssh接続するやで! - Qiita