CentOS6 グローバルIPをコマンドラインで確認するコマンド

今まではVNCビューアを立ち上げ、ブラウザを起動して確認していたグローバルIP。前々からもっと簡単にコマンドラインで確認する方法あるんだろうなぁ・・と思いつつもさほど苦労はしていなかったので、調べもしなかった。けど、これは覚えておくと便利そう。自分用備忘録

コマンドラインにて

#curl inet-ip.info

と打つと自分のグローバルIPアドレスが返される。

CentOS6 fail2banでWordPressのコメントスパム対策

あまりにも激しいコメントスパムが来たのでiptableで海外のサイトをシャットアウトしてしばらく平穏な日々を過ごしていたけど、今度は検索サイトのロボットをことごとく遮断していたのでインデックスから干されてしまったwww

っで、別の対策を取ることにした。

今回はCentOS6で使える「fail2ban」というツールを導入してみた。

EPEL リポジトリを利用して、「yum」でインストールします。

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
# yum -y install fail2ban

参考サイト

ニフティクラウド ユーザーブログ」様の
fail2banでサービスを死守せよ

※「fail2ban」はiptalbeを利用してブロック動作を行うのでiptableが設定済みで稼働していることが前提となる。

インストールが完了したら

#vi /etc/fail2ban/jail.conf

[apache-wpcm]
enabled = true
filter = apache-wpcm
action = iptables-multiport[name=apache-wpcm, port="http,https", protocol=tcp]
logpath = /var/log/httpd/access_log
findtime = 60
bantime = 166400
maxretry = 2

をapache関連の下あたりに追記

#vi /etc/fail2ban/filter.d/apache-wpcm.conf

[Definition]
failregex = <HOST>.*] "POST /wp-comments-post.php
ignoreregex =

として新しいファイルを作成

最初うまく動かなかったのはワードプレスをルートのサイトをしていれば上記の設定で問題ないのですが、サブフォルダ等にインストールしている場合は

failregex = <HOST>.*] "POST /ワードプレスのサブフォルダ/wp-comments-post.php

というような設定になるので要注意!これはPOSTしてきたときのapacheのログ(/var/log/httpd/access_log)を確認してパスを合わせてやることが必須。

「apache-wpcm.conf(wp-comments-post.phpにPOSTする)」の動作を
「apache-wpcm(60秒間で2回行ったら2日間バン)」という動きになる。

参考サイト
たけけんのサーバー勉強日記」様の
まさかそこが間違っていたとは

確認方法

#iptables -L

とするとバンされたipがずらずらと表示される。

iptablesでWordPressの海外コメントスパムを拒否する方法

こんな過疎サイトにも海外からのコメントスパムがご熱心にやってくる。最初はそれほどでもなかったけど、ここ数日少し桁外れのアクセスをしてくるようになってしまった。おかげで人気記事がえらいことになってしまった・・・orz

まぁ、ほぼ自分しか閲覧しない自分用の覚書サイトなのでサーバーがダウンしたところでそれほど影響はないんだけど、どんどんエスカレートして、サーバーに過剰な負荷がかかって、ネットワークに悪影響を及ぼして、最悪な場合はネットが遅い、うまくつながらないなど症状が出てしまう恐れがあるので、対策を打つことにした。

パソコン鳥のブログ」様の

iptablesサンプル」と

iptables - 国内からの接続のみ許可して海外からの接続を遮断する

を参考にさせてもらいました。

自分用覚書

  1. 「root」フォルダに「setip.sh」としてシェルスクリプトを保存。ほぼコピペでOK。デフォルトではSSHのみになっているので、「メールサーバの場合:pop3,pop3s,iamp4,imap4s許可」と「#メールサーバの場合:サブミッションポート許可」、「#Webサーバの場合:http,https許可」の部分をコメントアウトをはずして有効にする。
  2. 同様に「jp_only.sh」を「root」フォルダに保存。これはそのままコピペでOK。
  3. 「setip.sh」、「jp_only.sh」を実行。
  4. #/etc/sysconfig/iptables として微調整。このままではLANからもはじかれてしまうので「-A ACCEPT_FILTER -s XXX.XXX.XXX/20 -j ACCEPT」とローカルIPを許可フィルターを設定している部分の一番上(どこでもいい)に記述。
  5. #/etc/init.d/iptabes save としてiptablesの設定を保存
  6. #/etc/init.d/iptables restart 念のため再起動

おかげでやっと静かになり、いつもの過疎サイトに戻ることができました。

2013年12月9日追記

静かになってとてもよかったんだけど、ありとあらゆるロボットまで排除してしまい、検索エンジンのインデックスから干されてしまった(涙)

何か別の方法を考えなくては・・・。

CentOS6でPostgreSQLの初期起動時にUse "service postgresql initdb" to initialize the cluster first.と表示されてPostgreSQLが起動できないときの対処法

答えは画面に表示されています。そのまんま

postgres01

#service postgresql initdb

としてデータベースを初期化してから

#/etc/init.d/postgresql start

としてやると無事起動します。

何度か通ったことのある道のような気がするけど
覚書になかったので書き留めておく。

CentOS6でのcrontabの設定方法

CentOS5のときはコマンドラインから

#crontab -e

として設定していたが

CentOS6での設定方法の備忘録

#vi /etc/crontab

とすると

cron01

非常に分かりやすく工夫されたコンフィグファイルが開きます。

左から 分 時 日 月 曜日等 コマンド

となり、画像の設定例では

5時1分にユーザー「root」で「reboot」コマンドを実行という設定をしています。