[Orangepekoe Tearoom] >> [Linuxによるサーバー構築] >> [サーバーの構築(常時接続編)]   

サーバーの構築(常時接続編)

■用意したマシン

機種:Fujitsu FMV DeskPower SII 167
CPU:たぶんPentium 166MHz
ハードディスク容量:2GB → 14GB
メモリー:32MB
ある日、パソコンを捨てるのにどうしたらよいかと相談を受け、そのパソコンをそのままいただいた。
Windowsを動かすには遅いかもしれないが、Linuxサーバーとしては、十分の性能である。
それまで、自分の部屋と居間にパソコンがあったが、それぞれスタンドアローンで電話線を分岐してダイアルアップでインターネットに接続していた。サーバーが構築できるとなれば、いろいろ用途も広がる。早速、NiftyでADSLを申し込む。
ルータータイプモデム(ASUS製)なので、そのままパソコンのLANカードにつなげば、簡単にインターネットにつながる。HUBに直接つなぐことはサポートしていないので、今回のLinuxサーバーを介してのアクセスとする。
家庭内LANでADSLによるインターネットの共有、ファイルサーバー、電子掲示板(内部LAN専用)などを構築した。
将来的には、IBM PC110もつなげたいと思っている。

■接続状態

デスクトップ2台。サーバー・デスクトップがHUBでつながっている状態。LANカードやHUBは 10BASE-T対応。
LANカードは、デスクトップ2台分とサーバーに2枚とで、計4枚を購入。全て同じ製品。
ADSLモデム 192.168.100.1
サーバー 内側(家庭内LAN側) eth0 192.168.1.1
サーバー 外側(インターネット側) eth1 ADSLモデムのDHCPにより割り当てられる。
クライアントは、サーバーからDHCPにより割り当てる。

■インストール

TurboLinux Server 7.0 FTP版を用意した。
インストールは、イントラネットサーバーというパッケージを選択。雑誌を購入して付属CDからのインストールだったが、FTPからのインストールも可能だというのをあとから知った。WorkStationをインストールするときにこのネットワークインストールをしてみたが、(ADSL1.5Mで)3時間ほどとCDインストールの倍ほどの時間で済んだ。アップデートもturbopkgコマンドで簡単に済んでしまう。Windows Updateのような気軽さ。
●/etc/HOSTNAME
server2
●/etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.1 server2.pekoe.gr.jp server2
●/etc/modules.conf
alias eth0 ne2k-pci
alias eth1 ne2k-pci

alias parport_lowlevel parport_pc
「alias eth1 ne2k-pci」がない場合は、書き足す。そうするとeth1のLANカードも認識するはず。同じ製品を買ってきたが、特にトラブルなし。PCIバスに差したとき、下側がeth0で、上側がeth1になるらしい。
ifconfigで、確かめることができる。HWaddrの部分がLANカードに貼ってあるシールの番号と一致する。(ifconfig・・・Windowsのコマンドはipconfigで紛らわしい)
●/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=
192.168.1.255
IPADDR=
192.168.1.1
NETMASK=255.255.255.0
NETWORK=
192.168.1.0
ONBOOT=yes
●/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=
dhcp
ONBOOT=yes
DHCPによる場合は、上記のように設定する。実際には、192.168.100.10に割り当てられた。
●/etc/hosts.allow
# Local host
# Allow all requests from localhost
ALL : 127.0.0.1
ALL : 192.168.1.
内部ネットワークは全て許可という意味。
●/etc/dhcpd.conf
http://www.linux.or.jp/JF/JFdocs/Home-Network-mini-HOWTO-3.html
subnet 192.168.1.0 netmask 255.255.255.0 {
range
192.168.1.20 192.168.1.30;
default-lease-time 86400;
max-lease-time 86400;
option routers 192.168.1.1;
option ip-forwarding off;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.1;
option netbios-name-servers 192.168.1.1;
option netbios-dd-server 192.168.1.1;
option netbios-node-type 8;
option netbios-scope "";

}
家庭内LANのクライアントは、192.168.1.20以降に割り当てられる。サーバーが192.168.1.1となる設定。

■IPマスカレード・時刻合わせ

●/etc/sysconfig/network
# FORWARD_IPV4=yesでIPマスカレードを有効にしている
# TIMESERVERHOST=ntp.tut.ac.jpで時間を合わせている
NETWORKING=yes
PROFILENAME="No_Profile"
HOSTNAME=server2
DOMAINNAME=pekoe.gr.jp
GATEWAY=192.168.100.1
GATEWAYDEV=eth1
FORWARD_IPV4=yes
IPX=no
TIMESERVERATBOOT=yes
TIMESERVERTYPE=ntp
TIMESERVERHOST=ntp.tut.ac.jp
TIMESERVERRESYNC=hourly
サーバーにとっては、ゲートウェイはADSLモデムということになるんですね。
●/etc/sysctl.conf
# Disables packet forwarding
net.ipv4.ip_forward = 1
# Enables source route verification
net.ipv4.conf.all.rp_filter = 1
# Disables the magic-sysrq key
kernel.sysrq = 0
●/etc/ntp.conf
参照: http://www.oiden.net/Flets/bangai02/
## Time server
# server 127.0.0.1
server 133.100.9.2
server 133.100.11.8
server 203.139.30.195
server 203.255.112.4

## Drift file
driftfile /etc/ntp.drift
●/etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
0 3 * * * /sbin/clock -w
午前3時にBIOSの時計をLinuxの時計に合わせる。Linuxでは、BIOSの時計とは別に時を刻んでいるとのこと。

■ネームサーバー

●/etc/resolv.conf
search
nameserver 192.168.1.1
最初、192.168.100.1で動かしていた。しかし、キャッシュが192.168.1.1にあるので、書き換えると速くなった。
●/etc/named.conf
参照: http://www.linux.or.jp/JF/JFdocs/Home-Network-mini-HOWTO-3.html
# forwardersの部分は、Niftyのネームサーバー
options {
directory "/var/named";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
forwarders {202.248.37.74; 202.248.20.133;};
allow-query {192.168.1/24; 127.0.0.1/32;};

// query-source address * port 53;
};

//
// a caching only nameserver config
//
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};

■Squidの設定

参照:
http://www.a-yu.com/net/squid.html
http://www3.coara.or.jp/~akitake/ADSL/
http://ntsvr.woodstream.gr.jp/linux/linux_squid.htm
http://www.t3i.or.lv/turbolinux/server/virilio04squid.html
●/etc/squid/squid.conf
# ポートはそのままの値を利用
http_port 3128
# エラーメッセージを日本語化する
error_directory /usr/lib/squid/errors/Japanese

■ルーティング

参照: http://ntsvr.woodstream.gr.jp/linux/linux3.htm
●ネットワークアドレス変換
参照:
http://www.linux.or.jp/JF/JFdocs/NAT-HOWTO.html
http://www.a-yu.com/pub/ipmsq.html
# IPマスカレードを実現するコマンド
# IPアドレスが動的に割り当てられるときにこの設定をおこなう
# 静的に割り当てられるときは、SNATを使う
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

#リダイレクション
# 透過プロクシと呼ばれるもの
# Squidからのポート3128をポート80に変換し、
# クライアント側は、プロクシの設定なしで利用可能にする。
# eth1はインターネット側のLANカード
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

■sambaの設定

http://www.a-yu.com/tools/swat.html
SWATの説明を見ながらの設定。
●/etc/sysconfig/security
THRESHOLD=20
adsl=off
alsasound=off
ipchains=off
murasaki=off
smb=on
snmpd=on
swat=on
SWATが走らないので、試しに上の行を真似して書き加えてみたら動いた。あと、ipchainsとiptablesの両方がかち合っていたみたいで、ipchains=offを入れてみた。

戻る