TOP ▲
itcore TOP
> TIPS
> centos7.php
CentOS7 ネットインストール| itcore 2017年
事前準備
ダウンロード
インストール
sshログイン
IP制限
sudoパスワードなし
アップデート
時刻合わせ
IPv6無効化
firewall
SELinux無効化
sshタイムアウト対策
再起動
VMwareを使う場合は
Ubuntu Server 16.04 LTS インストール
も参照してください。
(今回、nicのアダプタにはVMXNET3を利用)
事前準備
インストールに必要な情報を準備します。
・インストール先のサーバ情報(VMwareアカウントなど)
・ホスト名
・リソース量(CPUコア数、メモリサイズ、DISK容量 OS,DATA)
・IPアドレス(プライベート、グローバル)
・rootアカウントのパスワード
ダウンロード
ネットインストール用のisoファイルをダウンロードします。
http://ftp.riken.jp/Linux/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1708.iso
インストール
isoファイルからブートします。
上矢印で「Install CentOS 7」を選択してEnter
言語を選択
画面を下へスクロールして、ネットワークとホスト名をクリック
ホスト名を選択して適用
nicをオンにして設定をクリック
全般>自動的に接続する。
IPv6のセッティング>無視する
IPv4のセッティング>追加でアドレスを入力、他に必要な情報を設定します。
上記の例は別のnicでゲートウェイを指定しています。
参照DNSはGoogleのサーバを利用しています。
画面に設定した内容が反映されます。
この時点でpingが通るようになります。
全てのnicを設定します。
完了で前の画面に戻ります。
インストールソースを選択します。
ネットブートで参照するURLを指定します。
大文字小文字に気をつけてください。
http://ftp.riken.jp/Linux/centos/7/os/x86_64
isosがosになります。
URLが正しくないと「ベースリポジトリのセットアップ中にエラー」となります。
インストール先を選択します。
ディスクを選択します。
ソフトウェアを選択します。
インフラストラクチャサ^バーを選択します。
インストールの開始
rootパスワードの設定
パスワードを入力
ユーザの設定
パスワードを入力
再起動します。
ログイン画面が出ます
sshログイン
sshでログインします。
初回アクセスのときはホストの確認画面が出ますので追加しておきます。
作成したユーザでログインします。
管理者権限になります。
[root@centos7 admin]$ sudo -s
初回は以下の警告が表示されます。
あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます:
#1) 他人のプライバシーを尊重すること。
#2) タイプする前に考えること。
#3) 大いなる力には大いなる責任が伴うこと。
[sudo] admin のパスワード:
[root@centos7 admin]#
IP制限
IP制限用のシェルを作成します。
許可したいグローバルアドレスがあれば追加します。
[root@centos7 admin]# pwd
/home/admin
[root@centos7 admin]# vi ip_seigen.sh
#-------------------------
# Linux ssh IP制限
#-------------------------
F=/etc/hosts.allow
FB=${F}_`date "+%Y%m%d"`
if ! test -f $FB; then
cp -np $F $FB
echo ALL: 10. >> $F
echo ALL: 192.168. >> $F
echo ALL: 127.0. >> $F
fi
F=/etc/hosts.deny
FB=${F}_`date "+%Y%m%d"`
if ! test -f $FB; then
cp -np $F $FB
echo ALL: ALL >> $F
fi
シェルを実行してログを保存します。
sh -x ip_seigen.sh |& tee ip_seigen.log
グローバルアドレスから接続できないことを確認します。
未接続
SSHパケットを送信中に通信エラーが発生しました。
切断します。(WSAAsyncSelect1:20093)
念のため、今のssh画面を開いたまま、
プライベートアドレスから新たにログインできることを確認しておきます。
sudoパスワードなし
パスワードなしでsudoができるようにします。
vi sudo.sh
#-------------------------
# sudo パスワードきかれないようにする
#-------------------------
F=/etc/sudoers
FB=${F}_`date "+%Y%m%d"`
ADM=admin
if ! test -f $FB; then
cp -np $F $FB
echo $ADM ALL=NOPASSWD:ALL >> $F
fi
シェルを実行してログを保存します。
sh -x sudo.sh |& tee sudo.log
sshで新しくログインし、
sudoでパスワードを聞かれないことを確認します。
アップデート
アップデートするシェルを作成します。
vi update.sh
#-------------------------
# ソフトウェア アップデート
#-------------------------
uname -a
cat /etc/redhat-release
FB=/tmp/update.`date "+%Y%m%d"`
if ! test -f $FB; then
touch $FB
yum clean all
yum -y update
uname -a
cat /etc/redhat-release
fi
シェルを実行してログを保存します。
sh -x update.sh |& tee update.log
初回は以下のようなメッセージが出ますが問題ありません。
NetworkManager-team-1.8.0-11.el7_4.x86_64.rpm の公開鍵がインストールされていま せん
アップデート前と後のバージョンを確認します。
head -4 update.log; tail -4 update.log
時刻合わせ
毎時1分に時刻を合わせます。
シェルを作成します。
vi time.sh
#-------------------------
# cron 時刻合わせ
#-------------------------
F=crontab.`date "+%Y%m%d"`
if ! test -f $F; then
crontab -l > $F
echo "1 * * * * /usr/sbin/ntpdate -b ntp.nict.jp ntp.jst.mfeed.ad.jp > /tmp/ntpdate.log 2>&1" >> $F
crontab $F
/usr/sbin/ntpdate -b ntp.nict.jp ntp.jst.mfeed.ad.jp
hwclock -w
fi
crontab -l
シェルを実行してログを保存します。
sh -x time.sh |& tee time.log
IPv6無効化
新規ファイル作成
# vi /etc/sysctl.d/disable_ipv6.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
:wq
# sysctl -p /etc/sysctl.d/disable_ipv6.conf
firewall
デフォルトでは dhcpv6-client の穴が開いているため閉じておきます。
シェルを作成します。
vi firewall.sh
#-------------------------
# firewall 設定
#-------------------------
F=/tmp/firewall.`date "+%Y%m%d"`
if ! test -f $F; then
firewall-cmd --list-all
firewall-cmd --remove-service=dhcpv6-client --permanent
firewall-cmd --reload
firewall-cmd --list-all
fi
シェルを実行してログを保存します。
sh -x firewall.sh |& tee firewall.log
SELinux無効化
デフォルトではSELinuxが有効になっていますが、うまく動かないアプリケーションなどもあるため、通常のサーバでは無効化しておきます。
現在の状態
# getenforce
一時的に無効化
# setenforce 0
一時的に無効化
# setenforce 1
恒久的に無効にする。
# cd /etc/selinux
# cp -ip config config_`date "+%Y%m%d"`
# vi config
SELINUX=disabled
サーバを再起動すると反映されます。
sshタイムアウト対策
デフォルトだとssh画面をそのままにしておくとそのうちタイムアウトしてしまいます。
タイムアウトしないように設定します。
# cd /etc/ssh
# cp -ip sshd_config sshd_config_`date "+%Y%m%d"`
# vi sshd_config
:107
TCPKeepAlive yes
:112
ClientAliveInterval 15
ClientAliveCountMax 3
# systemctl restart sshd.service
再起動
念のためサーバを一度再起動して正常に立ち上がるか確認します。
# shutdown -r now