自宅でLinux機(Vine Linux)をいじくるに当たっての自分用の覚え書きです。
(免責事項:当pageの情報が正確であるという保証はありません。当pageの情報によって何らかの損害を被ったとしても当方は何ら責任を負わないものとします。)
実際に作業される前に、ご自身で十分に調査されることを強く推奨いたします。
とりあえずの情報源として: [ Linux JF (Japanese FAQ) Project. / Vine Linux Home Page ]
Vine 2.5では初めからRP-PPPoEがインストールされるらしいです。私はVine 2.1.5からアップデートしたので細かいところはよく分かりません。Vineのアップデート前にきちんと接続できていれば、2.5にアップデートした後にもきちんと接続されるはずです。多分。
「Vine Linux 2.1.5でPPPoE」も参照のこと。
フレッツADSL等でVine Linux2.1.5からネットにアクセスできるようにします。
Roaring Penguin SoftwareからRP-PPPoEをゲットしてきます。Vine用のRPMは用意されていないのでSRPMを取ってきます。…と、私はやったのですが、VinePlusに収録されているようなのでそっちを利用した方がいいですね。
後はInstallationを読みつつ、プロバイダやNTTからの情報源を見つつセットアップすればOKです。英語はそんなに難しくないと思うので頑張って下さい。…と、思いましたが、以下に大まかな流れを少し。
設定ファイルは「/etc/ppp/pppoe.conf」。
# adsl-setup Welcome to the Roaring Penguin ADSL client setup. First, I will run some checks on your system to make sure the PPPoE client is installed properly... Looks good! Now, please enter some information: USER NAME >>> Enter your PPPoE user name (default ): // ユーザID。例えば[email protected]みたいな INTERFACE >>> Enter the Ethernet interface connected to the ADSL modem For Solaris, this is likely to be something like /dev/hme0. For Linux, it will be ethn, where 'n' is a number. (default eth0): // NIC指定。ADSLモデムとつながってる方 Do you want the link to come up on demand, or stay up continuously? If you want it to come up on demand, enter the idle time in seconds after which the link should be dropped. If you want the link to stay up permanently, enter 'no' (two letters, lower-case.) NOTE: Demand-activated links do not interact well with dynamic IP addresses. You may have some problems with demand-activated links. >>> Enter the demand value (default no): // 常時接続ならnoでいいと思われます DNS Please enter the IP address of your ISP's primary DNS server. If your ISP claims that 'the server will provide DNS addresses', enter 'server' (all lower-case) here. If you just press enter, I will assume you know what you are doing and not modify your DNS setup. >>> Enter the DNS information here: // DNS設定。ISPに指定されたDNSのIPアドレスを書いてもよいです // その場合、接続時に自動的に/etc/resolv.confが書き替わるみたいです // [enter]キーのみの場合は自分でresolv.conf設定して下さい // serverの場合は・・・よく分かりません。すいません // 他に影響があるのかはよく分かりません・・・ PASSWORD >>> Please enter your PPPoE password: >>> Please re-enter your PPPoE password: // パスワード設定 FIREWALLING Please choose the firewall rules to use. Note that these rules are very basic. You are strongly encouraged to use a more sophisticated firewall setup; however, these will provide basic security. If you are running any servers on your machine, you must choose 'NONE' and set up firewalling yourself. Otherwise, the firewall rules will deny access to all standard servers like Web, e-mail, ftp, etc. If you are using SSH, the rules will block outgoing SSH connections which allocate a privileged source port. The firewall choices are: 0 - NONE: This script will not set any firewall rules. You are responsible for ensuring the security of your machine. You are STRONGLY recommended to use some kind of firewall rules. 1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation 2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway for a LAN >>> Choose a type of firewall (0-2): // firewall設定。自分でやるなら0。孤独なマシンなら1。masqueradeするなら2なのか。 // でもipchainsでやってるみたいなのでkernel 2.4.xでは無駄なのか? ** Summary of what you entered ** Ethernet Interface: *** User name: *** Activate-on-demand: *** DNS: *** Firewalling: *** >>> Accept these settings and adjust configuration files (y/n)? // 確認。okならy
以上。
Linux機をルータ代わりにして、宅内LANでつながる各PCからもネット接続出来るようにします。NIC二枚差しが前提です。
私の場合、Vine 2.1.5からVine 2.5にアップデートしたためか、iptablesが入っていなかったので、インストールする必要がありました。
まずipchainsが停止していることを確認します。
# lsmod
もしipchainsが動作していれば停止します。
# rmmod ipchains
起動時にipchainsを動作させないようにします。
# chkconfig --del ipchains
/etc/rc.d/rc.localの最後に以下を追加。
# Load the NAT module (this pulls in all the others). /sbin/modprobe iptable_nat /sbin/insmod ip_conntrack_ftp /sbin/insmod ip_nat_ftp # In the NAT table (-t nat), Append a rule (-a) after routing # (POSTROUTING) for all packets going out ppp0 (-o ppp0) which says to # MASQUERADE the connection (-j MASQUERADE). iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE # Packet Filtering iptables -A INPUT -i ppp0 -m state --state INVALID -j DROP iptables -A INPUT -i ppp0 -p tcp --dport 25 -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --dport 53 -j ACCEPT iptables -A INPUT -i ppp0 -p udp --dport 53 -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --dport 80 -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --dport 143 -j ACCEPT iptables -A INPUT -i ppp0 -m state --state NEW,INVALID -j DROP iptables -A FORWARD -i ppp0 -m state --state NEW,INVALID -j DROP # Turn on IP forwarding echo "1" > /proc/sys/net/ipv4/ip_forward
最後の1行は、
echo 1 > /proc/sys/net/ipv4/ip_forward
と記述してもよいです。どちらかうまくいく方でどうぞ。
このLinux機経由でネットにつなごうとするWindows機では、「(デフォルト)ゲートウェイ」にLinux機の宅内LAN側のIP addressを指定しておいて下さい。
# iptables --list # iptables --list -t nat # iptables --list -t <テーブル名>
ルールは上から順に評価されます。
-Aの代わりに-Iオプションを用いることで、任意の行にルールを追加できます。
# iptables -I INPUT 6 -i ppp0 -p tcp --dport 443 -j ACCEPT
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 443 -j DNAT --to 192.168.0.2 iptables -A FORWARD -i ppp0 -p tcp --dport 443 -j ACCEPT
などとします。
Linux機をルータ代わりにして、宅内LANでつながる各PCからもネット接続出来るようにします。NIC二枚差しが前提です。
Kernel 2.4.x(Kernel 2.3.xもらしい)では、モジュールが組み込まれてなかったり非推奨だったりするようなので「Kernel 2.4.xでIP Masquerade (iptables)」の方法でやるのが良いでしょう。
/etc/rc.d/rc.localの最後に以下を追加。
# 1) Flush the rule tables. /sbin/ipchains -F input /sbin/ipchains -F forward /sbin/ipchains -F output # 2) Set the MASQ timings and allow packets in for DHCP configuration. /sbin/ipchains -M -S 7200 10 60 /sbin/ipchains -A input -j ACCEPT -i eth0 -s 0/0 68 -d 0/0 67 -p udp # 3) Deny all forwarding packets except those from local network. # Masquerage those. /sbin/ipchains -P forward DENY /sbin/ipchains -A forward -s 192.168.0.0/24 -j MASQ # 4) Load forwarding modules for special services. /sbin/modprobe ip_masq_ftp /sbin/modprobe ip_masq_raudio echo "1" > /proc/sys/net/ipv4/ip_forward
上記強調(strong要素)部分は適宜自分の環境に合わせて書き換えて下さい。それぞれ「宅内LAN側で使っているNIC」、「宅内LANのネットワークアドレス/ネットマスクのビット数」を指定します。最後の1行は、
echo 1 > /proc/sys/net/ipv4/ip_forward
と記述してもよいです。どちらかうまくいく方でどうぞ。
このLinux機経由でネットにつなごうとするWindows機では、「(デフォルト)ゲートウェイ」にLinux機の宅内LAN側のIP addressを指定しておいて下さい。
場合によっては不具合が出ることもあるようですので、自己責任の下で作業されて下さい。
Vine 2.5ではHDD(IDE)のDMA転送が有効になっていないようですので、DMA転送を有効にしてHDDの高速化を図ります。HDD、マザーボードの両方がDMA転送に対応している必要があります。
当方の環境では、
$ dmesg |grep hd ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:pio ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:pio ide2: BM-DMA at 0xd400-0xd407, BIOS settings: hde:pio, hdf:pio ide3: BM-DMA at 0xe000-0xe007, BIOS settings: hdg:pio, hdh:pio hda: TOSHIBA CD-ROM XM-6202B, ATAPI CD/DVD-ROM drive hde: IC35L040AVER07-0, ATA DISK drive hde: 80418240 sectors (41174 MB) w/1916KiB Cache, CHS=79780/16/63 hda: ATAPI 32X CD-ROM drive, 256kB Cache, DMA hde: hde1 hde2 hde3 hde4 < hde5 hde6 hde7 hde8 > hde: DMA disabled hde: DMA disabled
# hdparm -i /dev/hde /dev/hde: Model=IC35L040AVER07-0, FwRev=ER4OA44A, SerialNo=SXPTXNA5036 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=40 BuffType=DualPortCache, BuffSize=1916kB, MaxMultSect=16, MultSect=16 CurCHS=65535/1/63, CurSects=4128705, LBA=yes, LBAsects=80418240 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 *udma4 udma5 AdvancedPM=yes: disabled (255) WriteCache=enabled Drive Supports : ATA/ATAPI-5 T13 1321D revision 1 : ATA-2 ATA-3 ATA-4 ATA-5
# hdparm /dev/hde /dev/hde: multcount = 16 (on) I/O support = 0 (default 16-bit) unmaskirq = 0 (off) using_dma = 0 (off) keepsettings = 0 (off) nowerr = 0 (off) readonly = 0 (off) readahead = 8 (on) geometry = 79780/16/63, sectors = 80418240, start = 0
DMA転送が無効な状態でのベンチマーク。
# hdparm -t /dev/hde /dev/hde: Timing buffered disk reads: 64 MB in 27.72 seconds = 2.31 MB/sec
DMA転送を有効にします。
# hdparm -d1 /dev/hde /dev/hde: setting using_dma to 1 (on) using_dma = 1 (on)
DMA転送を有効にした状態でのベンチマーク。
# hdparm -t /dev/hde /dev/hde: Timing buffered disk reads: 64 MB in 2.16 seconds = 29.63 MB/sec
10倍強……。
再起動するとDMA転送が無効になりますので「/etc/rc.d/rc.local」に以下を追加します。
/sbin/hdparm -d1 /dev/hde
他にも色々設定できるようですが、怖いのでこれ以上はやめておきます。
「/etc/group」のwheelグループにroot権限を取得出来るようにしたいユーザを追加します。
wheel:x:10:root,foo,bar
念の為「/lib/security/pam_wheel.so」が存在することを確認しておきます。
$ ls /lib/security/pam_whell.so
「/etc/pam.d/su」に以下を追加します。
auth required /lib/security/pam_wheel.so debug group=wheel
念の為に。
まずカーネルのバージョンを確認。
$ uname -r
まぁ問題ないでしょうが一応「/etc/fstab」辺りを見てFDDのデバイス名を確認。
カーネルのバージョンが2.4.18-0vl3だった場合、以下のようにすると一枚出来上がります。
# mkbootdisk --device /dev/fd0 2.4.18-0vl3
十分注意して作業されて下さい。万一失敗しても責任は負えませんので。
カーネルにもセキュリティホールやバグが出ることがあるわけで、そのfixのためにアップグレードしようと考えて単純に「# apt-get upgrade」としても更新されないわけで。
ということで一応作業手順を書いとこうと思い書きかけたのですが、どうにも中途半端な内容になりそうでしたので、http://vinelinux.org/manuals/kernel-upgrade.htmlを参照された方が良いと思います。
#となるとこの項目必要ないかも
基本は次のようになります。オプションについて、詳しくは「man rsync」やhttp://www.infoscience.co.jp/technical/rsync/などを参考にされて下さい。
$ rsync -avz <同期元> <同期先>
サブディレクトリ以下も再帰的にコピーされます。双方に存在し、且つ変更されていないファイルはコピーされません。
同期先のファイルが同期元のファイルより新しくても同期元のファイルで上書きされるようです。これを避けたい場合は-uオプションを使うとよいようです。
$ rsync -avuz <同期元> <同期先>
同期元には存在せず、同期先には存在しているファイルを削除したい場合は、--deleteオプションを使います。
$ rsync -avuz --delete <同期元> <同期先>
次の2つの例では、/home/user/copy/testに/home/user/testの内容がコピーされます。ここで、同期元を「/home/user/test」とした場合はディレクトリごとコピーされ、「/home/user/test/」とした場合はディレクトリの中身からコピーされます。
$ rsync -avz /home/user/test /home/user/copy 又は、 $ rsync -avz /home/user/test/ /home/user/copy/test
リモートのサーバとやり取りする場合は、双方にrsyncがインストールされている必要があります。
リモートのサーバから取ってくる場合は、
$ rsync -avz <ユーザ名>@<サーバ名>:<同期元> <同期先>
リモートのサーバへ持っていく場合は、
$ rsync -avz <同期元> <ユーザ名>@<サーバ名>:<同期先>
ユーザ名は省略可能です。例えば、あなたが双方のサーバでuserというユーザであるなら
$ rsync -avz ./public_html foo.test:/home/user
などとなるでしょう。
2つのサーバ間の経路がインターネットを経由するようでしたら、セキュリティ上、sshを利用した方がよいでしょう。
$ rsync -avz --rsh=ssh <同期元> <サーバ名>:<同期先>
HOST_AからHOST_Bへアクセスして同期させるとします。HOST_Aにて、
$ ssh-keygen -t rsa
パスフレーズ(passphrase)には何も入力せずにENTERのみ押下します。すると「~/.ssh/」に「id_rsa」と「id_rsa.pub」が作成されます。
「id_rsa.pub」をセキュアなscpや物理的に直接FDD等を使って、「authorized_keys2」としてHOST_Bへコピーします。既にHOST_Bに「authorized_keys2」が存在する場合は上書きされますので、一旦他のファイル名でコピーした後、「authorized_keys2」に追記して下さい。
他人に書き換えられないようにパーミッションにも注意して下さい。
$ scp id_rsa.pub user@HOST_B:~/.ssh/authorized_keys2
確認します。以下のようにして、パスワードを聞かれずにログインできれば成功です。
$ slogin -l user HOST_B
HOST_Aにて、例えば
$ rsync -avuz --rsh=ssh ~/public_html/ user@HOST_B:~/public_html
などとして自動的に同期できることを確認します。うまく自動的に同期できれば、後はcrontabで設定するだけです。この時、-vオプションは必要ありません。
0 5 * * * /usr/bin/rsync -auz --delete --rsh=ssh ~/public_html/ user@HOST_B:~/public_html
# rpm -ivh <パッケージファイルの名前>
パッケージファイルの名前とは、例えば「apache-1.3.24-0vl1.i386.rpm」等です。
新規インストールでも問題ありません。
# rpm -Uvh <パッケージファイルの名前>
# rpm -e <パッケージの名前>
パッケージの名前とは、例えば「apache」等です。
# rpm -qa | grep <調べたいパッケージの名前>
$ rpm -qi <パッケージの名前>
$ rpm -qip <パッケージファイルの名前>
$ rpm -qlp <パッケージファイルの名前>
# apt-get update
# apt-get check
# apt-get upgrade --no-act
# apt-get upgrade
# apt-get install <パッケージ名>
$ apt-cache search <パッケージ名>
$ apt-cache show <パッケージ名>
設定ファイルは「/etc/squid/squid.conf」。
# /usr/sbin/squid -k rotate
# lsmod
# rmmod <モジュール名>
Linux機をNTPサーバとして、LAN内のクライアントから時刻合わせに使えるようにします。
設定ファイルは「/etc/ntp.conf」。
初期設定はそのままで、「server」に外部で公開されているNTPサーバを指定すれば問題なく動くはずです。「server」は複数指定することが出来ます。例えば、
server ntp1.jst.mfeed.ad.jp server ntp2.jst.mfeed.ad.jp server 127.127.1.0 fudge 127.127.1.0 stratum 10 driftfile /etc/ntp.drift
時刻合わせに必要なより上位のNTPサーバは、Googleで検索するなどして探してみて下さい。stratum 1とstratum 2の2種類がよく出てきますが、負荷分散のために分けている(階層構造)らしいので、stratum 2の方を使わせてもらうべきなのかもしれません。それ以前に、もし自分の使っているISP等がNTPサーバを提供してくれているならそっちを使いましょう。問い合わせから返答までの遅延が問題となるようですので、なるべく近いサーバを使わせてもらった方がいいようです。
「/etc/ntp/step-tickers」に外部で公開されているNTPサーバを書いておくと、NTPサーバ起動時にntpdateで同期します。M/Bの電池切れ等で時刻が大きくズレているときに有用なようです。
# ntpq -p
桜時計等のソフトが利用できます。
また、NTPサーバが稼働しているLinux機で同時にsambaが稼働している場合には、以下のコマンドでも時刻合わせが可能です。
C:\>net time \\LAN内のNTPサーバ /set /yes
単に一度時刻合わせをしたいだけなら、ntpdateを使えば可能です。
# ntpdate <日本のどこかのNTPサーバ>
単に動かすだけなら全く設定をいじらなくても動くはずです。
設定ファイルは「/etc/proftpd.conf」。
当方の環境ではinetd経由ではなく単独のデーモンとして起動する設定になっていました。
anonymousを許可しないのなら、<Anonymous>〜</Anonymous>間を全てコメントアウトするか、又は<Anonymous>〜</Anonymous>間に以下を追加します。
<Limit LOGIN> DenyAll </Limit LOGIN>
ログインするユーザのホームディレクトリをルートディレクトリのように見せるには、以下を追加します。
DefaultRoot ~
設定ファイルは「/etc/named.conf」。
options { directory "/var/named"; // 下で出てくる「file "...";」に書かれるfileの基準directory // このdirectory以下に配置するfile/directoryのuser:groupはnamed:namedにしておく allow-transfer { none; //セカンダリDNSの場合。プライマリDNSならnoneの代わりにセカンダリDNSのアドレスを書いておく }; // forward only; //forwardersにのみ問い合わせる。ルートに訊きに行ったりしない forwarders { xx.xx.xx.xx; // ISPのDNSサーバ xx.xx.xx.xx; }; version ""; // versionを隠す /* * 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. */ // query-source address * port 53; }; // // a caching only nameserver config // zone "." IN { type hint; file "named.ca"; // 元になるfileは「ftp://ftp.rs.internic.net/domain/named.root」。定期的にチェック }; zone "localhost" IN { notify no; type master; file "localhost.zone"; // ゾーンファイルの名前。ファイル名は自由に決めてもよい allow-update { none; }; }; zone "0.0.127.in-addr.arpa" IN { notify no; type master; file "named.local"; allow-update { none; }; }; // セカンダリDNS zone "domain.test" { type slave; file "domain.test.zone.bak"; // ファイルはプライマリDNSから自動で取得 masters { zz.zz.zz.zz; }; // zz.zz.zz.zzはプライマリDNSのIPアドレス }; zone "yy.yy.yy.in-addr.arpa." { // yy.yy.yyはネットワークアドレス type slave; file "yy.yy.yy.in-addr.arpa.rev.bak"; // ファイルはプライマリDNSから自動で取得 masters { zz.zz.zz.zz; }; // zz.zz.zz.zzはプライマリDNSのIPアドレス }; // ローカル実験。既に存在するドメインやグローバルIPは使わないように // 正引き zone "tokiwa.test" { notify no; // ゾーンファイルの変更をセカンダリDNSに通知しない。テスト中などに type master; file "local/tokiwa.test.zone"; allow-update { none; }; }; // 逆引き zone "20.168.192.in-addr.arpa" { notify no; type master; file "local/20.168.192.in-addr.arpa.rev"; allow-update { none; }; };
各ゾーンファイルは変更後、serialの値を(より大きい方に)変更する必要があります。日付とその日何回目の変更かのセットで表すことが多いようです。
$TTL 86400 $ORIGIN localhost. @ 1D IN SOA ns.tokiwa.test. postmaster.tokiwa.test. ( 43 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum 1D IN NS ns.tokiwa.test. ; ネームサーバ 1D IN A 127.0.0.1
ns.tokiwa.test.はネームサーバ。postmaster.tokiwa.test.はメールアドレス。@の代わりに.を用います。
ns.tokiwa.test.などについてる最後の.は付けるのを忘れないようにして下さい。付け忘れると、ns.tokiwa.test.localhost.などとよく分からないことになってしまいます。
最後の行は、暗黙のうちに
localhost. 1D IN A 127.0.0.1
$TTL 86400 @ IN SOA ns.tokiwa.test. postmaster.tokiwa.test. ( 2002070801 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS ns.tokiwa.test. 1 IN PTR localhost.
最後の行はつまり「127.0.0.1」で問い合わせれば「localhost」が返ってくるということです。
$TTL 86400 $ORIGIN tokiwa.test. @ IN SOA ns.tokiwa.test. postmaster.tokiwa.test. ( 2002070802 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS ns.tokiwa.test. ; IN MX 10 mail.tokiwa.test. ; メールサーバの指定 ; IN A 192.168.20.1 ; juno IN A 192.168.20.1 sirius IN A 192.168.20.2 ; ns IN A 192.168.20.1 mail IN A 192.168.20.1 ; www IN CNAME juno ; 別名指定。ただ、これをあまり推奨しないという人も?代わりにAレコードで設定
$TTL 86400 @ IN SOA ns.tokiwa.test. postmaster.tokiwa.test. ( 2002070801 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS ns.tokiwa.test. ; 1 IN PTR tokiwa.test. 2 IN PTR sirius.tokiwa.test.
search tokiwa.test nameserver 127.0.0.1 nameserver xx.xx.xx.xx
ホスト名(例えばjuno)だけで問い合わせた場合、tokiwa.testを補完しての問い合わせ(例えばjuno.tokiwa.test)もします。
特に指定しない限り、ローカルのDNSに問い合わせるようになります。続けて外のDNSサーバも記述しておくといいかもしれません。
設定ファイルは「/etc/postfix/」以下のいくつかのファイルです。このうち主に編集するのはmain.cfになります。
Postfix のぺーじのhttp://www.kobitosan.net/postfix/をじっくり読みながら設定していけばいいと思います。
relay-test.mail-abuse.orgやRBL.JPの第三者中継チェックで第三者中継が出来てしまうかチェックすることが出来ます。
余所様のサーバを勝手に調べるのはやめておきましょう。
$ telnet relay-test.mail-abuse.org
他の設定に問題がないという前提で、上記の第三者中継が可能かどうかのテスト全てにパスするためには、main.cfに以下を記述します。
allow_percent_hack = yes swap_bangpath = yes
DNSのMXレコードが以下の様になっているとします。
main.test. IN MX 10 ml.main.test. IN MX 20 ml.sub.test.
main.cfに以下を記述します。
relay_domains = main.test smtpd_recipient_restrictions = permit_mynetworks check_relay_domains transport_maps = hash:/etc/postfix/transport
/etc/postfix/transportに以下を記述します。
main.test smtp:[ml.main.test]
上記の例では、main.test宛のメールをリレーし、main.test宛の全てのメールをsmtpでml.main.testに送り返します。
/etc/postfix/transportを更新した後は以下を実行しておきます。
# postmap hash:/etc/postfix/transport # /etc/rc.d/init.d/postfix reload
設定ファイルは「/etc/smb.conf」。
各ユーザがページを公開できるようにするためには、初期設定では、ユーザのホームディレクトリにpublic_htmlなるディレクトリを作る必要があります。
ユーザ名をuserとすると、最低限アクセス権を/home/<user>には711、/home/<user>/public_htmlには755を設定する必要があります。
本家サイトからRPMファイルを取得後、インストール。
/var/analog-5.31/lang/jpjform.html /var/www/html/images/* /var/www/cgi-bin/anlgform.pl
以上をWWW UA経由で実行できるように配置し、jpjform.htmlを編集します(Apacheのlogファイルやanlgform.plの位置などを指定する)。jpjform.htmlのフォームで項目を選び、anlgform.plにpostするとログの解析結果が返されます。
「日本 Analog ユーザ会」にある日本語化されたマニュアルが非常に役立ちます。以下は一例として挙げておきます。
LOGFILE /var/log/httpd/access_log,/var/log/httpd/access_log.* # Apacheのlogファイルを指定 OUTFILE /home/httpd/html/analog/index.html # 結果を書き出すファイルを指定 HOSTNAME "foo.test" HOSTURL http://foo.test LANGUAGE JAPANESE WARNINGS -R STATUS OFF FILETYPE OFF SIZE OFF WEEKLY ON REFERRER ON SEARCHWORD ON BROWSERSUM ON #REQINCLUDE pages FILEEXCLUDE /analog/* # 解析の対象から除外する DNS WRITE DNSFILE /var/analog-5.31/dnscache.txt DNSGOODHOURS 672 #... #他はデフォルトのまま
# analog
# crontab -e
10 0 * * * /usr/bin/analog
先にJ2SE(ver.1.2以上)をインストールしておきます。
The Apache Jakarta Projectから「tomcat4-4.1.18-full.1jpp.noarch.rpm」と「tomcat4-webapps-4.1.18-full.1jpp.noarch.rpm」を取ってきてインストールし、「/etc/tomcat4/tomcat4.conf」の「JAVA_HOME」を環境に合わせて編集します。
JAVA_HOME="/usr/java/j2sdk1.4.1_01"
起動スクリプトがあるようなので、
# /etc/rc.d/init.d/tomcat4 start
WWW UAから「http://localhost:8080」にアクセスしてページが表示されれば稼動しています。
The Apache Jakarta Projectから「jakarta-tomcat-connectors-4.1.18-src.tar.gz」を取ってきて展開。「./jakarta-tomcat-connectors-4.1.18-src/jk/native2」に移動して、
$ chmod u+x buildconf.sh $ ./buildconf.sh $ ./configure --with-apxs=/usr/sbin/apxs $ make
すると「./jakarta-tomcat-connectors-4.1.18-src/jk/build/jk2/apache13」に「mod_jk2.so」が出来上がりますので、「/etc/httpd/modules/」へコピーします。
# cp mod_jk2.so /etc/httpd/modules/
次に「./jakarta-tomcat-connectors-4.1.18-src/jk/conf/workers2.properties」を「/etc/httpd/conf」にコピーします。
# cp workers2.properties /etc/httpd/conf/
「/etc/httpd/conf/httpd.conf」に以下を追加します。
LoadModule jk2_module modules/mod_jk2.so AddModule mod_jk2.c
最後にTomcat、Apacheの順に起動します。「http://localhost/examples/」にアクセスしてサンプルページが表示されれば成功です。
VinePlusからphpとphp-manualを取ってきます。私の場合、依存性の関係からlibexpatとlibxml2もVinePlusから取ってきて先にインストールしておきました。他にDBの種類によってパッケージがいくつか用意されています。
apacheの設定は特に書き換える必要はないようです。インストール後、apacheは再起動しておきます。
<? phpinfo(); ?>
確認として、上記の内容のファイルを例えば「test.php」などと名前を付けて保存し、ブラウザからアクセスしてみましょう。phpに関する情報が表示されれば成功です。
日本PHPユーザー会のPHP 4.2.0 のRelease Announcementの和訳にありますように、外部変数の仕様変更があったためにそれ以前に書かれたスクリプトが正常に動かないことがあります。あるスクリプトでは、数行追加することで動くようになりましたが、それが全てに適応できるのか不明ですし、推奨されない方法かもしれませんのでここで言及するのは控えておきます。
VinePlusからvnc、vnc-server、vnc-docの3つのRPMパッケージを取ってきてインストールします。
$ vncserver
初回起動時はパスワードの設定も行われます。
New 'X' desktop is servername:1
表示されるメッセージの内、上記の例では「:1」をクライアント起動時やサーバ停止時に指定することになります。
$ vncserver -kill :1
本家siteからダウンロードしてきます。単純にvncviewer.exeをダブルクリックするなどして起動します。
必要ないportは塞いでおきましょう。「Sygate Online Services」のようにオンラインで調べてくれるsiteがいくつかあるようです。
nmapはRPMがVinePlusに収録されています。余所様のサーバへのPort Scanはやめておきましょう。
$ nmap <IP Address | domain name>
java.sun.comからLinux RPM 自己解凍ファイルを取得してきます。そのファイルに実行権限を付与し、実行するとライセンスが表示されますので、同意すればrpmファイルが得られます。
$ chmod a+x <取得したファイル名> $ ./<取得したファイル名>
後はroot権限を持つuserでrpmコマンドを実行すればインストール完了です。
# rpm -Uvh <rpmファイル>
.bash_profile等で以下のように環境変数JAVA_HOMEと環境変数PATHを設定しておくとよいかもしれません。
export JAVA_HOME=/usr/java/j2sdk1.4.1_01 export PATH=$PATH:$JAVA_HOME/bin
追加するPATHはご自分の環境とインストールしたJDKのバージョンに合致するように書き換えてください。
SNMPエージェント。VinePlusに収録されています。ucd-snmpとucd-snmp-utilをインストール。
設定ファイルは「/etc/snmp/snmpd.conf」。セキュリティ上、root以外は読み書きできないようにしておく方がよいようです。
com2sec local localhost private # 実際には最後の項目は推測されにくいものにすることが望ましい。らしい com2sec mynetwork 192.168.0.0/24 public group ROGroup v1 local group ROGroup v2c local group ROGroup v1 mynetwork group ROGroup v2c mynetwork view all included .1 80 access ROGroup "" any noauth exact all none none syslocation Vine Linux Server # 任意 syscontact root@localhost # 任意の連絡先
SNMPマネージャ。Vine2.1ではVinePlusに収録されているのですが、Vine2.5では収録されていないようですので本家Siteからソースを取得してきます。インストール時には以下のようにする必要があるようです(単に./configureとしただけではmakeが通りませんでした)。デフォルトでのインストール先は「/usr/local/mrtg-2/」。
$ LDFLAGS=-lVFlib2 ./configure $ make # make install
/<インストール先>/bin/cfgmakerを用います。
# ./cfgmaker [email protected] > mrtg.cfg
最低限、実行した結果を書き出す場所を指定する「WorkDir」を設定する必要があります。Webで外部に公開するのでしたら、以下のようになるかと思います。
WorkDir: /home/httpd/html/mrtg
# ./mrtg mrtg.cfg
# crontab -e
*/5 * * * * /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/bin/mrtg.cfg
ディレクトリやファイル名はご自分の環境に合わせて適宜書き換えて下さい。
<インストール先>/bin/indexmakerを用います。
# ./indexmaker --columns=1 mrtg.cfg > /home/httpd/html/mrtg/index.html
### CPU Load Avalage Target[cpu]: 1.3.6.1.4.1.2021.10.1.5.2&1.3.6.1.4.1.2021.10.1.5.3:[email protected] MaxBytes[cpu]: 2000 Title[cpu]: CPU Load Avalage PageTop[cpu]: <h1>CPU Load Avalage</h1> Options[cpu]: nopercent, integer, gauge, absolute, withzeroes, growright YLegend[cpu]: Load Avalage (%) ShortLegend[cpu]: % Legend1[cpu]: 5 min CPU Load Avalage Legend2[cpu]: 15 min CPU Load Avalage LegendI[cpu]: 5min LegendO[cpu]: 15min ### Free Memory Target[mem]: 1.3.6.1.4.1.2021.4.6.0&1.3.6.1.4.1.2021.4.4.0:[email protected] MaxBytes1[mem]: 64000 MaxBytes2[mem]: 256000 Title[mem]: Free Memory PageTop[mem]: <h1>Free Memory</h1> Options[mem]: gauge, absolute, growright YTicsFactor[mem]: 0.001 Factor[mem]: 0.001 YLegend[mem]: Mem Free[MBytes] ShortLegend[mem]: MBytes Legend1[mem]: Real Memory Legend2[mem]: Swap Memory LegendI[mem]: Real LegendO[mem]: Swap
エプソンコーワ提供の「Photo Image Print System」を利用します。
ドライバと一緒に公開されている「readme790.txt」に書かれた手順通りにインストール・設定すれば、特に問題なく印刷可能になると思います。
以下を参照してください。