(CentOS6)無効化されたSELinuxを有効化する
さくらのVPSのCentOS6のSELinuxはデフォルトで「disabled」になっていたので、「enforcing」にした話
有効化については以下のサイトを参考にした。
必要なパッケージをインストール
# 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]メールのリレー設定あれこれ
環境
パッケージのインストール
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 .
↓テスト送信を受信したもの
↓cron実行結果がメールで届く様になった
サーバを管理している感がいい
Gmailが利用できるとディスクの容量監視とか、アプリの死活監視とか、夢が広がりますな
参考サイト
[Postfix]メールのリレー設定あれこれ
[linux][sSMTP] 自前で smtp サーバを用意せずにメール送信する
※追記
タイトルが非常に似ているサイトがあったため、タイトル修正
「リレーする」以外がほぼ一致してた(;・∀・)
CentOS6にPostgreSQL9.5をインストールする
はじめに
VPSに使い慣れたPostgreSQLをインストールしようと思い、そう言えば最新のPostgreSQLのバージョンはなんだろと調べていたら「9.5」だった。
新機能も調べてみた
個人的に今後使いそうな機能
UPSERT(ON CONFLICT句)の実装
GRINSERT文にON CONFLICT句が追加されました。これにより、今までキー値の重複等でエラーとなっていた挿入処理を更新処理へと自動的に代替して実行できるようになりました。言い換えれば、データがまだ存在しない場合は挿入、データがすでに存在する場合は更新といった切り替えを自動で実施してくれる機能です。 これまで、この仕組みを実装するにはアプリケーション側などで複雑な処理の記述が必要でしたが、この機能によりデータベース管理者は容易にこの仕組みを実現できます。 なお、これは一般的にUPSERTとして知られている機能と同様のものです。
OUPING SETS句、CUBE句、ROLLUP句の実装
GROUP BY句の拡張機能として、SQL標準(SQL99)のGROUPING SETS句、CUBE句、ROLLUP句の機能が追加されました。これにより、これまでは複数のSQL文を用いて求めなければならなかった小計値等を単独のクエリで算出できます。
これは・・・カッコいい・・・( ・∀・)
他にもいっぱいあるけど詳しくはコチラ
www.slideshare.net
というわけで、CentOS6にPostgreSQL9.5をインストールした話
PostgreSQL9.5のリポジトリの追加
http://yum.postgresql.org/ にアクセスして、リポジトリのURLを取得
コピーする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のインストールは慣れたけど、チューニング・運用管理はよくわかんないだよなー
いつかブログに書ける程度にはならなくては