CentOS7のインストールと設定(サービス、ファイアウォールの有効・無効切り替え等)


待望のCentOS7.0がredhat enterprise linux7.0に遅れる事1か月余りでリリースされたので早速インストールを行います。その前に当たり前のようにリリースノートを確認し、気になった変更点を列記します。

  • カーネル3.10系の採用
  • デフォルトで選択されているインストールが『最小限のインストール』になった。そのままインストールすると、ifconfigコマンド(ip aで代用可)すら入っていない。
  • デスクトップはGNOMEがメインになった(KDEも選択可能)。
  • systemd採用で起動処理が速くなった(sysvinitやupstart等の置き換え)
  • firewallの設定はfirewall-cmd、firewall-configになった。これらのコマンドの後ろでiptablesが設定される。
  • 古いハードウェアがサポート外になった。100MbpsのNICや3wareの古いRAIDカード等。smartarray P400等もサポート外になったので、ヤフオクで安く買っても使えないと思います。
  • デフォルトのファイルシステムがXFSになった。ext4やBtrfsも選択可能。
  • ブートローダがGRUB2へ。/boot/grub/menu.confを直に書き換えちゃダメ。
  • 仮想化周りが最新のものに置き換わった。
  • ruby2.0、python2.7.5、openjdk7、gcc-4.8.x
  • samba4.1(samba大好きなので書きました。ADに参加できたりします。)
  • Apache2.4、MariaDB5.5、PostgreSQL9.2(MySQL ServerはMariaDBに置き換えられたが、mysql用に書かれたプログラムは利用可能。LAMP環境下にepgrecを入れてみた投稿参照)

yumでパッケージをインストールして普通に使う分には気になりませんが、サービスのON・OFFの切り替えやファイアウォールの設定方法は、CentOS6から様変わりしています。最初のうちはmanコマンドでマニュアルを引きながら設定する事になりそうです。○○をしたいなどの希望があれば、コメント欄からどうぞ。簡単な事なら投稿にするなり回答するなりします。

ダウンロードはCentOSダウンロード画面より。リリースノートはたとえ英語でもざっと目を通すと良いです。

ISOをダウンロードしたら、DVDに焼き付けてインストールします。DVDからブートできなければ、BIOSのブート順を見直してください。

CentOS710

CentOS7のDVDからブートすると、上記のようなインストール画面になります。赤枠のinstall CentOS 7を選択します。

CentOS711

言語は日本語を選びます。

CentOS712

CentOS7のインストーラは便利になっていて、上記のような画面でインストール時の設定を行えます。基本的に日本語を選んでいれば、殆ど適切な設定がされているはずですが、必要に応じて、キーボードなどを変更してください。今回はソフトウェアの選択から、インストール構成を変更しています。

CentOS713

最小限のインストールから初めてもOKですが、今回は開発及びクリエイティブワークステーションを選びました。DESKTOPも一緒に入るので、インストールにはそれなりに時間がかかります。20分ぐらいですかね。

CentOS714

ネットワークとホスト名を事前設定しておきます。

CentOS715

赤枠のネットワークのON/OFFでONにしておきます。また、赤枠を付けていませんが、左下にホスト名、右下に詳細設定があります。無線LANの設定等もここから行ってください。

CentOS717

事前設定が終わったらインストール開始をクリックします。

CentOS718

インストール中に、rootと一般ユーザーのセットアップが出来ますので、それらの設定を済ませておきます。

CentOS719

まずはrootのパスワード設定。それなりに組み合わせたパスワードを選択したつもりでしたが、強度は『普通』なんですね。覚えられる範囲で設定してください。

CentOS720

一般ユーザーも設定しておきます。

CentOS721

ユーザー設定を行っている間も、インストーラは後ろでインストール作業を着々と進めてくれます。

CentOS721

まだインストール中・・・

CentOS730

インストールが完了したら再起動。

CentOS731

ライセンス情報をクリックしてライセンスに同意します。

CentOS732

ライセンスに同意。

CentOS733

設定の完了を押します。

CentOS734

Kdumpを使うかと聞かれるので、そのまま進む。dump、あんまり見る事無いですけどね。

CentOS735

 

ログイン画面。新しい感じがします。

CentOS736

パスワードを入れてサインイン。

CentOS737

インストール中に設定したはずですが、言語を再度聞かれるので、日本語を選択して次へ。

CentOS738

入力ソースは日本語で良いので、次へ。

CentOS739

クラウド上にデータを格納していないので、アカウント追加をせずに次へ。

CentOS740

start using CentOS Linuxを押す。

CentOS741

GUI画面はこんな感じです。

取りあえず、お決まりのパッケージの更新。

sudo yum update

CentOSになってから、サービスの起動周りが結構変更になっています。chkconfig –listの実行結果。

chkconfig --list

注記: この出力は SysV サービスのみであり、ネイティブな systemd のサービスは含まれていません。
      systemd services. SysV 設定のデータはネイティブな systemd の設定によって上書きされます。
      systemd サービスを一覧表示するには 'systemctl list-unit-files' を使用してください。
      特定のターゲットにおいて有効化されているサービスを確認するには、
      'systemctl list-dependencies [target]' 。

iprdump         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iprinit         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iprupdate       0:off   1:off   2:on    3:on    4:on    5:on    6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
pmcd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
pmie            0:off   1:off   2:off   3:off   4:off   5:off   6:off
pmlogger        0:off   1:off   2:off   3:off   4:off   5:off   6:off
pmmgr           0:off   1:off   2:off   3:off   4:off   5:off   6:off
pmproxy         0:off   1:off   2:off   3:off   4:off   5:off   6:off
pmwebd          0:off   1:off   2:off   3:off   4:off   5:off   6:off

chkconfig は既に過去のものになっているとのこと。今後はsystemctlコマンドを使うのが正しいと言われたのでそうします。

systemctl list-unit-files
# UNIT FILE                                   STATE
# proc-sys-fs-binfmt_misc.automount           static
# dev-hugepages.mount                         static
# dev-mqueue.mount                            static
.....
.....

# list-dependenciesだとツリー状に見れる。
systemctl list-dependencies
# default.target
# ├─accounts-daemon.service
# ├─gdm.service
# ├─iprdump.service
# ├─iprinit.service
# ├─iprupdate.service
# ├─network.service
# ├─rtkit-daemon.service
# ├─systemd-readahead-collect.service
# ├─systemd-readahead-replay.service
# ├─systemd-update-utmp-runlevel.service
# └─multi-user.target
#   ├─abrt-ccpp.service
#   ├─abrt-oops.service
#   ├─abrt-vmcore.service
#   ├─abrt-xorg.service
#   ├─abrtd.service
#   ├─atd.service
.....
.....

リスト表示させると沢山出てきます。取りあえず、需要の多そうなファイアウォールの無効化をして、サービスの無効化の仕方を確認してみます。

※ ファイアウォールの無効化は自己責任で行ってください。グローバルIPから直にアクセス可能な状況下では絶対に無効にしないでください。ルータの下でIPマスカレードしているなら・・・・まぁ・・・・良いんじゃないですかね(本当は良くない)。

# 最初に、firewallサービスを探す。
systemctl list-unit-files | grep firewall
# firewalld.service                           enabled

# firewalld.serviceだと解ったので、disableする。
systemctl disable firewalld.service
# rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
# rm '/etc/systemd/system/basic.target.wants/firewalld.service'

# ステータス確認。disabledになった。
systemctl list-unit-files | grep firewall
# firewalld.service                           disabled

# 再起動してファイアウォールの状態を確認する。
reboot

再起動後、iptablesコマンドでファイアウォールの状態を確認。

sudo iptables -L -n
# Chain INPUT (policy ACCEPT)
# target     prot opt source               destination
# ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53
# ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:53
# ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:67
# ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:67

# Chain FORWARD (policy ACCEPT)
# target     prot opt source               destination
# ACCEPT     all  --  0.0.0.0/0            192.168.122.0/24     ctstate RELATED,ESTABLISHED
# ACCEPT     all  --  192.168.122.0/24     0.0.0.0/0
# ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
# REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
# REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

# Chain OUTPUT (policy ACCEPT)
# target     prot opt source               destination

dhcp用のフィルタルールはfirewalldが管理しているわけではなさそうですね。ACCEPTで入っているので問題なしです。OUTPUTが全部許可で、INPUTも全部許可。これで何でもパケットが通る様になりました。FORWARD_OUT_ZONES等の定義設定が消えているので、firewalldのサービスは無効化出来た事が確認できます。

サービスの起動と停止。

systemctlコマンドを使って出来ます。apacheを例に。

# インストールされていなければ先にインストールします。
sudo yum install httpd.x86_64

# apacheの起動
sudo systemctl start httpd.service

# ステータス表示
sudo systemctl status httpd.service

# 停止
sudo systemctl stop httpd.service

# apacheの有効化
sudo systemctl enable httpd.service

# apacheの無効化
sudo systemctl disable httpd.service

apacheを起動して、ブラウザでアクセスしてみたところが下記の図。

CentOS742

ファイアウォールも無効化してしまったので、取りあえずアクセス出来ています。ファイアウォールの設定は、X上でfirewall-configと叩いて実行してください。

固定IPにする方法も載せておきます。昔ながらの設定ファイルを直接編集する方法(非推奨)と、GUI上から設定する方法があるので、両方ともやり方を載せておきます。

/etc/sysconfig/network-scripts /以下のifcfg-***のファイルがネットワークの設定ファイル。BOOTPROTOをstaticに変更して、IPADDR、NETMASK、 GATEWAY、NAMESERVERを追記する。また、ONBOOTがNOならYESにしておく。

# ifcfg-enp0s25のファイル名は環境によって異なります。
sudo vi ifcfg-enp0s25

ifcfg-enp0s25の内容(一例。適宜修正してください)

HWADDR="00:19:99:xx:xx:xx"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR=172.20.1.240
NETMASK=255.255.255.0
GATEWAY=172.20.1.1
NAMESERVER=172.20.1.1
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="no"
NAME="enp0s25"
UUID="dfd8b39a-0115-4bd4-8494-e403e5133f04"
ONBOOT="yes"

IPの設定はnmtuiでも出来ます。

sudo nmtui

下記の画面が出るので、Edit a connectionで編集。

CentOS743

対象を選択(一番右下にquitがありますが、間延びしていたので載せていません)

CentOS744

こんな感じで編集可能です。IPv4 CONFIGURATIONをManualにせずにDHCPのままにしておくとIPを設定したのにDHCPで取得したIPを使い続ける設定になってしまうので注意(気づかずにやりました)

CentOS746

# ネットワークの設定変更後にサービス再起動
sudo systemctl restart network.service

SELinuxを無効にする(再起動したタイミングで無効になります)。

sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

# SELinuxの状態確認
getenforce

CentOS7を使ってみた感想

全体的にはCentOS6までのノウハウが使えそうですが、サービスやファイアウォール回りで変更があるので、その辺に慣れる事が出来れば特に問題なさそうです。他の感想としては・・・

  • パッケージ類が新しい(嬉しい点)
  • 起動が速い
  • DESKTOPの動きはきびきびしている印象を受けた
  • ファイアウォールの扱いが面倒。ちょっとしたテストなら無効化した方が早い。
  • 安定性はRHELのコピーなので折り紙つき
  • yumでのパッケージ管理は従来通り

参考にしたサイト

 

タグ付けされた . ブックマークする へのパーマリンク.

7 Responses to CentOS7のインストールと設定(サービス、ファイアウォールの有効・無効切り替え等)

  1. なる 曰く:

    はじめまして。
    最近、VPSについて、知りまして、色々調べているところ、こちらのサイトを見つけました。初心者なので、わからないことだらけなのですが、質問させてください。
    VPSを使うために、私はserversmanを契約しました。また、PUTTYとRloginをインストールし進めようとしていたのですが、RLoginで新規作成後、繋げようとしたら、エラー10061が表示されました。
    まず、原因がわからないのですが、今使っているパソコンにLINUXをインストールする必要があるのでしょうか?
    CENTOSをインストールすれば、いいように思っていたのですが。
    ご教授願います。

    • lasas 曰く:

      こんばんは。

      ちょっと、不慣れなようで現状が整理できていない為、迷ってしまっているように思います。
      Servermanの詳しい仕様は調べておりませんが、VPSを使う際のVPS側、自PC側で必要な作業はおおまかに下記のとおりです。

      ■ Serverman側
      ・Linux(CentOSかな?)をインストール
      ・SSHサーバを立ち上げる

      ■ 自PC側
      ・WindowsであればPuttyでVPSにSSHログインする
       (SSHのアクセス先はServerman側のSSHサーバ)

      ーーーーーーーーーーーーーーーーーーーー

      <勘違いしてると思われるので、訂正しておきたい点>
      ・自PCにLinuxをインストールする必要はありません。WindowsでもMacでもLinuxでも、SSHクライアントが使えれば何でもいいです。
      ・rloginは、通信経路が暗号化されていないため、現在は使われていません。現在はSSHで置き換えられています。
       (rloginは使わず、SSHを使ってください)

  2. なる 曰く:

    ご回答ありがとうございます。
    やはり、基礎的なところの理解が抜けているため、なかなか、難しく感じます。因みに、CENTOSをインストールすると、パーティションしなければならないのでしょうか?今使っている、PCの容量やCPUに影響を与えるようなら、違うPCでインストールすべきか、迷っております。
    また、このような基礎的な知識を身に付けるための、おすすめの本など、ありましたら、紹介して下さると、うれしいです。
    私自身、やるきはあるのですが、何を学べば、理解につながるのか、わからず、迷走中です。

    • lasas 曰く:

      >パーティションしなければならないのでしょうか?
      その通りです。

      >今使っている、PCの容量やCPUに影響を与えるようなら、違うPCでインストールすべきか、迷っております。
      今、お話を聞いている限りだと、難易度が高めなのでやらないほうが良いです。

      ■ アドバイス
      仮想マシンと言う技術があります。製品は下記のとおり。
      このソフトを使うことで、リスクなくOSのインストールを繰り返し実施することができるので、『まずは、仮想マシン上でLinuxのインストールを何度もやり直してみる』事をお勧めします。
      ・vmware(紹介
      ・hypter-v
      ・virtual box(紹介)

      3製品ほど紹介しましたが、初心者にはVMWAREが使いやすいかもしれません。紹介サイトのLINKも載せておいたので、見よう見まねでとりあえずやってみてはどうでしょう。

      ある程度インストールに慣れてきたら、こんな書籍を買ってみてもいいかもしれませんね。

      • なる 曰く:

        わあ、こんなにも丁寧に教えて下さりありがとうございました。
        まずは、アドバイスいただいた通り、vmwareを試してみます。
        最後に、1つだけ、質問させてください。
        windowsでも、VPSは使えるのに、わざわざ、linux(CENTOS)をインストールするメリットは、何なのでしょうか?

        • lasas 曰く:

          >windowsでも、VPSは使えるのに、わざわざ、linux(CENTOS)をインストールするメリットは、何なのでしょうか?
          すいません。質問の意図が読み取れませんでした。
          (WindowsでもVPSを使えるという箇所が分かりませんでした。)
          vmware上にLINUX(CENTOS)をインストールする意味を聞いていますか?

          であれば、その意味は『ただの練習』です。
          話を聞いている限りですと、やる気はあるが勉強方法が分からないようでしたので、まずは慣れることを優先し、慣れてきてからServerman等のVPS上でLINUXサーバを構築すればいいかと考えた次第です。

  3. なる 曰く:

    す、すいません。全体的な仕組みが理解できていないので、勘違いしてました。
    まずは、アドバイスいただいた通り、やってみますね。あと、LPICレベル1の勉強も並行して勉強してみようかなと考えています。全体的な仕組みの理解につながるかもしれないですよね。
    頑張ってみます。ご回答ありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。