ホームページへ戻る
 

上へ戻る
 

      ネットワーク入門その2      by H.Y   3月 10 12:17:08 JST 2002


目次
1。TCP/IP のサービス (5、6、7層のサービス)
1ー1。telnet
1ー2。ftp (File Transfer Protocol)
1ー3。DNS (Domain Name System)
1)DNS とは
2)ドメイン名空間(Domain Name Space)
3)ネームサーバ
4)リゾルバ
5)ゾーン (zone)
6)マスター / スレーブサーバ
7)リソースレコード(Resource Record : RR)
1ー4。電子メールの仕組み
1) MTA (Mail Transfer Agent) メールサーバ
2) MDA (mail Derivery Agent)
3) MUA (Mail User Agent)
1ー5。SMTP(Simple Mail Transfer Protocol)
1) SMTPコマンド
2)実行例
1ー5。POP (Post Office Protocol)
1)POP3 コマンド
2)実行例
1ー6。SNMP (Simple Network Management Protocol)
1ー7。NFS (Network File System)
1ー8。NIS (Network Information Service)
1ー9。ping (packet internet groper)
1ー10。traceroute
1ー11。netstat
1ー12。ifconfig
1ー13。nslookup
1ー14。arp
1ー15。nmap
2。inetd, xinetd スーパーサーバー
1)設定ファイル inetd.con xinetd.conf
2)サービス services
3)設定変更の有効化
3。TCP_Wrapper ( tcpd )
1) /etc/host.allow
2) /etc/host.deny
3)設定のチェック tcpdchk
4。NAT and IP masqurade
4ー1。NAT (Network Address Translator)
4ー2。IPマスカレード
5。Linux の設定ファイル
1) /etc/hosts
2) /etc/resolv.conf
3) /etc/named.conf
4) /etc/dhcpc/dhcpcd.conf
5) /etc/identd.conf
6) /etc/syscnfig/network
7) /etc/sysconfig/network-scripts/ifcfg-eth0
8) /etc/hosts.allow, /etc/hosts.deny
9) /etc/inetd.conf, /etc/xinetd.conf
10) /etc/services

============================================================

1。TCP/IP のサービス
第5、6、7層のサービスの主なものを説明する。
1ー1。telnet
自分の操作しているPCを仮の端末とし、ネットワークの接続先のPCとの間で端末専用の回線
を敷設したイメージでそのPCに入り、遠隔端末として使用すること。
telnet による接続はサーバ/クライアントの関係でなりたつ。 接続される側のPCでは telnetd
が起動して、常時クライアントからの接続要求の応じられるように準備しておく必要がある。
telnet の接続はTCPヘッダの接続先ポート番号は 23 になる。 サーバはこのポート番号で
telnet の接続要求を認識する。 接続元のポート番号は1024番以降を用いる。
複数の接続要求にも、応答できる。接続先の区別は IPアドレスと、IPアドレスが同一
の場合は、発信元のポート番号で区別する。
1)Open SSH (Secure Shell)
セキュリティーを強化した、リモートログイン方式。
telnet ではパケットが、そのままネットワークに流れるので、ログイン時の ID やパスワード
もそのまま流れてします。SSH は通信全体を暗号化するので、盗聴/改ざんの危険は極めて低
く、安全な運用が可能になる。

1ー2。ftp (File Transfer Protocol)
ネットワークに接続されている異るPC間でファイルの転送をおこなう。
telnet と同様 サーバ/クライアントの関係で成り立つ。
サーバ側は ftpd を起動して、常に接続に応えられるようにする。
TCPヘッダの宛先ポート番号は、データポートが 21 で、制御ポートが20 である。
複数の接続要求に応えられる。接続元の識別は telnet の場合と同じ。
1ー3。DNS (Domain Name System)
1)DNS とは
32ビットの数字で表現された IPアドレスは、人間にとって覚えにくい。
そこで、簡単なホスト名をつけてIPアドレスと対応ずけ、これを通常用いるようにしている。
例) 192.168.10.2 hiro_1
この IPアドレスとホスト名の対応表がホストファイル(/etc/hosts)である。
実際の通信時には、ホスト名を IPアドレスに変換して IPヘッダに書き込めばよい。
この同じホストファイルを、各ホスト毎に持っていても良いけれど、ネトワークが大きくなる
と、ホストファイルも大きくなり、一括管理が限界になってくる。
そこで、この DNS が考えられた。
DNS は IPアドレスとホスト名の対応ずけを行うシステムである。設定変更は、各組織毎に
行えるように、分散型の管理システムのなっている。
DNS は、ドメイン、 ネームサーバ、 リゾルバ の3つの要素で構成される。
またポート番号は、TCP 53、UDP 53 を用いる。

UNIXでは通常 DNS として、BINDが採用されており、デファクトスタンダードである。
BINDの本体は named で提供されている。
関連ファイルは
/etc/namedb/named.conf デフォルトのネームサーバの設定ファイル
/var/run/named.pid (_PATH_PIDFILE) プロセス ID
/var/tmp/named_dump.db (_PATH_DUMPFILE) ネームサーバデータベースのダンプ
/var/tmp/named.run (file: _PATH_DEBUG) デバッグ出力
/var/tmp/named.stats (file: _PATH_STATS) ネームサーバの統計データ

2)ドメイン名空間(Domain Name Space)
DNS での、ホストの表現にドメインと言う概念をもちいる。
ドメインはホストを組織分けしたときの組織名と考えても良い。このメインは、階層型の管理に
なっており、組織に関連したツリー構造になっている。
例)
jp : ルートドメイン(Root Domain)
|
----------------------------------
| | | |
ac go co ne : TLD (Top Level Domain)
|
------------
| |
pure zaq : サブドメイン

これをドメイン名で書くと、 zaq.ne.jp または pure.ne.jp となる。
これにホスト名を付けると hiromu.zaq.ne.jp となる。
これを、FQDN(Fully Qualified Domain Name)と言う。
3)ネームサーバ
ドメイン名を管理しているソフトウェアである。
4)リゾルバ
クライアントからの名前の問い合わせなどを、ネームサーバに照会するプログラム。
5)ゾーン (zone)
ドメイン名空間の一部で、DNSサーバがの管理する単位。
6)マスター / スレーブサーバ
1個のゾーンには、信頼性のため2つのDNSサーバを設置する必要がある。
マスターサーバは自前のゾーンデータベースを持ち、スレーブサーバはそのコピーを保持する。
7)リソースレコード(Resource Record : RR)
ゾーンデータベースはリソースレコードの集合体である。
[書式] <owner> [ <period ] <class> <type> <value>
owner : ドメイン名 や ホスト名が入る。
periode: 有効期限(TTL) 省略可能
class : RR のクラスであるが、 internet を意味する IN を用いるのがほとんど
type : レコードのタイプ
------- type-----------------------------
SOA :Start Of Authority
A :Address
NS :Name Server
HINFO :Host Information
CNAME :Canonical Name (alias of host)
WKS :Well-known Services(telnet,ftp,smpt etc)
MX :Mail Exchanger
PTR :Domain Name Pointer
TXT :Text(comment)
------------------------------------------
value : <type>に応じて定義される。

1ー4。電子メールの仕組み
1) MTA (Mail Transfer Agent) メールサーバ
メール配送を受け持つプログラム。メールサーバとも言う。
MUA等から受け取ったメールを、その宛先のアドレスから
宛先のホストを調べ、適切なホストの MTAへメールを転送したり、MDAに依頼して自ホストに
あるメールスプールファイルに、それを格納する。代用的なそふとは sendmail。
セキュリティの面から、最近は qmail が注目されている。
2) MDA (mail Derivery Agent)
メールの配信を受け持つプログラム。MDAは MTAに依頼されて、ユーザのメールを
メールスプールファイルに実際に格納(配信)する。
procmail や mail.local(sendmail に含まれる) が使われる。
3) MUA (Mail User Agent)
MUAは、ユーザがメールを作成、編集、整理したり、それを送信、受信するプログラム。
MUAは、メールを MTAに依頼し配送させるほか、ユーザのメールスプールファイルから
メールを引き出す。
MUA はクライアントソフトとなるPCで実行するソフトである。
UNIXでは、mail, pine, sylpheed, netscape messager がある。
1ー5。SMTP(Simple Mail Transfer Protocol)
テキスト型の電子メールを、メールサーバ(MTA)の間で転送してくれるプロトコル。
サーバ/クライアントの関係で成り立つ。TCPのポートは 25番が用いられる。
多くのUNIXでは sendmail で実装されている。
1) SMTPコマンド
(1)HELO <host domain> :SMTP セッションの開始(hello)
(2)MAIL FROM:<sender> :メール配送元の指定(mail)
(3)RCPT TO:<receipt> :メール宛先の指定(receipt)
(4)DATA :メール本体(data)
(5)QUIT :SMTP セッションの終了(quit)
(6)HELP :コマンドのヘルプ
2)実行例
telnet で POPサーバに接続して SMTP を実行する。

(1)telnet *****.****.ne.jp 25 //SMTPサーバ
(2)HELO ****ne.jp //自分のドメイン名
(3)MAIL FROM: ****@****.ne.jp //自分のメールアドレス
(4)RCPT TO:****.****.ne.jp //宛先のメールアドレス
(5)DATA 本文
(6). //文の最後を意味する。
(7)QUIT

1ー5。POP (Post Office Protocol)
メールサーバ(MTA)からクライアントへメールを取り出すソフト。
TCPポートは 110 が使用される。
1)POP3 コマンド
(1)USER <name> :ユーザ名(User)
(2)PASS <password> :パスワード(Password)
(3)STAT :サーバの状態を取得(Status)
(4)LIST :メールのリストを取得(list)
(5)RETR <number> :number で指定する数のメールを取得する。(Retrieve)
(6)DELE <number> :number で指定する数のメールを削除sるる。(Delete)
(7)NOOP :なにもしない。(No Operation)
(8)QUIT :セッションを終了する。(quit)
(9)HELP :コマンドのヘルプ
2)実行例
telnet で POPサーバに接続してPOP3を実行する。

(1)telnet ****.****.ne.jp 101 //POPサーバ
(2)USER hiromu //ユーザ名
(3)PASS ****** //パスワード
(4)LIST //メールのリスト
(5)RETR 1 //1 番目のメール受信
(6)DELE 1 //1 番目のメール削除
(7)QUIT
-------------------------------------------------------

1ー6。SNMP (Simple Network Management Protocol)
TCP/IP 通信での第標的なネットワーク管理用のプロトコル。
管理者が使用するネットワーク監視端末(SNMPマネージャ)と、SNMPが実装されている機器
(SNMPエージェント)との間のプロトコルを規定している。
例) インテリトハブ等
1ー7。NFS (Network File System)
ネットワーク上の各機器に接続するハードディスクを、他の機器からも同様のオペレーション
で操作できるようにするアプリケーション。
1ー8。NIS (Network Information Service)
ユーザ管理やホスト名等の管理情報を、複数のUNIXワークステーションで共有するサービス。
ある機器のログインする場合に、NIS で一元管理しているデータベーに確認し、承認を得てから
ログインする。

1ー9。ping (packet internet groper)
ping はネットワークの接続性をチェックするための、管理ツール。
ICMP の Echo Request と Echo Reply を利用している。
[方法] ping [ -c パケット数] [ -s パケットサイズ] ホスト名
---- 実行例 -------------------------------------------------
(1)ethereal(TCP/IP パケットモニター・アプリケーション)を起動する
ethereal
(2)[display] -> [Atuomatic scrolling in live Capture] を選択
(3)[Apply] -> [OK] を選択
(4)[Capture] -> [Start] を選択
(5)[interface] を選択 (eth0等)
(6)[Atuomatic scrolling in live Capture] を選択
(7)[OK] を選択
これで ethereal の パケットモニタリングが始まる。
(8)ping -c 3 ns1.jtw.zaq.ne.jp を実行
(9)ethereal のパケット・キャプチャリングを[stop] する。
---これからパケットの解析----
(10)最下段の Filter 窓内に ip.proto==1 を書き込み リターンを押す。
もしくは、 icmp[0]==0 || icmp[0]==8
(11)パケットリスト窓に エコーパケットが全て表示される。
(12)Filter 窓を icmp[0]==8 に書き換えてリターンを押す。
(13)パケット窓は Echo Request パケットが表示される。
(14)Filter 窓を icmp[0]==0 に書き換えてリターンを押す。
(15)パケット窓は Echo Reply パケットが表示される。
(16)Filter Reset を押すと全パケットが表示される。

ethereal は tcpdump の書式を踏習しているので、参考にすること。

1ー10。traceroute
ネットワークのコネクションの経路をするためのツール。
traceroute は IPヘッダの TTLメッセージ、ICMP 時間経過メッセージ、
ICMP 到達不可エラーメッセージを利用している。
[実行例] traceroute ホスト名
traceroute は同じ宛先のホストに対して、TTLを1にセットしてパケットを3回送信する。
応答があると、更に TTLを増やしてさらに同じホストにパケットを送信する。最終的に目的
のホストに到達するとそこでやめる。
------- 実施例 --------------------------------
(1) ethereal を起動してキャプチャリングを開始する。
(2) traceroute ns1.zaq.ne.jp
(3) traceruote が停止したところで、キャプチャリングをストップする。
(4) ethereal のラジオボタン[Protocol]をクリックする。
パケットリストがプロトコル順にソートされる。
(5) プロトコル UDP が traceroute の問い合わせパケットなのでこれを上からみてみる。
(6) TTL の値が、3パケット毎に 1,2,3,4,5 と増えているのを確認する。

traceroute は UDPパケットを使用するので、ルータが拒否したり、イムアウトで届かない
場合がある。 ping は ICMP パケットなので比較的届き易い。

1ー11。netstat
ネットワークのコネクションと、プロトコルに関する、統計情報を表示させるツール。
ネットワーク接続、経路テーブル、インターフェースの状態、マスカレード接続、
netlink メッセージ、マルチキャストのメンバーシップを表示する

(引き数なし)
デフォルトでは、 netstat はオープンされているソケットの一覧を表示する。
アドレスファミリーが指定されていなければ、設定されている全てのアドレスファミリーに
関して、アクティブなソケットが表示される。
--route , -r
カーネルの経路テーブルを表示する。
--groups , -g
IPv4 と IPv6 のマルチキャストグループメンバーシップ情報を表示する。
--interface=iface , -i
全ての (あるいは iface で指定した) ネットワークインターフェースの状態テーブルを
表示する。
--masquerade , -M
マスカレードされた接続を表示する。
--statistics , -s
各プロトコルの統計情報の一覧を表示する。
--help, -h
netstat のオプションを表示する。
1ー12。ifconfig
ネットワーク・インターフェイスのチェック、設定を実行するツール。
実行例1) ifconfig eth0 eth0 のチェック
実行例2) ifconfig eth0 192.168.10.2 eth0 アドレスの設定
実施例3) ifconfig eth0 up eth0 動作開始
ifconfig eth0 down eth0 停止
ifconfig eth0 192.168.10.1 up

1ー13。nslookup
DNS への問い合わせに利用するネットワークツール。
実行例1) コマンドラインモード
nslookup hiromu.pure.ne.jp
------- リプライの一部 ----------------------------
Non-authoritative answer:
www.pure.ne.jp canonical name = purewww.pure.ne.jp.
Name: purewww.pure.ne.jp
Address: 210.167.254.3
実行例2) 対話モード
(1) nslookup
(2) > set debug
(3) > www.pure.ne.jp
(4)------------ reply message --------------------
QUESTIONS:
www.pure.ne.jp, type = A, class = IN
ANSWERS:
-> www.pure.ne.jp
canonical name = purewww.pure.ne.jp.
-> purewww.pure.ne.jp
internet address = 210.167.254.3
AUTHORITY RECORDS:
-> pure.ne.jp
nameserver = pure02.pure.ne.jp.
-> pure.ne.jp
nameserver = ns1.omp.ad.jp.
-> pure.ne.jp
nameserver = pure01.pure.ne.jp.
ADDITIONAL RECORDS:
-> pure02.pure.ne.jp
internet address = 210.167.254.5
-> ns1.omp.ad.jp
internet address = 210.159.1.34
-> ns1.omp.ad.jp
has AAAA address 2001:2c8::2
-> pure01.pure.ne.jp
internet address = 210.167.254.2
実行例3) NS(Name Server)レコード指定
(1) nslookup
(2) > set type=NS //ネームサーバを定義するレコードを指定
(2) > pure.ne.jp //ドメイン名
(3)------------ reply message --------------------
Server: 211.124.191.130
Address: 211.124.191.130#53

Non-authoritative answer:
pure.ne.jp nameserver = ns1.omp.ad.jp.
pure.ne.jp nameserver = pure01.pure.ne.jp.
pure.ne.jp nameserver = pure02.pure.ne.jp.

Authoritative answers can be found from:
ns1.omp.ad.jp internet address = 210.159.1.34
ns1.omp.ad.jp has AAAA address 2001:2c8::2
pure01.pure.ne.jp internet address = 210.167.254.2
pure02.pure.ne.jp internet address = 210.167.254.5
実行例4) ANYレコード指定(全てのレコード)
(1) nslookup
(2) > set type=ANY //全てのレコードを指定
(3) > pure.ne.jp //ドメイン名
(4)------------ reply message --------------------
省略
実行例5) nslookup の 設定状況
(1) nslookup
(2) > set all
(3)------------ reply message --------------------
Default server: 211.124.191.130
Address: 211.124.191.130#53

Set options:
novc nodebug nod2
defname search recurse
timeout = 0 retry = 2 port = 53
querytype = ANY class = IN
domain = zaq.ne.jp

1ー14。arp
arp は [IP アドレス]と [MAC アドレス] の対応づけに利用するツール。
このアドレスの対応表は ARPテーブルと呼ばれ、この内容により表示する。

実行例)
arp -a
----------- reply message ------------------------------------
Address HWtype HWaddress Flags Mask Iface
GW ether 00:00:77:94:7F:DA C eth0
1ー15。nmap
自サイトのサーバのサービスの状況をテストするツール。
余分なポートがオープンされていないかをチェックするのが目的である。

[ 注意 ] : 他サイトに mnap を実行することは、自粛すること。

下記サイトからダウンロードする。
http://www.insecure.org/nmap/nmap_download.html
インストール法
(1)tar xzvf nmap-2.54BETA30.tgz
(2)make
(3)su -
(4)make install
実行例1) nmap localhost 自 PC のポートをスキャン
-------- reply message ----------------------------------
Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ )
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1541 ports scanned but not shown below are in state: closed)
Port State Service
111/tcp open sunrpc //rpc ポートオープン
113/tcp open auth
515/tcp open printer
5680/tcp open canna
6000/tcp open X11
8080/tcp open http-proxy
8081/tcp open blackice-icecap
32771/tcp open sometimes-rpc5

余分なポート 111/tcp rpc Port をクローズする。
(1) ps ax | grep portmap
(2) kill [portmap PID]
(3) nmap localhost
(4) 111/tcp は見当たらなくなった。
(5) setup を起動
(6) portmap の [ * ] の * を削除してブート時に起動しなくする。
(7) /etc/init.d/rc3.d/ディレクトリで K*portmap を確認する。

実行例2) nmap **.206.31.5 あるサーバをスキャン
------------- reply message --------------------------
Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ )
Interesting ports on (61.206.31.5):
(The 1542 ports scanned but not shown below are in state: closed)
Port State Service
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
80/tcp open http
110/tcp open pop-3
113/tcp open auth
443/tcp open https
実行例3)
nmap -v ホスト名 にすると途中経過が良く解る。
途中で終了してもそれまでの open されているポートが表示できる。
nmap -v *****.pure.ne.jp
--------------- reply message -----------------------------------
Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ )
No tcp,udp, or ICMP scantype specified, assuming vanillatcp connect()
scan. Use -sP if you really don't want to portscan (and just want to
see what hosts are up).
Host pure01.pure.ne.jp (210.167.254.2) appears to be up ... good.
Initiating Connect() Scan against pure01.pure.ne.jp (210.167.254.2)
Adding open port 110/tcp
Adding open port 53/tcp
Adding open port 25/tcp
Adding open port 23/tcp
Adding open port 21/tcp
The Connect() Scan took 163 seconds to scan 1549 ports.
Interesting ports on pure01.pure.ne.jp (210.167.254.2):
(The 1543 ports scanned but not shown below are in state: filtered)
Port State Service
21/tcp open ftp
23/tcp open telnet
25/tcp open smtp
53/tcp open domain
110/tcp open pop-3
113/tcp closed auth

2。inetd, xinetd スーパーサーバー
ftpd や telnetd などのサーバプログラムを管理/制御し、必要に応じて起動するための
プログラム。inetd , xinetd がある。
スーパーサーバはポートを常に監視していて、ポートに接続要求があると、その接続に必要な
サーバを選択して起動する。そして、そのサービスが終了すると、サーバをダウンさせる。
このスーパーサーバにより、システムのメモリ使用量とシステムの負荷を軽減することが
できる。またサーバプログラムの一元管理/制御が可能になる。また、
サーバプログラムが、何らかの理由で正常に機能しなくなった場合でも、次の要求により再び
このサーバを起動することができるので、システムの堅牢性/冗長性を高めることが出来る。
1)設定ファイル inetd.conf xinetd.conf
inetd, xinetd が起動するサーバの設定ファイルは
/etc/inetd.conf
/etc/xinetd.conf , /etc/xinetd.d/*
である。
xinetd.conf は /etc/xinetd.d のファイルをインクルードしている。
inetd.conf と xinetd.conf の書式は異る。

------- /etc/inetd.conf -------------------------------------------------
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>#
#ftp stream tcp nowait root /usr/sbin/tcpd in.proftpd -l -a
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
#gopher stream tcp nowait root /usr/sbin/tcpd gn
shell stream tcp nowait root /usr/sbin/tcpd in.rshd
login stream tcp nowait root /usr/sbin/tcpd in.rlogind
pop-3 stream tcp nowait root /usr/sbin/tcpd in.qpopper

inetd は tcpd を起動して サービス用のサーバを起動させる。
---------- /etc/xinetd.d/ftp ---------------
service ftp
{
disable = no
socket_type = stream
wait = no
nice = 10
only_from = sigeki.pasar-malam.com.sg
192.168.10.1/255
user = root
server = /usr/sbin/proftpd
instances = 4
log_on_success += DURATION HOST USERID
}
xinetd では サーバ毎にアクセス制御が出来る。即ち、tcpd は起動しない。
only_from, no_access で制御する。

2)サービス services
サービス名は
/etc/services
に記述する。
このファイルには、サービス名とエイリアス、そのポート番号を登録する。
例)
------------------ /etc/services の一部 ---------------------------
domain 53/tcp nameserver # name-domain server
domain 53/udp nameserver
mtp 57/tcp # deprecated
bootps 67/tcp # BOOTP server
bootps 67/udp
bootpc 68/tcp # BOOTP client
bootpc 68/udp
tftp 69/udp
3)設定変更の有効化
inetd.conf, xinetd.confを変更した場合は、次にいずれかのコマンドを実行する。
(1) killall -HUP inetd
(2) /etc/rc.d/init.d/inet restart
(3) /etc/rc/d/init.d/inet reload

3。TCP_Wrapper ( tcpd )
tcpd は、 inetd がクライアントからの要求を受け付けた際に起動され、
目的のサーバプログラムを起動させるアクセス管理機能を受け持っている。tdpd が起動
されると、サービスを許可されるホスト情報の /etc/host.allow と、サービスを禁止
される /etc/host.deny と言う設定ファイルを読み込む。

その仕組みは次のようになっている: サービスを求めるリクエストが届くと、 inetd
デーモンは、要求されたサービスを起動する代わりに、 tcpd に役目を交替する。
tcpd はリクエストをログに記録し、いくつかのチェックを実行する。すべてよしとなれ
ば、tcpd は 適 切なサーバプログラムを起動し、そして姿を消す。

(1) host.allow で許可されたホストはであれば許可する。
(2) host.allow で許可されたホストを除き、host.deny で禁止されているホストは禁止する。
(3) それ以外のホストは全て許可する。

1) /etc/host.allow
[ daemon list] : [host list ] [ : (command) ]
------ 例 --------
ALL : 127.0.0.1 127.0.0.1 のホストは全てのサービス許可
in.ftpd : 192.168.0. 192.168.0.* のホストは ftp 許可
2) /etc/host.deny
ALL : ALL

3)設定のチェック tcpdchk
tcpdchk を実行して、設定のチェックを行う。

4。NAT と IP マスカレード(Masqureade)
4ー1。NAT (Network Address Translator)
NAT は,ルータまたはゲートウェイでパケットの送信元や受信元の IPアドレスの変換を行う。
ローカルIPアドレスを持つPCから、グローバルIPアドレスのインターネトへ接続する場合、
内部PCのローカルIPアドレスを、空いているグローバルIPアドレスに変換して送信する。
また、特定のグローバルIPアドレス宛のパケットを、内部のローカルアドレスに変換して
パケットを受け渡す。こうすることで、外部のネットワークから、特定のローカルネットワーク
のPCにアクセスすることが出来る。
アドレスの変換は 1 : 1 の関係になる。
4ー2。IPマスカレード
IPマスカレードは、アドレス変換機能とパケットの TCP/UCPポート番号の変換機能も持つ。
このポート番号の変換機能により、複数の送信元に対して、1つのアドレス変換を実行出来る。
1つのグローバル IPアドレスを複数の内部ローカル IPアドレスのPCが共用できる。
アドレスの対応が 1 : N なので、外部からのアクセスに対して、ファイアウォール機能を
持つことができる。

アドレスの対応例)
グローバル IPアドレス ローカル IPアドレス
----------------------------------------------------
211.123.10.1 #2000 192.168.10.1 #3000
211.123.10.1 #2001 192.168.10.2 #4000
211.123.10.1 #2002 192.168.10.3 #5000


============================================================
5。Linux の設定ファイル

1) /etc/hosts
IP アドレスとホスト名を関連ずけるファイル。
ブートアップ時等、DNS が稼働していないときに役立つ。

[書式] IP-アドレス 正式なホスト名 エイリアス

-------- example --------------------------------------
127.0.0.1 localhost.localdomain localhost
192.168.10.10 yoshino.hiromu hiromu
192.168.10.2 yoshino.hiro_2 hiro_2
------------------------------------------------------
2) /etc/resolv.conf
DNS を使用したシステムにおいて、名前解決を実行するリソルバの設定を行うファイル。
domain : 自分のホストが所属しているドメイン名
search : 名前解決の際に追加するローカルドメイン名
nameserver : 上位のネームサーバ
-------- example ----------
domain zaq.ne.jp
search zaq.ne.jp
nameserver 211.124.191.130
--------------------------
3) /etc/named.conf
DNS サーバ bind の設定ファイル
4) /etc/dhcpc/dhcpcd.conf
dhcpcd が dhcp サーバから取得した情報を書き込む。
----------- example --------
IPADDR=***.135.24.145
NETMASK=255.255.248.0
NETWORK=***.135.24.0
BROADCAST=***.135.31.255
GATEWAY=***.135.24.1
DOMAIN=zaq.ne.jp
DNS=***.124.191.130
DHCPSID=***.124.191.130
DHCPGIADDR=***.135.24.1
DHCPSIADDR=***.124.191.130
DHCPCHADDR=00:**:**:1B:56:3D
DHCPSHADDR=00:**:**:94:7F:DA
DHCPSNAME=
LEASETIME=3600
RENEWALTIME=1800
REBINDTIME=3150
一部アドレスは ** で隠している。
---------------------------------
5) /etc/identd.conf
IDENT Protocol による、ユーザー情報問い合わせに答える identd の設定ファイル。
6) /etc/syscnfig/network
----- example ------
ETWORKING=yes
HOSTNAME=hiromu
FORWARD_IPV4=yes
-----------------------
7) /etc/sysconfig/network-scripts/ifcfg-eth0
---- ifcfg-lo -------------
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback

----- ifcfg-eth0 -------
DEVICE="eth0"
ONBOOT=yes
BOOTPROTO=dhcp

---- ifcfg-eth1 --------
DEVICE="eth1"
USERCTL=no
ONBOOT="no"
BOOTPROTO="static"
BROADCAST=192.168.10.255
NETWORK=192.168.10.0
NETMASK=255.255.255.0
IPADDR=192.168.10.2
-------------------------
8) /etc/hosts.allow, /etc/hosts.deny
tcpd のアクセス制御のための設定ファイル。
3。TCP-Wrapper(tcpd)を参照のこと。
9) /etc/inetd.conf, /etc/xinetd.conf
2。inetd, xinetd スーパーサーバー を参照のこと。
10) /etc/services
RFC で規定している Well Known Port 番号と サービス、プロトコルの対応を定義
しているファイル。