Vine Linuxの設定、操作めも


Vine Linux 4.2でのファイルやディレクトリの操作、ユーザーアカウントやアプリケーションの設定、他のパソコンから使用できるようにする遠隔操作の設定などのメモ。
※Vine LinuxのインストールについてはVine Linux Home Pageを参照してください。
※Vine Linux 4.2は標準文字コードがUTF-8で改行コードはLF、Windowsは標準文字コードがShift_JISで改行コードはCR+LFなので WindowsとVine Linux 4.2との間でファイルを移動するときは文字化けに注意。
  1. ディレクトリ構成
  2. 時刻と日付の設定
  3. アプリケーションのインストール、アンインストール
  4. フォルダの共有設定
  5. システムサービスの表示、設定(chkconfig)
  6. プロセス(起動中のプログラム)の表示、停止(ps・kill)
  7. スケジュール実行の設定(cron)
  8. ファイルの編集(vi)
  9. ディレクトリ内のファイルを一覧表示(ls)
  10. ファイル、ディレクトリの作成、削除(touch・mkdir・rm)
  11. ファイル、ディレクトリの移動、名前変更(mv)
  12. 所有者、グループ、アクセス権の変更(chown・chmod)
  13. ユーザーの作成、編集、削除(useradd・usermod・userdel)
  14. 無線LAN(WLI2-CB-G54L)の設定
  15. 遠隔操作
  16. パケットフィルタリング(iptables)

ディレクトリ構成

インストール後に構成されるディレクトリで各ディレクトリには主に以下に記したものが格納される。

┣ bin 基本的なコマンドを格納
┣ boot 起動時に必要なカーネルなどを格納
┣ dev デバイスファイルを格納
┣ etc 各種設定ファイルを格納
┣ home 一般ユーザーのホームディレクトリ(Windows版に例えるとマイ ドキュメントっぽいとこ)
┣ initrd ブート・ローダーによって初期化されたRAMディスク
┣ lib ライブラリを格納
┣ lib64 64bitライブラリを格納(32bit環境では存在しない)
┣ lost+found ファイル・システム回復用
┣ media CD-ROMやフロッピーディスクなどのリムーバブル・メディア用のディレクトリ
┣ misc 種々雑多なファイルを格納
┣ mnt 一時的なファイルシステムマウント用ディレクトリ
┣ net 
┣ opt パッケージ管理システムでプログラムをインストールするときに使用し、インストールファイルを格納
┣ proc カーネルの動作情報を格納
┣ root rootユーザー(管理者)のホームディレクトリ
┣ sbin システム管理用のコマンドを格納
┣ selinux カーネルに強制アクセス制御 (MAC)機能を付加するモジュールを格納
┣ srv 
┣ sys 
┣ tmp 一時的なファイルを格納
┣ usr 各種プログラムを格納
┃  ┗ local 新たにソフトウェアをインストールするときに使用(Windows版に例えるとProgram Files)
┣ var ログファイル、メールやプリンタのスプールなど変化していくファイルを格納

時刻と日付の設定

Vine Linux 4.2にはsystem-tools-backendsにバグがありGUIでの時刻と日付の設定が正常に動作しません。 そのため、以下のようにして修正。
  1. Vine Linux Home Pageのダウンロードからダウンロードサーバーを選択
  2. Vine-4.1/ → updates/ → RPMS/  → i386/(またはppc/) から system-tools-backends-1.4.2-0vl4.2.noarch.rpmをダウンロード
  3. rpm -Uvh system-tools-backends-1.4.2-0vl4.2.noarch.rpm インストール
  4. date -s 11/5 17:10 2008 2008年11月5日17時10分に設定
  5. dateで設定した時刻が表示されればOK

アプリケーションのインストール、アンインストール

Synaptic
Synapticはグラフィカル環境(GUI)の X Window上で操作できるaptのフロントエンドです。 インストール状況も一目で確認でき、パッケージのダウンロードからインストールまでをリストから選ぶだけで簡単にできます。 しかし、すでにインストールしたいrpmパッケージを用意していたり、 ソースパッケージをコンパイルしてからインストールする場合にはコマンド操作が必要になります。

※aptのパッケージを探す場所(URL)は/etc/apt/sources.listに記述。
apt-getコマンド
Synapticを使用できないテキスト環境(CUI)の場合に使用するコマンドです。 aptはインストールするrpmパッケージのダウンロードも自動的に行ってくれて、 さらにインストール時、パッケージ間の依存関係や競合関係も処理してくれます。

★インストール
apt-get update 最新のパッケージリストを取得
apt-get install パッケージ名

★アンインストール
apt-get remove パッケージ名

※aptのパッケージを探す場所(URL)は/etc/apt/sources.listに記述。
rpmコマンド
rpmコマンドはapt-getでrpmパッケージの自動ダウンロードができず、 自分でrpmパッケージを準備してインストールする場合やインストールの状況を確認する場合に使用します。 インストールに使用するパッケージは○○○.rpmでパッケージ名によく数字がついていますが、 数字の意味は一般的に以下のようになっています。
(パッケージ名)-(バージョン)-(リリース番号).(アーキテクチャ).rpm

★インストール状況の確認
prm -q apache2 apache2がインストールされているか検索

名前の一部で検索したい場合は以下のコマンド
prm -qa | grep "apache" apacheの名前が付くものを検索

★インストール
新規インストールにはオプション -i を、アップデートの場合はオプション -U を用います。
rpm -i package-1-2vl3.i386.rpm
rpm -U package-1-2vl3.i386.rpm

さらにオプション -v とオプション -h を用いることでインストールの進行状況がわかります。
cd /home/test パッケージ保存先の/home/testディレクトリに移動
rpm -ivh package-1-2vl3.i386.rpm

実際にインストールする前にテストしてみたい場合オプション--testでシミュレーションできます。
rpm -ivh --test package-1-2vl3.i386.rpm

★アンインストール
アンインストールにはオプション -e を用いる。
rpm -e package


ソースパッケージをコンパイルしてからインストール
tar.gzやtar.bz2などのソースパッケージをコンパイルしてからインストールする場合
tar zxvf package-1-2vl3.tar.gz(tar Ixvf package-1-2vl3.tar.bz2) 拡張子tar.gz(tar.bz2)のファイルを展開
cd package-1-2vl3 package-1-2vl3ディレクトリに移動
./configure OS環境を調査して依存設定をMakefileに記録
make
su 管理者権限ユーザーでログイン
password : ******
make install
exit

※tarコマンドで使用するオプション
-z gzipを通し、tar.gz形式のファイルを一度に圧縮・解凍
-x アーカイブファイルを展開
-v 処理の詳細を出力
-f アーカイブファイルの名前を指定
-I bzip2を通し、tar.bz2形式のファイルを一度に圧縮・解凍
-c 新しいアーカイブを作成(圧縮)
(例)tar zcvf bkup.tar.gz www

※ソースパッケージをコンパイルしてからインストールした場合、 アンインストールは自分でインストールされたファイルを探して個々に削除しないといけないため、 インストール内容をよく理解していないと難しいので安易にはしない方がいい。

フォルダの共有設定

Windowsのパソコンとフォルダを参照できるよう共有設定するには NFS(Network File System)か、Sambaを利用する方法がある。

NFS
NFSはVine Linux 4.2 に標準で組み込まれていてる共有ソフトで、 Linux同士なら設定さえすれば共有できるようになるが、Windowsと共有する場合、 クライアント側(Windows)にNFSのクライアントソフト(Windows Service for Unix)を導入する必要がある。 個人的にはインストールする必要はあるがSambaを利用したほうがたぶん楽。
  1. /etc にあるexportsで設定。(GUIならデスクトップ → システム管理 → フォルダの共有からでも可) 例えば、同一のLAN(192.168.1.0~192.168.1.255)に接続されたPCに、 /home/testというディレクトリに対するアクセスを読み書き可で許可する場合は、
    /home/test 192.168.1.0/255.255.255.0 (rw)
    のようにする。末尾のrwは読み書きの許可で読み込み専用ならroにする。
  2. chkconfig nfs on
  3. service nfs start
  4. あとはクライアント側の設定なのだが、クライアント側がLinuxならマウント作業として
    mount -t nfs 192.168.1.1:/home/test /test IPアドレスはサーバー側
    でOKだがWindowsの場合、Windows Service for Unixというクライアントソフトを導入してそれで設定する。

Samba
  1. ルータを使用していてDHCPを有効にしている場合、自動でIPアドレスが割り振られ、 個々のパソコンが互いに識別できないのでDHCPを無効にし、IPアドレスを固定する。
  2. ファイルサーバー(Samba)を参照。

システムサービスの表示、設定(chkconfig)

システムサービス(デーモン)のランレベルの表示や設定はchkconfigコマンドで行うことができる。 ランレベルには0~6の7種類があり、内容は以下の通り。
ランレベル 0 シャットダウン(システムの停止)
1 シングルユーザーモード(rootのみ)
2 ネットワークなしのマルチユーザーモード
3 通常のマルチユーザーモード(テキストログイン)
4 未使用
5 グラフィカルログインによるマルチユーザーモード
6 システムの再起動
システムサービスの動作状況の確認には
chkconfig --list
で確認できる。さらに特定のシステムサービスだけ表示させたい場合はlistのあとに表示したいサービス名を記述。
chkconfig --list apache2
特定のシステムサービスを常時起動するように設定したい場合はサービス名の後にonを記述。
chkconfig apache2 on
新しくシステムサービスを追加するには、--addオプションのあとに表示したいサービス名を記述。
システムサービスを削除するには、--delオプションのあとに表示したいサービス名を記述。

プロセス(起動中のプログラム)の表示、停止(ps・kill)

プロセス(起動中のプログラム)の表示はpsコマンドを使用。

ps ax すべてのプロセスを表示
ps ax|grep smb smbの文字列で検索して表示
ps -C smb smbのプロセスを表示

プロセスを停止させるにはkillコマンドを使用。

kill プロセス番号(PID番号)

また上記の方法でプロセスを停止できない場合は以下のようにすることで強制終了となる。

kill -9 プロセス番号(PID番号)

スケジュール実行の設定(cron)

cron(クローン)はWindowsでいうとタスクスケジューラにあたり 定期的に実行したいプログラムを登録することで自動で指定時刻に実行されます。 Vine Linuxでは初期設定でcronサービスが起動しています。 もし起動していない場合chkconfig crond onで起動させる。

初期設定では/etc/crontabに実行対象となるディレクトリと実行時刻の設定がされています。
crontabをテキストエディタで開いてみるとわかりますが # run-parts 以下に

01 * * * * root run-parts /etc/cron.hourly 毎時01分に/etc/cron.hourlyディレクトリ以下を実行
02 4 * * * root run-parts /etc/cron.daily 毎日04時02分に/etc/cron.dailyディレクトリ以下を実行
22 4 * * 0 root run-parts /etc/cron.weekly 毎週日曜日04時22分に/etc/cron.weeklyディレクトリ以下を実行
42 4 1 * * root run-parts /etc/cron.monthly 毎月1日04時42分に/etc/cron.monthlyディレクトリ以下を実行

の4つが登録されて、分 時 日 月 曜日 ユーザー コマンド の7つの項目で構成されています。 曜日指定は0から7で順番に、日月火水木金土日となり、分 時 日 月 曜日に *(ワイルドカード)を使用すると毎分・毎時・毎日・毎月・毎曜日になる。 また、run-partsはディレクトリ以下を、すべて実行という意味になります。

ディレクトリと実行時刻の設定がすでに設定されているので、あとは 実行コマンドを記述したファイル(シェルスクリプト)を実行したい時間・曜日のディレクトリ以下に配置すれば実行される。

(例)毎時01分に/var/www/test.plを実行する場合
  • touch /etc/cron.hourly/test.cron 名前は何でもいいがここではtest.cronとして作成
  • vi /etc/cron.hourly/test.cronでファイルを開き「a」で入力モードにして以下を記述
    #!/bin/sh
    /var/www/test.pl
  • 「Esc」でコマンドモードに切り替えて「ZZ」でファイルを保存して終了
  • chmod 755 /etc/cron.hourly/test.cron アクセス権を755に変更
  • ls /etc/cron.hourly/test.cronでファイルの一覧表示をして test.cron* のように表示されればOK。
    実行内容が間違えていなければ毎時01分にtest.plが実行される
ただ「30分ごとに実行したい」や「毎週火曜日に実行したい」、「毎週火曜日に実行したい」などの場合、/etc/crontabには設定されていないので 新たに時刻設定をする必要がある。設定内容はcrontabに直接追加してもいいのですがすでに登録されているcronに影響がおよぶ恐れがあり、 あまり推奨されないので/var/spool/cronディレクトリ以下にroot(またはユーザー名)の名前のファイルを作り、以下の例のように記述する。
*/30 * * * * root /var/www/test.pl 30分ごとに/var/wwwディレクトリにあるtest.plを実行
0 0-23/2 * * 2 root /var/www/test.pl 毎週火曜日の0時0分から23時0分まで2時間おきに/var/wwwディレクトリにあるtest.plを実行

※cronのログは /var/log/cron
※cronが毎回メールを送信するのを停止させるには /etc/crontabのファイルにMAILTO=''を記述?か /var/spool/cron/rootのファイルにMAILTO=''を記述? もともとMAILTO=rootの記述があるのは/etc/crontab

ファイルの編集(vi)

ファイルの編集はviコマンドを使用。いろいろと付属コマンドがあるがよくありそうな流れは以下のような感じ。
  • vi /usr/local/test.txt /usr/localディレクトリにあるtest.txtを開く
  • 「a」で入力モードにして内容を編集
  • 「Esc」でコマンドモードに切り替えて「ZZ」でファイルを保存して終了

ディレクトリ内のファイルを一覧表示(ls)

ディレクトリ内のファイルを一覧表示するにはlsコマンドを使用。
ls /var/log
ls -A /var/log オプション-Aで隠しファイルも表示
ls -a /var/log オプション-aで隠しファイルと上位ディレクトリも表示
ls -l /var/log オプション-lで明細表示

ファイル、ディレクトリの作成、削除(touch・mkdir・rm)

ファイルの作成はtouchコマンドを使用。
touch test.txt test.txtを作成
またtouchコマンドはファイル作成の他にタイムスタンプの更新にも使用します。
touch -t test.txt 既存のtest.txtファイルのタイムスタンプを変更
touch -m test.txt 既存のtest.txtファイルの最終更新時刻を変更
touch -u test.txt 既存のtest.txtファイルの最終アクセス時刻を変更

ディレクトリの作成はmkdirコマンドを使用。
mkdir /usr/local/test /usr/local/にtestディレクトリの作成
またオプション-pを付けることでディレクトリを作成する階層がない場合にその階層のディレクトリも作成されます。
mkdir -p /my/test myディレクトリが存在しなければmyディレクトリを作成してtestディレクトリを作成

ファイル、ディレクトリの削除はrmコマンドを使用。
rm -i test.txt test.txtファイルの削除(削除確認あり)
rm -f /tmp/∗ tmpディレクトリ内のファイルをすべて削除(削除確認なし)
rm -r /usr/local/test /usr/local/にあるtestディレクトリの削除(ディレクトリ以下も削除)

★補足
直接作成するときは関係ないがログの作成などで自動作成する際に日付を取得してファイル名をつけたい場合
touch `date '+%Y-%m-%d'`.txt 今日が2008年11月5日なら2008-11-05.txtになる
先月を指定したい場合
touch `date --date '1 month ago' +%Y-%m-%d` 今日が2008年11月5日なら2008-10-05.txtになる
1 month agoを24 month agoにすれば2006-11-05.txtになり、10 day agoなら2008-10-26.txt、1 year agoなら2007-11-05.txtになる。

ファイル、ディレクトリの移動、名前変更(mv)

ファイル、ディレクトリの移動はmvコマンドを使用。
mv -i test.txt /usr/local/test test.txtファイルを/usr/local/tesディレクトリに移動(上書き確認あり)
mv test.txt my.txt test.txtをmy.txtにリネーム
※ファイルのリネームでmv test /usr/local/testとした場合testディレクトリが存在するとリネームではなく移動になる。

★補足
日々のログなどでまとめて移動させたい場合アスタリスク「*」を使用すると便利。
mv /var/log/`date '+%Y-%m'`*.log /var/log/back

所有者、グループ、アクセス権の変更(chown・chmod)

chownコマンドでファイル・ディレクトリの所有者、グループ変更、chmodコマンドでファイル・ディレクトリのアクセス権変更ができます。
chown user1:user1 /var/test
chmod 700 /var/test
指定されたディレクトリを含む以下すべてに適用したい場合オプション -R をつけます。
chown -R user1:user1 /var/test
chmod -R 700 /var/test
ディレクトリ以下の特定のディレクトリ(ファイル)にのみ適用したい場合、括弧でくくってディレクトリ名(ファイル名)を指定します。
chown user1:user1 /var/test/{test1,test2}
chmod 700 /var/test/{test1,test2}

ユーザーの作成、編集、削除(useradd・usermod・userdel)

ユーザーの作成はuseraddコマンド、編集にはusermodコマンド、削除はuserdelコマンドを使用。
useradd user1 とするとuser1が作成されその他の設定はデフォルトでグループはuser1、ホームディレクトリは/home/user1、シェルは/bin/bashが設定される。 デフォルト値以外にしたい場合オプションを付けることで可能になる。
  • -d ホームディレクトリ
  • -m ホームディレクトリが存在しない場合作成(サブディレクトリは作成されない)
  • -g グループ名またはグループID
  • -p パスワード
  • -s シェル
  • -u ユーザID
useradd -d /home/user -m user1 user1を作成しホームディレクトリを/home/userにし、存在しなければ作成
useradd -d /home/user -m -s /bin/false user1

既存ユーザーの編集はusermodコマンドでオプションを指定することで内容変更。
  • -d ホームディレクトリ
  • -l ユーザー名
  • -g グループ名またはグループID
  • -p パスワード
  • -s シェル
  • -u ユーザID
usermod -l user1 user2 user2をuser1に名前変更
usermod -g subgroup user1 user1にサブグループとしてsubgroupを追加
usermod -s /bin/false user1 user1のシェルを/bin/falseに変更

既存ユーザーの削除はuserdelコマンドで以下のようにする。
userdel user1 user1の削除
userdel -r user1 user1とホームディレクトリの削除

無線LAN(WLI2-CB-G54L)の設定

Vine Linux4.2(カーネル2.6.16)にはBUFFALOのWLI2-CB-G54Lのドライバが組み込まれてないため、
Vine Linux4.2に付属のWindows用の無線LANドライバをLinuxで利用できるようにするためのソフトウェア「ndiswrapper」を利用して組み込む。
  1. BUFFALOのホームページからWLI2-CB-G54Lのドライバをダウンロードして展開
  2. 展開した中の2CBG54Lフォルダ内のNET2G54L.infとCBG54L2x.sysをrootフォルダ内に仮設置
  3. ドライバのインストール ndiswrapper -i NET2G54L.inf
  4. ドライバの確認 ndiswrapper -l
    installed drivers:
    net2g54l driver installed, hardware (17FE:2220) present
    上記メッセージがでればインストールOK
  5. NdisWrapperモジュールをロードする。modprobe ndiswrapper
  6. システム起動時にNdisWrapperのモジュールが自動的に読み込まれるようにする。
    ndiswrapper -m
  7. /etc/sysconfig/network-scripts/ifcfg-wlan0の設定
    DEVICE=wlan0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.100.2
    NETMASK=255.255.255.0
    GATEWAY=192.168.100.1
    ESSID="ESSID"
    KEY="16進数の10桁の英数字"
    ※使用するルーターおよび環境によって上記内容は異なるが設定項目はほぼ同じ
  8. LANカードを差し込む
  9. ネットワークの再起動 /etc/init.d/network restart
※カーネル2.6.17からBCM43xxシリーズのドライバがサポートされWLI-CB-G54Sは動作するらしい。
※WLI-CB-G54ならbcm43xxチップのためVine Linux4.2に付属のファームウェア抽出ソフト「bcm43xx-fwcutter」を利用しての組み込みも可らしい。
ファームウェアの切り出して/lib/firmware/にコピー。GNOME端末で bcm43xx-fwcutter -w /lib/firmware bcmwl5.sys
※lspciコマンドでメーカーや型番が分かるのでそれをもとにドライバの検索ができる

遠隔操作

VNC
VNC(Virtual Network Computing)を使ってWindowsから遠隔操作
  1. apt-get install vnc-server
  2. vncserverで起動(初回6文字以上のパスワードを2回入力)
  3. ファイヤーウォールで閉じられているTCPのport 5901(HTTPは5801)を開放
  4. VNCクライアントソフト(RealVNCやTightVNCなどのビューア)をクライアント側(Windows)にインストール
  5. クライアント側でビューアを起動させサーバーアドレスにコロン:とディスプレイNo(初期は1)を入力(例192.168.11.2:1)してサーバーに接続できるか確認
  6. /etc/sysconfig/vncserversファイルを開きVNCSERVERS="1:root"を追記し保存
  7. /root/.vnc/xstartupファイルを開き
    unset SESSION_MANAGER
    exec /etc/x11/xinit/xinitrc
    の先頭にある#を除き保存
  8. /etc/init.d/vncserver restart
  9. クライアント側でビューアを起動させサーバーに接続しサーバーのデスクトップ画面が表示されればOK
  10. ついでに/sbin/chkconfig vncserver on で自動起動設定
※ログは/root/.vnc/localhost.localdomain:1.log
※VNCビューアでフルスクリーンモードから戻るにはF8を押しフルスクリーンを再度選択
Webmin
WebminはWebブラウザから利用できるシステム管理ツールでApacheやPostfixなどのサーバー設定や Linuxの環境設定などを一括管理でき他のパソコンからでも操作できる便利なツールです。完全ではないが一応日本語対応。 Webminのファイルマネージャを使用するにはJavaがインストールされていてWebブラウザでJavaプラグインが有効になっている必要があります。 また日本語表示だとファイルマネージャが文字化けしているのでWebminをインストールしたディレクトリ以下の /file/lang/ja_JP.eucのファイルをsjisに変換して上書き保存すればOK。
Vine Linux 4.2には組み込まれていないのでまずはインストールから。
  1. aptコマンドでインストール
    apt-get install webmin

    aptコマンドでダメな場合はここから webmin-1.420-1.noarch.rpmをダウンロードして
    /usr/localに配置し、rpmコマンドでインストール
    cd /usr/local
    rpm -Uvh webmin-1.420-1.noarch.rpm

    rpmコマンドでもダメな場合はここから webmin-1.420.tar.gzをダウンロードして
    /usr/localに配置し、以下を実行
    cd /usr/local
    tar xzvf webmin-1.420.tar 拡張子tar.gzのファイルを展開
    cd webmin-1.420
    ./setup.sh
  2. Login nameにrootを設定
  3. Login passwordはrootのパスワード
  4. パスワード再入力
  5. ファイヤーウォール設定でTCPの10000のポートを開放
  6. ブラウザでアドレスhttps://サーバIP:10000/を入力しログイン
    ※ログイン画面が表示されない場合はWebminが起動してないので以下を実行
    /etc/init.d/webmin start
  7. 表示を日本語にする
    Webmin Configuration → Language → Japanese (JA_JP.EUC)
  8. Webminのアップグレード
  9. あとは用途に応じてモジュールの設定を行う
★システム設定
各プログラムを使用するための基本設定

Apache設定 サーバー → Apache Webサーバー → モジュール設定内のシステム設定で
httpdの実行可能ファイルのパスを /usr/sbin/apache2
apachectlコマンドのパスを /usr/sbin/apache2ctl
に変更して保存し、変更を適用。


ProFTPD設定 Un-used Modules → ProFTPD Server → モジュール設定内のシステム設定で
ProFTPDの設定ファイルへのパスを /etc/proftpd.conf
ProFTPDの実行ファイルへのパスを /usr/sbin/proftpd
ProFTPDのPIDファイルへのパスを /var/run/proftpd.pid
に変更して保存し、変更を適用。


Samba設定 Un-used Modules → Samba Windows ファイル共有 → モジュール設定内のシステム設定で
samba 設定ファイルの場所を /etc/samba/smb.conf
samba パスワードファイルの場所を 無し
smbstatus へのフルパスを /usr/bin/smbstatus
smbstatus へのフルパスを /usr/bin/smbpasswd
smbd へのフルパスを /usr/sbin/smbd
nmbd へのフルパスを /usr/sbin/nmbd
swatへのフルパスを 無し
smbgroupeditへのフルパスを 無し
pdbedit へのフルパスを /usr/bin/pdbedit
net コマンドへのフルパスを /usr/bin/net
に変更して保存し、変更を適用。

パケットフィルタリング(iptables)

iptablesはパケットフィルタリング(ファイアウォール)機能を有しており、各ポートの通信を許可・拒否するだけでなく、各ポートの送信の許可・拒否や受信の許可・拒否、 どのIPに対して許可・拒否するかなど、ルールテーブルを作成することで細かく設定ができるルーターのような存在です。 Vine Linux 4.2 では初期設定ですでに機能していますが用途や状況によっては設定を編集する必要があります。 項目が多くて分かりにくいので簡単に設定したい場合はWebminを利用するのがいいかもです。

(例)IP 123.456.789.999のWWWサーバーへのアクセスを許否
  1. iptables -I Rh-Firewall-1-INPUT 1 -s 123.456.789.999 -p tcp --dport 80 -j DROP
    tcp送信先ポート80にきたIP123.456.789.999パケットを破棄するというルールをRH-Firewall-1-INPUTチェーンの1番目挿入登録
  2. /etc/init.d/iptables save
  3. service iptables restart
現在の設定状況はiptables -Lで確認できます。

iptableではチェインごとに通信を制御。
INPUT サーバーへ到達するパケット
FORWARD サーバーをルータとして動作させるときに通過するパケットを制御。
OUTPUT サーバーから送出するパケット

ルール時に使用する主なターゲット
ACCEPT マッチしたパケットを通す。(接続を許可する。)
DROP マッチしたパケットを破棄する。(接続を拒否する。)
LOG マッチしたパケットをログに記憶する。
REJECT マッチしたパケットの送信元にICMPのエラーメッセージを返信し、DROPする。
RETURN ユーザ定義チェイン内であれば呼び出し元に返り、組み込み済みチェインであればチェインポリシーが適用される。
QUEUE  ユーザースペースのアプリケーションで処理されるように パケットをキューに登録します。
ユーザ定義チェイン ターゲットに指定されたユーザ定義チェインに移動する。

コマンドオプション
-A 指定したチェインの末尾にルールを追加する
。 -I 指定したチェーンにルール番号を指定して挿入する。番号を省略するとチェーンの先頭に挿入される。
-R 指定したチェインのルールを、指定したルールと置き換えます。
-F 指定したチェインの内容を全て消去する。
-D 指定したチェーンのルールを削除する。
-h ヘルプを表示する。
-L 指定したチェインのルールを一覧表示する。(チェイン名の指定がなければすべてのチェインのルールを表示)
-N 指定した名前でユーザ定義チェインを作成する。
-P デフォルト(ルールが最後までマッチしなかった場合)に適用されるターゲットを指定する。
-X 指定したユーザ定義チェインを削除する。
-Z 全てのチェインのパケットカウンタとバイトカウンタをクリアする。

パラメータ
-p プロトコルの指定。tcp,、udp、icmp、allが指定できる。
-j ターゲットを指定する。ACCEPT、DROP、RETURN、LOG、REJECTなどを指定します。
-i パケットを受信するインターフェイスを指定する。
-o パケットを送信するインターフェイスを指定する。
-s 送信元IPアドレスを指定する。
-d あて先IPアドレスを指定する。

TCP、UDP拡張オプションはパラメータ -p を使用したときにそのあとに指定することで使用できます。
--dport 送信先ポートを指定。
--sport 送信元ポートを指定。

たまにみかける遮断してもいいかと思われるIP例
150.70.84.153
150.70.84.43
66.180.82.xx
128.241.20.xx
トレンドマイクロのウイルスバスターがWebサイトが安全かどうかの判定のために
URLフィルタって機能の為にBOTがアクセスするIP

89.149.227.238
89-149-227-238.internetserviceteam.com
internetserviceteam.com(アメリカのスパムサーバー)

TOPへ
戻る