Announce

PukiWiki contents have been moved into SONOTS Plugin (20070703)

Server

Linuxサーバセットアップメモ(2002)

chkconfig

chkconfig --list httpd
chkconfig --level 35 httpd on (No --level means --level 2345)
chkconfig httpd off

/etc/inittab

Change runlevel

yum

yum search [keyword]
yum provides [library] (Find which package has this library .so )
yum install [package]
yum remove [package]
yum uupdate [package]

password files

/etc/passwd
/etc/group
/etc/shadow
/etc/gshadow

chown

chown nseo:nseo -R

single user mode

At the view of GRUB, add 'single' at the end of line 'kernel .....'

visudo

If you want to do sudo seceretly, See also Programming/develop/sudo.c?

/var/log/messages

kernel log

dmesg

Start up log. (Just cat /var/log/dmesg) You can see CPU name or something.

useradd

-d home_dir
-m (create home directory)
-p password
-s shell
-r (system account?)

mount

root priviledge

mount -t iso9660 -o loop [ISO file] [mount point]

user can do

mount /dev/cdrom
cd /media/cdrecorder

uname

uname -> Linux
uname -a -> x86_64 2.6.9.11.ELsmp ......

rpm

How come I can make it possible for users to use rpm. /var/lock/rpm has to be writable. It is created when rpm was executed by root.

Install

rpm -ivh --prefix [dir]
--nodeps (don't check dependencies)

What and where

rpm -ql [package_name]

Description

rpm -qi [package_name]

if package name is ambiguous

rpm -qa | grep

Uninstall

rpm -e [package_name]

When database looks corrupted.

rpm -rebuilddb

killall

/usr/bin/killall

% killall [command name]
% killall [command name] -i (interactive)

pdfnup

http://www2.warwick.ac.uk/fac/sci/statistics/staff/academic/firth/software/pdfjam/ http://web.mit.edu/bharath/www/PDFPackJam/ (C#)

sshd

$ sudo sshd

If outputted as

Could not load host key: /etc/ssh_host_key
Could not load host key: /etc/ssh_host_rsa_key
Could not load host key: /etc/ssh_host_dsa_key
$ sudo ssh-keygen -t rsa1 -f /etc/ssh_host_key -N ""
$ sudo ssh-keygen -t rsa -f /etc/ssh_host_rsa_key -N ""
$ sudo ssh-keygen -t dsa -f /etc/ssh_host_dsa_key -N ""

(-N is for specifying passphrase)

fdisk /dev/hdb

The number of cylinders for this disk is set to 2495.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p ←現在の状態を確認する

Disk /dev/hdb: 255 heads, 63 sectors, 2495 cylinders
Units = cylinders of 16065 * 512 bytes

 Device Boot  Start  End  Blocks Id System   ← 何も確保されていないことが分かる

Command (m for help): n  ← 新しいパーティションを作成する
Command action
 e  extended
 p  primary partition (1-4)
p             ← 「p」プライマリパーティションを選択する
Partition number (1-4):1  ← 新規増設であれば「1」番目のパーティション
Command (m for help): p  ← 確認するとLinux(ext2)ファイルシステムができている

Disk /dev/hdb: 255 heads, 63 sectors, 2495 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot  Start  End    Blocks   Id System
/dev/hdb1 1  2495  20041056  83 Linux
Command (m for help): w    ← 書き込んで終了

フォーマット

mkfs -t ext2 /dev/hdb1

起動時のランレベルの変更

 /etc/inittabファイルを書き換えることで起動時のランレベルを変更できる。
 id:3:initdefault: ← 数値を変更する。

ASTEX-X を使えるようにする

 rexec を使えるようにする
   vi /etc/xinetd.d/rexec
   disable = yes -> disable = no
 X11 forwarding 
   vi /etc/ssh/sshd_config
   X11Forwarding yes

.bashrc

 PS1="[\u@\h \w]\n"
 kterm () { command kterm -sb $@ & }
 alias ls='ls -F'

su ユーザIDを変更する

 オ プ ション引数-を用いると、直接ログインした場合と同じ環境に初期化される。
 例えば su だけだと /etc/profile が実行されないので /sbin などがパスに入らない。
 なので su - なら間違いない。
 ちなみに id コマンドでユーザIDなどをしらべられる。id -u で id だけとか。
 if [ `id -u` = 0 ]; then とかのようにつかう。 id = 0 は root ユーザ。

Spec of Memory , CPU

less /proc/cpuinfo
less /proc/meminfo

and so on

tcpdump

 ネットワークのトラフィックをダンプする

VMWare

tar.gz 版

vmware-install.pl はとおった。vmware-config.pl のところで vmmon が kernel バージョンと合わないのでコンパイルしたいが、kernel headers がないよといってきたので

yum install kernel kernel-dev kernel-headers

headers の場所を確認して /usr/src/kernels/......../include 指定。

rpm 版

 rpm -Uvh VMware-linux.....rpm
 tar zxvf vmware-any-any-update.....tar.gz
 cd vmware-any-.....
 ./runme.pl
 モジュールをコンパイルしていって
 ネットワークのところで、ネットワーク使います。
 Bridge しません。(IP が2つ以上あって、直接外にでたいなら。)
 NAT 使います。(ホストOSに一度つないで、外にでる)
 Host Only しません。(外にでない。設定によっては、外に出せる。自分でNATしろってこと)
 File share しません。(すでに Samba いれてたのでなし)(実際yesにしてしまった。不要だった)
 アドレスは使ってないネットワークアドレスのものを使う。使ってるものにしたら、vmnet が
 有効化されなかった。自動で決めてもらっていいだろう。
 vmware & と vmware を起動すると vmnet8 が有効化されるので、
 それのアドレスをしらべて、Samba につなぐ。
 かってに IP マスカレードをしてくれたみたい。そのまま外部につながった。
 ソフトをインストールするときのネットワークのほうのフォルダを指定しようとしたら、
 それにドライブをわりあてられますよ。といってきたので、E: にした。
 VMware ゲストOSへのポートフォワーディング(上のNAT機能を使ってしまった場合)
 /etc/vmware/vmnet8/nat/nat.conf を編集
 #8888 = 192.168.27.128:80 
 あたりの下にこれのように
 80 = [ゲストOSのIPアドレス]:80
 みたいなかんじでかく。ホストOSの80番がゲストOSの80番にいく。
 DHCP サーバに接続して IP わりあててもらう設定だと xxx.xxx.xxx.128 のはず
 おそらくvmware を複数個起動するとゲストOSに128からアドレスが順々に割り当てられるはず。
 どれになるのかわからないので、固定したほうがいいだろう。
 その場合、IPアドレスはxxx.xxx.xxx.3~127 までの間を使うようにとのこと。
 この場合は無論、DNS サーバのアドレスも調べておいて設定しなければならない
 ちなみに VMware では ゲートウェイが xxx.xxx.xxx.2 標準
 DHCP サーバーが xxx.xxx.xxx.254 標準

Kernel Module

カーネルモジュールとは、Linuxカーネルの機能を拡張するためのバイナリーファイルです。
Windows パーティションのマウント
デュアルブート環境などは、Windowsパーティションのディスクの内容も見られたほうが何かと便利です。以下にその方法を簡単に説明します。SCSIの場合はよく分かりません。
Linuxにおいては、諸々のデバイスをファイルとして扱いますが、IDEハードディスクとて例外ではありません。/dev ディレクトリに、 hda2 や hdb1 という名前で格納されていると思います。最初の h という文字は「ハードディスク」の略だと思います。2文字目は、以下の規則に従います。

    * a.....プライマリのマスター
    * b.....プライマリのスレーブ
    * c.....セカンダリのマスター
    * d.....セカンダリのスレーブ [#o29fdcd8]

最後の数字はパーティションの通し番号です。どのファイルがどこのディスクのどこのパーティションに属するか調べるためには

# fdisk -l

を実行します。容量とフォーマットの形式が一覧で出てくるので大体は理解できるはずです。対象のファイル名が分かったら、次にマウントポイントを作ります。 要はどこにマウントするのかと言うことで、適当にディレクトリを作ってやればいいわけです。その後、コマンドを実行します。

# mount -t vfat /dev/hda2 /mnt/win

ここでは、「FAT32でフォーマットされた(vfat)」、「プライマリマスターの番号2のパーティション(/dev/hda2)」を、「/mnt/win」に、マウントすることを指示しています。 vfat という指定が、FAT32のみなのか、FAT16などでも有効なのかは知りませんが、とりあえずFAT32は私の環境でマウントできました。
Windows2000 など、NTFSでフォーマットされているのならば以下のようなコマンドにします。

# mount -t ntfs /dev/hda2 /mnt/win

しかし、NTFSはカーネルが対応していない場合もあるので、その時はNTFSのマウントに対応したオプションをつけてカーネルを再構築しなくてはなりません。 更に、現時点での最新のカーネル(2.4.20)でもNTFSへの書き込みは開発段階らしいので、読み込みのみにした方がいいでしょう。

又、これらのコマンドをいちいち実行するのが面倒ならば、

/etc/fstab

を編集することによって、起動時に自動的にマウントすることが可能となります。エディタで開いて

/dev/hda2     /mnt/win     vfat     defaults   0 0

などという行を書き込めば有効になります。場所は、ファイルの最後尾の行にした方がいいでしょう。末尾に現れる数字は以下のような意味を表します。

    * 1番目の数字が0.....dump(バックアップコマンド)実行時にバックアップを行わない
    * 1番目の数字が1.....dump(バックアップコマンド)実行時にバックアップを行う
    * 2番目の数字が0.....fsck(ファイルシステムをチェックするコマンド)を起動時に行わない
    * 2番目の数字が1.....fsck(ファイルシステムをチェックするコマンド)を起動時にルートのパーティションに対して実行する

2番目の数字が2.....fsck(ファイルシステムをチェックするコマンド)を起動時にその他のパーティションに対して実行する

書いておいてなんですが、2番目の数字のオプションは私自身よく分かっていません。しかし私が/etc/fstabに

/dev/hda2     /mnt/win     vfat     defaults   1 2

と記述したところ、起動時に「このファイルシステムはまだALPHAバージョンだからどーのこーの」と怒られたので、

/dev/hda2     /mnt/win     vfat     defaults   0 0

としてオプションをはずしてしまいました(これだと怒られずにすみました)。個人使用の程度ならば全く問題ないと思います。

これらの数字の前にある"defaults"というのは、マウントのためのパラメータです。これには以下のようなものがあります。

    * rw......読み書きを許可
    * exec.....実行を許可
    * ro.....読み込み専用
    * auto.....mount -a コマンドで自動的にマウントする
    * noauto.....自動的にマウントしない
    * sw.....スワップを有効にする
    * user.....一般ユーザーのマウントを許可する

"defaults"というのは、上のパラメータのうち"rw"と"exec"と"auto"を有効にするものです。


モジュールを組み込まれた Linux カーネルは、ユーザープログラムに対してより多くの機能
を提供することができるようになります。例えば Linux でハードウェアを使用するためには
デバイスドライバーが必要となりますが、それらデバイスドライバーのほとんど全てが 
Linux カーネルモジュールとして実装されています。つまりある特定のハードウェア、
例えばネットワークアダプターのデバイスドライバーのモジュールをカーネルに組み込むと
ユーザープログラムはそのネットワークアダプターを利用してネットワークにアクセスすることが
出来るようになるわけです。

カーネルモジュール・ファイルの正体は、通常の gcc コンパイラーで作成された
バイナリーオブジェクトです。つまり、カーネルモジュールのソースコードを gcc でコンパイル
すればその作成物をカーネルに動的に組み込んだり切り離したりできるというわけです。

起動ディスク

 linux root=/dev/hda2 とか / のあるパーティションを指定する。
 たぶん一発ではいかない。3、4回やってはじめて起動するだろう。
 これで /boot 代わりをしている?

useradd [username]

 passwd username でパスワードを設定しておこう
 add したときに作成される設定ファイルは /etc/skel 内のファイルのコピー
 userdel [username]
 usermod [username]

/etc/passwd, /etc/group

 vipw, vigr コマンドで編集する。それぞれ単体を編集すると矛盾が発生する危険性があるので。
 vipw で /etc/passwd, vigr で /etc/group 
 環境変数 EDITOR を設定すれば vi 以外でも編集できる

emacs

;; Always end a file with a newline
(setq require-final-newline t)

;; Stop at the end of the file, not just add lines
(setq next-line-add-newlines nil)

;; Stop make backup files ~
(setq make-backup-files nil)

;; Do not use tab character for indentation
(setq-default indent-tabs-mode nil)

;; C-h に backspace をわりあてる emacs-21 なら

;; Set backspace C-h
;;(define-key function-key-map [backspace] [8])

;; Set C-h backspace 
(put 'backspace 'ascii-character 8)
(setq keyboard-translate-table
"\^@\^A\^B\^C\^D\^E\^F\^G\^?\^I\^J\^K\^L\^M\^N\^O\^P\^Q\^R\^S\^T\^U\^V\
\^W\^X\^Y\^Z\^[\^\\\^]\^^\^_ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK\
LMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\^H")

;  それ以前なら
(define-key c-mode-map "\C-h" 'backward-delete-char-untabify)

;  Xemacs 
(keyboard-translate ?\C-h 'backspace)


;; Initial 
(setq default-frame-alist
      (append (list '(foreground-color . "black")
                    '(background-color . "white")
                    '(background-color . "gray")
                    '(border-color . "black")
                    '(mouse-color . "white")
                    '(cursor-color . "black")
;;                  '(ime-font . "Nihongo-12") ; TrueType 
;;                  '(font . "bdf-fontset")    ; BDF
;                   '(font . "private-fontset"); TrueType
;                   '(width . 80)
;                   '(height . 30)
;                   '(top . 0)
;                   '(left . 0)
              )
              default-frame-alist))

;;
;; 括弧の対応表示
;;
(require 'paren)

;;色の設定を変えたいときは、次のように書いてください。

(make-face 'paren-match)
(set-face-foreground 'paren-match "gray80")        ; マッチしたときのフォアグラ
ウンドの色
(set-face-background 'paren-match "CadetBlue4")    ; マッチしたときのバックグラ
ウンドの色

(make-face 'paren-mismatch)
(set-face-foreground 'paren-mismatch "white")      ; マッチしなかったときのフォ
アグラウンドの色
(set-face-background 'paren-mismatch "lightcoral") ; マッチしなかったときのバッ
クグラウンドの色

(setq show-paren-face 'paren-match)
(setq show-paren-mismatch-face 'paren-mismatch)

;; 分岐
(cond
 ;; XEmacs 21
 ((string-match "XEmacs" emacs-version)
  (setq user-init-file
        (expand-file-name "init.el"
                          (expand-file-name ".xemacs" "~")))
  (setq custom-file
        (expand-file-name "custom.el"
                          (expand-file-name ".xemacs" "~")))
  (load-file user-init-file)
  (load-file custom-file)
  )
 ;; Emacs 21
 ((string-match "^21" emacs-version)
  (setq load-path (append '("/usr/share/emacs/21.2/lisp/") load-path))
  (load (expand-file-name "~/.emacs.d/init.el"))
  )
 )


ifconfig コマンド

 display or set network interace

Latex 関連

 http://www2.tky.3web.ne.jp/~kyone/tex/
 関連ソフト
w3c-libwww, VFlib2, ttfonts, ttfonts-ja, tetex, tetex-fonts, tetex-dvips, tetex-xdvi, tetex-latex, urw-fonts, Omni, ghostscript, gv 

まず,日本語を扱う場合は,それぞれ

latex ->  platex
xdvi  ->  pxdvi
dvips ->  pdvips (pdvips [dvi] -o [ps] , pdvips [dvi] -s| lpr(?) )

を使うべし. RedHat付属のTeXはインストール直後の状態では pxdvi で日本語が表示されないなどの不具合がある.これを解消するには以下のように,/etc/vfontcap ををエディタで開いて,先頭の

min:\
        :fc=default-ttf:
goth:\
        :fc=gothic-ttf:

の部分を

min:\
        :fc=r-kochi-mincho:
goth:\
        :fc=r-kochi-gothic:

に変更すれば良い.

rpm

 -Uvh インストール時
 -qa  インストールされているものをすべて表示
 -q [package name] パッケージがインストールされていれば表示
 -ql [package name] パッケージ内のファイルを全部リスト
 -e [pacage name] パッケージを削除

CtrlとCapsのSwap

 xmodmap だと微妙に変になるので /etc/X11/XF86Config の 
 Option  "XkbOptions"    "ctrl:swapcaps"
 を有効
 Option  "XkbOptions"	  "ctrl:nocaps"
 だとCapsがなくなる

locate のデータベース作成

 updatedb -e '/home'

beep 音を消す

 /etc/inputrc の set bell-style none を有効に

Dual boot で Windows がみえなくなったら

/etc/grub.conf を

default=0
timeout=10
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.18-14)
	root (hd0,1)
	kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
	initrd /boot/initrd-2.4.18-14.img
title DOS
	rootnoverify (hd0,0)
	makeactive
	chainloader +1

のようにすると直るかも

Ports

 POP3 110:tcp
 Samba 137:udp,138:udp,139:tcp
 Nettalk SSH + 548:tcp, 548:udp
 NFS 2048:udp, 111:tcp,111:udp

VNC( up2date vncserver )

 VNC設定ファイル
 /usr/bin/vncserver クライアントに表示される解像度などの設定
 /etc/sysconfig/vncservers 接続許可の設定
 vncserver コマンドでユーザごとの設定ファイルを作成
 そのさいに:1 とか :2 とかでてくるので :2 だったら
 /etc/sysconfig/vncservers に VNCSERVERS="2:[username]"ってかんじで設定
 それぞれのホーム下に
 .vnc/passwd パスワードを設定
 .vnc/xstartup 初期化設定(ここにexec startkde とかかいて)
 vncpasswd コマンドでパスワード変更
 Windows の VNC client は UnderDone の RealVNC が good
 さっきのだったらホスト名:2で接続し、パスワード入力
 -geometry 960x740 (タスクバー右、2列)
 -geometry 1024x685 (タスクバー下、2列の人)
 デフォルトは 960x685 くらいでいいのかな。

wu-ftpd( up2date wu-ftpd )

 /etc/ftpaccess	主な設定
    ftpconversoins	形式変換転送
    ftpgroups		グループパスワード
    ftpusers		禁止ユーザー root とかけば root を拒否
    ftphosts		ホスト可否 
			deny [username] [hosts]
			deny [hosts]
			deny [username]
			allow [username] [hosts]
			以下同文
 anonymouseは/var/ftp 以下にしかアクセスできない
 

OpenSSH

 ssh-keygen -t rsa1
 passphrase は長めが普通(10文字以上)
 rsa だと teraterm,ttssh で使えない
 $HOMEに.ssh/identity .ssh/identity_pub ができる。
 cp .ssh/identity_pub .ssh/authorized_keys
 .ssh/identity の秘密鍵のほうを floppy かなんかで Windows にもっていく
 teraterm, ttssh のコンボでいけばつながる
 鍵を使うようにしたのなら、鍵がなかったらだめなように設定
 つーか linux で鍵つくって秘密鍵をもっていくっておかしい。
 windows で鍵作って公開鍵をftpかなにかでおくろう。
 ってftpで送れたらSSHの意味が…
 Windows の keygenerator は PuTTY
 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html [本体]
 http://rap.sourceforge.jp/taco/#3-2 [説明]
 http://osksn2.hep.sci.osaka-u.ac.jp/~naga/miscellaneous/winsshb.html 
 [PortFowarder とか teraterm+ttssh, WinSCP2 とかものってる]

NFS

NFS server の方で共有を認めるディレクトリ、ホストをきめて、 client のほうで たとえば /home なら mount [server address]:/home /home のようにしてやればよい。client のほうにも同じ user を作っておけば そのままのアクセス権でいける。

しかしこのように/home を作ったばあい、su すると、 なぜか DISPLAY がつかえなくなる。su するまえに xhost +$HOSTNAME して おくと使えるようになる。わけわかめ

/home は自分のところのものをつかうしかないのか?そんなはずはないがなぁ cdrom のマウントもできるが、クライアントでマウントしている間 サーバー側でディスクをとりだせなくなるので、要アンマウント /etc/fstab に書いておけば起動後マウントしてくれる。 書き方は man nfs

mail (sendmail , pop3)

 sendmail, sendmail-cf, imap をインストール
 /etc/mail/sendmail.mc  sendmailの主要な設定
          /local-host-names 受信ドメイン名
          /access           送受信の許可/拒否
 sendmail 設定ファイルのタイムスタンプがまちがっている可能性があるので、
 %touch /etc/mail/* 
 として更新しておこう   
 /etc/mail/sendmail.mc
 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
 -> dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA') 
 (dnl でコメントアウト。外部との接続を遮断していたらしい )
 
 /etc/mail/accec
#pre

127.0.0.1 RELAY 192.168.0 RELAY com RELAY jp RELAY net RELAY org RELAY

61.110.215.50 REJECT china9988@21cn.com REJECT

end

のように書く。IP は3つでも可。.* になる。Domain もこんなかんじ。 RELAY で許可。REJECT で拒否

 /local-host-name
 たとえば、ほんとうは @stdml2.u-aizu.ac.jp なのに @u-aizu.ac.jp で
 届くようにできる。
 u-aizu.ac.jp とこのファイルに書けばよい。
 service sendmail restart
 ipop3 を起動  
 
 mail 用のアカウントは、ログインシェルを /sbin/nologin にし、ログインできない
 ようにしよう。むろんホームディレクトリもいらない。
 
 mail は /var/spool/mail/[username] に保存される?
 mailstats コマンドでメールサーバー実行処理数をしらべられる
 

Windwos 2000(NTFS) と Linux (lilo) のデュアルブート

 Lilo は NTFS を認識できないので、Windows 2000 の NTLDR を使うしかない。
 GRUB があるのならこんな面倒くさいことはしなくてよい。
 まずWindows2000をインストール。
 パーティションはWindows2000(NTFS、2000なら2.5Gくらいでいいかな)
 でLinux用のもまぁ作っておいてもいいかな。

 で共有パーティション用に FAT32 のも作っておこう。Linux だと 2048M までのパーティションしか作れない。かといってこちらで作っておけばうまくアクセスできるのかが微妙だが。

 Windows2000起動して、共有パーティションをフォーマットしておこう。
 Linux インストール
 /boot 100M
 / 何Gか
 swap メモリの大きさくらい
 共有パーティションにラベルをつける。/vfat とかなんとか。
 無理だったら、あとでやる。
 lilo のアンインストール(いらないはず。なんだけど新しくliloを作らないとうまくいかなかった)
 lilo がどこにはいっているかは、入っていないところを指定するとエラーがでるのでわかるはず。
 % /sbin/lilo -u /dev/hda2
 /etc/lilo.conf の編集(いらないはず)
 lilo をインストールする場所を書いておく。boot = /dev/hda2 (/boot のパーティション)
 lilo のインストール(いらないはず)
 % /sbin/lilo
 lilo をファイル化
 % dd if=/dev/hda2 of=bootsect.pbr bs=512 count=1
 で、bootsect.pbr を なんとかして Windows 側にもっていく
 フロッピーなら mount /mnt/floppy とか mount -t vfat /dev/fd0 /mnt/floppy とかしておいてcp コマンドとか。
 C: 直下において
 C:boot.ini の最下行に(フォルダオプションからOSに隠されたファイルも表示をチェック)
 C:\bootsect.pbr="Linux"
 のようにかいておけば、NTLDR から lilo を起動して Linux を起動できる。
 timeout でデフォルトが起動するまでの時間を決めて
 default でデフォルトをきめる。default=C:\bootsect.pbr のように書いておく
 (GRUB も Windows を起動するときには NTLDR をよびだしているようだ。NTLDR はどこに保存してあるのか・・・)

NAT

厳密には NAT とは グローバルアドレス、プライベートアドレス一対一の変換。
1つのグローバルアドレスに複数のプライベートアドレスを割り当てるのはNAPT
Port を Transition して区別するのだ。IP マスカレードは NAPT のほう。Linux 専門用語
また一概にIPマスカレードといっても静的と動的がある。
iptables でおこなっているのは静的IPマスカレードである。
http://www.asi.co.jp/info/unix/nat.html
またゲートウェイとはプロトコル変換機能をもつものであり、厳密にはルータとことなります。
まぁどっちでもいいですが、一応違いをおぼえておくといいかもしれません。
僕としてはプロトコル変換なんてしていないので、ゲートウェイとなにも断わらずに言っているサイト
を見ると、少し疑わしくなります。まぁWindowsも全部まとめてゲートウェイといっているし、
どうでもいいといえばどうでもいいです。単なるたわごとです。

最低限
 lsmod でモジュール確認
 lsmod | grep ip_tables
なかったら 
 modprobe ip_tables
で、今度は nat 用に(さっきのはファイアウォール全般)
 lsmod | iptable_nat
なかったら
 modprobe iptable_nat
 lsmod | grep ip_chains
あったら ip_chains はいらないので
 rmmod ip_chains

 echo 1 > /proc/sys/net/ipv4/ip_forward 
ただしこれだと再起動時に消えるので、RedHat 系なら(たぶん)
 /etc/sysctl.conf に
 net.ipv4.ip_forward=1
とかいておく。すぐ反映させたいなら、
 sysctl -p /etc/sysctl.conf 
または
 /etc/rc.d/init.d/netword restart (中でsysctl -p /etc/sysctl.conf やってる)
RedHat 系以外なら 
 /etc/sysconfig/network に 
 FORWARD_IPV4=yes 
を書き込む。
 /etc/rc.d/init.d/network restart
で反映させる。反映しないなら、上の echo 書いとく?

 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
(eth0 は外につながってるやつ。YahooBB じゃない ADSL だと ppp0 とかでもいいとかなんとか)
これを起動時に反映させるようにするには、/etc/rc.d/rc.local
あたりに書き込んでおけばいい。(このファイルはそういうちょっと付けたし用のファイル)

network の設定は RedHat なら
 redhat-config-network というツールがある。
大抵のディストリビューションには netconfig という CUI の GUI チックな設定ツールがあるはず。
netcfg という GUI のものもあるかもしれない。また setup コマンドにネットワークの設定項目が
あるかもしれない。(VineLinux 2.6r1 にはなかった。むしろ netcfg があった。)
(と思ったら、eth0 のほうしか設定できないみたい。ファイル直接いじるしかないのか。)
eth0 外部を YahooBB なら DHCP にチェック入れればおわり。
eth1 内部をたとえば、192.168.0.1/255.255.255.0 にして(192.168.0.0 など最下桁が0、または255のものは利用できない。192.168.0.0 はこの場合のネットワークアドレスになるからだ)、ゲートウェイはなくてよい。

そうしたら、他のマシンを 192.168.0.2/255.255.255.0 (ネットワークが 192.168.0.* なので上三桁はむろんそのようにしなければならない。)にして、ゲートウェイをさっきの 192.168.0.1 にしておく。DNS はルータとなるマシンのほうで調べて入力しておこう。そうしないと名前解決できない。
ケーブルはむろんクロスケーブル。ハブとかもってるなら、ストレート2本?でもいいだろう。(ハブもってないのでどういう風につかうのか知らない。)
ストレートを買ってしまったとしても、ちょっといじればクロスにできるので改造してみるのもいいだろう。

ファイアウォールの設定はRedHat なら
 redhat-config-securitylevel という GUI ツールがある。
KDEもしくはGNOMEを使っているなら 赤帽->システム設定->セキュリティレベル ででてくるはず。
内部ネットワークのデバイスは信頼する設定にしておこう。ふつうは信頼するでしょ。
また大抵のディストリビューションなら
 /usr/sbin/lokkit
という CUI の GUI チックなツールがあるはず。
これらのツールは /etc/sysconfig/iptables に書き込んでいる。
また、このファイルは起動時に実行される /etc/rc.d/init.d/iptables が読み込んで実行している。

こういうツールを使わずに自分で iptables のスクリプトをかきたいならば、
 mv /etc/rc.d/init.d/iptables /etc/rc.d/init.d/iptables.bak
 touch /etc/rc.d/init.d/iptables
 chmod 755 /etc/rc.d/init.d/iptables
としてバックアップを作りつつ、新しくファイルを作りつつ、実行許可をだしておいて、
改めて、好きなように編集すればよい。
ちなみに起動時に実行されるスクリプトは
 chkconfig --list 
でみれる。追加するときは
 chkconfig --add [script name]
消すときは
 chkconfg --del [script name]
とする。なので、デフォルトの iptables スクリプトをこれではずして、自分の書いたスクリプトを
これで登録してもいいだろう。
ちなみに起動時に chkconfig --list で ipchains がでてきたら、--del しておくといいだろう。
ipchains が動いていると iptables が動かなくなるので。ちなみに自分の場合、ipchains スクリプトは ipchains を起動して、すぐに終了するというようになっていた。意味ないじゃん。
iptables の書き方はサーチエンジンで iptables とか検索すればでてくる。というか Linux ルータ
について調べると、自らスクリプトを書くものばかりがでてくるはずだ。どうして、みんな楽をしようとしないのだろうか。

 /sbin/iptables -L
 iptables -t nat -L とか
 iptables -F OUTPUT
 iptables -t nat -F PREROUTING とか

ちょっとした技
ルールを /etc/sysconfig/iptables に保存する。
 %/etc/init.d/iptables save
また、保存したルールを読み込みたいときは、
 %/etc/init.d/iptables start
とする。 このようにルールを保存しておけば、次回起動時にルールが復元される。
しかし、せっかく保存しても /usr/sbin/lokkit /usr/sbin/lokkit (CUIツール)を実行すると  /etc/sysconfig/iptables を勝手に書き換えてしまう。よろしくないな。

ftp クライアントを使いたい (passive モード)

ftp クライアントは制御用ポートでつないだあと、勝手に送受信用ポートを開くので、 ダイナミックIPマスカレードがうまくいかない。そこで、

modprobe ip_nat_ftp
modprobe ip_conntrack_ftp

と、これらのモジュールをいれる。 あとはこのモジュールが自動的にftpで開いたポートを認識してうまくやってくれる。 passive モードじゃないとだめっぽい。

# iptables -A INPUT -p tcp --dport 20 -j ACCEPT
# iptables -A INPUT -p tcp --sport 20 -j ACCEPT
# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
# iptables -A INPUT -p tcp --sport 21 -j ACCEPT

とかやってもアクティブ接続はできなかったし、やらなくてもパッシブ接続できた。

---------
ip_tables iptablesサポート用モジュール 
ip_conntrack コネクション追跡用モジュール 
ip_conntrack_ftp  FTPのコネクション追跡用モジュール 
ip_conntrack_irc IRCのコネクション追跡モジュール 
ip_nat_ftp  FTP用のヘルパモジュール 
ip_nat_ircI  RC用のヘルパモジュール 
ipt_LOG  ログ出力用モジュール 
ipt_MASQUERADE IPマスカレード用モジュール
ipt_REDIRECT  REDIRECTターゲット用モジュール 
ipt_REJECT  REJECTターゲット用モジュール
-----------

ポートフォワーディング

/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 192.168.0.2

違うポートにフォワードしたいなら、

/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 192.168.0.2:8080

みたいな 内側からテストしようとしたら、だめだった。外からはいけたのに。なにが影響していたのか IM のために特定のポート (6891-6900) を内部のマシンにポートフォワーディングする。

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 6891:6900 -j DNAT --to 192.168.0.2 

LAN 内のマシン(192.168.0.100)からの HTTP サーバへのパケットを 8080 番ポートへリダイレクトする(透過プロキシ)。

iptables -t nat -A PREROUTING -p tcp -s 192.168.0.100 --dport 80 -j REDIRECT --to-port 8080 
/sbin/iptables -t filter -P INPUT DROP
#デフォルトのテーブルがfilter なので -t filter はなくていい
## pingの通過および応答を許可
/sbin/iptables -t filter -A INPUT -i eth1 -p icmp -j ACCEPT
## DNS問い合わせの通過および応答を許可
/sbin/iptables -t filter -A INPUT -i eth1 -p udp --dport 53  -j ACCEPT
## wwwの通過および応答を許可
/sbin/iptables -t filter -A INPUT  -i eth1 -p tcp --dport 80  -j ACCEPT
## POPの通過および応答を許可
/sbin/iptables -t filter -A INPUT  -i eth1 -p tcp --dport 110 -j ACCEPT
## SMTPの通過および応答を許可
/sbin/iptables -t filter -A INPUT  -i eth1 -p tcp --dport 25  -j ACCEPT
## ftp通信用モジュールのロード(FTPの通過および応答を許可)
/sbin/iptables -t filter -A INPUT -i eth1 -p tcp --dport 21  -j ACCEPT

DHCP

/etc/rc.d/init.d/dhcpd 起動シェルスクリプト

 prog="dhcpd"

の下辺りに

 DHCPDARGS = "eth1"

と追加。書かないと eth0 にも適用されてしまう。 むろんこの場合は eth0 が外部と繋がっているカードで eth1 が内部だろう。

/etc/dhcpd.conf IP アドレスの割り当て方法。なければ作る

ddns-update-style- interim;
subnet 192.168.0.0 netmask 255.255.255.0 {
       range 192.168.0.2 192.168.0.17;
       option subnet-mask 255.255.255.0;
       option routers 192.168.0.1;
       option broadcast-address 192.168.0.255;
       option domain-name-servers xxx.xxx.xxx.xxx, xxx.xxx.xxx.xxx;
}

のように書く。xxx.xxx.xxx.xxx はむろんDNSサーバーのアドレス。

IPマスカレードの設定

 /etc/rc.d/rc.local (起動時実行ファイル)
 これにIPマスカレードのためのコマンドを記述しておくといいだろう。
 /sbin/sysctl -w net.ipv4.ip_forward=1 #IPマスカレードを有効
 (echo 1 > /proc/sys/net/ipv4/ip_forward に同じ)
 (/etc/sysctl.conf の net.ipv4.ip_forward を 1 にして
  sysctl -p /etc/sysctl.conf が正解)
 (RedHat 以外は /etc/sysconfig/network)
 /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
 #iptable (アクセスしたコンピュータのIPに応じた取扱を設定する表) の設定
 
 もしくはProxyサーバーの構築 (up2date squid)
 /etc/squid/squid.conf 主要な設定
 アクセス制限をするならば、
 acl CONNECT method CONNECT の下あたりに
 acl domain-deny dstdomain "/etc/squid/domain-deny"
 # http_access deny all の行をこのようにコメントアウトして、下に
 http_access deny domain-denay
 http_access allow all
 
 squid.conf に domain-deny ファイルでアクセスを設定すると書いたので、
 /etc/squid/domain-deny ファイルをつくり、このサーバーからの
 アクセスを禁止するアドレスを書く。
 www.sexy-j.com
 www.adult-series.com
 のようにかく。
 squid サーバーを起動
 あとは、クライアント側がふつうにブラウザとかで proxy サーバ設定すればよい。
 でも、proxy サーバじゃ、対応したソフトでしかウェブにつなげないよな…

Samba Windows とのファイル共有

http://www.atmarkit.co.jp/flinux/samba/whatissamba01/whatissamba.html

ログインが必要な読み書き

[share]
   comment = KURO-BOX Share Folder
   path = /mnt/share
   browsable = yes
   printable = no
   writable = yes
   valid users = sonots
   force create mode = 777
   force directory mode = 777

user は samba のユーザー

 /etc/samba 内に設定ファイルがあるが、samba-swat を使って設定する 
 (RedHat にはこれ以外にも Samba 設定用のツールがある)
 up2date samba-swat
 samba-swat デーモンを起動 (実質 xinetd を再起動)
 /etc/rc.d/init.d/xinetd restart
 samba-swatがはいってるなら、例のサーバ設定ツールで smb と swat にチェックをつけて
 起動させてやる。
 mozilla http://localhost:901 & 
 root で login する
 GROUPS ボタンをクリックし、グループ名をつける
 正規ユーザーのホームディレクトリを共有したいなら、
 SHARES ボタンをクリックし、Create Share ボタンの右のメニューで homes を選択
 homes の設定がでてくるので、browseable を Yes にして、Commit Change する
 Password ボタンを押し、ユーザーを登録する。ID, Password を登録して、
 Create New User ボタンで作る。パスワードはSamba用のパスワード。ID は正規なID
 STATUSボタンで Samba サーバーの起動、終了、再起動をおこなう
 サービスGUIツールで smb をコンピュータ起動時に起動するよう設定
 Windows 側で、マイネットワークを開けば見えるはず。グループ名の設定は、
 コントロールパネル->システム->ネットワークID なんてらでいける。

 ゲスト共有フォルダの作成
 SHARES ボタンをクリックし、Create Share ボタンの名前に適当に名前をいれて、ボタン
 クリック。
 共有ディレクトリのパスを入力し、guest ok を yes に、書き込みも許可するなら、
 read only を no に。あとは Commit して restart 
 
 プリンタの共有
 PRINTES ボタンをクリック。Choose Printer の右でプリンタを選ぶ。[*] が先頭に
 ついているのが、接続してあるプリンタ
 その後の設定で guest ok にしないと ME だと接続できない。XP だと入力の手間がいる。
 あとは、samba 再起動
 Windows 側でマイネットワークから接続して、プリンタを右クリックし、接続を選べばつながる
 vfat 領域は root 権限でないと書き込みでないので、Samba で root 権限
 おそらく
 /etc/samba/smbusers
 に root = adm ... とかのように root に対応するユーザがすでに書かれてしまっているので消す。
 改めて root に対する samba ユーザーを登録する。
 ファイル名を日本語
 /etc/samba/smb.conf の [global] の下あたりに
 client code page = 936 
 coding system = EUC
 と追加。client code page が Shift-JIS であることを示し、
 coding sytem が Linux 上にどのコードで保存するか
 SJIS にしないとWindows 側から不都合が発生したりする。が、
 ファイルシステムが vfat の領域だと EUC にしないと日本語ファイル作れない。
 coding system は EUC/SJIS/HEX/CAP あたらしいバージョンなら EUC3/UTF8 とかもあるらしい。
 swat などを使うよりも /etc/samba 内のファイルをいじったほうがたぶん楽
 user の追加は /etc/samba/smbusers を直接編集
 パスワードの設定は /usr/bin/smbpasswd [username] [passwd] で
 /etc/samba/smb.conf で
   username map = /etc/samba/smbusers
 のコメントアウトをはずせば smbusers 読みにいく
 新しいフォルダの追加は
[vfat]
       path = /vfat
       writable = yes
       invalid users = %S
 こんなんでOK

Netatalk Mac OSとのファイル、プリンタ共有

 /etc/atalk/config 基本条件
	    /atalkd.conf 提供先
           /afpd.conf ファイル共有の基本設定
           /papd.conf プリンタ共有の基本設定
           /AppleVolumes.system  リソース設定
           /AppleVolumes.default 共有ディレクトリを設定
  atalkd.conf で eth0 もしくは eth1 などのサービスを提供するほうの
  イーサネットカードを指定
 
  aftpd.conf でゲストにも接続を許可する場合、(default はサーバーにアカウントをもつ
  ユーザーのみ)
  - -transall -uamlist uams_clrtxt.so, uams_guest.so, uams_dhx.so -nosavepassword
 
  AppleVolumes.system で、MAC 側から開いたときに MAC 用の拡張子に変換できるように
  設定。書き方はファイルみればわかる
  AppleVolumes.default で共有ディレクトリを設定
  ~ はサーバーにアカウントをもつユーザーのホームディレクトリの共有をみとめる。
  ゲスト共有もみとめるなら、共有ディレクトリとボリューム名を書く。
  /var/pub "Public desu"
  
  papd.conf プリンタの共有
  linuxPrinter:\
    :pr=|/usr/bin/lpr:op=daemon:
  のようにかく
  MAC OS 9 client 側の設定
  アップルメニュー->セレクタ->AppleShare->ファイルサーバの撰択でサーバーを選ぶ
  あとはID,パスワードとかゲストとか
  Mac OS X
  ドックのアップルマークをクリックし、「システム環境設定を開く」
  「ネットワーク」をダブルクリック、ダイアログの「AppleTalk」タブを開く
  「場所」で「自動」、「表示」で「~Ethernet」を選択し、
  「AppleTalk使用」をオン
  メニューバーで「移動」->「サーバへ接続」、「AppleTalk」を選択
  あとサーバー選択、以下略

    

SQL(PostgreSQL)

 /var/lib/pgsql/data/postgresql.conf 基本設定
                    /pg_hba.conf 接続の可否
 LANからの接続をみとめるなら、postgresql.conf で
 tcpip_socket = false → true
 あとは接続を許可するホストを pg_hba.conf に
 host	all	163.143.89.112	255.255.255.0 	trust
 のようにかく
 createuser [username] でユーザーを作るが最初にこれを実行できるのは postgres 
 というユーザーのみ。root から su しよう。あたらしく user を作ることを許可すると、
 他人の DB を勝手に drop できたりできるスーパーユーザーになる。
 dropuser [username] で消去
 あとは SQL 言語
 createdb [dbname] , dropdb 
 で、psql [database] でアクセスして、プロンプトだして
 create table [hogehoge] (
  name VARCHAR,
  zipcode CHAR(8)
 );
 \copy [database] [inputfile]
 とかなんとか。default はタブ、空白、とかで区切るのだろう。
 Excel とかでもそういうものは作れるのでデータ作成はExcel がいいかもね。
 \q で終了
 pg_dump [dbname] > db.out でデータベースのデータをバックアップできる。
 psql -e [dbname] < db.out
 
 psql -l で現在あるデータべースの確認
 テーブルの確認は psql [dbname] で接続後 \d
 perl 用の Pg.pm モジュールはあたらしい perl には入っていない。
 DBD::Pg モジュールを使おう。

SQL続編 ODBCドライバ

 ODBC ドライバをクライアントにインストールすれば
 ODBC対応プログラム(Excelなど)で直接編集できるようになる
 http://www.nami73.com/download/psqlodbc.html  (Office Nami)
 コントロールパネル->管理ツール->データソース(ODBC)->ユーザーDNSで追加
 Database をつなぐときに決めるなら、空白でも大丈夫
 で、たとえば、Excel なら、データ->外部データの取り込み->新しいデータベースクエリ
 「Microsoft クエリ」をインストールしたら、Postgresql を選択、
 Database 名を指定して、とりこみたいテーブル(列)を選択して条件とか決めて取り込める。  
 

Apache (RPMっつーか最初から入るやつ)

 /etc/httpd/conf/httpd.conf 設定ふぁいる
 /usr/sbin/apachectl 
 
 Listen 80 → 8080 会津大用に Port を 8080 にかえる
 ServerAdmin root@localhost → s1080134@u-aizu.ac.jp 一応
 ServerName [Address]:8080 さーばー名設定。起動の時エラーがでるかでないか
 DocumentRoot "/var/www/html" そのままでいいや
 UserDir disble → public_html これで ~userid でいけるように

↓ UserDir を設定したなら有効に +Includes で SSI (.shtml) も有効に

<Directory /home/*/public_html>
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec +Includes
    <Limit GET POST OPTIONS>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>

↓ cgi を動かすのは cgi-bin 以下のみ。ExecCGI ちなみに Order allow,deny というのはアクセスコントロールを allow, deny の順で みていくということ Deny from 127.0.0.1 みたいに追加

<Directory /home/*/public_html/cgi-bin>
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI
    <Limit GET POST OPTIONS>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>

DirectoryIndex index.html index.html.var → index.cgi index.shtml 追加すると楽しいかも

↓Options None だけど CGI 動くみたい

<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

webalizer コマンドをうったら http://localhost/usage/ に接続するとアクセス解析ページが開く /var/log/ 以下にシステムのログが格納されている

Tomcat(RPMパッケージ)(RedHat8 default Apache との連携ができなかった)

 ダウンロード
 J2SE(Java 2 Platform,Standard Edition) SDK
 http://java.sun.com/j2se/
 Tomcat
 http://jakarta.apache.org/
 chmod +x して j2sdkXX.bin を実行。rpm ができるので、rpm -ivh でインストール
 せっかくなので、/etc/bashrc に
 export JAVA_HOME=/usr/java/bin/jdk1.XXXX
 export PATH=$JAVA_HOME/bin:$PATH
 rpm -ivh tomcat4-4.1.24-full.2jpp..rpm
 /etc/tomcat4/tomcat4.conf
JAVA_HOME=/usr/java/bin/jdk1.XXXXX
CATALINA_HOME=/var/tomcat4
JASPER_HOME=/var/tomcat4
TOMCAT_USER=tomcat4
 たぶん JAVA_HOME 以外は書いてある。
 
 /etc/rc.d/init.d/tomcat4 start
 http://localhost:8180/
 ポート番号とかの設定は /etc/tomcat4/server.xml
        <Context path="/~s1080134" 
	docBase="/home/s1080134/public_html" debug="0"
	reloadable="true" crossContext="true">
	</Context>
 のようなものをたくさんかけば、~id のようにいけないこともない。* は使えないし。

PHP (Apache が RedHat8 に最初から入っているものの場合)

http://www.php.net/downloads.php から PHP ソースをゲット (tar.gz のやつとする)

 tar zxvf php-4.3.0.tar.gz
 cd php-4.3.0
 ./configure --enable-mbstring (マルチバイト対応?)
 make
 make install
 cp php.ini-dist /usr/local/lib/php.ini

/etc/httpd/conf/httpd.conf (Apache の設定ファイル)に

<IfDefine HAVE_PHP4>
LoadModule php4_module  modules/libphp4.so
</IfDefine>

<IfDefine HAVE_PHP4>
AddModule mod_php4.c
</IfDefine> 

# The following is for PHP4 (conficts with PHP/FI, below): 
<IfModule mod_php4.c>
AddType application/x-httpd-php .php4 .php3 .phtml .php
AddType application/x-httpd-php-source .phps
</IfModule>

を追加。他の<IfModule があるあたりの上に書いた。

apache を再起動し、(apachectl restart) (二回目以降 AddModule mod_php4.c を消さないと起動しなくなった。 すでに追加してあるということだろうが、どうするのが本筋なのだろうか。)

<?php
phpinfo();
?>

と書いたファイル (phpinfo.php とする) をpublic_html以下におき、 アクセスして動作確認

cvspserver

mkdir $HOME/cvsroot
cvs -d :localhost:$HOME/cvsroot init
cd Files/
cvs -d :localhost:$HOME/cvsroot import RepositoryName VendorName v1
cd ../
cvs -d :localhost:$HOME/cvsroot checkout RepositoryName

pserver was already at /etc/services/.

/etc/xinetd.d/cvs was there. Modify at least to disable = no. --allow-root = $HOME/cvsroot

/etc/init.d/xinetd restart
htpasswdd -bcd $HOME/cvsroot nseo nseo
htpasswdd -bd $HOME/cvsroot sonots sonots
cvs -d :pserver:nseo@servername:$HOME/cvsroot login
cvs -d :pserver:nseo@servername:$HOME/cvsroot co RepositoryName

Tell this to user

export CVSROOT=username@servername:$HOME/cvsroot

Type

cvs login

Type password

cvs co RepositoryName

A directory whose name is the same with RepositoryName is created at current directory. After modifying,

cvs ci

Add comments below lines of CVSCVS(?) about what you modified. This editor should be 'vi'. FYI: this automatically reads information under CVS/ directory under current directory and resolve which files will be commited. Don't commit files which might cause errors. After you made sure, commit it.

PostgreSQL

ftp://ftp.postgresql.org/pub/v7.3.2/postgresql-7.3.2.tar.gz

adduser postgres 

(maybe, first the portgres user exists)

tar zxvf postgresql-7.3.1.tar.gz
mkdir /usr/local/pgsql
chown -R postgres:postgres /usr/local/pgsql
su - postgres
cd postgresql-7.3.1
export ANT_HOME=/usr/local/ant
export JAVA_HOME=/usr/java/j2sdk1.4.1_02
export PATH=${PATH}:${ANT_HOME}/bin:${JAVA_HOME}/bin
./configure --with-java  (--with-java:JDBC --with-perl)
gmake
gmake check
       ======================
        All 89 tests passed.	
	======================
gmake install
$ mkdir [database dir]
$ mkdir [database dir]/data 
$ /usr/local/pgsql/bin/initdb -D [database dir]/data -E EUC_JP --no-locale
(/usrl/local/pgsql/data )
[database dir]/data/postgresql.conf
JAVA_HOME/jre/lib/ext
$ vi [database dir]data/postgresql.conf
#tcpip_socket = false
tcpip_socket = true

#syslog = 0
syslog = 0
$ exit	
# cp /usr/local/pgsql/share/java/postgresql.jar /usr/java/j2sdk1.4.1_02/jre/lib/ext
cp postgresql-7.3.1/contrib/start-scripts/linux /etc/rc.d/init.d/postgresql
/etc/rc.d/init.d/postgresql
PGDATA=/usr/local/pgsql/data 「ェ PGDATA=[database dir]/data
chmod 755 postgresql
/sbin/chkconfig --add postgresql

/etc/profile

export PG=/usr/local/pgsql
export PATH=${PG}/bin:${PATH}
export LD_LIBRARY_PATH=${PG}/lib:${LD_LIBRARY_PATH}
export MANPATH=${PG}/man:${MANPATH}

/etc/rc.d/rc.local

/sbin/ldconfig /usr/local/pgsql/lib

vsftpd

gssftp is working on 21 port as default on Fedora core. Stop it.

chkconfig gssftp off

Edit config

vi /etc/vsftpd/vsftpd.conf
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=
#
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that turning on ascii_download_enable enables malicious remote parties
# to consume your I/O resources, by issuing the command "SIZE /big/file" in
# ASCII mode.
# These ASCII options are split into upload and download because you may wish
# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
# on the client anyway..
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd/banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
ls_recurse_enable=YES

pam_service_name=vsftpd
userlist_enable=YES
#enable for standalone mode
listen=YES
tcp_wrappers=YES

anon_root=/home/nseo/SDSU
anon_umask=000
anon_other_write_enable=YES
chmod_enable=YES

delegate(Proxy server)