2015年版 CentOSの初期設定・構築マニュアル

  1.  CentOSの入手
    • CentOS公式サイトにアクセス
    • Downloads → Mirrors
    • CentOS Public Mirror Listをクリック
    • South American, Asian, Oceania, Middle Eastern, African and Other Regional Mirrorsをクリック
    • Japanエリアの中から、どのサーバーを選択するか決めて、右欄のHTTPをクリック(現在地から近い場所を選択するが吉)
    • 各バージョン名のフォルダが一覧表示されるので、最新版を選択(システム要件にあったものをクリック)
    • isosをクリック
    • i386とx86_64が表示されるので、プロセッサに合わせたものをクリック
      1. i386は32bit
      2. x86_64は64bit
    • さらに一覧が表示されるので、isolinuxをクリック
    • CentOS-6.4-x86_64-bin-DVD1.iso・CentOS-6.4-x86_64-bin-DVD2.isoのファイルをダウンロード
    • ライティングソフトを使って、インストールディスクを作成
  2. インストール
    • インストールディスクをサーバー用マシンに挿入する
      1. 他のOSソフトがインストールされていて、起動してしまったら挿入したまま再起動する
    • インストール画面が表示される
    • LiveDVDであればInstallを選択する
    • Disc Found画面ではSkipを選択、OKを選択するとインストールディスクのチェックを行える
    • インストールディスクを、もしチェックしたのであれば最後にContinueを選択
    • CentOSのインストール画面が立ち上がる
      (インストールディスクがminimalやnetinstallはCUIになりキーボードのみの操作になります)
    • 次へ(Next)を選択
    • インストールに使用する言語を選択 英語を選択
    • キーボードを選択 日本語を選択
    • ストレージデバイスの選択
      基本ストレージデバイスを選択(Basic Storage Dvices) 次へ(Next)を選択
    • ドライブを初期化する画面が表示されるが、初期化しても良いのであれば次へ
    • ホスト名の設定を行う 以下の様な形式で 自身の環境にあった記述を任意で行う 名前はaでもbでも可能かと思われる
      例 取得したドメインをホストにする com
      例 取得したドメインをホストにし、複数用意する場合など 1.example.com
      例 1台しか使わないしローカルで使うだけ…等 server.localhost
      → sambaで共有する際は、HOSTNAME=***** の*****を同じにしないと、いけないみたいです
    • 地域の選択
      日本であればアジア/東京(Asia/Tokyo) マウスを使い、地図上の東京の位置をクリックすれば早く選択できる
    • Rootパスワードの設定
      なるべく推測されにくく、長く、忘れないパスワードにする
    • タイプの選択
      すべての領域を使用する(Use All Space)を選択 次へ(Next)を選択
      他を選択する際はそれに合わせたものを
    • パーティションを削除しても良いか警告が出た場合
      (Writing storage configuration todisk)は
      変更をディスクに書き込む
      (Write changes to disk)
      を選択
    • Formatting & Creating が表示され、インストールが始まる
    • Desctop、Minimal Desctop、Minimal、Basic Server、Detabase Server、
      Web Server、Virtual Host、Software Development Workstation
      の中から、Web Serverを選択する 次へ(Next)
    • 完了したら、再起動を選択する
    • 再起動前にディスクを取り出しておく
  3. ルータの設定
    • 固定IPアドレスの場合は168.0.*のようにそのサーバーの設定を追加しないといけない
  4. 初期設定
    • rootでログイン
    • SELinuxの停止
      セキュア強化機能のSELinuxを無効にします
      ※安全な運用を行う際には有効にするが、設定が面倒で、鬱陶しいので切っておく

      1. # setenforce 0
      2. # vi /etc/selinux/config
        SELINUX=disabled
        に変更
      3. # reboot
      4. 再起動される
    • レゾルヴァファイルが有るか、記述が正しいかチェック
      1. vi /etc/resolv.conf
      2. nameserver 192.168.x.x
        nameserverが記述されていないとyumが動かない。
        自動生成されるようだが、ない時はviで記述する
      3. service network restart
        反映させる
    • サーバー時刻の設定
      1. rootでログイン
      2. # yum -y install ntp
      3. # ntpdate ntp.nict.jp
    • ユーザーの追加 ****はパスワード
      1. # useradd -p ‘****’ **********
    • グループ作成
      1. # groupadd ******
        グループを作成する******はグループ名
      2. # usermod -aG ****** ******
        最初の******はグループ名、後ろはユーザー名
    • NIC(ネットワークインターフェースカード)の設定
      →LANアダプターの設定

      1. # ifconfig –a
        で確認
      2. # vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0                               #デバイス名

HWADDR=**:**:**:**:**:**                  #MACアドレス

TYPE=Ethernet                             #インターフェースのタイプ

UUID=*****-****-******-*******-********** #デバイス識別ID(自動生成される重複の心配の少ないID)

ONBOOT=yes                                #起動時に有効にする

NM_CONTROLLED=yes                         #ネットワークマネージャーの管理下に置く

BOOTPROTO=static                          #プロトコルを使用しない。他にnone・dhcpもある

NETMASK=255.255.255.0                     #ネットマスク

IPADDR=192.168.0.2                        #このマシンのIPアドレス

GATEWAY=192.168.1.1                       #ルータのIPアドレス

IPV6INIT=no                               #IPv6を無効

PEERDNS=no                                #固定IPにする場合はnoにしておく

USERCTL=yes                                #このデバイスの制御をroot以外のユーザーにも許可するか

  1. # service network restart
    反映させる
  • ネットワークの設定
    1. # vi /etc/sysconfig/network
    2. NETWORKING=yes
      NETWORKING_IPV6=no
      GATEWAY=192.168.1.1
  1. SSHの設定
    • # vi /etc/ssh/sshd_config
      1. Protocol 2
        →この記述を確認
      2. #LoginGraceTime 2m
        →#を外す
      3. PermitRootLogin yes
        →PermitRootLogin no
      4. PasswordAuthentication yes
        →yes担っているのを確認
      5. Subsystem sftp /usr/libexec/openssh/sftp-server
        →この行の後ろに
        AllowUsers ****
        と記述する。****はユーザー名
      6. 上書きして保存
    • # service sshd start
    • # chkconfig sshd on
  2. sshdを起動する
    # service sshd start
  3. sshdを自動起動するように設定
    # chkconfig sshd on
  4. yumでソフトウェアをアップデート
    • # yum update
    • アップデートする?で yを入力してEnter
  5. アップデート終了後再起動
    # reboot
    再起動しないとTeraTermでログインできなくなった
  6. Sambaのインストール・設定
    • # yum install samba
    • ファイアウォールの設定
      1. # vi /etc/sysconfig/iptables
      2. -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
        の後ろに以下の行を追加
        -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
        -A INPUT -p tcp -m tcp –dport 135:139 -j ACCEPT

-A INPUT -p udp -m udp –dport 135:139 -j ACCEPT

-A INPUT -p tcp -m tcp –dport microsoft-ds -j ACCEPT

  1. 上書き保存
  2. # service iptables restart
    ファイアウォールの設定を反映する
  3. # pdbedit -a ****
    ****はユーザー名を入れる
  • Sambaの設定
    vi /etc/samba/smb.conf

    1. [global]

      [global]
      workgroup = *****

server string = ******

dos charset = CP932

unix charset = UTF-8

display chaset = UTF-8

security = user

passdb backend = tdbsam
とする
※[global]セクションに追加する

  1. ;security = domain
    のコメントを外し、
    security = user
    とする
  2. ;passdb backend = tdbsam

のコメントを外し、
passdb backend = tdbsam
とする

  1. ;wins support = yes
    のコメントを外し、
    wins support = yes
    とする
  2. load printers = yes

    load printers = no
    とする
  3. 必要のない領域をコメントアウト「;」をあたまにつける
    ;[printers]

;        comment = All Printers

;        path = /var/spool/samba

;        browseable = no

;        guest ok = no

;        writable = no

;        printable = yes

  1. 共有領域の追加
  2. [**********]

comment = *********

browseable = yes

create mode = 2775

directory mode = 2775

path = /

valid users = yoiho

guest ok = no

read only = no

writable = yes
※[]に記述する共有フォルダ名は12文字以内にしないと共有できない
※# testparm でチェックする

  1. Sambaの起動
    # service smb start
    # service nmb start
  2. Sambaの自動起動設定
    # chkconfig smb on
    # chkconfig nmb on
  3. サーバーを再起動
    # reboot
  4. クライアントを再起動
    ※サーバーにアクセスする他のPCのこと
  5. Apacheをインストール

# yum install httpd httpd-manual

  1. 各フォルダの権限・所有者を変更
    • 所有者をユーザー名に変更・フォルダの確認
      1. WWWフォルダ
        # chown ***** /var/www/html
        # ls -l /var/www
      2. httpdフォルダ
        # chown ***** /etc/httpd
        # chown yoiho /etc/httpd/conf
        # chown ***** /etc/httpd/conf.d
        # ls -l /etc/httpd
      3. confフォルダ
        # chown yoiho /etc/httpd/conf/httpd.conf
        # ls -l /etc/httpd/conf
      4. dフォルダ
        # chown yoiho /etc/httpd/conf.d/welcome.conf
  1. Apacheの初期設定
    • /etc/httpd/conf/httpd.confのバックアップを取る
      例) /etc/httpd/conf/backup/httpd.conf20050101-1
    • /etc/httpd/conf/httpd.confをリモートよりアクセスして、テキストエディタで開く
      1. DirectoryIndex index.html index.html.var

        DirectoryIndex index.html index.htm index.php index.cgi index.pl index.py
      2. ServerSignature On

        ServerSignature Off
      3. ServerTokens OS

        ServerTokens Prod
      4. <Directory />

Options FollowSymLinks

AllowOverride None

</Directory>

<Directory />
Options FollowSymLinks

AllowOverride All

Order allow,deny

Allow from all
</Directory>

  1. 実行ユーザーに変更
    インストールしたままだと.htaccessが使えない
    <Directory “/var/www/html”> ~ </div>

    AllowOverride等をコメントアウトにする
  2. User *****

Group *****

User *****

Group *****

 

  • /etc/httpd/conf/httpd.conf/welcome.conf
    <LocationMatch “^/+$”>

Options -Indexes

ErrorDocument 403 /error/noindex.html

</LocationMatch>
をコメントアウトする
#<LocationMatch “^/+$”>

#Options -Indexes

#ErrorDocument 403 /error/noindex.html

#</LocationMatch>

  • # service httpd restart
    でApache再起動
  1. MySQLとPHPをインストール
    # yum install php php-mbstring php-mysql mysql-server
  2. MySQLをスタートする
    # service mysqld start
    # chkconfig mysqld on
  3. MySQL準備・設定
    • MySQLのデータベースを作成する
      # mysqladmin create testman
    • MySQL管理コマンドを起動
      # mysql
    • rootのパスワード設定
      mysql > SET PASSWORD FOR root@localhost=PASSWORD(‘hoge’);
    • mysql > exit;
    • # mysql -u root –p
      で再度ログイン
  4. Webサイト専用フォルダを用意する
  5. PHPMyAdminをダウンロードして、
    • /var/www/htmlにPHPMyAdmin用のフォルダを作成する
    • PHPMyAdminにログインしてユーザを作成
      ※rootでアクセスできない工夫を パスワードはrootと別のものを
      ※管理の権限を与えずに作成
      ※ホストはlocalhost
  6. vhostsファイルの作成
    • /etc/httpd/conf.dにconfを作成する
      以下を記述 増やす場合はコピーして******をサイトごとに変更する

      1. <VirtualHost *:80>
        ServerName ******
        DocumentRoot /var/www/html/******
        ErrorLog logs/******.biz-error.log
        CustomLog logs/******.biz-access.log common
        <Directory “/var/www/html/******”>
        Order allow,deny
        Allow from all
        </Directory>
        </VirtualHost>
  1. /etc/php.ini
    • ; save_path = “N;/path”

      ;     session.save_path = “N;/path”
      session.save_path = “/var/lib/php/session”
    • エラーメッセージをOnにする
      display_errors = Off

      display_errors = On
    • ポスト出来る最大サイズを設定
      post_max_size = 8M

      post_max_size = 100M
    • 最大アップロードファイルサイズを設定
      upload_max_filesize = 2M

      upload_max_filesize = 100M
    • 適宜メモリサイズ変更
      memory_limit = 32M

      memory_limit = 64M
    • タイムゾーンの確認
      ;date.timezone =

      timezone = “Asia/Tokyo”
    • MySQLのエクステンションの追加

extension=msql.so

  1. Apache再起動
    # chkconfig httpd on
    # service httpd restart
  2. # chown -R root.nginx /var/lib/php/session
  3. 所有者:グループ 所有者とグループをconfと同じにする
    User ***
    Group ***
    のところ
    # chown *****:***** /var/lib/php/session
  4. 各ユーザーのパスワードを変更する
    *****はユーザー名
    # passwd *****
    Changing password for user *****.
    New Password:*******
  5. SMTPサーバーの設定
    • # vi /etc/sysconfig/iptables
      # Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

-A INPUT -p tcp -m tcp –dport smtp -j ACCEPT

-A INPUT -p tcp -m tcp –dport pop3 -j ACCEPT

-A INPUT -p tcp -m tcp –dport 135:139 -j ACCEPT

-A INPUT -p udp -m udp –dport 135:139 -j ACCEPT

-A INPUT -p tcp -m tcp –dport microsoft-ds -j ACCEPT

-A INPUT -j REJECT –reject-with icmp-host-prohibited

-A FORWARD -j REJECT –reject-with icmp-host-prohibited

COMMIT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

 

の行の後ろに

 

-A INPUT -p tcp -m tcp –dport smtp -j ACCEPT

-A INPUT -p tcp -m tcp –dport pop3 -j ACCEPT

 

を追記して上書き

  • # service iptables restart
    で設定を反映
  • Postfixの設定
    # vi /etc/postfix/main.cf
  • #myhostname = virtual.domain.tld
    の次の行に
    myhostname = www.example.com
    というようにホスト名を設定
  1. PHPのバージョンを確認
    • # yum info php