openSUSE

openSUSE
Slackware系のLinuxディストリビューション。
今まではver13.xの様に番号標記だったが、少し前にLeap 42.xの様な標記に変更された。
CentOS、Debianと同じく、initからsystemdに移行されている。

journald

参考:man journald
 
OSをsystemdで管理している都合上、ログの書き出しもjournald経由となっている。
しかし、デフォルトではjournald経由のログがsyslogへ書き出されない為、
kernelログやmailログを他のサーバへ転送する事が出来ない。
 
転送を行うようにするには "/etc/systemd/journald.conf" を下記の様に書き換える。
オプションについてはman pagesを確認すること。

# vi /etc/systemd/journald.conf
---
[Journal]
RateLimitInterval=1s
RateLimitBurst=4096
ForwardToSyslog=yes
MaxLevelSyslog=debug


rsyslog

従来はsystemdのログを直接syslogに出力する場合は設定変更が必要だったが、
rsyslogのバージョンによってはログ出力用のモジュールが準備されている。
対応バージョンを利用している場合 "/etc/rsyslog.conf" に下記を追記する。

# vi /etc/rsyslog.conf
---
$ModLoad imjournal.so


SuSEfirewall2

openSUSEではファイアウォールとしてSuSEfirewall2が用意されている。
普通はyastコマンド経由でFWポリシーを作り込むのだが、
他ディストリビューションで採用されているiptablesコマンドで設定をする事も出来る。
しかし設定済ポリシーの保存先が、/etc/sysconfig/iptables ではないので注意する。
 
SuSEfirewall2の場合、大まかなFW動作の設定、yast経由で設定したFWポリシーは、
/etc/sysconfig/SuSEfirewall2に保存される。

  • 外部ファイルの読込み
    サーバを運用していると、FWポリシーを自動生成しておき中央から一括管理したい場合がある。
    その場合、生成済みの外部ファイルからFWポリシーを読み込ませるケースがあるのだが、
    SuSEfirewall2の場合、iptables-restore以外にもSuSEfirewall2の関数から読み込ませる事が出来る。
 設定方法
  • IPv6ルールの設定
    IPv6通信を許可する時は、iptablesポリシーをカスタムルールを直接設定する。
    TCP:80の受信トラフィックを許可する設定は次の様になる。
    ・外部I/F
    FW_SERVICES_ACCEPT_EXT="fe80::ffff:1111:2222:3333/128,tcp,80"
     
    ・DMZ領域
    FW_SERVICES_ACCEPT_DMZ="fe80::ffff:1111:2222:3333/128,tcp,80"
     
    ・内部I/F
    FW_SERVICES_ACCEPT_INT="fe80::ffff:1111:2222:3333/128,tcp,80"

Tunnel

openSUSEでトンネルを掘る場合、NICの設定書式に従ってコンフィグを作成する。
設定テンプレートは"/etc/sysconfig/network/efcfg.template"にあるので適宜確認する。
 

  1. GREトンネル
    ・ローカル(eth0)IP:10.0.0.1
    ・リモート(対向)IP:172.16.0.1
    ・トンネル(gre0)IP:192.168.0.1/24
     
    # vi ifcfg-gre0
    ---
    STARTMODE='onboot'
    BOOTPROTO='static'
    TUNNEL='gre'
    TUNNEL_LOCAL_IPADDR='10.0.0.1'
    TUNNEL_REMOTE_IPADDR='172.16.0.1'
    IPADDR='192.168.0.1/24'
    TUNNEL_TTL='64'
    MTU=''
     
  2. IPIPトンネル
    ・ローカル(eth0)IP:10.0.0.1
    ・リモート(対向)IP:172.16.0.1
    ・トンネル(ipip)IP:192.168.0.1/24
     
    # vi ifcfg-ipip0
    ---
    STARTMODE='onboot'
    BOOTPROTO='static'
    TUNNEL='ipip'
    TUNNEL_LOCAL_IPADDR='10.0.0.1'
    TUNNEL_REMOTE_IPADDR='172.16.0.1'
    IPADDR='192.168.0.1/24'
    TUNNEL_TTL='64'
    MTU=''

乱数生成器

乱数を取得する際に使用する/dev/randomは、
デバイスドライバ等から収集した乱数エントロピーが溜まらないとReadLock状態になる。
VPS・仮想環境の場合エントロピー不足に陥りやすい為、HAVEGEを導入して対処する。

・インストール手順
---
# zypper install haveged
# systemctl enable haveged
# systemctl start haveged

・エントロピープールの確認
---
# cat /proc/sys/kernel/random/entropy_avail


文字コード

openSUSEを上書きメジャーバージョンアップした時、
文字コード設定が崩れてテキストエディタに影響の出る場合がある。
Yast2から修正する事も出来るが、一部設定は変更出来ないので下記ファイルを直接編集した後、
OSを再起動して設定を反映させる。

# vi /etc/sysconfig/console
# vi /etc/locale.conf


gettyプロセス再起動ループ

シリアルコンソールを使っていない環境で下記の様なログが出力され続けながら、
gettyプロセスが起動出来ずに再起動ループに陥る場合がある。
この場合、gettyを起動するサービスファイルに問題があるので、
自力でサービスファイルを修正するか、サービスファイルの元となるターゲットを全削除する。
 

  • 出力ログ
    2019-01-01T13:00:44.562776+09:00 HostName systemd[1]: getty@getty.service: Service has no hold-off time (RestartSec=0), scheduling restart.
    2019-01-01T13:00:44.564037+09:00 HostName systemd[1]: Stopped Getty on getty.
    2019-01-01T13:00:44.576976+09:00 HostName systemd[1]: Started Getty on getty.
     
  • 実行コマンド
    # systemctl disable getty@getty.service
    # rm -rf /etc/systemd/system/getty.target.wants