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


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

  • カーネル3.10系の採用
  • デフォルトで選択されているインストールが『最小限のインストール』になった。そのままインストールすると、ifconfigコマンドすら入っていない。
  • デスクトップは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にする方法も載せておきます。

/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"

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

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

# SELinuxの状態確認
getenforce

CentOS7を使ってみた感想

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

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

参考にしたサイト

 

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

コメントを残す

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

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>