Gentooインフラストラクチャプロジェクト サーバスタンダード
1.
Gentooインフラストラクチャ サーバスタンダードとガイドライン
すべてのサーバに共通なパッケージ
以下のパッケージはすべてのGentooインフラストラクチャサーバにemergeすることが要求されています。
- net-dns/bind-tools
- net-misc/cfengine
- app-portage/gentoolkit
- sys-kernel/hardened-sources
- sys-boot/grub
- net-firewall/iptables
- net-misc/keychain
- sys-process/lsof
- net-analyzer/nagios-nrpe
- net-analyzer/net-snmp
- net-misc/ntp
- app-misc/screen
- dev-util/strace
- net-misc/stunnel
- app-admin/sudo
- app-admin/syslog-ng
- net-analyzer/tcptraceroute
- app-editors/vim
- sys-process/vixie-cron
- app-misc/pax-utils
注意:
Portageはnagios-nrpeのversion 2.0をインストールしようとしますが、version 1.8を代わりに使ってください。
Version 2.0は、1.8とは互換性がありません。 nagios-nrpeをインストールする前に、echo ">=net-analyzer/nagios-nrpe-2.0" >/etc/portage/package.maskを実行してください。
|
注意:
chrootの状態で、nagios-nrpeをemergeしようとすると、コンパイルエラーが発生するかもしれませんので、nagios-nrpeのemergeはchroot環境から抜け出しクリーンブートを行った状態でemergeしてください。
|
すべてのサーバに共通するサービス
次のサービスは、すべてのGentooインフラストラクチャサーバに要求されるサービスです。 リンクをクリックして、各サービスの要求事項とサンプル設定に関して、もっと知っておいてください。
-
NTP - ネットワークタイムプロトコル
- cfengine - システム監視ツールと言語
-
SSH - セキュアシェル
-
iptables - linuxファイアウォール
すべてのサーバにて禁止されているサービス
次のサービスは、すべてのGentooインフラストラクチャサーバ上では、インフラチームのプロジェクトマネージャによる事前の承認なしにはインストールまたは実行することが出来ないものです。
- telnetd
- pop3
- imap
- ssh protocol < 2
- fingerd
- identd
- rsh
注意:
上記のリストはすべて記載しているわけではなく、もっとも知られている禁止されているサービスです。
一般的に、セキュリティの危険と見られたり、暗号化せずにデータを転送し、安全でない実装のすべてのネットワークデーモンはGentooインフラストラクチャ上では、明確な承認がない限り、走らせることは出来ません。
apacheを使用したHTTPは例外として唯一認められています。
|
/etc/make.confの設定
サーバは次の/etc/make.confの設定を使用すべきです。
- USE="-* hardened pic ncurses ssl crypt berkdb tcpd pam xml perl python snmp mmx readline"
-
FEATURES="sandbox sfperms strict buildpkg" (すべてのサーバ)
-
CFLAGS="-march=athlon-xp -O2 -pipe" (Athlon XPサーバ)
-
CFLAGS="-march=pentium3 -O2 -pipe" (Pentium IIIサーバ)
-
CFLAGS="-march=pentium4 -O2 -pipe" (Pentium IVサーバ)
注意:
各サーバの要求事項次第で、USEフラグは調整されるべきです。
すべてのサーバ上で、最小限のUSEフラグを使用することに常に注意してください。
|
注意:
時々、mmx USEフラグはPortageにあるいくつかのマルチメディアアプリケーションで使われている既存のmmxアセンブリと衝突することがあります。
これに気づいたときは、USE="-mmx"にするか、CFLAGS="-fomit-frame-pointer"を加えてください。 必要であれば、開発者に助けを求めてください。
|
重要: CFLAGS="-fforce-addr"は現在検討中であり、近い将来にUSEフラグに加えられるかもしれません。 |
-O2と-O3では、ほんの少ししか違いがないため、CFLAGの選択にはパフォーマンスよりも安定性を選びました。
また、デバッグ支援のために、-fomit-frame-pointerは使われるべきではありません。
/etc/fstabの設定
bootパーティションを除いて(これはext2の場合があります)、すべてのサーバのパーティションは、ext3もしくはreiserfsのどちらかを使うべきです。
加えて、/パーティションはatimeを有効にしてマウントされなければなりません。
これは、/エントリからnoatimeを取り除くことです。
その他の設定
Gentooインフラストラクチャサーバは以下の設定を適用すべきです。
コード表示 1.1: /etc/sysctl.conf |
net.ipv4.tcp_ecn = 0
kernel.hostname = <hostname>
kernel.domainname = gentoo.org
kernel.grsecurity.altered_pings = 1
kernel.grsecurity.audit_chdir = 0
kernel.grsecurity.audit_gid = 10
kernel.grsecurity.audit_group = 0
kernel.grsecurity.audit_ipc = 0
kernel.grsecurity.audit_mount = 1
kernel.grsecurity.chroot_caps = 1
kernel.grsecurity.chroot_deny_chmod = 1
kernel.grsecurity.chroot_deny_chroot = 1
kernel.grsecurity.chroot_deny_fchdir = 1
kernel.grsecurity.chroot_deny_mknod = 1
kernel.grsecurity.chroot_deny_mount = 1
kernel.grsecurity.chroot_deny_pivot = 1
kernel.grsecurity.chroot_deny_shmat = 1
kernel.grsecurity.chroot_deny_sysctl = 1
kernel.grsecurity.chroot_deny_unix = 1
kernel.grsecurity.chroot_enforce_chdir = 1
kernel.grsecurity.chroot_execlog = 0
kernel.grsecurity.chroot_findtask = 1
kernel.grsecurity.chroot_restrict_nice = 1
kernel.grsecurity.dmesg = 1
kernel.grsecurity.exec_logging = 0
kernel.grsecurity.execve_limiting = 1
kernel.grsecurity.fifo_restrictions = 1
kernel.grsecurity.forkfail_logging = 1
kernel.grsecurity.linking_restrictions = 1
kernel.grsecurity.rand_ip_ids = 1
kernel.grsecurity.rand_isns = 1
kernel.grsecurity.rand_pids = 1
kernel.grsecurity.rand_rpc = 0
kernel.grsecurity.rand_tcp_src_ports = 1
kernel.grsecurity.signal_logging = 1
kernel.grsecurity.timechange_logging = 1
kernel.grsecurity.tpe = 0
kernel.grsecurity.tpe_gid = 0
kernel.grsecurity.tpe_restrict_all = 0
|
コード表示 1.2: すべてのサーバはUTC時刻に設定されるべきです |
ln -sf /usr/share/zoneinfo/UTC /etc/localtime
|
コード表示 1.3: GRSecurity設定 |
#
# Grsecurity
#
CONFIG_GRKERNSEC=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_SHA256=y
# CONFIG_GRKERNSEC_LOW is not set
# CONFIG_GRKERNSEC_MID is not set
# CONFIG_GRKERNSEC_HI is not set
CONFIG_GRKERNSEC_CUSTOM=y
#
# PaX Control
#
# CONFIG_GRKERNSEC_PAX_SOFTMODE is not set
CONFIG_GRKERNSEC_PAX_EI_PAX=y
CONFIG_GRKERNSEC_PAX_PT_PAX_FLAGS=y
CONFIG_GRKERNSEC_PAX_NO_ACL_FLAGS=y
# CONFIG_GRKERNSEC_PAX_HAVE_ACL_FLAGS is not set
# CONFIG_GRKERNSEC_PAX_HOOK_ACL_FLAGS is not set
#
# Address Space Protection
#
CONFIG_GRKERNSEC_PAX_NOEXEC=y
# CONFIG_GRKERNSEC_PAX_PAGEEXEC is not set
CONFIG_GRKERNSEC_PAX_SEGMEXEC=y
# CONFIG_GRKERNSEC_PAX_EMUTRAMP is not set
CONFIG_GRKERNSEC_PAX_MPROTECT=y
# CONFIG_GRKERNSEC_PAX_NOELFRELOCS is not set
CONFIG_GRKERNSEC_PAX_ASLR=y
CONFIG_GRKERNSEC_PAX_RANDUSTACK=y
CONFIG_GRKERNSEC_PAX_RANDMMAP=y
CONFIG_GRKERNSEC_PAX_RANDEXEC=y
# CONFIG_GRKERNSEC_KMEM is not set
# CONFIG_GRKERNSEC_IO is not set
CONFIG_GRKERNSEC_PROC_MEMMAP=y
CONFIG_GRKERNSEC_HIDESYM=y
#
# Role Based Access Control Options
#
CONFIG_GRKERNSEC_ACL_HIDEKERN=y
CONFIG_GRKERNSEC_ACL_MAXTRIES=3
CONFIG_GRKERNSEC_ACL_TIMEOUT=30
#
# Filesystem Protections
#
CONFIG_GRKERNSEC_PROC=y
# CONFIG_GRKERNSEC_PROC_USER is not set
CONFIG_GRKERNSEC_PROC_USERGROUP=y
CONFIG_GRKERNSEC_PROC_GID=10
CONFIG_GRKERNSEC_PROC_ADD=y
CONFIG_GRKERNSEC_LINK=y
CONFIG_GRKERNSEC_FIFO=y
CONFIG_GRKERNSEC_CHROOT=y
CONFIG_GRKERNSEC_CHROOT_MOUNT=y
CONFIG_GRKERNSEC_CHROOT_DOUBLE=y
CONFIG_GRKERNSEC_CHROOT_PIVOT=y
CONFIG_GRKERNSEC_CHROOT_CHDIR=y
CONFIG_GRKERNSEC_CHROOT_CHMOD=y
CONFIG_GRKERNSEC_CHROOT_FCHDIR=y
CONFIG_GRKERNSEC_CHROOT_MKNOD=y
CONFIG_GRKERNSEC_CHROOT_SHMAT=y
CONFIG_GRKERNSEC_CHROOT_UNIX=y
CONFIG_GRKERNSEC_CHROOT_FINDTASK=y
CONFIG_GRKERNSEC_CHROOT_NICE=y
CONFIG_GRKERNSEC_CHROOT_SYSCTL=y
CONFIG_GRKERNSEC_CHROOT_CAPS=y
#
# Kernel Auditing
#
# CONFIG_GRKERNSEC_AUDIT_GROUP is not set
CONFIG_GRKERNSEC_EXECLOG=y
CONFIG_GRKERNSEC_RESLOG=y
CONFIG_GRKERNSEC_CHROOT_EXECLOG=y
CONFIG_GRKERNSEC_AUDIT_CHDIR=y
CONFIG_GRKERNSEC_AUDIT_MOUNT=y
CONFIG_GRKERNSEC_AUDIT_IPC=y
CONFIG_GRKERNSEC_SIGNAL=y
CONFIG_GRKERNSEC_FORKFAIL=y
CONFIG_GRKERNSEC_TIME=y
CONFIG_GRKERNSEC_PROC_IPADDR=y
CONFIG_GRKERNSEC_AUDIT_TEXTREL=y
#
# Executable Protections
#
CONFIG_GRKERNSEC_EXECVE=y
CONFIG_GRKERNSEC_DMESG=y
CONFIG_GRKERNSEC_RANDPID=y
CONFIG_GRKERNSEC_TPE=y
CONFIG_GRKERNSEC_TPE_ALL=y
CONFIG_GRKERNSEC_TPE_GID=100
#
# Network Protections
#
CONFIG_GRKERNSEC_RANDNET=y
CONFIG_GRKERNSEC_RANDISN=y
CONFIG_GRKERNSEC_RANDID=y
CONFIG_GRKERNSEC_RANDSRC=y
CONFIG_GRKERNSEC_RANDRPC=y
# CONFIG_GRKERNSEC_SOCKET is not set
#
# Sysctl support
#
CONFIG_GRKERNSEC_SYSCTL=y
#
# Logging options
#
CONFIG_GRKERNSEC_FLOODTIME=10
CONFIG_GRKERNSEC_FLOODBURST=4
|
注意: CONFIG_GRKERNSEC_KMEMによって、設定が変わってきます。 |
重要:
サーバのハードウェア時刻もUTCフォーマットで正確に設定されていることを確かにしてください。
hwclockを使って変更してください。
|
|