中国にwordpressを作ってみたDDosされた

全体の流れです。

 

WordPressを立ち上げて、
まだドメインは認証が降りていないのでIPで表示の状態ですが

2日でDDos攻撃されました!

仕事が早いっす!中国の職人!

 

とりあえず.htaccessに以下を追記

#for Dos Attack
RewriteRule ^xmlrpc\.php$ “http\:\/\/0\.0\.0\.0\/” [R=301,L]

<Files wp-login.php>
Order deny,allow
Deny from all
Allow from アクセスする自分のIPアドレス
</Files>

 

あと、Wordpressのディスカッションで、すべてのチェックを外しました。

 

コンソール開いたらこんなんなってました

 

リンクを開いていくと

Englishにしていても読めない!

でも、ざっくり言って「DDos攻撃されたよ~」って感じの内容だったので、良くあるWordpressのDDos対策をしました。

 

しばし様子見…

 


WAFは買いたくないなぁ…

https://jp.alibabacloud.com/product/waf?spm=a21mg.p38356.a3.2.e8093ccfwFUGx3#pricing

 

こう思うと…ロリポップとかさくらインターネットとかエックスサーバーってスゲェ!

全部コミコミだもんなぁ…(><)

その前にクラウドでWPやるなって話なのかw

 

アリババクラウドWordPressでメールとContactForm7で困った

ざっくり言って、手っ取り早くするには

自分のメールアドレスを使用します。

 

メールで使うらしい25番ポートらしいものを使用するのには、メールで申し込みが必要ということと、
そこまでしなきゃいけないってことは相当悪いことに使われる可能性がとても高いことらしいのでアリババクラウドでは行いません。

ECS で SMTP(25番ポート)を使用する際の注意事項

 

1.SMTPで送信する

「WP Mail SMTP」というプラグインを使用します。

一般的にはGmailを使用するように言われていますが
Gmailの真価がとても速く、セキュリティ関連の強化が目まぐるしく行われているのと、セキュリティを開放するのが大変めんどくさくて、しかも3か月くらいすると今まであったノウハウサイトの内容と変わるのでオススメしません。

 

Other SMTPで自分のメールを使用できます。

 

2.Contact Form7でエラーが出る

メールの送信をする際に送信元に先ほどのメールアドレスを使用したいけどできません。

なので、このメールに返信させないというようにしちゃいましょう。

 

 

サイトのドメインに属していないメールアドレスが送信元に設定されています。

というメッセージがでて、保存できなくなるので、この部分は
「no-reply@サイトのドメイン」にします。

 

 

コンタクトフォームのメール設定でお客様向けの確認用自動送信として送る場合にはメッセージ部分に「自動送信で返信できません」を書けばOKです。

 

最近の大手通販とか、問い合わせフォームとかは基本こういう感じですよね。

 

 

アリババクラウド:php.iniの内容を変える

phpでショートコードを使いたかったので修正しました。

 

エディタの起動

vi /etc/php5/apache2/php.ini

 

該当場所の修正

viの「/」で「short_opne_tag」を検索すると楽です

short_opne_tag Off

 ↓

short_opne_tag On

 

Apache再起動

/etc/init.d/apache2 restart

AliyunにWordPressをインストールする(ここでゴール!)

全体の流れです。

 

ここまでくれば、もう簡単です!

楽っくだ楽だ!極楽だ~!(^^)

1.DB作成

phpmyadminでさくっとDBを作成しちゃいます

 

2.sshを使ってwpを取ってくる

wget http://wordpress.org/latest.tar.gz

 

3.解凍する

tar xzvf latest.tar.gz

 

4.wpconfigを修正する

ディレクトリの移動
cd ~/wordpress

設定ファイルをバックアップ
cp wp-config-sample.php wp-config.php

修正します
vi wp-config.php

 

よくあるWordpressの設定と同じです。

 define(‘DB_NAME’, ‘さっき作ったDB名’); 
 define(‘DB_USER’, ‘MySQLのユーザーID’); 
 define(‘DB_PASSWORD’, ‘MySQLのパスワード’); 

MySQLのユーザー名、パスワードはこちらで作ったものです。

 

5.Apacheの設定

vi /etc/apache2/apache2.conf

 

154行めくらいの(viの/コマンドで検索したほうがいい)
Options FollowSymLinks

Options Indexes FollowSymLinks MultiViews

すぐ近くの
AllowOverride None

AllowOverride All

 

Apache を再起動
/etc/init.d/apache2 restart

 

6.WordPressのフォルダを移動します

mv ~/wordpress /var/www/html/

 

権利を修正
chown -R www-data.www-data /var/www/html/wordpress

 

7.起動を確認

サイトを開いてみる。この時はURLに/wordpress/があることに注意!

http://ドメイン/wordpress/wp-admin/

これが出ればOK!

大体「データベース接続エラー」が出ると思うので、その時は
vi wp-config.php
で修正します。

 

8.第一階層に移動

現在は/wordpress/フォルダの中に入っています…
/wordpress/の中のファイルを第一階層に持っていきます

mv /var/www/html/wordpress/* /var/www/html/

 

9.古いファイルを整理します

第一階層に「index.html」みたいのがあったら「index_def.html」などにリネームします
ftpソフトを使うとわかりやすいです。

info.php」とか「imchk.php」も要らなければ削除

「index.html」はApacheのインスト初期のファイルです

 

10.あとは通常のWordpressと同じです!

あとは通常のWordpressと同じ感じでインストール&セッティングします
http://ドメイン/

ここからWPサイトが始まります!

 

お疲れ様!!

 

補足:転送できない?引越しの場合は

下書きサイトにあるものを本番環境に持ってくるとか、ゴリゴリにカスタマイズする場合にはパーミッションでフォルダが作れるようにしてあげます

chmod 777 themes
chmod 777 plugins

 

アリババクラウドを使う理由デメリットまとめ

全体の流れです。

どうしてアリババクラウドを使わなきゃいけないのか…?

ここでいうアリババクラウドは中国版の本家アリババクラウド(aliyun)を指します。
SBアリババクラウド(日本のSoftBankのアリババクラウド)ではありません

Aliyunのメリット

1.中国向けのサイト作成に便利

中国にサーバーがあるので完璧に中国のインターネットに認証されますが、cnドメインを取るのには中国国籍の人がいないとダメなのでハードルが高いです。

優しくて知識豊富で日本語英語ができる中国人のツテがあればチャレンジしてみるのも良いです。

 

2.中国の法律に適している

ドメインの公開について身分証明などが必要です。
他の国ではこのあたりに細かな点はサポートしてくれませんが、Aliyunなら細かく正しく解説できるまでサポートしてくれます。

 

3.日本との時差が短い

日本の日中に問い合わせをして、その日の日中に返事がくるのはありがたいです!
他の国だと日中に問い合わせて、夜間に返事が来て、また日中に返信して…のタイムラグがきついので…

でも、内容によっては翌日マタギになることとかPM11時に返事が来たりします。
逆に夜に返事がくると…お疲れ様です…って思います…(><)

 

4.サポートがしっかりしている

英語は通じます。

英語がカタコトでも画像UPロードができるのでわからない部分の画面コピーとか、そこに画像ソフトなどで矢印を引いて「here」とか「This I can not 」とか書けば通じます。

返信は英文ですが、もともと専門用語なのでなんとかわかります。

ちなみに私の英語力は中学生レベルですが、なんとかなりました…

 

5.セキュリティがしっかりしている

Aliyunは簡単にログインできません。ログインのたびにスマホ認証をしないといけないという日本の銀行よりもしっかりした顧客管理です。

でもまぁ、開設したサイトのセキュリティがグダグダだとダメですがね…

 

 

デメリット

1.中国向けサイトを作らないなら使わなくてもいい

実際にcnアカウントが取れるならいいですが、cnアカウントが取れていないならメリットは少ないです。

またcomアカウントでも中国にアクセスできるといいますが、それは一部のサイトです。認可が必要な場合もあるそうです。

 

2.日本アリババクラウドを使うなら他のクラウドでもいい

中国Aliyunを使う前の練習というのなら最初の1年間クーポンを使って勉強できるので良いです。サポートも管理画面も日本語なので安心です。

でもマニュアルは日本語に翻訳されていますが、日本版アリババクラウドで使用できない機能が多数あります。

あわせてVNCは日本版アリババクラウドでも日本語キーボードが使えません。

別に日本語を入力しないしVNCなら英語で使うからいいやと思いますが

「:」が入力できません!

コロンが入力できません!

ssh使えばいいんですけどね。

 

3.中国語が少し読めないとキツイ

Aliyunサイトのコンソール画面では「English」表記が可能です。

でも半分は中国語のままだったり、ピンインになっていたりです。

学習量としては「楽しい中国語」とかの本で半分くらいまで読んでおけば大丈夫だと思います。

ちなみに私は25年前に週1半年間だけ町内の中国語講座に行ったくらいで
発音はできないけど文法・日時・期間・場所くらいはわかるレベルです。

 

アリババクラウドでインスタンスVNCのパスワードを忘れた時

全体の流れについての目次はコチラです。

インスタンスのパスワード

SSHで接続するときとかに使うパスワードです。
最初は設定されていないのか、隠れているので設定が必要です。

 

「コンソール」「インスタンスリスト」で該当インスタンスにチェックを付けます。

下のボタンで「パスワードのリセット」が有効になるのでクリック

 

ふわっとした画面が出るので新しいパスワードを2回入力します。

 

さっきのインスタンスリストで「管理」をクリック

 

右上の「再起動」をクリック

 

メッセージが出るけど気にしないで「OK」

 

次にVNCにログインをしたときにVNCパスワードのほかに黒い画面でIDとパスワードが聞かれます。

ID→root (Linuxの場合Root、Windowsの場合はAdministrator )
パスワード→さっき設定したパスワード(入力しても画面に出ない)

でVNCが使えます。

 

また、SSHでの接続の際にも、このパスワードが必要になります。

 

 

 

VNCのパスワード

VNCにアクセスしたときに一瞬だけパスワードが出ます。

結構重要にもかかわらず、結構スルーして後に忘れてしまうので再設定必須です。

この画面な…

 

「キャンセル」を押して「管理端末のパスワード変更」

 

パスワードを2回入力してOKです。

 

アリババクラウドUbuntu14:phpで使うImageMagickとImagickインストール

全体の流れです。

 

普通は入れなくてもOKです。

WordPressのゴリゴリカスタマイズをしているので、ちょっと使用したいので入れます。

 

参考サイト

http://web.showjin.me/ubuntu_imagemagick.html

完璧な説明サイトですが、ページが消えた時が怖いので類似内容で説明させていただきます。

 

1.ImageMagickのインストール

sudo aptitude update
sudo aptitude install imagemagick libmagick9-dev

 

 

2.ImageMagickのインストール

sudo aptitude install pecl
sudo aptitude install -f dh-make-php php5-imagick php-pear php5-memcache

 

 

3.Apacheの設定

ファイルを開きます。

sudo vim /etc/php5/apache2/conf.d/imagick.ini

もし、このファイルが無かったら新規作成モードで何も書いていない状態です。

# configuration for php imagick module
extension=imagick.so

この2行があるか確認。
新規作成だったり、なかったら書き込みます。

 

再起動する

sudo /etc/init.d/apache2 restart

 

 

4.認識しているかのチェック

phpインストで作ったファイルを読んでみます。

ブラウザで
ドメイン/info.php
または
インターネットIP/info.php

 

でphpの状況確認をして
「imagick」欄の
「imagick-module」がenabledになっていればOK

 

5.動作確認してみる

参考サイト:https://qiita.com/hamkiti/items/548e0494dce774268d48

完璧なサイトですが、こちらも無くなったときが怖いので転載させていただきます。

次のようなソースを書いたphpのファイルを作成してサーバーにUPします。

四角が出たらOK、imagick not installed :(が出たら失敗です。

ファイルをUPロードした場合にはパーミッションを755にしてください。

もし真っ黒の画面になるようだったら文字コードを修正してUPしてみて下さい。

 

<?php
//テスト出力用コード
function imagickTest(){

    if (!extension_loaded('imagick')){
        echo 'imagick not installed :(';
        exit;
    }


    $canvas = new Imagick();

    $canvas->newImage(256, 128, "light green");

    //外側の黒枠線
    $canvas->borderImage('black', 1, 1);

    //文字記入
    $draw = new ImagickDraw();
    $draw->setFontSize(16);
    $draw->setGravity(Imagick::GRAVITY_CENTER);
    $draw->annotation(0, 0, 'imagick inside :)');
    $canvas->drawImage($draw);

    $canvas->setImageFormat('jpg');

    //画像を出力
    header("Content-Type: image/jpg");
    echo $canvas;

    $canvas->destroy();
}
//実行
imagickTest();
?>

アリババクラウドUbuntu:mysql

全体の流れです。

 

1.インストール

apt-get -y install mysql-server

ここでパスワード入力になります(ユーザー名はroot固定みたい)

apt-get -y install php5-mysql

 

2.動作確認

mysql -u root -p

パスワードを聞かれるので入力

 

mysql>

となればOK!

 

「Ctrl + z」で終わらせます。

 

 

 

補足:MySQLの完全削除

sudo apt-get remove –purge mysql-server* mysql-common
sudo apt-get autoremove –purge
sudo rm -r /etc/mysql
sudo rm -r /var/lib/mysql

 

 

参考サイト

https://jp.alibabacloud.com/getting-started/projects/deploy-and-host-a-wordpress-website

アリババクラウドWordPressサイト:phpMyadmin

全体の流れです。

 

phpMyadminは無くてもいいのですが、Wordpressをゴリゴリカスタマイズする場合には合った方が便利なので入れます。

特に普通のWordpressの使い方をするなら入れなくても大丈夫。

1.インストール

Teratermなどで

apt-get -y install php-mbstring

apt-get -y install php-gettext

sudo apt install phpmyadmin

 

mb-stringとgettextはオプションみたいなものなのでエラーが出ても平気っぽい。

「インストールするか?Y/n」と聞かれるので「y」

 

サーバーを選ぶのでapache2

 

 

よくわからないけど「Yes」

 

パスワードを入れる

 

 

2.設定

 

vi /etc/phpmyadmin/apache.conf

8行目あたりの隙間に入力
require ip 今使っているパソコンのIPアドレス

ここで確認できます→IPアドレス検索

 

次にapacheにつなげます

(変な所で改行しちゃってる…↓conf-available/phpmyadmin.conf です)

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf

sudo a2enconf phpmyadmin

sudo service apache2 reload

 

(会社のIPと自宅のIP…などとIPを追加した場合には
 sudo a2enconf phpmyadmin
 sudo service apache2 reload
 の2つを実行すれば良い)

3.動作確認

 

http://ドメイン名(またはIP)/phpmyadmin/

で画面が出ます。

ユーザー名はroot(固定みたい…変えたいなぁ…)

 

パスワードはさっき設定した奴

 

 

参考サイト

http://helog.jp/linux/phpmyadmin/

https://www.yokoweb.net/2017/01/29/ubuntu-phpmyadmin-install/

 

 

IP制御について

 

vi /etc/phpmyadmin/apache.conf

でIPアドレスを固定にしました。

スマホでWi-fiを切って別のIPからアクセスするとアクセスできません。

いいですね!

 

 

 

アリババクラウドWordPressサイト:FTPインスト

全体の流れです。

 

WordPressでオリジナルテーマを使うなら絶対に合った方が便利なFTP接続!

サーバーの方でFTPを使えるようにします。

Teratarmでコマンドを入れていきます。
VNCでは「:」が入力できないので、必ずSSHのソフトを使用します。

当分黒い画面なので写真は割愛します。

参考サイト

https://bistro.site/?p=1123
色々沢山ありますが、ここがアリババクラウドUbuntuで使用するのに一番近い情報でした。

 

 

1.インストールコマンド

sudo apt-get install -y vsftpd

 

2.vsftpdの設定

vi /etc/vsftpd.conf

次の各所がコメントアウトなら#を外して有効にします。
そもそもこの行が無い場合には追記します。

write_enable=YES

ascii_upload_enable=YES

ascii_download_enable=YES

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list

ls_recurse_enable=YES

local_umask=022

 

↓多分ここから下は追加行になると思います

local_root=/var/www/html

seccomp_sandbox=NO

allow_writeable_chroot=YES ※この項目だけはAliyun独特に必須

pasv_promiscuous=YES

pasv_address=インターネットIP

force_dot_files=YES ※.haccessを見ることが出来るようにします

 

~~~ 参考viコマンド ~~~~~~~~~

Esc / *** Enter ⇒ 文字列検索***について

Esc n ⇒ 次の検索

Esc o Enter ⇒ 最後の行に追加モード

Esc i ⇒ Insert修正モード

Esc : w q Enter ⇒ 保存して終了

Esc Ctrl+z ⇒ 強制終了

~~~~~~~~~~~~~~~~~~~~~

補足:上の階層からFTPでいじりたいときは

local_root=/var/www/html

 ↓

local_root=/

にします

3.ユーザーの登録

①最初にユーザー名とパスワードを決めておきます。

 

②vsftpdにユーザーファイルを作ります

vi /etc/vsftpd.chroot_list

単純に使用するユーザー名を1行ずつ書いていきます。

 

③ユーザーの登録

sudo adduser ユーザー名

※useraddではありませんので注意!

 

パスワードを入力させてくるので、その時に任意のパスワードを入れます。

そのあとプロフィールとか聞いてくるのでEnterで無視。

5回くらい無視し続けて[Y/n]が出たらY

 

4.いったん動作確認

①再起動します。

initctl restart vsftpd

↓こんな感じにエラーっぽくないのが出ればOK

 vsftpd start/running, process 6682 

 

②vsftpdが動いているか確認します

telnet localhost 21

 

↓と出ればOK。

Trying ::1…
Trying 127.0.0.1
Connected to localhost
Escape character is ‘^]’.
220 (vsFTPd 3.0.2)

 

出ないなら何が間違っているのかわからないので、
いっそのことアンインストした方が早いかもしれません。

 

5.ローカルのFTPソフトの設定

FileZillaを使用しています。

 

 

つながりました。

でも、リモートサイトが/www/html/じゃない…?

細かいことは気にしない。まぁいいや。

 

もし、つながらなかったら「アクティブ」モードとか「パッシブ」モードを変更してみてください。合わせて

アリババクラウドaliyunでWordPressのサイトを作る:セキュリティルールの設定

も試してみて下さい。

 

6.vsftpdでアップロードできない!アップロードできるようにする

おそらくダウンロードはすんなりいくはずです。

アップロードをするとエラーがでます。
ファイル名の変更も削除もできません。

「レスポンス: 553 Could not create file.レスポンス: 553  

Could not create file.エラー: 致命的なファイル転送エラー」

単純にパーミッションで書き込みの設定がされていないからです。

「chmod」コマンドでアクセスを可能にします。

 

cd /var/

cd www

chmod 777 html

 

参考:https://eng-entrance.com/linux-command-chmod#chmod-3

 

 

 

 

補足:よく使うコマンド

 

■vsftpdの再起動
initctl restart vsftpd

 vsftpd start/running, process 6682 

 

 

■動作確認

telnet localhost 21

Trying ::1…
Trying 127.0.0.1
Connected to localhost
Escape character is ‘^]’.
220 (vsFTPd 3.0.2)

 

と表示されれば正常

終わらせ方はCtrl + ] です

telnet>を抜けるには Ctrl + zです

 

 

■vsftpdのアンインストール&削除コマンド
apt-get purge vsftpd

 

 

■ユーザーパスワードの変更

passwd ユーザー名

パスワードを1回目入力、確認されるのでもう一回入力。

 

 

■ユーザーの削除

sudo userdel -r ユーザー名