月: 2017年11月

WordPressの点検

WordPressの脆弱性を悪用されて、エックスサーバーからアクセス制限をかけられた話

↑のブログを読んで細かな対策は都度行っていたけど脆弱性の点検はしていなかったので点検してみる。

ワードプレスをURLで検査してサイトの脆弱性を調べましょう

結果は

[要緊急対応]readme.htmlがワードプレスのバージョンを漏洩しています
といくつかの[注意]ヘッダー出力(情報漏洩の可能性)でした。

「readme.html」を削除してとりあえず対策は完了。

ただヘッダー出力の内容が気に食わなかったのでこちらを参考にセキュリティ関係の設定をファイルにまとめるように変更。

CentOS7のApacheの設定

バージョン確認

# httpd -v
Server version: Apache/2.4.6 (CentOS)

設定の追加

# vim /etc/httpd/conf.d/security.conf

# バージョン情報の隠蔽
ServerTokens Prod
Header unset X-Powered-By
# サーバ署名(バージョンとサーバ名)のOFF
ServerSignature Off
# httpoxy 対策
RequestHeader unset Proxy
# クリックジャッキング対策
Header append X-Frame-Options SAMEORIGIN
# XSS対策
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options nosniff
# XST対策
TraceEnable Off

チェックとリスタート

# httpd -t
# systemctl restart httpd.service

もう一度チェックすると新しく設定したHeaderが表示されたけど
この内容なら大丈夫なはず。

WordPressは本当に立てるのは簡単だけど、
メンテナンスをちゃんとしないと危険。。

今後は定期的にチェックしていく。

Dockerのゲストコンテナ内からホストのsendmailを使ってメールを送信する

Dockerのゲストコンテナ内からホストのsendmailを使ってメールを送信する

※※※開発環境用の設定なので公開サーバでこの設定は行わない。※※※

■やりたいこと
ホストのCentOS7のsendmailを使ってコンテナ内からメールを送りたい
そのままの状態だと接続に失敗している

■ホストの構成
VagrantにCentOS7をインストールしてそこにDockerを入れている

■ゲスト側からホストのIPを把握する

# ip route
default via 172.18.0.1 dev eth0 
172.18.0.0/16 dev eth0  proto kernel  scope link  src 172.18.0.2 

この場合ホストのIPは「172.18.0.1」

■ホスト側の最初の状態

# netstat -an | grep 25
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN

ローカル127.0.0.1からのSMTPだけ受け付けている状態
ホスト側のsendmailでローカル以外からもSMTPを受け付けるようにする必要がある

■設定ファイルをコピーして、ローカルだけに制限している行を無効化する

# cp /etc/mail/sendmail.mc /etc/mail/sendmail.mc.org
# vim /etc/mail/sendmail.mc
# diff /etc/mail/sendmail.mc.org /etc/mail/sendmail.mc
118c118
< DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
---
> dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

■「sendmail.mc」を「sendmail.cf」へ変換する

# m4 sendmail.mc > sendmail.cf
-bash: m4: command not found

入ってなかった。。

■ツールが入っていないのでインストール

# yum -y install sendmail-cf

これで「m4」が入る

■もう一度変換

# cd /etc/mail/
# m4 sendmail.mc > sendmail.cf

■リレーを許可するIPを指定する

# cp /etc/mail/access /etc/mail/access_org
# vim /etc/mail/access
# cat /etc/mail/access
Connect:localhost.localdomain           RELAY
Connect:localhost                       RELAY
Connect:127.0.0.1                       RELAY
Connect:XXX.XXX.XXX.XXX                 RELAY <- ゲストIP追加 172.17.0.0など

■再起動

# systemctl restart sendmail.service

■確認

# netstat -an | grep 25
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN

あとはfirewallなど適切に設定すればOK