イントロダクション
概要
- 全ホスト共通の設定を実施する
対象OS
- CentOS 6.9
対象ホスト
- 全ホスト
前提条件
- なし
目次
- Yum
- 管理ユーザー作成
- 共通ディレクトリ作成
- Vim設定変更
- etckeeper設定
- SSH設定
- SELinux無効化
- IPv6無効化
- ネットワーク設定
- ip6tablesサービス停止
- iptables設定
- IP転送有効化
- TCP Wrapper
- Postfix設定
- SNMP設定
- NTP設定
- syslog設定
- バックアップ設定
Yum
システム更新と必要パッケージのインストール
- システム全体を最新の状態に更新し、共通設定で必要となる全てのパッケージを追加する(一時的に仮のネットワーク設定で実施する)
- etckeeperはEPELリポジトリに含まれるため、epel-releaseインストール後にインストールしている
[root@centos ~]# yum update [root@centos ~]# yum install epel-release yum-cron logwatch git net-snmp net-snmp-utils nfs-utils [root@centos ~]# yum install etckeeper
自動更新有効化
- yum-cronによる日次自動更新を有効化する
[root@centos ~]# service yum-cron start [1] [root@centos ~]# chkconfig yum-cron on [2] [root@centos ~]# chkconfig yum-cron --list [3] [root@centos ~]# sn=yum-cron && service $sn start && chkconfig $sn on && chkconfig $sn --list [1],[2],[3] One-Liner
管理ユーザー作成
- 管理ユーザーをwheelグループに追加することでrootに昇格できるユーザーを制限する
ユーザー作成
[root@centos ~]# groupadd centos -g 500 [1] [root@centos ~]# useradd centos -u 500 -g 500 [2] [root@centos ~]# usermod -G wheel centos [3] [root@centos ~]# groupadd centos -g 500 && useradd centos -u 500 -g 500 && usermod -G wheel centos [1],[2],[3] One-Liner [root@centos ~]# passwd centos
/etc/pam.d/su
[root@centos ~]# cp --parents --preserve /etc/pam.d/su /root/initfiles First time only [root@centos ~]# vim /etc/pam.d/su #auth required pam_wheel.so use_uid auth required pam_wheel.so use_uid
共通ディレクトリ作成
- /root/binはスクリプト等のプログラムの配置、/root/initfilesは変更前のデフォルトの設定ファイルを保存(初回のみ)する
[root@centos ~]# mkdir /root/bin /root/initfiles
Vim設定変更
- Vimのデフォルト設定は、コメント行を改行する際、次の行にも自動的に#が付与されてコメント行となるが、不要な機能であるため無効化する
- 下記の設定はrootユーザーのみ対象としているが、必要に応じて他のユーザーも実施する
[root@centos ~]# mkdir -p /root/.vim/after/plugin [root@centos ~]# echo "au FileType * setlocal formatoptions-=ro" > /root/.vim/after/plugin/common-settings.vim
etckeeper設定
初期化と初回コミット
[root@centos ~]# etckeeper init Initialized empty Git repository in /etc/.git/ [root@centos ~]# etckeeper commit "first commit" [master (root-commit) 5cb933e] first commit 1462 files changed, 137286 insertions(+), 0 deletions(-) create mode 100755 .etckeeper create mode 100644 .gitignore create mode 100644 ConsoleKit/seats.d/00-primary.seat - Omission - create mode 100644 yum/pluginconf.d/security.conf create mode 100644 yum/vars/infra create mode 100644 yum/version-groups.conf create mode 100644 yum/yum-daily.yum create mode 100644 yum/yum-weekly.yum
/root/binを追加
[root@centos ~]# etckeeper init -d /root/bin Initialized empty Git repository in /root/bin/.git/ [root@centos ~]# etckeeper commit -d /root/bin "first commit" [master (root-commit) d1894ac] first commit 2 files changed, 57 insertions(+), 0 deletions(-) create mode 100755 .etckeeper create mode 100644 .gitignore
/root/binを自動コミット対象に含める
[root@centos ~]# cp --parents --preserve /etc/etckeeper/daily /root/initfiles
[root@centos ~]# vim /etc/etckeeper/daily
#!/bin/sh
# Script that can be run daily to autocommit /etc changes.
set -e
if [ -x /usr/bin/etckeeper ] && [ -e /etc/etckeeper/etckeeper.conf ]; then
# avoid autocommit if an install run is in progress
lockfile=/var/cache/etckeeper/packagelist.pre-install
if [ -e "$lockfile" ] && [ -n "$(find "$lockfile" -mtime +1)" ]; then
rm -f "$lockfile" # stale
fi
if [ ! -e "$lockfile" ]; then
AVOID_SPECIAL_FILE_WARNING=1
export AVOID_SPECIAL_FILE_WARNING
if etckeeper unclean; then
etckeeper commit "daily autocommit" >/dev/null
fi
# Additional settings
if etckeeper unclean -d /root/bin; then
etckeeper commit -d /root/bin "daily autocommit" >/dev/null
fi
fi
fi
SSH設定
- SSH設定を参照する
SELinux無効化
[root@centos ~]# cp --parents --preserve /etc/selinux/config /root/initfiles First time only [root@centos ~]# vim /etc/selinux/config #SELINUX=enforcing SELINUX=disabled
IPv6無効化
[root@centos ~]# echo "options ipv6 disable=1" > /etc/modprobe.d/disable-ipv6.conf
ネットワーク設定
- ネットワーク設定を参照する
ip6tablesサービス停止
[root@centos ~]# service ip6tables stop [1] [root@centos ~]# chkconfig ip6tables off [2] [root@centos ~]# chkconfig ip6tables --list [3] [root@centos ~]# sn=ip6tables && service $sn stop && chkconfig $sn off && chkconfig $sn --list [1],[2],[3] One-Liner
iptables設定
iptablesサービス停止
対象ホスト:iptablesを使用しないホスト
[root@centos ~]# service iptables stop [1] [root@centos ~]# chkconfig iptables off [2] [root@centos ~]# chkconfig iptables --list [3] [root@centos ~]# sn=iptables && service $sn stop && chkconfig $sn off && chkconfig $sn --list [1],[2],[3] One-Liner
/etc/sysconfig/iptables-config
対象ホスト:iptablesを使用するホスト
- FTPモジュールを有効化する
[root@centos ~]# cp --parents --preserve /etc/sysconfig/iptables-config /root/initfiles First time only [root@centos ~]# vim /etc/sysconfig/iptables-config #IPTABLES_MODULES="" IPTABLES_MODULES="ip_conntrack_ftp ip_nat_ftp"
iptstate
対象ホスト:iptablesを使用するホスト
[root@centos ~]# yum install iptstate
iptablesスクリプト
対象ホスト:iptablesを使用するホスト
- iptablesスクリプトを参照する
IP転送有効化
対象ホスト:ルーティングを実行するホスト
/etc/sysctl.conf
[root@centos ~]# cp --parents --preserve /etc/sysctl.conf /root/initfiles First time only [root@centos ~]# vim /etc/sysctl.conf #net.ipv4.ip_forward = 0 net.ipv4.ip_forward = 1
TCP Wrapper
/etc/hosts.deny
[root@centos ~]# cp --parents --preserve /etc/hosts.deny /root/initfiles First time only
[root@centos ~]# rm -f /etc/hosts.deny
[root@centos ~]# vim /etc/hosts.deny
ALL: ALL
/etc/hosts.allow
[root@centos ~]# cp --parents --preserve /etc/hosts.allow /root/initfiles First time only
[root@centos ~]# rm -f /etc/hosts.allow
[root@centos ~]# vim /etc/hosts.allow
対象ホスト:インターネットからSSHを許可するホスト
ALL: 127.0.0.1 ALL: xxx.xxx.xxx.xxx/xxx.xxx.xxx.xxx ALL: yyy.yyy.yyy.yyy/yyy.yyy.yyy.yyy sshd: ALL
対象ホスト:内部からのみアクセスを許可するホスト
ALL: 127.0.0.1 ALL: xxx.xxx.xxx.xxx/xxx.xxx.xxx.xxx ALL: yyy.yyy.yyy.yyy/yyy.yyy.yyy.yyy
Postfix設定
- Postfix設定を参照する
SNMP設定
- SNMP設定を参照する
NTP設定
- NTP設定を参照する
syslog設定
- syslog設定を参照する
バックアップ設定
- バックアップ設定を参照する
CentOS 6 共通設定