Gentoo Logo

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を使って変更してください。



印刷

ページの更新日 2 April, 2004

要約: このガイドは、Gentooインフラチームがそのサーバに設定するさまざまな標準値、パッケージ、必要要件について文書化したものです。

Kurt Lieber
Author

solar
Contributor

藤中 正次
翻訳者

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.