もなかアイスの試食品

「とりあえずやってみたい」そんな気持ちが先走りすぎて挫折が多い私のメモ書きみたいなものです.

(CentOS6)無効化されたSELinuxを有効化する

さくらのVPSCentOS6のSELinuxはデフォルトで「disabled」になっていたので、「enforcing」にした話

有効化については以下のサイトを参考にした。

5.4. SELinux の有効化および無効化

必要なパッケージをインストール

# yum install selinux-policy-targeted selinux-policy libselinux libselinux-python libselinux-utils policycoreutils policycoreutils-python setroubleshoot setroubleshoot-server setroubleshoot-plugins

「/etc/selinux/config」の「SELINUX」を「permissive」に変更

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

サーバを再起動する(例:reboot

サーバ起動時にファイルシステムのラベル付けがされる

起動完了後に以下のコマンドを実行し、SELinux が起動時にアクセスを拒否しなかったことを確認

# grep "SELinux is preventing" /var/log/messages

自分は問題がなかったが、問題がある場合第8章 トラブルシューティング | Red Hat Enterprise Linux 7を参照すべし

拒否メッセージがない場合は、「/etc/selinux/config」の「SELINUX」を「enforcing」に変更し再起動する



この状態では、SELinuxのログの「/var/log/audit/audit.log」が出力されない

そのため、SELinuxで怒られているのかわからない

そもそも「audit.log」はauditデーモンが出力するログらしい

参考サイト

Audit について学んでみる - いますぐ実践! Linuxシステム管理 / Vol.222

auditデーモンがインストールされていない場合は以下のコマンドでインストール

# yum install audit

auditデーモンの自動起動有効化・起動

# chkconfig auditd on
# chkconfig --list auditd
# service auditd start

auditデーモンが起動したことで、「/var/log/audit/audit.log」が出力される

CentOS6、PostfixでcronのメールをGmailにリレーする

はじめに

cronのバッチ処理がちゃんと動作したかどうかをメールで送信する機能が欲しかった

メールの送信先は、Gmail

ただ、よく見る「メール系」の設定はメンドクサイイメージ。

簡単な方法を調べてみると、メールを送信するだけだと、「ssmtp」が便利らしい
※参考:[linux][sSMTP] 自前で smtp サーバを用意せずにメール送信する

でも、Gmailの認証がうまく動作しなかった・・・

2時間ほど色々調べて結局できなかったので、すでにインストールされていたpostfixで試したところすんなり(?)できた

設定・パッケージは以下のサイトを参考にした。
[Postfix]メールのリレー設定あれこれ

環境

CentOS 6.7
Postfix 2.6.6

パッケージのインストール

cyrusパッケージ群をインストールします(Gmailサーバの認証に必要・・・らしい)

# yum install cyrus-*

postfixのパッケージ、自動起動はもう既に設定されたので書きません。

Postfixの設定変更・認証ファイル作成

Postfix設定ファイル(/etc/postfix.main.cf)を編集

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt

認証に必要なアドレスとパスワードの組み合わせを「/etc/posfix/sasl_password」に保存 ファイルの中身はこんな感じ

[smtp.gmail.com]:587 Gmailメールアドレス:パスワード

以下のコマンドで、postfixが参照できるDBファイルを作成

# postmap hash:/etc/postfix/relay_password

postfixを再起動して設定を反映

# service postfix restart

root宛のメールをGmailに転送するようにする

「/etc/aliases」を編集して、最後の行に以下を追加。

root: Gmailアドレス

以下のコマンドを実行して、「/etc/aliases」の変更を反映

# newaliases

動作確認で、以下のコマンドでメールが届くかテスト

# mail -s "this is a test" root
this is test
.

↓テスト送信を受信したもの f:id:monakaice88:20160504080915p:plain

↓cron実行結果がメールで届く様になった f:id:monakaice88:20160504080917p:plain

サーバを管理している感がいい

Gmailが利用できるとディスクの容量監視とか、アプリの死活監視とか、夢が広がりますな

参考サイト

[Postfix]メールのリレー設定あれこれ
[linux][sSMTP] 自前で smtp サーバを用意せずにメール送信する

※追記
タイトルが非常に似ているサイトがあったため、タイトル修正
「リレーする」以外がほぼ一致してた(;・∀・)

CentOS6にPostgreSQL9.5をインストールする

はじめに

VPSに使い慣れたPostgreSQLをインストールしようと思い、そう言えば最新のPostgreSQLのバージョンはなんだろと調べていたら「9.5」だった。

新機能も調べてみた

個人的に今後使いそうな機能

  1. UPSERT(ON CONFLICT句)の実装

    GRINSERT文にON CONFLICT句が追加されました。これにより、今までキー値の重複等でエラーとなっていた挿入処理を更新処理へと自動的に代替して実行できるようになりました。言い換えれば、データがまだ存在しない場合は挿入、データがすでに存在する場合は更新といった切り替えを自動で実施してくれる機能です。 これまで、この仕組みを実装するにはアプリケーション側などで複雑な処理の記述が必要でしたが、この機能によりデータベース管理者は容易にこの仕組みを実現できます。 なお、これは一般的にUPSERTとして知られている機能と同様のものです。

  2. OUPING SETS句、CUBE句、ROLLUP句の実装

    GROUP BY句の拡張機能として、SQL標準(SQL99)のGROUPING SETS句、CUBE句、ROLLUP句の機能が追加されました。これにより、これまでは複数のSQL文を用いて求めなければならなかった小計値等を単独のクエリで算出できます。

これは・・・カッコいい・・・( ・∀・)

他にもいっぱいあるけど詳しくはコチラ

thinkit.co.jp

www.slideshare.net

というわけで、CentOS6にPostgreSQL9.5をインストールした話

PostgreSQL9.5のリポジトリの追加

http://yum.postgresql.org/ にアクセスして、リポジトリのURLを取得

f:id:monakaice88:20160503000743p:plain

コピーするURLを間違えないように、アーキテクチャは以下のコマンドで確認できる

# arch

以下のコマンドで、PostgreSQL9.5のリポジトリを追加

# yum localinstallhttps://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-6-x86_64/pgdg-redhat95-9.5-2.noarch.rpm

パッケージの検索

# yum list | grep postgres

表示された結果には、CentOSデフォルトの「8.4」も含まれている

デフォルトのパッケージをインストールしないように、「base」「update」リポジトリ(?)の「postgresql」を無視するようにする

# vim /etc/yum.repos.d/CentOS-Base.repo

[base]セクションと[updares]セクションに以下の設定を追加する

exclude=postgres*

再度パッケージの検索をやると、デフォルトのパッケージは表示されなくなっている

PostgreSQL9.5のインストール・自動起動有効化

PostgreSQL9.5をインストールする。

# yum install postgresql95 postgresql95-server

PostgreSQLの初期化・起動

# cd /var/lib/pgsql/9.5/
# su postgres
# /usr/pgsql-9.5/bin/initdb -U postgres data/

※initdbコマンドにパスが通っていないので、以下のコマンドでinidbコマンドを探した

# yum provides *initdb

以下のコマンドでPostgreSQL9.5の自動起動を有効化する

# chkconfig postgresql-9.5 on
# chkconfig --list postgresql-9.5
postgresql-9.5 0:off 1:off 2:on  3:on  4:on  5:on  6:off
# service postgresql-9.5 start

以上でインストールは終わり

PostgreSQLのインストールは慣れたけど、チューニング・運用管理はよくわかんないだよなー

いつかブログに書ける程度にはならなくては