*CentOS7 [#m16ff055]
[[CentOS:+http://www.centos.org/]]
RHEL7のクローン。2014/07/07に7系統の初版が公開。
今までのCentOS6系統と比べて、色々とお作法が変わっている。
#author("2019-03-07T23:26:55+09:00","default:nowsky","nowsky")
*openSUSE [#ga9fada4]
[[openSUSE:+https://ja.opensuse.org/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8]]
Slackware系のLinuxディストリビューション。
今まではver13.xの様に番号標記だったが、少し前にLeap 42.xの様な標記に変更された。
CentOS、Debianと同じく、initからsystemdに移行されている。
~
*変更点メモ [#wa53447d]
&size(16){&font(b){●iptables};};
処理がもの凄く高速化している。
今までは、新しいpermit/denyルールを追加する際には全ルールを再適用する必要があったが、
CentOS7搭載の物からはダイナミックにルール変更が可能な為、
必要な箇所のみ追記/削除が可能になっている。
*journald [#t1674f5a]
参考:[[man journald>+https://www.freedesktop.org/software/systemd/man/journald.conf.html]]
 
OSをsystemdで管理している都合上、ログの書き出しもjournald経由となっている。
しかし、デフォルトではjournald経由のログがsyslogへ&font(b){書き出されない};為、
kernelログやmailログを他のサーバへ転送する事が出来ない。
 
転送を行うようにするには "/etc/systemd/journald.conf" を下記の様に書き換える。
オプションについてはman pagesを確認すること。
 # vi /etc/systemd/journald.conf
 ---
 [Journal]
 RateLimitInterval=1s
 RateLimitBurst=4096
 ForwardToSyslog=yes
 MaxLevelSyslog=debug
~
*rsyslog [#be363b20]
従来はsystemdのログを直接syslogに出力する場合は設定変更が必要だったが、
rsyslogのバージョンによってはログ出力用のモジュールが準備されている。
対応バージョンを利用している場合 "/etc/rsyslog.conf" に下記を追記する。
 # vi /etc/rsyslog.conf
 ---
 $ModLoad imjournal.so
~
*SuSEfirewall2 [#xa788409]
openSUSEではファイアウォールとしてSuSEfirewall2が用意されている。
普通は&font(b){yastコマンド};経由でFWポリシーを作り込むのだが、
他ディストリビューションで採用されている&font(b){iptablesコマンド};で設定をする事も出来る。
しかし設定済ポリシーの保存先が、&font(b){/etc/sysconfig/iptables ではない};ので注意する。
 
SuSEfirewall2の場合、大まかなFW動作の設定、yast経由で設定したFWポリシーは、
&font(b){/etc/sysconfig/SuSEfirewall2};に保存される。
~
- 外部ファイルの読込み
サーバを運用していると、FWポリシーを自動生成しておき中央から一括管理したい場合がある。
その場合、生成済みの外部ファイルからFWポリシーを読み込ませるケースがあるのだが、
SuSEfirewall2の場合、iptables-restore以外にもSuSEfirewall2の関数から読み込ませる事が出来る。

&size(16){&font(b){●tmpfiles};};
今までは、/var/runにディレクトリを作成して再起動をかけても、作成したディレクトリが残っていたのだが、
CentOS7からは、再起動すると&font(b){/var/runが初期化};される様になった。
独自に作成した/var/run内ディレクトリを残すようにする場合、
/etc/tmpfiles.d内にコンフィグを追加すれば可能。
詳しい書式は[[こちら:+http://www.freedesktop.org/software/systemd/man/tmpfiles.d.html]]参照
 # 書式
 [d:ディレクトリ] [作成するディレクトリ] [4桁パーミッション] [所有ユーザ] [所有グループ] [-:最後に付ける]
#region(&font(b){設定方法};)
+ 外部ファイルの指定
&font(b){/etc/sysconfig/SuSEfirewall2};の&font(b){FW_CUSTOMRULES};を外部ファイルのPATHに変更
 
+ 外部ファイルの作成
外部ファイルに設定内容を書く。
テンプレが、&font(b){/etc/sysconfig/scripts/SuSEfirewall2-custom};にあるのでコピペも可。
オプションを"I"にすると先頭行に追加、"A"にすると最後に追加される。
 fw_custom_before_denyall() {
     iptables -I INPUT -s *.*.*.*/* -j DROP
     iptables -A INPUT -s *.*.*.*/* -j DROP
 }
 
+ FWポリシーの適用
SuSEfirewall2をリスタートする。
 # systemctl restart SuSEfirewall2
#endregion

- 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 [#eff70430]
openSUSEでトンネルを掘る場合、NICの[[設定書式:+https://github.com/openSUSE/sysconfig/blob/master/doc/ifcfg-tunnel.5]]に従ってコンフィグを作成する。
設定テンプレートは"/etc/sysconfig/network/efcfg.template"にあるので適宜確認する。
 
+ &font(b){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=''
 
+ &font(b){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=''
~
*乱数生成器 [#nc6e9aa3]
乱数を取得する際に使用する&font(b){/dev/random};は、
デバイスドライバ等から収集した乱数エントロピーが溜まらないとReadLock状態になる。
VPS・仮想環境の場合エントロピー不足に陥りやすい為、HAVEGEを導入して対処する。
 ・インストール手順
 ---
 # zypper install haveged
 # systemctl enable haveged
 # systemctl start haveged
 
 -----
 
 #zabbix用PIDディレクトリを作成する場合
 [root@hoge tmpfiles.d]# cat zabbix.conf 
 # zabbix runtime directory
 d /var/run/zabbix 0750 zabbix zabbix -
 ・エントロピープールの確認
 ---
 # cat /proc/sys/kernel/random/entropy_avail
~
*文字コード [#pb5ddcc8]
openSUSEを上書きメジャーバージョンアップした時、
文字コード設定が崩れてテキストエディタに影響の出る場合がある。
Yast2から修正する事も出来るが、一部設定は変更出来ないので下記ファイルを直接編集した後、
OSを再起動して設定を反映させる。
 # vi /etc/sysconfig/console
 # vi /etc/locale.conf
~
* gettyプロセス再起動ループ [#ib11d7bd]
シリアルコンソールを使っていない環境で下記の様なログが出力され続けながら、
gettyプロセスが起動出来ずに[[再起動ループ:+https://lists.opensuse.org/opensuse-factory/2016-12/msg00095.html]]に陥る場合がある。
この場合、gettyを起動するサービスファイルに問題があるので、
自力でサービスファイルを修正するか、サービスファイルの元となるターゲットを全削除する。
 
- &font(b){出力ログ};
 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.
 
- &font(b){実行コマンド};
 # systemctl disable getty@getty.service
 # rm -rf /etc/systemd/system/getty.target.wants

&size(16){&font(b){●systemctl};};
プロセスの起動が、initからsystemdに変更された。
また、プログラムの自動起動(chkconfig)もsystemdで一元管理出来るようになった。
よって、使用するコマンドがsystemctlに変更になった(´・ω:;.:...
※initとchkconfigは残っているが、非推奨らしい

こちらのサイト様が詳しくまとめてある -> [[とみぞーノート:+http://wiki.bit-hive.com/tomizoo/pg/systemd%20%26%20systemctl]]

-コマンド対応表
|&font(b){CentOS7};|&font(b){CentOS6};|
|# systemctl enable zabbix_agentd.service |# chkconfig zabbix_agentd on|
|# systemctl disable zabbix_agentd.service |# chkconfig zabbix_agentd off|
|# systemctl load zabbix_agentd.service |# chkconfig --add zabbix_agentd|
|# systemctl -l |# chkconfig --list|
|# systemctl start zabbix_agentd.service |# /etc/init.d/zabbix_agentd start|
|# systemctl stop zabbix_agentd.service |# /etc/init.d/zabbix_agentd stop|
|# systemctl restart zabbix_agentd.service |# /etc/init.d/zabbix_agentd restart|