CentOS7でKVM(仮想化)のCentOS7ゲストのひな形を作る

  1. CentOS7ネットワークインストールする方法でクライアントを作成する
  2. qcow2形式のイメージファイルを使いファイルサイズを使った分だけにする
  3. ゲストOS作成シェルファイルを作る
    1. # vi create_kvm_centos7_guest.sh
      • # CentOS7のネットワークインストールのURL
      • REPOS=http://ftp.riken.jp/Linux/centos/7/os/x86_64/
      • # KVM上での名前
      • IMAGE_NAME=CentOS7.0
      • #virt-installでインストールする
      • virt-install \
          --name ${IMAGE_NAME} \
          --ram 1024 \
          --disk path=/var/lib/libvirt/images/${IMAGE_NAME}.qcow2,size=20,format=qcow2 \
          --vcpus=1 \
          --os-type linux \
          --os-variant=rhel7 \
          --nographics \
          --location="$REPOS" \
          --bridge=br0 \ ※追記 virbr0を削除しbr0で接続している場合
          --extra-args='console=tty0 console=ttyS0,115200n8 serial'
      • ※ディスク容量を20GBに指定するオプション(size=20, )が抜けていた。
  4. ゲストOS作成
    1. # sh ./create_kvm_centos7_guest.sh
    2. — nographicsでは都合が悪いらしく、
      途中で1:vncか2:テキスモードとか聞いてくるので1:vncを選択。
      パスワードは空。
    3. vncクライアントを起動し、
    4. VNC Server:に
      画面に表示されていたIP:画面番号(192.168.*.*:*)を入力して【Connect】ボタンを押す。
      普通にインストール再起動。ここでvnc終わり
    5. 再びコンソールモード
    6. ホストrootでログイン
      # ip addr

      • 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN

        2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether *:*:*:*:*:* brd ff:ff:ff:ff:ff:ff
        inet 192.168.*.*/24 brd 192.168.*.255 scope global dynamic eth0
    7. クライアント側をシャットダウン
      # shutdown -h now
    8. ホスト側からゲストを起動
      # virsh start CentOS7.0
  5. クライアント側に変わり
  6. 全般的な更新+α
    # yum -y update
    # yum -y install yum-cron
    # systemctl start yum-cron
    # systemctl enable yum-cron
  7. selinuxをオフ
    # setenforce 0
    # getenforce

    • Permitive
  8. # cd /etc/selinux
    # mv config config.org : cp config.org config
    # sudo sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
    # reboot
    # getenforce

    • Disabled ※うまくいかない場合はココ参照
  9. とりあえずツールの類一式
    • # yum -y groupinstall base “開発ツール”
  10. nkfをインスト
    • # wget “http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fnkf%2F59912%2Fnkf-2.1.3.tar.gz” -O nkf-2.1.3.tar.gz
    • # tar zxvf nkf-2.1.3.tar.gz
    • # cd nkf-2.1.3
    • # make && make install
    • # cd
    • # rm -rf nkf-2.1.3*
    • # ln -s /usr/local/bin/nkf /usr/bin/nkf
  11. chkrootkitインストール
    1. ※元ネタ: http://centossrv.com/chkrootkit.shtml
    2. #chkrootkitダウンロード
      1. # wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
      2. # tar zxvf chkrootkit.tar.gz
    3. chkrootkitを移動
      1. # mkdir -p ~/bin && mv chkrootkit-0.50/chkrootkit ~/bin
      2. # rm -rf chkrootkit*
      3. # chkrootkit | grep INFECTED
        • Searching for Suckit rootkit… Warning: /sbin/init INFECTED
    4. chkrootkit実行スクリプトを毎日自動実行されるディレクトリへ作成
    5. # vi /etc/cron.daily/chkrootkit
      • #!/bin/bash
      • PATH=/usr/bin:/bin:/root/bin
      • TMPLOG=`mktemp`
      • # chkrootkit実行
      • chkrootkit > $TMPLOG
      • # ログ出力
      • cat $TMPLOG | logger -t chkrootkit
      • # SMTPSのbindshell誤検知対応
      • if [ ! -z “$(grep 465 $TMPLOG)” ] && \
        • [ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then
      • sed -i ‘/465/d’ $TMPLOG
      • fi
      • # upstartパッケージ更新時のSuckit誤検知対応
      • if [ ! -z “$(grep Suckit $TMPLOG)” ] && \
        • [ -z $(rpm -V `rpm -qf /sbin/init`) ]; then
      • sed -i ‘/Suckit/d’ $TMPLOG
      • fi
      • # rootkit検知時のみroot宛メール送信
      • [ ! -z “$(grep INFECTED $TMPLOG)” ] && \
        • grep INFECTED $TMPLOG | mail -s “chkrootkit report in `hostname`” root
      • rm -f $TMPLOG
    6. # chmod 700 /etc/cron.daily/chkrootkit
  12. chkrootkitで使用する安全なコマンドの確保
    1. chkrootkit使用コマンド退避先ディレクトリ作成
      • # mkdir chkrootkitcmd
    2. chkrootkit使用コマンドを退避先ディレクトリへコピー
      • # cp `which –skip-alias awk cut echo egrep find head id ls netstat ps strings sed ssh uname` chkrootkitcmd/
    3. 試してみる
      1. # chkrootkit -p /root/chkrootkitcmd|grep INFECTED
        • Searching for Suckit rootkit… Warning: /sbin/init INFECTED
    4. 使ったコマンド圧縮して保存
      1. # zip -r chkrootkitcmd.zip chkrootkitcmd/
      2. # rm -rf chkrootkitcmd
    5. FTPでchkrootkitcmd.zipをバックアップし消す
      1. # rm -f chkrootkitcmd.zip
  13. yum-prioritiesプラグイン導入
    1. # yum -y install yum-plugin-priorities
    2. # vi /etc/yum.repos.d/CentOS-Base.repo
      • enabled=1
      • を追記
  14. RPMforgeリポジトリ導入 ← 2016年7月20日頃から使用不可
    1. # wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
    2. # rpm -ivh rpmforge-release-*.rpm
    3. # rm -f rpmforge-release-*.rpm
    4. # yum -y update rpmforge-release
  15. EPELリポジトリ導入
    1. # yum install epel-release
    2. # cd /etc/yum.repos.d
    3. # ls
    4. # vi epel.repo
      • enabled=1 -> enabled=0
    5. # yum –enablerepo=epel list
  16. Clam AntiVirusインストール
    1. # yum -y install clamd
    2. # chkconfig clamd on
    3. # sed -i ‘s/^Example/#Example/g’ /etc/freshclam.conf
    4. # freshclam
    5. # clamscan –infected –remove –recursive
  17. NTPサーバーインストール
    1. # yum -y install chrony ※不要
    2. # vi /etc/chrony.conf
      • server 0.centos.pool.ntp.org iburst
      • ・・・
      • server 3.centos.pool.ntp.org iburst
    3. ↓ 時刻同期先NTPサーバーを変更
      • # 日本標準時を提供しているNTPサーバー
      • server ntp.nict.jp iburst
      • # 上記サーバーと直接同期しているNTPサーバー
      • server ntp.jst.mfeed.ad.jp iburst
      • # プロバイダのNTPサーバー※無ければ設定不要
      • server プロバイダのNTPサーバー名 iburst
    4. 手動で時刻を補正(2回)
      1. # ntpdate ntp.nict.jp
      2. # ntpdate ntp.nict.jp
    5. サービスを登録
      1. # systemctl start chronyd
      2. # systemctl enable chronyd



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA