CentOS


poderosaのssh2接続で使用していた秘密鍵をtermiusで使う

PoderosaをSSH2 形式で利用していて、PC に置いてある秘密鍵を iphone のターミナルでも再利用しようとコピペしたが使えない。

id_rsa というファイル名でこんな感じの内容だった
------------------------------------------------

---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
Comment:
faejpg@gjewrewf:affewgwgrgfsdfdsfdsfsdffa
ejpg@gjewrewf:affewgwgrgfsdfdsfdsfsdffaej
pg@gjewrewf:affewgwgrgfsdfdsfdsfsdffaejpg
@gjewrewf:affewgwgrgfsdfdsfdsfsdffaejpg@g
jewrewf:affewgwgrgfsdfdsfdsfsdffaejpg@gjew
rewf:affewgwgrgfsdfdsfdsfsdf
---- END SSH2 ENCRYPTED PRIVATE KEY ----
------------------------------------------------

これはssh.com形式(SECSH)という形式の鍵で termius で使用するには OpenSSH形式への変換が必要らしい
認証鍵の形式についてはこちらを参考
「SSHの公開鍵ってなに?」の「認証鍵の形式」の章

ちなみにサーバーにアップロードされている公開キーは ssh-rsa~ から始まる一行の物でOpenSSH 形式だった。
------------------------------------------------
cat /home/ユーザー名/.ssh/authorized_keys
------------------------------------------------

ssh.com形式(SECSH)をOpenSSH形式へ鍵の形式変換

変換を試みる

ssh-keygen コマンドがあるか確認
------------------------------
which ssh-keygen
------------------------------

変換を実施
------------------------------
# ssh-keygen -i -f id_rsa > new_id_rsa
unsupported cipher 3des-cbc
decode blob failed.
------------------------------

失敗した。

別の方法で変換を試みる。

参考ページの方法で変換する↓
PoderosaのSSH2の秘密鍵をOpenSSHで使う

秘密鍵の変換は puttygen.exe を利用するとできるらしい。

1.ダウンロードしたputtygen.exe をダブルクリックで起動。
2. [Conversions]→[Import key] でPoderosaで作成した秘密鍵をインポート
3. [Conversions]→[Export OpenSSH key] で秘密鍵をエクスポート

出来上がった秘密鍵を iphone の termius に itunes のファイル共有から移動させて接続できた。

サーバーへの接続要求が失敗した数の味方

サーバーへの接続要求が失敗した数の味方

コマンド
-----------------------------------------
# netstat -s | grep Tcp: -A 10
-----------------------------------------

netstat -s は、システム起動後からのネットワークの統計値を表示するためコマンド

-A 10 はgrep のオプションで、十行うしろも表示

結果
-----------------------------------------
Tcp:
15707 active connections openings
1356123 passive connection openings
2425 failed connection attempts
33948 connection resets received
187 connections established
32977847 segments received
34238933 segments send out
298015 segments retransmited
14 bad segments received.
26367 resets sent
-----------------------------------------

failed connection attempts が失敗した接続の数

サーバーがつながらない。webページが表示されないときに確認すること。

1.ターミナルでサーバーにログインできるか。

poderosaを使用。サーバーにログインできるのであればサーバー自体は問題ないの判断。

2.HTTPサーバー(apache)は起動しているか確認。

---------------------------------
service httpd status
---------------------------------

もしくは

---------------------------------
/etc/init.d/httpd status
---------------------------------
/etc/init.dディレクトリ → デーモンを起動するためのファイル(起動スクリプト = rcスクリプト)が置いてある
rc は run command

結果(起動している場合)
---------------------------------
httpd (pid 1759) を実行中...
---------------------------------

2.HTTPサーバー(apache)が起動しているか確認。

---------------------------------
# service httpd status
---------------------------------

もしくは

---------------------------------
# /etc/init.d/httpd status
---------------------------------
/etc/init.dディレクトリ → デーモンを起動するためのファイル(起動スクリプト = rcスクリプト)が置いてある
rc は run command

結果(起動している場合)
---------------------------------
httpd (pid 1759) を実行中...
---------------------------------

3.mysql が起動しているか確認。
---------------------------------
# service mysqld status
---------------------------------

もしくは

---------------------------------
# /etc/init.d/mysqld status
---------------------------------

結果(起動している場合)
---------------------------------
mysqld (pid 1634) を実行中...
---------------------------------

apache は起動しているが mysql が落ちている時に、ページにアクセスすると php のエラーが出る

-----------------------------------------------------------
Warning: mysql_set_charset(): No such file or directory in /var/www/libs/~~~~

Warning: mysql_set_charset(): A link to the server could not be established in /var/www/~~~~~
ConnectError!DB Error: connect failed
-----------------------------------------------------------

この場合は、mysqld を再起動などする
-----------------------------------------------------------
sudo /etc/init.d/mysqld restart
-----------------------------------------------------------

4.webサービスに繋がらない原因はアクセス過多の場合が多いので現在のhttpdのプロセス数を確認する

-----------------------------------------------------------
ps aux |grep httpd |wc -l
65
-----------------------------------------------------------

この数字が http.cnf の ServerLimit を超えるとサーバーが停止する。

-----------------------------------------------------------

StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000

-----------------------------------------------------------

エラーログにもエラーが出る。

エラーログを調べる
-----------------------------------------------------------
cat /var/log/httpd/error_log
-----------------------------------------------------------

エラーログ一部抜粋
------------------------------------------------------------------------------
[Fri Aug 27 01:28:32 2021] [error] server reached MaxClients setting, consider raising the MaxClients setting
------------------------------------------------------------------------------

5.ネットワークの状態も確認する
-----------------------------------------------------------
# netstat -tpn
-----------------------------------------------------------

netstat で同じipアドレスからのたくさんの重複アクセスを確認したので、対策として mod_evasiveをインストールした
その時の記事
ただしあまり効果が感じられない。インストールしてもサーバーは止まるし、ipを遮断したらメールが来る設定にしているが遮断条件に満たなくてメールがあまり来ない。

ipアドレス別でサーバーに接続している数を調べる
-----------------------------------------------------------
# netstat -tan | awk '{print $5}' | cut -d : -f1 | sort -n | uniq -c | sort -n
-----------------------------------------------------------

-----------------------------------------------------------
37 66.249.68.××
42 157.55.39.××
42 40.77.167.××
43 157.55.39.××
45 207.46.13.××
51 66.249.68.××
2256 207.××.××.××
-----------------------------------------------------------
207.××.××.×× が異常な接続数なので ipアドレスを解析してクローラーでなければ ipアドレスを拒否する

netstat で大量のCLOSE_WAITを確認。その時に行った対策のメモ

サーバーがつながらない。CLOSE_WAITが大量発生

【さくらのVPS】WEBページが表示されない

ある日突然WEBページが表示されなくなった。
表示されなくなったサイトとは別のサイトのお問い合わせメールから知る。

アクセスするが確かに表示されない。2つ契約しているVPSサーバーのもう片方は問題なく表示できる。表示できないサイトと同じサーバーで運営している別サイトも表示できず。

さくらのVPSサーバーのコントロールパネルにはログイン可能。
特に問題も当たらず。

さくらのコールセンターに問い合わせる。

サーバーには問題ないとの答え。

ただ、ポート80(http)と443(https)が不通で通信ができてないとのこと。

問題を解決するにはポートを開放するか、apache の状態を確認しろと助言をもらう。

ターミナルからサーバーにアクセス。

apacheの状態を確認

//コマンド
----------------------------
/etc/init.d/httpd status
----------------------------

//結果
----------------------------
httpd status unknown due to insufficient privileges.
----------------------------

権限がないという事で root に変更して確認

//結果
----------------------------
httpd は停止しています。
----------------------------

やっぱり動いてなかった。

//apache を起動
----------------------------
service httpd start
----------------------------

//結果
----------------------------
httpd を起動中
----------------------------

無事WEBページを表示できた。

mailコマンドでメールを見る

mailコマンドでメールを見る

ターミナルにログインして
---------------------------------------
mail
---------------------------------------

ローカルに受信したメールのタイトルや日時などの情報の一覧が出る。

受信したメールが多くて一画面に収まらない場合

次のページへ移動
---------------------------------------
z
---------------------------------------

前のページへ戻る
---------------------------------------
z-
---------------------------------------

メール内容を表示
---------------------------------------
p 999(メール番号を指定)
---------------------------------------

お問い合わせフォームからメールが届かなくなった

運営しているサイトのお問い合わせフォームからメールが届かなくなった。

さくらのVPSのサーバー名(hostname)を変更した後からメールが届いていない。

---------------------------------------------------
localhost.localdomain → 運営サイトのドメイン(~~.info)
---------------------------------------------------

ターミナルから maillog を見ると以下の記述

---------------------------------------------------
dsn=5.1.1, status=bounced (unknown user: "renraku")
---------------------------------------------------

ネットで調べると /etc/postfix/main.cf の設定を変えればいいとあるので変更
(参考: https://qiita.com/myzkyy/items/cfb6b1f95eb6af6261ec)

mydestination はローカルに送る送り先を指定するディレクティブ
---------------------------------------------------
mydestination = $myhostname, localhost.$mydomain, localhost

↓↓↓↓↓↓↓

mydestination =
---------------------------------------------------

postfix を再起動。

---------------------------------------------------
/etc/init.d/postfix restart
---------------------------------------------------

メールを再送して確認。OK。

サーバーを再起動したら mysql に繋がらなくなった。

サーバーを再起動したら mysql に繋がらなくなった。

サイトにアクセスしたときに表示された PHP のエラーメッセージ
-----------------------------------------------------------
Warning: mysql_set_charset(): No such file or directory in /var/www/libs/~~~~

Warning: mysql_set_charset(): A link to the server could not be established in /var/www/~~~~~
ConnectError!DB Error: connect failed
-----------------------------------------------------------

ターミナルから mysql にログインすると次のエラー
-----------------------------------------------------------
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
-----------------------------------------------------------

socketファイルというものが無いのが原因のよう。

ターミナルから mysql を再起動するとsocketファイルが作られるらしいので、再起動して解決。
-----------------------------------------------------------
sudo /etc/init.d/mysqld restart
-----------------------------------------------------------

参考サイト

https://qiita.com/kanohisa/items/564035efd74d9c75bdcb

さくらvpsのwebサイトにstripeを導入

前提
php で composer が使える状態である
composer の導入はこちら

1.ComposerでStripeライブラリをインストールする

2.ファイルの設置

メインで参考にしたページ

https://qiita.com/p_s_m_t/items/a69dfbc75804fe86ad9c

ファイル内でライブラリをロードするときの注意点

ComposerでStripeライブラリをインストールした場合
-------------------------------------------------
require_once('/stripe_test/vendor/autoload.php');
-------------------------------------------------

Composerを使わず、手動でStripeライブラリをダウンロードしてサーバーに置いた場合
-------------------------------------------------
require_once('/stripe_test/stripe-php/init.php');
-------------------------------------------------
デフォルトのファイル名が違うので間違えないように

【さくらのVPS】mb_send_mail でメールが送れない

php の mb_send_mail 関数で一部のメールが送れない。
yahoo メール宛てには送れるのに、独自メールが送れない。

--------------------------------------------------
環境
送信元:さくらのVPS WEBサーバーより mb_send_mail を利用
--------------------------------------------------

mb_send_mail 関数自体はエラーを吐かず、正常に終了する。

ターミナルでメールエラーを確認
--------------------------------------------------
cd /var/log/maillog
--------------------------------------------------

エラーっぽい箇所の抜粋
--------------------------------------------------
May 29 12:14:51 localhost postfix/smtp[32237]: 70ED82C028C: to=, relay=○○.sakura.ne.jp[49.212.235.97]:25, delay=0.08, delays=0.02/0/0.04/0.02, dsn=5.1.8, status=bounced (host ○○.sakura.ne.jp[49.212.235.97] said: 553 5.1.8 ... Domain of sender address apache@localhost.localdomain does not exist (in reply to MAIL FROM command))
--------------------------------------------------

検索して見つけた対処法
設定してなかった mb_send_mail 第五引数に "-fプロバイダメールアドレス" を指定。
第五引数はエラーがあった場合にメールを送信するメールアドレス。
これで送信できるようになった。

ちなみに別で契約しているもう一つのさくらVPSでは 第五引数がなくても送信できている。サーバーの設定を変えることでも問題解決できそうだ。

参考

https://okwave.jp/qa/q4822148.html

https://b-risk.jp/blog/2013/01/php_mb_send_mail/

追記
ezweb を使っている方から仮登録メールが届かないという連絡が問い合わせフォームからあった。

SPF の設定が何のが原因か?

----------------------------------------
"v=spf1 +ip4:web公開サーバーのipアドレス +mx ~all"
----------------------------------------

参考

https://qiita.com/ryounagaoka/items/931081c74b5c7a9b2bff

spfの確認

http://mxtoolbox.com/spf.aspx

追記2
gmail 宛てに送ったら迷惑メールに振り分けられたら

gmail から メールヘッダーを確認。

Received-SPF の部分が softfail になっていたらそれが原因。
ip6 対応のサーバーから送信した場合、SPF の設定に ip6 を追加する必要がある。

参考

https://www.nalabo.net/blog/2013/06/18/148

さくらのvpsにおいてphpでメールが送れない

php の mb_send_mail 関数でメールが送れない。他のサーバーでは送れるのでスクリプトのエラーではない。

ターミナルから送ろうとするとエラーが出た。

こう打つ
--------------------------------------------------------------------
[root@localhost ~]# echo "test" | /usr/sbin/sendmail -t -i ○○@yahoo.co.jp
--------------------------------------------------------------------

//↓出たエラー
--------------------------------------------------------------------
sendmail: fatal: parameter inet_interfaces: no local interface found for ::1
--------------------------------------------------------------------

↓このページのようにしたらできた。

https://qiita.com/cs_sonar/items/706a9204cba1a8e99cb1

postfix はメールを送るためのソフト。

1 / 3123