はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> セキュリティ強化 >> ネットワーク機器の接続制限(ip-sentinel)
動作確認 [ Fedora7 / Fedora8 / Fedora9 / Fedora10 / Fedora11 / Fedora12 / Fedora13 / Fedora14 / Fedora15 / Fedora16 / Fedora17 / CentOS4 / CentOS5 ]
  1. ネットワーク機器の制限とは・・・
  2. 「ip-sentinel」のインストール
    Fedora 系の場合
    CentOS 系の場合
  3. 「ip-sentinel」の設定
    Fedora7 / Fedora8 / Fedora9 / Fedora10 / Fedora15 / Fedora16 / Fedora17 のみ
    全ディストリビューション共通
  4. 「ip-sentinel」の起動
    Fedora7 / Fedora8 / Fedora9 / Fedora10 /Fedora15 / Fedora16 / Fedora17 の場合
    Fedora11 / Fedora12 / Fedora13 / Fedora14 / CentOS4 / CentOS5 の場合
  5. OSの再起動を行なった時に「ip-sentinel」を自動的に起動するように設定する
    Fedora7 / Fedora8 / Fedora9 / Fedora10 / Fedora15 / Fedora16 / Fedora17 の場合
    Fedora11 / Fedora12 / Fedora13 / Fedora14 / CentOS4 / CentOS5 の場合
  6. 動作確認

■ ネットワーク機器の制限とは・・・

自宅・会社問わず特別な機器を導入しない限り、ネットワーク内にネットワーク機器(以下、他PCとして説明)を接続すれば基本的にネットワークセグメントが同一で、IPアドレスが重複していない限り無条件にサーバや他PCなどと通信ができます。
家庭内LAN内であればそれ程シビアになる必要はありませんが、企業などでは平成15年5月に成立し平成17年4月に全面施行された『個人情報保護法』による情報漏洩対策か必要不可欠となっています。(漏洩という意味では、家庭内の個人情報等も同じですね。)

大抵、情報が漏れる原因は不明な他PC接続による事が、ほぼ割合を占めています。

ここのページの紹介は、管理しているネットワーク機器はネットワーク利用を許し、管理外のPC(ネットワーク機器)等はネットワーク接続を拒否する方法を紹介します。

■ 「ip-sentinel」のインストール

■ Fedora 系の場合

「ip-sentinel」のインストール
# yum -y install ip-sentinel

■ CentOS 系の場合

Savannahipsentinelダウンロードページより最新バージョンをダウンロードします。

「ip-sentinel」を実行するユーザの作成
# useradd -s /sbin/nologin -d /var/lib/ip-sentinel ip-sentinel
*:「ip-sentinel」はログインを許さない。ホームディレクトリは「/var/lib/ip-sentinel」とする。

ホームディレクトリへ移動
# cd /var/lib/ip-sentinel/

「ip-sentinel」の取得
*:2008年04月01日時点での最新バージョンは「Version 0.12」となっています。
[root@centos ip-sentinel]# wget http://savannah.nongnu.org/download/ip-sentinel/ip-sentinel-0.12.tar.bz2

展開
[root@centos ip-sentinel]# bunzip2 ip-sentinel-0.12.tar.bz2
[root@centos ip-sentinel]# tar xvf ip-sentinel-0.12.tar

展開されたディレクトリへ移動
[root@centos ip-sentinel]# cd ip-sentinel-0.12

値の変更(実行ユーザ変更)
[root@centos ip-sentinel-0.12]# vi configure
        :
        :
****************************

Builds in non-GNU/Linux environments are not well tested and will fail
probably. To have a minimal chance to succeed, make sure that a recent
GNU 'make' will be used.

****************************" >&2;}
fi


username=nobody
    ↓ 「nobody」を「ip-sentinel」に変更
username=ip-sentinel
configfile=ips.cfg

コンパイルとインストール
[root@centos ip-sentinel-0.12]# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
        :
        :

[root@centos ip-sentinel-0.12]# make
Making clean in src
Making clean in .
Making all in .
Making all in src
ensc_vector/vector-clear.c:1: 警告: -malign-loops is obsolete, use -falign-loops
        :
        :

[root@centos ip-sentinel-0.12]# make install
Making install in .
make[1]: Entering directory `/var/lib/ip-sentinel/ip-sentinel-0.12'
make[2]: Entering directory `/var/lib/ip-sentinel/ip-sentinel-0.12'
make[2]: `install-exec-am' に対して行うべき事はありません。
test -z "/usr/local/man/man8" || mkdir -p -- "/usr/local/man/man8"
 /usr/bin/install -c -m 644 './doc/ip-sentinel.8' '/usr/local/man/man8/ip-sentinel.8'
        :
        :

■ 「ip-sentinel」の設定

■ Fedora7 / Fedora8 / Fedora9 / Fedora10 / Fedora15 / Fedora16 / Fedora17 のみ

設定ファイルの変更
# vi /etc/sysconfig/ip-sentinel
ユーザの指定(先頭の「#」を消す)
IPS_USER=ip-sentinel
# IPS_GROUP=
chrootの指定(先頭の「#」を消す)
IPS_CHROOT=/var/lib/ip-sentinel
制限設定ファイルの指定(先頭の「#」を消す)
IPS_IPFILE=ips.cfg
各種ログファイルの指定(先頭の「#」を消す)
IPS_LOGFILE=/var/log/ip-sentinel.out
IPS_ERRFILE=/var/log/ip-sentinel.err
# IPS_OPTIONS=
NICの指定(先頭の「#」を消す)
IPS_DEVICE=eth0
複数NIC(ネットワークカード)がある場合、対象のデバイス名を指定します。

## Assign to yes if running a dietlibc-compiled version of ip-sentinel
## on a system using remote NSS for passwd-lookups (e.g. LDAP, NIS).
##
## When using a group which is not the effective group of the user,
## you will have to assign the numeric gid of this group to GROUP.
# IPS_NEEDS_NUMERIC_UID=

■ 全ディストリビューション共通

制限設定ファイルの作成(新規作成)
# vi /var/lib/ip-sentinel/ips.cfg
全てのIPアドレスを拒否
0.0.0.0/0
IPアドレスが「192.168.1.100」および、MACアドレスが「aa:bb:cc:dd:ee:11」を許可
192.168.1.100@!aa:bb:cc:dd:ee:11
IPアドレスが「192.168.1.120」〜「192.168.1.129」の範囲で、MACアドレスが「aa:bb:cc:dd:ee:22」を許可
192.168.1.{120-129}@!aa:bb:cc:dd:ee:22
IPアドレスが「192.168.1.130」または「192.168.1.139」で、MACアドレスが「aa:bb:cc:dd:ee:33」を許可
192.168.1.{130,139}@!aa:bb:cc:dd:ee:33
IPアドレスが「192.168.1.140」〜「192.168.1.149」または「192.168.2.140」〜「192.168.2.149」で、MACアドレスが「aa:bb:cc:dd:ee:44」を許可
192.168.{1,2}.{140-149}@!aa:bb:cc:dd:ee:44
IPアドレスに関係なくMACアドレスが「aa:bb:cc:dd:ee:55」を許可 (一番手っ取り早く有効な手段)
ネットワーク接続を許す機器のMACアドレスを全て下記の様に定義するのが望ましい
*@!aa:bb:cc:dd:ee:55

*:考え方はファイアウォールと同じで、全てを拒否し必要な機器のみ許可すると考えた方がわかりやすいでしょう。


制限設定ファイルのオーナ・グループ変更
# chown ip-sentinel:ip-sentinel /var/lib/ip-sentinel/ips.cfg

■ 「ip-sentinel」の起動と停止

■ Fedora7 / Fedora8 / Fedora9 / Fedora10 / Fedora15 / Fedora16 / Fedora17 の場合

「ip-sentinel」の起動
# /etc/rc.d/init.d/ip-sentinel start

「ip-sentinel」の終了方法
# /etc/rc.d/init.d/ip-sentinel stop

■ Fedora11 / Fedora12 / Fedora13 / Fedora14 / CentOS4 /CentOS5 の場合

起動・停止スクリプトは用意されていません。
以下のコマンドを実行します。

「ip-sentinel」の起動
【Fedora11 / Fedora12 / Fedora13 / Fedora14】
# /usr/sbin/ip-sentinel -r /var/lib/ip-sentinel -i /ips.cfg --direction BOTH eth0

【CentOS4 /CentOS5】
# /usr/local/sbin/ip-sentinel -r /var/lib/ip-sentinel -i /ips.cfg --direction BOTH eth0

*:最後の「eth0」はネットワークカードの番号です。
制限をかけたいネットワークに繋がれたネットワークカードを指定します。

「ip-sentinel」の終了方法
終了したい場合は、「ip-sentinel」が実行されているプロセス番号を強制終了します。
「ip-sentinel」のプロセス表示
# ps -ef | grep ip-sentinel | grep -v grep
512       9125     1  0 14:30 ?        00:00:00 /usr/local/sbin/ip-sentinel -r /var/lib/ip-sentinel -i /ips.cfg --direction BOTH eth0
512       9126  9125  0 14:30 ?        00:00:00 /usr/local/sbin/ip-sentinel -r /var/lib/ip-sentinel -i /ips.cfg --direction BOTH eth0

「ip-sentinel」の終了
# kill -9 9125 9126
*:上記のプロセス番号を「-9」(強制終了)で終了させます

■ OSの再起動を行なった時に「ip-sentinel」を自動的に起動するように設定する

■ Fedora7 / Fedora8 / Fedora9 / Fedora10 / Fedora15 / Fedora16 / Fedora17 の場合

起動時に「ip-sentinel」を起動する
# chkconfig ip-sentinel on

設定内容を確認
# chkconfig --list ip-sentinel
ip-sentinel     0:off   1:off   2:on    3:on    4:on    5:on    6:off

■ Fedora11 / Fedora12 / Fedora13 / Fedora14 / CentOS4 / CentOS5 の場合

起動時に実行される「/etc/rc.local」に起動コマンドを登録する
# vi /etc/rc.local
最終行に以下を追加する
【Fedora11 / Fedora12 / Fedora13 / Fedora14】
/usr/sbin/ip-sentinel -r /var/lib/ip-sentinel -i /ips.cfg --direction BOTH eth0

【CentOS4 /CentOS5】
/usr/local/sbin/ip-sentinel -r /var/lib/ip-sentinel -i /ips.cfg --direction BOTH eth0

■ 動作確認

制限設定ファイルの登録外のMACアドレスを保持する他PCをネットワークに接続して見てください。
ネットワークに接続できないと思います。

以下が、等パッケージの動作ログとなります。
# cat /var/log/ip-sentinel.out
@4000000047d9e3712b4bc168: (Re)reading blacklist.
@4000000047d9e37519ccc068: 192.168.1.170/aa:bb:cc:dd:ee:ff -> 192.168.1.170/00:00:00:00:00:00 [01:80:c2:00:00:01]
@4000000047d9e37519d06dd0: 192.168.1.170/aa:bb:cc:dd:ee:ff >- 192.168.1.170/00:00:00:00:00:00 [01:80:c2:00:00:01]

IP「192.168.1.170」MAC「aa:bb:cc:dd:ee:ff」のPCが、でたらめなMAC「01:80:c2:00:00:01」に強制変更されています。
IPアドレスからEthernetの物理アドレス(MACアドレス)を求めるのに使われるARP(アドレス解決プロトコル)を強制変更し通信できなくしてしまいます。

■ コンテンツ関連

■ その他

ページ先頭へ

Copyright(©)2004-2018 First home server construction. All Right Reserved.