2014年11月30日日曜日

CentOS 7にEPELリポジトリを追加する

CentOS 7にEPELリポジトリを追加しようと、以下のコマンドを実行する。

$ sudo rpm -Uvh epel-release http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
Retrieving http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
error: open of epel-release failed: No such file or directory
warning: /var/tmp/rpm-tmp.qhgAt2: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY

これも、CentOS 7に変わったせいかと思いGoogle先生に聞く。


すると、以下のサイトに、こんなことが書いてあった。

CentOS 7.0にEPELリポジトリを追加する方法


CentOS7の公式リポジトリにはepel-releaseパッケージが含まれていますので以下コマンドでダウンロードできます。

便利になってた!

サイトに書いてあった通り、yumでインストールする。

$ sudo yum install -y epel-release.noarch
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.mit.edu
 * extras: mirrors.kernel.org
 * updates: mirror.pac-12.org
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:7-2 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================
 Package                     Arch                  Version              Repository             Size
====================================================================================================
Installing:
 epel-release                noarch                7-2                  extras                 13 k

Transaction Summary
====================================================================================================
Install  1 Package

Total download size: 13 k
Installed size: 22 k
Downloading packages:
epel-release-7-2.noarch.rpm                                                  |  13 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : epel-release-7-2.noarch                                                          1/1
  Verifying  : epel-release-7-2.noarch                                                          1/1

Installed:
  epel-release.noarch 0:7-2

Complete!



確認する。

$ yum repolist
Loaded plugins: fastestmirror
epel/x86_64/metalink                                                         |  14 kB  00:00:00
epel                                                                         | 4.4 kB  00:00:00
(1/2): epel/x86_64/group_gz                                                  | 250 kB  00:00:00
(2/2): epel/x86_64/primary_db                                                | 3.6 MB  00:00:01
(1/2): epel/x86_64/updateinfo                                                | 160 kB  00:00:00
(2/2): epel/x86_64/pkgtags                                                   | 1.3 MB  00:00:00
Determining fastest mirrors
 * base: mirrors.xmission.com
 * epel: linux.mirrors.es.net
 * extras: mirror.supremebytes.com
 * updates: mirror.san.fastserv.com
repo id                         repo name                                                     status
base/7/x86_64                   CentOS-7 - Base                                               8,465
epel/x86_64                     Extra Packages for Enterprise Linux 7 - x86_64                6,591
extras/7/x86_64                 CentOS-7 - Extras                                                77
updates/7/x86_64                CentOS-7 - Updates                                            1,307
repolist: 16,440

無事に追加された。

CentOS 7でiptablesを使う

CentOS 7でiptablesを設定しようと以下のコマンドを実行した。

$ sudo vi /etc/sysconfig/iptables

すると、空っぽな上に[NewFile]と表示されていることに気づく。

ということは/etc/sysconfig/iptablesのファイルが元々無いということ。


とりあえず、以下のコマンドでiptablesを確認する。

$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

これはおかしい。

もしかしたら、v7になったことで、何かが変わったのかもしれない。

「Centos 7.0 iptables」でGoogle先生に聞く。


すると、以下のサイトに、こんなことが書いてあった。

コラム - クラウド時代のオープンソース実践活用 | 第47回 RHEL7/CentOS7の新規コマンド総まとめ!|CTC教育サービス 研修/トレーニング
ネットワーク関連といえば、RHEL7では、ファイアウォールの仕組みもfirewalldに変更されています。
firewalldは、複数のNICに対して、ポリシーベースで動的なフィルタリングを行うことを想定したツールですが、固定的なフィルタリングで十分なケースでは、iptablesを使用する方がシンプルで分かりやすいでしょう。

oh...
とりあえず、今はiptablesでいいので、このページに書かれていたコマンドを実行する。

$ sudo vi /etc/sysconfig/iptables
 * extras: mirrors.kernel.org
 * updates: mirror.pac-12.org
Resolving Dependencies
--> Running transaction check
---> Package iptables-services.x86_64 0:1.4.21-13.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================
 Package                       Arch               Version                    Repository        Size
====================================================================================================
Installing:
 iptables-services             x86_64             1.4.21-13.el7              base              49 k

Transaction Summary
====================================================================================================
Install  1 Package

Total download size: 49 k
Installed size: 23 k
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/iptables-services-1.4.21-13.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for iptables-services-1.4.21-13.el7.x86_64.rpm is not installed
iptables-services-1.4.21-13.el7.x86_64.rpm                                   |  49 kB  00:00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-0.1406.el7.centos.2.5.x86_64 (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : iptables-services-1.4.21-13.el7.x86_64                                           1/1
  Verifying  : iptables-services-1.4.21-13.el7.x86_64                                           1/1

Installed:
  iptables-services.x86_64 0:1.4.21-13.el7

Complete
!

$ sudo systemctl stop firewalld.service
Failed to issue method call: Unit firewalld.service not loaded.

$ sudo systemctl mask firewalld.service
ln -s '/dev/null' '/etc/systemd/system/firewalld.service'

$ sudo systemctl enable iptables.service
ln -s '/usr/lib/systemd/system/iptables.service' '/etc/systemd/system/basic.target.wants/iptables.service'

$ sudo systemctl start iptables.service
$


以上でiptablesへ切り替えが完了。
$ sudo vi /etc/sysconfig/iptablesで設定できた。