まさかの日記

最近まともな文章しか書けなくなってきました

カテゴリ:技術系もろもろ > サーバインフラ、ネットワーク

以前Pomeraにlinuxを入れた話を書いたが、今回は環境設定の詳細について整理してみる。

かなりいろいろ設定をいじっているので、忘れないうちにメモしておく。

現在の構成

  • ハードウェア: Pomera DM250
  • OS: Debian 11 bullseye (ARM v7l)
  • ウィンドウマネージャー: i3wm
  • ターミナル: URxvt (rxvt-unicode)
  • 日本語入力: ibus + mozc
  • フォント: Ricty Diminished

自動ログイン・X Window起動設定

.bash_profile

if [[ -z  $DISPLAY ]] && [[ $(tty) == /dev/tty1 ]];  then
	  startx
fi

ログイン後、自動的にX Windowが起動するように設定している。tty1(最初のコンソール)でのログイン時のみstartxを実行。

.xprofile

#!/bin/sh
xset r rate 300 25
/usr/local/bin/x-set-keys &

X Window起動後に実行される設定。キーリピート速度の調整とx-set-keysの起動を行う。

手動起動の問題

現在、x-set-keysの自動起動がうまくいかず、X Window起動後に手動で以下を実行している:

sh .xprofile

この作業を忘れないように、.bashrcの末尾で操作メモを表示している:

.bashrc(末尾)

more /mnt/sd/doc/welcome.txt

/mnt/sd/doc/welcome.txt

ログイン後、sh .xprofile を実行してください そしたらMenuプラスEnterで別ターミナル開いて、Menu+wで最大化。   あとこれもやったらだめ固まるー>ctrl z してbgとかそういうやつ"

操作TIPS ・urxvt-unicodeでのペーストはCTRL+ALT+v ・文字サイズ変更はCTRL++,CTRL+- ・明るさ変更は ~/brightnessコマンド(GUI) ・マウスはCTRL+; ・日本語IMEオンオフは半角全角キー

このメモには、基本的な操作方法も含めている。

X Window関連設定

.xinitrc

export LANG=ja_JP.UTF-8
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

xrdb -merge -I$HOME ~/.Xresources ibus-daemon -drx& /usr/bin/keynav & export LANG=ja_JP.UTF-8 exec i3

X起動時に日本語環境とibus、keynavを自動起動している。最初はXFCE4を使っていたが、軽量なi3wmに変更した。

.Xresources

URxvt*font:     xft:Ricty Diminished:size=16
URxvt.letterSpace:        -1
URxvt.faceSize:       12
URxvt.background:             snow
URxvt.foreground:             black

URxvt.saveLines: 3000 URxvt.scrollBar: false URxvt.cursorBlink: true URxvt.cursorUnderline: true URxvt.pointerBlank: true URxvt.fading: 40 URxvt.iso14755: false URxvt.pastableTabs: false

URxvt.perl-ext-common: xim-onthespot,keyboard-select,resize-font URxvt.inputMethod: ibus URxvt.preeditType: OnTheSpot

URxvt.keyboard-select.clipboard: true

URxvt.keysym.Shift-Up: command:\033]720;1\007 URxvt.keysym.Shift-Down: command:\033]721;1\007

URxvt.keysym.M-s: perl:keyboard-select:activate

URxvtは軽くて設定が豊富。日本語入力のOnTheSpot設定がポイント。

マウス操作をキーで行う - keynav

Pomeraにはマウスがないので、keynavでキーボードからマウス操作を実現している。

.keynavrc

clear
daemonize

起動キー

ctrl+semicolon start,cursorzoom 20 20

終了

Escape warp,end q warp,end

クリック

space warp,click 1 1 warp,click 1,end 2 warp,click 2,end 3 warp,click 3,end

カーソル移動(vim風)

h move-left 20 j move-down 20 k move-up 20 l move-right 20

shift+h move-left 50 shift+j move-down 50 shift+k move-up 50 shift+l move-right 50

Emacs風

ctrl+n move-down 20 ctrl+f move-right 20 ctrl+p move-up 20 ctrl+b move-left 20

アプリケーション起動

5 sh "lilyterm",end 6 sh "leafpad",end 7 sh "sylpheed",end 8 sh "midori",end 9 sh "gvim",end 0 sh "emacs",end

Ctrl+;でマウスカーソルが表示され、hjklで移動、spaceでクリック。

よく使うアプリケーションを数字キーで起動できるようにしている。

i3ウィンドウマネージャー設定

軽量で設定が柔軟なi3wmを採用。

~/.config/i3/config(抜粋)

set $mod Mod4

font pango:FontAwesome,Ricty Diminished,DejaVu Sans Mono 12

タブで次のワークスペース

bindsym $mod+Tab workspace next bindsym $mod+Shift+Tab workspace prev

スクリーンロック

bindsym $mod+l exec slock && sleep 1

ボーダーを賢く非表示

hide_edge_borders smart

ステータスバー設定

bar { font pango:FontAwesome,Ricty Diminished,DejaVu Sans Mono 14 status_command i3status }

システム情報表示 - i3status

右下のバーにIPアドレスやバッテリー情報を表示。

/etc/i3status.conf

general {
    output_format = "i3bar"
    colors = false
    interval = 7
}

order += "wireless _first_" order += "battery 0" order += "tztime local"

wireless _first_ { format_up = "SSID:%essid/%ip%quality" format_down = "Wifi:down" }

battery 0 { path = "/sys/class/power_supply/battery/uevent" format = "%status%percentage" }

tztime local { format = "%Y-%m-%d(%a) %H:%M" }

WiFi SSID、IPアドレス、電波強度、バッテリー残量、日時を表示。

日本語入力設定

.uim

(define default-im-name 'mozc)
(define-key generic-on-key? '(" " "zenkaku-hankaku"))
(define-key generic-off-key? '(" " "zenkaku-hankaku"))

Ctrl+SpaceとZenkaku-hankakuキーで日本語入力のON/OFF切り替え。

キーボード問題について

PomeraをLinux化すると、複数キー同時押しで意図しない文字が入力される問題がある。

現在の対策

1. キーリピート調整: /etc/X11/xorg.conf.d/00-keyboard.conf

   Section "InputClass"
       Identifier "system-keyboard"
       MatchIsKeyboard "on"
       Option "AutoRepeat" "300 20"
   EndSection
   `

2. x-set-keysツール: /usr/local/bin/x-set-keys - 複数キー入力問題を軽減するカスタムツール - SUID権限で動作 - .xinitrcでコメントアウト中(不安定のため)

3. bashrcでの環境設定: `bash export LANG=ja_JP.UTF-8 `

具体的な問題

  • 複数キー同時押しで文字化けが発生。具体的には りょ、ちゅ、などを高速入力するとたいてい違う文字が入る。

この問題は完全には解決していない。Pomeraのハードウェア特性に起因する可能性が高い。これについては以前にも少し書いた→ ポメラdm250をlinux化すると複数キー同時入力で違う文字が入ってしまう問題 : まさかの日記 https://masakano.com/archives/52628373.html

WiFi設定

/etc/network/interfaces

bash

Include files from /etc/network/interfaces.d:

source /etc/network/interfaces.d/*

NetworkManagerを使用してWiFi接続を管理。GUIでも設定可能。

その他の便利な設定

.bashrc

bash export LANG=ja_JP.UTF-8

ヒストリー設定

HISTSIZE=1000 HISTFILESIZE=2000

.tmux.conf(Pomera側)

bash unbind C-b set-option -g prefix C-t set-option -g status-interval 30 set-option -g status-right "|#(~/bin/date)|#(/home/pomera/bin/charge):#(/home/pomera/bin/batt)"

bind r source-file ~/.tmux.conf \; display-message "Config reloaded!" `

プレフィックスキーをC-tに変更。ステータスラインには日付とバッテリー情報を表示。

開発環境

  • エディタ: vim, emacs
  • 言語: Python, Ruby, Common Lisp (SBCL + Quicklisp)
  • ブラウザ: Firefox ESR
  • メーラー: Sylpheed

最近はClaude Codeも快適に動作している。

パフォーマンス

軽量な構成にしているため、Pomeraでも意外と快適。

  • メモリ使用量: 起動後約200MB
  • CPU負荷: アイドル時1%以下
  • バッテリー持続時間: 通常使用で6-8時間

今後の課題

1. キーボード問題の根本解決 - おそらく対応は不可能。ポメラの次バージョンに期待か?(でるんか?

2. パフォーマンス向上 - さらなる軽量化 - 起動時間の短縮

3. モバイル対応 - Tailscale経由での外部アクセス最適化 - バッテリー消費の改善

感想

正直pomeraの使いみちがなくて困っていたが、こんだけ遊べれば充分もとは取ったかな

ちなみにこの記事もclaude codeにほぼかいてもらった(expectコマンドで勝手に入ってもらって見てもらった)。このpomera のlinux側のいろんな設定をなにかに残さないとな、、とずっと思っていたが、ここでこういう形で実現して良かった。まあ二度とここまでやることは無いと思うが、、次のPomera(DM300か)が出たらまたやるかも。カーネルとかを出してくれている皆さんがいるあいだにw pomera dm300でググるといろいろ出てくるね→pomera dm300 - Google 検索 https://www.google.com/search?q=pomera+dm300&oq=pomera+dm300&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIJCAEQABgEGIAEMgcIAhAAGO8FMgoIAxAAGKIEGIkFMgoIBBAAGIAEGKIE0gEIMzc1NGowajeoAgCwAgA&sourceid=chrome&ie=UTF-8

---

参考

  • keynav: http://www.semicomplete.com/projects/keynav
  • pomeraでLinux + Tailscale環境を作った話を書きましたが、もともとはiPhoneから同じような環境にアクセスするということをしていて、こちらのほうがよっぽど一般的な話なのでこっちを書くべきだろう。ということで書いた(書かせた)

    結論から言うと、iPhone + Blink + tmux + Claude Codeの組み合わせが想像以上に快適だった。

    構成

    iPhone (iOS)
        ↓ Tailscale VPN
    Mac (macOS)
        ↓ Blink (mosh)
    tmux session
        ↓
    Claude Code

    使っている技術:

    • Blink Shell: iOS用のSSH/moshクライアント
    • Tailscale: VPN接続
    • tmux: セッション管理
    • Claude Code: AI開発環境

    Blinkを選んだ理由

    最初はPromptというSSHアプリを使っていたが、tmux環境でのスクロール操作で問題があった。

    Blinkに変えたところ、tmux内でも普通にスワイプ操作でスクロールできるようになった。

    これが思った以上に大きな違いだった。

    外付けキーボードの話

    Clicktech社(rebuild.fmで紹介されていたやつ)のBlackBerry風キーボードを買った。

    リファブリッシュ版だったが、見た目のインパクトがすごい。

    最初はtmuxのキー操作でスクロールするためにこのキーボードが必須だと思って買った。

    でもBlinkのスワイプスクロールが使えるようになってから、外付けキーボードの意義が若干薄れてしまった。

    外付けキーボードのメリット

    とはいえ、まだメリットはある:

    • 画面が大きく使える: ソフトウェアキーボードが出ないので画面を最大限活用
    • 見た目のインパクト: 見た目のインパクトというか違和感がすごいので、これを見せると5分くらいは話がもつ(相手にもよる)
    • 物理キーの快適さ: タイピングは物理キーが良い、とかそんなことは全然ないがCTRL+CとかCMD+Vとかは入力しやすい。

    特殊な機能

    外付けキーボードには「ソフトウェアキーボード表示・非表示」キーがついている。

    これに反応するiOSアプリがBlink含めて2つくらいしかない。

    対応アプリの少なさが逆に希少価値を感じさせる。

    tmux設定

    使っているtmux設定を紹介:

    ~/.tmux.conf

    プレフィックスキー変更

    set -g prefix C-a unbind C-b

    スクロールモードで、wとsキーでハーフスクロール

    # Custom key bindings: w/s for half-page scrolling bind-key -T copy-mode w send-keys -X halfpage-up bind-key -T copy-mode s send-keys -X halfpage-down

    実際の使用感

    良い点

    • どこでもアクセス: Tailscale経由でセキュアに接続
    • セッション継続: tmuxでセッションが途切れない
    • スワイプスクロール: Blink上で直感的な操作

    微妙な点

  • キーボード問題: 外付けキーボード不要なのでは疑惑
  • 活用例

    • 電車での移動中にclaude codeに指示出し、進捗確認
    • ベッドでの軽い作業
    • アイデアを思いついた時の即座実装

    感想

    iPhone上で片手でかなりできるのが便利。pomeraも悪くないが、「立ったまま片手でできる」のはこっち。

    外付けキーボードは使用頻度が下がったが、見た目と画面の広さは捨てがたい。

    まとめ

    iPhone + Blink + tmux環境は予想以上に実用的。いろいろ書いているがようするにios上でアプリを開いた瞬間に、mac上のclaude codeのターミナルが表示される、っていうことです。chatgptのiosアプリとかと同じ感覚ですね。sshのログインとかは一切無いです(大丈夫か)

    MacOSとiPhoneの両方で同じ開発環境にアクセスできるのは便利。(なんならipad上でも同じものを表示できる。ipadは常時点灯モードにしてビューア的にしている

    ---

    この記事もiPhone + Blinkで書いている。。。ならよかったんだけどこれもほぼclaude codeに書かせている。下書きをプロンプトで渡して、CMSに投稿させ、手動Mac上で校正。あと、ちょっと時間がかかる作業の場合は「おわったらDiscordで通知してね」というのもやってるが、殆どの作業が数秒でおわってしまうので今のところそんなに有用という感じは無い

    PomeraにLinuxを入れて、そこからTailscale経由でMacのClaude Codeにアクセスする環境を作った。

    結果的に外出先でも開発作業ができる環境になった。

    経緯

    iphoneからssh(mosh)して同様の接続経路で使っていたが、

    PomeraにLinuxが入っているなら、これを使えないかと思ったのがきっかけ。

    構成

    Pomera (Debian 11 ARMv7l)
        ↓ Tailscale VPN
    Mac (macOS)
        ↓ mosh + tmux
    Claude Code

    PomeraのLinux環境にTailscaleクライアントを入れて、Mac側に接続する

    実際の接続はmoshを使っている。tmuxでセッション管理

    使っている技術:

    • Pomera: Debian GNU/Linux 11 (bullseye) ARMv7l
    • Tailscale: VPN
    • mosh: リモート接続
    • tmux: セッション管理
    • Claude Code:

    問題と解決

    GPGキーエラー

    TailscaleをDebian環境にインストールするとき、GPGキーでエラーが出た。

    NO_PUBKEY 458CA832957F5868

    複数の方法でGPGキーを取得するスクリプトを作って解決した。

    使ってみて

    Pomeraのキーボードはまあまあ打ちやすい。

    長時間使っても疲れにくいのがいい。

    何より、使い道のないPomeraに多少の存在意義が

    利点:

    • 軽い(持ち運び楽)
    • 電池が長持ち
    • 静か
    • どこからでもTailscale経由で接続
    • tmuxで作業継続できる
    • Claude Codeの支援も使える

    外出先でのコーディングや文章作成に使えそう。

    感想

    正直、何をするかより環境を作ることが目的になっている

    がこういう取り組みから新しいアイデアが生まれることもあるので、無駄ではないと思う。

    接続構成:Pomera → Tailscale → Mac → mosh → tmux → Claude Code

    追記

    この記事も実際にPomera経由で書いている、、んだったらいいんだけど実際はClaudecodeに書いてもらった(作業もほぼほぼそっちでやってもらった。セットアップスクリプトをかいてもらってSCP転送して実行、ログを出力して再度見てもらって、、みたいな。


    こんなのが出る件(めっちゃ古いまま使ってるのがいけないのだけど)

    no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1


    これで解決

    % cat .ssh/config
    KexAlgorithms +diffie-hellman-group1-sha1


    プロフェッショナルSSL/TLS
    Ivan Ristić
    ラムダノート
    2018-06-04

    IpadOSというかiosはバックグラウンドアプリは20秒程度で終了してしまうよう変更になったらしい(昔はもっと長かった。10分とか) すると問題になるのはSSHクライアントアプリなどで、うっかり裏に回して何か別のことをしてしまうとセッションが終了してしまうというのが頻発していた(ついさっき体感した)  がこのpromptというアプリはログイン直後に入力するコマンドっていうのを設定できて、そこでtmux aとか書いておけば直前のセッション(tmuxの)に自動的に再接続してくれて便利だったりするのだが、よくよく見ると接続の維持というオプションがありそれを有効にすると風呂に入って出てきてもまだ普通にセッション残っているのでこれで良いやんという  

    あ、ipad miniが届いて(というか実際はわざわざ取りに行った)、色々いじっているところという話です。控えめに言って最高

    んー速い

    WIFIルータとPCの間にキッチン(IH、電子レンジ、冷蔵庫など)があるので非常に不安定だったが一気に改善した。これはおすすめ。設定アプリも日本語変なところ無いし、二台とも5分くらいで設定完了した。

    自宅はもともとvdslなので大して早くないけど、それでも1Mbpsも出てなかったのが50〜70Mbpsは出るようになった
    仕事でZoomとかやっててぶちぶち切れまくるってのが無くなりそうでよかった

    2台入りで2.6万円もしたけど。まあ3年くらいは使うだろうしもとは取れそうかなと




    ここ10年くらい(サービスの監視とかするようになってからずっと)、家に居る時には何か通知来てないかとiPhoneをずっと手元に置いていて、そのためについつい触って無駄にはてブとかしてたんですが、全然触らなくなった。

    よかったよかった。、素晴らしい。

    Apple Watchである必要は全然無いんだけど。

    社内でAWSの啓蒙っぽいことしてるけど、かなり引きが弱い。

    昔、いろんな会社でUnixとかLinuxとかサーバとかの社内教育を散々やったけど、全然ものにならなかったことを思い出すなあ、と。

    期待もしてないし、絶望もしない

    やっぱそれは無理かと。ある程度概念が頭に入ってからじゃないと。

    まあマネジメントコンソール自体が判りにくくさせている、っていう話もあるかもしれないけど。


    なので裏でどういう仕組みになってるのか、っていうのが頭の中でイメージできてる状態にする、っていうのがまず第一に必要なのかなと。

    遠隔監視カメラの販売・設置なら遠隔監視ナビ http://www.enkakukanshi-navi.com/rate.html

    ASCII.jp:お手軽ネットワークカメラで自宅や店舗を遠隔監視するワザ (1/3)|柳谷智宣の「真似したくなるPC活用術」 http://ascii.jp/elem/000/000/822/822250/


    スマホ対応ネットワークカメラ・IPカメラ(監視用) | IO DATA通販 アイオープラザ http://www.ioplaza.jp/shop/contents/ics2330.aspx


    防犯カメラをスマホで遠隔操作する方法 | ネット衆善奉行 http://p2pzen.com/%E6%90%BA%E5%B8%AF%E3%83%BB%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3%E3%83%BB%E3%82%BF%E3%83%96%E3%83%AC%E3%83%83%E3%83%88pc/%E9%98%B2%E7%8A%AF%E3%82%AB%E3%83%A1%E3%83%A9%E3%82%92%E3%82%B9%E3%83%9E%E3%83%9B%E3%81%A7%E9%81%A0%E9%9A%94%E6%93%8D%E4%BD%9C%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/


    パソコン(PC)の遠隔監視カメラ|防犯カメラナビR http://www.bouhancamera-navi.com/pc/


    遠隔地に監視カメラを比較的安く設置する方法 - さわっても熱くない花火 http://yanoshi.hatenablog.jp/entry/2013/07/23/001356



    動画遠隔監視カメラ「ジオスコープ」 http://www.geo-scope.jp/


    遠隔モニタリングシステムRMS|ネットワークカメラソリューションのアクティブセキュリティ http://www.active-security.co.jp/goodslist/networkcameraSolution/rms/


    防犯カメラ遠隔監視サービス?|?株式会社シーファイブ http://www.ccccc5.com/service/service363.html


    遠隔からネットワークを介して監視し、クラウド上で管理・記録できる、インターネット遠隔監視カメラシステム| NetEye http://www.boreas.dti.ne.jp/neteye/


    canaria - 電動雲台 遠隔撮影機材:リモコン雲台(パン・チルト、リモートヘッド、旋回台) http://www.canaria-net.co.jp/


    遠隔現場監視カメラ ミルモット | NETIS利用の技術提案に最適 モバイル遠隔監視・操作は「現場ロイド」 http://www.gembaroid.jp/system/wirelesssensing/mirumott/


    Webカメラで遠隔監視・安否確認|るす番モニター http://rusumoni.jp/

    やれることが増えて、楽になった反面、今まで体力勝負でも競争力が保てたような種類の仕事が、普通にやっても充分効率よく出来てしまうために、体力勝負のやり方を続けていると非効率過ぎて時間の無駄というか。頭を使ってない場合の効率の悪さが半端ないというか。

    なので、やり方を変えていくということのコスパが半端無い。という話。

    ・電話認証、どこの使ってるんだろ
    ・AutoReboot設定のON/OFFの仕方が判らん
    ・一旦OSインストール完了後、再度上書きでOS再インストールしようと思ってCDROMブートしたかったんだけど上手くいかない。。。
    ・仮想コンソールが年々進化していってるなあ。。。最新のVMWareとかもこういう感じなんだろうなあ。

    が出るようになったんですけど、これ御社の責任範囲ですよね?!原因と対策をご連絡ください、って言って来る会社があるんだよね

    って言っている人が日本のどこかに居る

    ■Windows 2008 Server shares - the specified network name is no longer available - TechNinja - Silent and Deadly on your Tech ▽http://www.techninja.com.au/2011/05/windows-2008-server-the-specified-network-name-is-no-longer-available/ ””

    It seems that some SMB1 operating systems are unable to connect properly due to the introduction of SMB2 in Windows 2008. The easiest solution is to disable SMB2 via the Registry:

    Log into the Windows 2008 Server and load up Registry Editor (Start > Run > regedit)
    Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    Create a new DWORD (32-Bit where applicable) called SMB2 with a setting of 0 to disable or 1 to enable again.
    Reboot the server for this setting to take effect

    「SMB2というキーを作って値に0を」


    ■System error 64 - the specified network name is no longer available ▽http://social.technet.microsoft.com/Forums/windowsserver/en-US/8878da36-19af-410a-ae48-db1a87af741e/system-error-64-the-specified-network-name-is-no-longer-available ””

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\size
    Your choices for this registry key are 1,2 and 3.
    1 = Minimize Memory Used
    2 = Balance
    3 = Maximize Throughput for File Sharing and Maximize Throughput for Network Applications

    Be sure to set this to (3). By default it is configured to 1.

    「上記のキーを作って値を3に」


    ***

    追記。とりあえずAutoDisconnectみたいなパラメータに8000年くらいの期間を設定することにしたらしい。


    ***

    さらに追記。未だ出来てないぽい。かなりいいとこまで来ている気はするけど。


    その他参考リンク


    ■ネットワーク共有に割り当てられたドライブへの接続が切断される ▽http://support.microsoft.com/kb/297684/ja#LetMeFixItMyselfAlways ””

    ■Chris Sanders ≫ Packet Carving with SMB and SMB2 ▽http://chrissanders.org/2011/11/packet-carving-with-smb-and-smb2/ ””


    ■Windows Server 2008 R2 can't connect to shares using FQHN or IP - System Error 64 - Server Fault ▽http://serverfault.com/questions/372193/windows-server-2008-r2-cant-connect-to-shares-using-fqhn-or-ip-system-error-6 ””

    ■The I/O operation has been aborted because of either a thread exit or an application request : The Official Microsoft IIS Forums ▽http://forums.iis.net/p/1149787/1871431.aspx ””


    ***


    最終的には、アプリがリモートのファイルサーバに書き込む際の認証を、OSに任せず独自の何かの仕組みを使っていたぽい。それを止めて普通にOSに任せたら解決したそうです。



    ■経緯


    オンプレミスでPOP3で普通に使える(メンテされてる)オープンソースのWEBアプリ形式なメールアプリってのがほとんど無いなあ(irohaMailでもぎりぎりOKだけどフィルタリングが無いのがしんどい)と思ってたけどこれはアリかと。

    Open Source Edition Downloads: Enterprise Messaging and Collaboration Software by Zimbra



    zimbra出たときは結構気になってていじりたかったけど放置してたら、気付いたらvmwareに買収されていたっぽい。

    はてなブックマーク - まさかのブクマ - 2005年10月16日





    ■ハマりポイント

    1)サーバ証明書

    POPとSMTPとにSSLで繋ぐ際に、誤りのある証明書を受け入れる機能が無いのでなんとかする必要がある。


    2)メール送信

    メール送信時に認証が必要なSMTPサーバを使っている場合にもそれがハードルになる。

    けどそれはメールサーバ側で解決してもらうということで。。単純にIPアドレス指定でRELAY設定すればOK。


    ご参考(書いた記憶が全くない自分の昔の日記):

    http://masakano.com/archives/51447492.html>まさかの日記:[Sendmail] /etc/mail/access, access.db, makemapコマンド - livedoor Blog(ブログ)




    ■セットアップ

    簡単だけどポイントが幾つかあるのでメモっとく。

    当初、実在しないドメインにした上で、さらに別途ドメインを追加し、、みたいな試行錯誤をしててかなり時間を無駄に。。


    ***

    zimbra opensource editionを普通のメーラとして使うまでの手順

    ?:必要かどうか不明な手順
    ■:多分必須


    ? サーバのホスト名・ドメイン名をグローバルDNS上に存在するものにする
    ■ SMTPサーバを確保する。要件としては、使いたいドメイン名からの自ドメイン・他ドメインへの送信が可能なこと

    ■ 普通にインストール。ほぼ全部デフォルト通り
     ■ ドメイン名がデフォルトだとサーバのFQDNになるので、これをドメイン名のみにする。
     ■ ちなみにCentOSでも特に問題ないっぽい。(installのオプション付ける必要あり)

    ■ インストール完了したら、普段使う自分用アカウントを作成

    ■ 自分用アカウントで、外部POPサーバ参照の設定
     ■ プリファレンス>アカウント>外部アカウントの追加 にて参照先POPサーバを指定。
     #ダウンロード先を「受信箱」にしておくとiphoneアプリから見たとき便利な気が

     #ちなみにサーバ証明書が実際のホスト名と違う場合には現状対応出来ないみたい(Desktop版だと出来るのにこっちはできないぽい)ので、別途何とかする。

    ■ 管理画面で下記を設定
     ■ サーバー設定>MTA>ウェブメールMTAホスト名 がサーバのFQDNになっているので、SMTPサーバのFQDNに変更する。
     ? 外部配信用のリレーMTAにも同じ名前が入るので、なんとなくポートだけ587とかにしてみるとか。。



    慣れてきたというか、普通にこれがあたりまえになってきた。


    あれだな、なんかCDを入れ替えながらOSインストールとか、コンソールログインのためにKVH切替器を使ったりとかが、遠い昔のことのようだ。

    まあHPのiLOでも同じことは出来てたんだけど。

    テンプレートを使わないやり方が一応出来たので、忘れないうちに色々メモ:



    NFS起動(VM Manager側で。VM Server側はディスク容量が厳しい)
    # /etc/init.d/nfs start


    DVDのisoファイルがなぜかダウンロードできないので、4枚組CDからDVDを作る(どっかにスクリプトがある)
    #CDの1枚目だけNFSマウントしてもそこから先に進めない


    以下の手順でVM Server側でexportfs
    # mount -o ro,loop /el/DVD.iso /el/RHEL4U2-x86-01
    # exportfs *:/el/RHEL4U2-x86-01


    あとは、Manager(ブラウザ画面) 上で、create virtual machineで
    nfs:上記nfsdが動いているホスト名:/el/RHEL4U2-x86-01


    とかやると大体OK。



    create virtual machineでInitialize ->すぐErrorになるときはNFSマウント関連を疑うと良い。
    失敗するとVM作り直ししないといけない?



    インストール中もほとんどCPU食わないのがさすが最近のマシン

    とか言ってたらIPアドレスが何か忘れてちょっと焦った。
    VNCサーバ繋がらないし。
    VMサーバ上でLISTENしているポートを見ても判らんし。






    b1ea72f8.png







    とりあえずVM二個くらい起動してみた。


    手順通りにやると、ブラウザ上でJavaアプレットのVNCクライアントを使うみたいだけど、いろいろ面倒だから普通のVNCクライアントを使った方がいいよね。

    まあネットワークが繋がれば、あとはTeratermだから全然関係ないけど。


    テンプレートのデフォルトがDHCPみたいで、勝手に外(サーバプール?とかの外、という意味)のDHCPサーバを参照してIP取ってるし。


    OracleVM Templateのrootのパスワードがわからなくて一瞬悩んだ。

    まあ同じところで悩んでいるヒトはたくさん居るわけで。



    あとはHA構成を試す感じで。とりあえずすぐにはそこまで必要ないけど。

    VMServer側の/var/log/ovs-agent/ovs_operation.logにこんなExceptionが出てたんですが、
    StackTrace:
    File "/opt/ovs-agent-2.2/OVSSiteDB.py", line 108, in register_server
    # raise Exception("hostname cannot be 'localhost*'!")


    これって要するにhostnameコマンドを実行したときの名前がlocalhostだとNG、ということらしい。

    SMTP関連の設定かと勘違いして、軽くはまった。。(4時間くらい)

    OracleVMすごいとか言ってたら、 データガードで充分なんじゃね?とか言われたのでメモ。

    ロジカルスタンバイの中に、REDOログの同期/REDOログの非同期/アーカイブログの3種類がある。
    アーカーブログを用いる方式の場合、SQLリクエストを転送するため帯域を圧迫しにくい。

    フィジカルスタンバイは、・・・(追って調査)


    Oracle Data Guard
    Oracle Data Guardは、企業データベース用のデータ可用性、データ保護、および障害時リカバリ・ソリューションとしてもっとも効率的かつ包括的なソリューションです。

    Oracle Data Guardは、管理、監視、自動化のためのソフトウェア・インフラストラクチャで、故障、障害、エラー、破損などから企業データを保護するために、1つまたは複数のスタンバイ・データベースを作成して保守および監視します。

    Oracle Data Guardによって、これらのスタンバイ・データベースが本番データベースの同期コピーとして保持されます。これらのスタンバイ・データベースは、本番データベース・センターから数千マイルも離れたリモート障害時リカバリ・サイトに配置でき、同じ都市、構内、もしくはビルにも配置できます。 計画停止または計画外停止が原因で本番データベースが使用不可になった場合、Oracle Data Guardにより、スタンバイ・データベースを本番ロールに切り替え、その停止に起因する停止時間を最小限に抑えて、データ損失を防止できます。


    おもむろにそのへんにあったサーバ6台にRHEL ES4U2をインストールした。
    インストールメディアが無かったので、ISOファイルからCDRに書き込みつつ端から順にバケツリレー的にインストールしていって、Total2時間くらいかかったかな。
    1台足りなかったから、Win2003サーバが入ってた奴も気にせず上書きインストールしたった。

    ちなみに一番下のスペックがPenD2.8GHz、一番上はXeon3.6GHz(HT)x2、メモリ4GBくらい。
    これにアレをインストールして練習用環境にする予定。



    朝から何度も言ってるけど、OracleVMでのHA環境もいじってみたいなあ。
    Oracle社の方、ご連絡ください。



    これよさげだな。


    日本オラクル、サーバー仮想化ソフト新版でRACをサポート:ITpro
    日本オラクルは2008年10月28日、サーバー仮想化ソフトの新版「Oracle VM 2.1.2」を発表した。Oracle VM上の仮想マシンで「Oracle Real Application Clusters(RAC)」や「WebLogic Server」の動作を保証したほか、高可用性「High Availability(HA)」機能などを加えた。ダウンロードは無償、有償サポートは11月1日に開始する。




    1分くらい止まってもOKな場合は、RACじゃなくてこっちのHAにするといいかも。

    日本オラクル、サーバー仮想化ソフト新版でRACをサポート:ITpro
    HA機能は、仮想マシンの可用性を向上させるためのもの。あらかじめ、複数の物理サーバーをサーバープールとして登録しておく。仮想マシンや物理サーバーに障害が発生した際は、サーバープール内の別の物理サーバーで、該当の仮想マシンを自動で再起動させる。日本オラクル Linux&Virtualizationビジネス推進部の林徹 部長は「HAの設定はワンクリック。Oracle VM Manager上で仮想マシンを表示し、HAのチェックボックスをチェックすれば終わり」と設定の容易さをアピールした。

    About - What is the Azure Services Platform? | Azure Services Platform
    The Azure™ Services Platform (Azure) is an internet-scale cloud services platform hosted in Microsoft data centers, which provides an operating system and a set of developer services that can be used individually or together. Azure’s flexible and interoperable platform can be used to build new applications to run from the cloud or enhance existing applications with cloud-based capabilities. Its open architecture gives developers the choice to build web applications, applications running on connected devices, PCs, servers, or hybrid solutions offering the best of online and on-premises.


    へ~

    株式会社フューズネットワークさんの某氏の紹介で見せていただいて、色々お話を伺った。



    エクシード、グリッドOS「AppLogic」を使ったクラウド型サーバサービス - SourceForge.JP Magazine
    エクシード(本社:東京都渋谷区)は、クラウド・コンピューティング環境を提供するサーバサービス「myDC」を2008年8月1日から提供開始する。米3teraが開発するグリッドOS「AppLogic」を利用したもので、基本構成は月額48万円から。初期費用48万円がかかる。




    色々衝撃的でまだ消化しきれてないです。いやはや。
    近々プレスリリースも出るらしいよ。




    lsof -u apache | wc -l で出てくるのはちょっと違う。
    ていうかulimitの値超えてるし。


    なので、下記コマンドをroot権限で/procから実行する感じ。(誤差アリアリ)

    ls -l `ps auxwww|grep httpd|awk '{print $2}'|sort -u|sed "s/$/\/fd/"`|grep '\->'|wc -l

    root権限じゃないと実行できないので、充分注意してください。
    場所が場所だけに、一つ間違えるとぶっ壊れるんじゃないかと。

    ってそもそもこんなことやる奴居ないか。。




    参考にしたサイト:

    GNU/Linux - How Many Open Files?
    What is an open file?

    Is an open file a file that is being used, or is it an open file descriptor? A file descriptor is a data structure used by a program to get a handle on a file, the most well know being 0,1,2 for standard in, standard out, and standard error. The file-max kernel parameter refers to open file descriptors, and file-nr gives us the current number of open file descriptors. But lsof lists all open files, including files which are not using file descriptors - such as current working directories, memory mapped library files, and executable text files. To illustrate, let's examine the difference between the output of lsof for a given pid and the file descriptors listed for that pid in /proc.

    こんなのが。

    "550 Service unavailable; Client host [xx.xx.xx.xx] blocked using
    xx.blacklist.zap; Mail From IP Banned To request removal from this list
    please forward this message to delist@frontbridge.com"



    このへんとか。

    自分もブラックリスト | Spam&Phishing | Blog: What a Mac life!
    メールサーバがブラックリストに入っているか確認できるサイト

    Eモバイルを買ったら100円PC(EeePC)がついてきたので、こういうのを出先でつらつら読んだりするようにしよう。
    iPhoneで読んでもいいんだけど。Safariが落ちまくるだろうけど。

    オープンソース分散システム「Hadoop」の解析資料
    オープンソース分散システム「Hadoop」に関する解析資料を公開させて頂いております。この調査はNTTレゾナント株式会社様と共同で行いました(プレスリリース)。


    夏になって暑いからせいかどうかわかりませんが、ネットワーク系のトラブルが最近多い気がします。

    具体的にはスイッチが熱暴走でハングしたり、ポートのハードウエア的故障が発生したりしている気がします。


    この場合は主にConnection Refusedというメッセージで語られることが多い。

    しかしここまで日常的にConnection Refusedという単語を聞かされるとは思わんかった。



    身近にあまり冷却されていないサーバとか付けっぱなしのPCが有る場合は、ドンキホーテに行って一台2000円の扇風機を沢山買ってきて並べましょう。

    こっちの冗長化は簡単ですので





    はっきり言って商用サービスでこういうものを使っていたらいけないと思います。

    スーツ着た営業マンの人が説明しているような製品を使って、きちんとした監視システムを構築しましょう。


    $ crontab -l
    1-59/10 * * * * /hogehoge/checkOracleAlertLog.sh >/dev/null 2>&1

    $ more /hogehoge/checkOracleAlertLog.sh
    #!/bin/sh
    errorfile=/tmp/oraclealertfile
    old_errorfile=/tmp/oldoraclealertfile
    cd /opt/oracle/admin/[sid]/bdump/

    touch $old_errorfile

    logfile=alert_[sid].log
    grep -E 'ERROR|Error|WARN|Warn|FAIL|Fail|FAULT|Fault|ORA-|Max|max|MAX' $logfile |grep -v -E 'ORA-02097:|ORA-00439:' > $errorfile
    result=$?

    if [ $result == 1 ]; then
    echo no errors in $logfile
    cat /dev/null > $old_errorfile
    exit
    fi


    if `diff $old_errorfile $errorfile >/dev/null`; then
    echo $logfile has new NO errors.
    else
    echo $logfile has any new ERRORs.
    /usr/sbin/sendmail -t < From: foo@bar.com
    Subject: Oracle Warning `date "+%m/%d %H:%M"`
    To: foo@bar.com
    `tail $errorfile`
    EOF
    cp $errorfile $old_errorfile
    fi




    関連カテゴリ記事一覧:
    まさかの日記:サーバインフラ、ネットワーク


    関連記事:
    まさかの日記:[Oracle]ORA-19815 WARNING

    まさかの日記:[Oracle][RAC]やっぱOracle RACの価格は高すぎ(ハードと運用コストが)

    まさかの日記:玄箱で Oracle Real Application Clusters 10g

    そのうちまじめにHPと比較してみるかな。
    一括電源ONとか、結構よさげ。

    ディスク障害をSNMP通知、とかHPのiLOだったら出来るっぽいけど、これはそういう機能は無いのかな。

    EXPRESSSCOPE?エンジン | Expressテクノロジ読本 | PCサーバ | NEC 8番街
    Express5800/100シリーズ(*1)並びにSIGMABLADEでは、マザーボード上にBMC(ベースボードマネージメントコントローラー)をチップ化した「EXPRESSSCOPE?エンジン」を標準搭載しています。それにより、OSの動作状態や電源ON/OFF状態に依存せず、 遠隔地よりCPU、メモリ、ファンなど各種ハードウェアコンポーネントの監視や電源制御、サーバの操作などが標準で実現可能です。



    コミュニティがある。

    データセンター向けサーバ NEC Express5800 iモデル Wiki @ SF.jp
    iモデルWiki コミュニティゾーンは、サーバシステムに触れることが多い、サーバ管理者やシステム開発者向けの情報交換の場です。扱う話題はシステム管理に関するものなら何でもOK。NEC iモデルに限らず、他社サーバの話題でもかまいません。

    全く知らなかったのでメモ。

    結構普及しているっぽい。

    ていうかとりあえず、メール送信側ホストは逆引き設定は必須っぽい(あたりまえ


    Rgrey - S25R + greylisting
    現在のところtaRgreyをもっとも推奨しますので、こちらのページを参照後、StarpitとtaRgreyの説明も参照ください。



    阻止率99%のスパム対策方式の研究報告 ―― Selective SMTP Rejection (S25R)方式 ――
    私が考案したSelective SMTP Rejection (S25R)スパム対策方式のコンセプトは、メールサーバがメール中継サーバからのSMTPアクセスは受け入れるがエンドユーザーコンピュータからの直接のSMTPアクセスは拒絶するという単純なものである。



    SoftWare Research Co., LTD: Greylisting
    spam メイルの受信を避ける確実な手だては存在しません。spam メイルの特徴を調べてspamメイルの 特徴を持ったメイルの受信を避ける事です。

    ■現象

    下記内容がアラートログに出力された。

    Errors in file /opt/oracle/admin/****/bdump/****_arc1_23677.trc:
    > ORA-19815: WARNING: db_recovery_file_dest_size of 21474836480 bytes is 85.15% used, and has 3188039680 remaining bytes available.



    db_recovery_file_dest_sizeに設定した値を使い切りそう、、という内容。
    ちなみに実際に使い切るとこうなる(以前やらかした経験あり。。)

    ARC0: Failed to archive thread 1 sequence 1293 (19809)
    ARCH: Archival stopped, error occurred. Will continue retrying
    ORACLE Instance ORA01 - Archival Error
    ORA-16038: log 3 sequence# 1293 cannot be archived
    ORA-19809: limit exceeded for recovery files
    ORA-00312: online log 3 thread 1:
    '/opt/oracle/db01/ORA01/onlinelog/o1_mf_3_2dmpd4dw_.log'
    ORA-00312: online log 3 thread 1:
    '/opt/oracle/db02/ORA01/onlinelog/o1_mf_3_2dmpd4x3_.log'
    ORA-00312: online log 3 thread 1:
    '/opt/oracle/db03/ORA01/onlinelog/o1_mf_3_2dmpd5r1_.log'
    Errors in file /opt/oracle/admin/ORA01/bdump/ORA01_arc1_12029.trc:
    ORA-19815: WARNING: db_recovery_file_dest_size of 21474836480 bytes is
    99.87% used, and has 28377088 remaining bytes available.
    ************************************************************************
    You have following choices to free up space from flash recovery area:
    1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
    then consider changing RMAN ARCHIVELOG DELETION POLICY.
    2. Back up files to tertiary device such as tape using RMAN
    BACKUP RECOVERY AREA command.
    3. Add disk space and increase db_recovery_file_dest_size parameter to
    reflect the new space.
    4. Delete unnecessary files using RMAN DELETE command. If an operating
    system command was used to delete files, then use RMAN CROSSCHECK and
    DELETE EXPIRED commands.
    ************************************************************************



    ■対策

    db_recovery_file_dest_sizeを拡張する。
    実際のファイルシステム上にも同じサイズの余裕があることをあらかじめ確認すること。


    $ sqlplus ***/*** as sysdba
    SQL*Plus: Release 10.2.0.1.0 - Production on Wed Mar 19 19:42:34 2008
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Connected to:
    Oracle Database 10g Release 10.2.0.1.0 - Production
    SQL> SHOW PARAMETER db_recovery_file_dest
    NAME TYPE
    ------------------------------------ ---------------------------------
    VALUE
    ------------------------------
    db_recovery_file_dest string
    /opt/oracle/flash_recovery_area
    db_recovery_file_dest_size big integer
    20G
    SQL> alter system set db_recovery_file_dest_size='40G' scope=BOTH ;
    System altered.
    SQL> SHOW PARAMETER db_recovery_file_dest
    NAME TYPE
    ------------------------------------ ---------------------------------
    VALUE
    ------------------------------
    db_recovery_file_dest string
    /opt/oracle/flash_recovery_area
    db_recovery_file_dest_size big integer
    40G
    SQL>







    詳細はこのあたりが参考になる。

    Oracle Technology Network (OTN) Japan - 掲示板 : 空きがあるのにdb_recovery_f ...



    現在の利用状況を調べるにはこんな感じのSQLを流す。

    select space_used from v$recovery_file_dest;

    ■現象

    1通メールを送るのに30秒掛かっている。
    telnetでsmtpポートに接続して手動送信してみると、以下のような動作をしていた。

    $ telnet localhost smtp
    Trying localhost...
    Connected to sv1(localhost)
    Escape character is '^]'.
    220 unknown ESMTP
    EHLO mx.hogehoge.jp
    250-mx.hogehoge.jp Hello sv1 [192.168.0.1], pleased to meet you
    250-ENHANCEDSTATUSCODES
    250-PIPELINING
    250-8BITMIME
    250-SIZE
    250-DSN
    250-ETRN
    250-AUTH DIGEST-MD5 CRAM-MD5
    250-DELIVERBY
    250 HELP
    MAIL FROM: hoge@hogehoge.jp

    (〜〜〜ここで約15秒待ち〜〜〜)

    250 2.1.0 hoge@hogehoge.jp... Sender ok
    RCPT TO: hoge@hoge.com

    (〜〜〜ここで約15秒待ち〜〜〜)

    250 2.1.5 hoge@hoge.com... Recipient ok
    DATA
    354 Enter mail, end with "." on a line by itself


    hogehoge

    .
    250 2.0.0 xxxx Message accepted for delivery
    QUIT



    その他調査項目:
    ・DNSへのアクセスなどは問題ない。
    ・sendmail.cfを別サーバに持っていってみても再現しない。


    ■対策

    (1) /etc/nsswitch.conf ファイルにおいて

    aliases: files nisplus
    という行があったので、これを
    aliases: files
    に変更。

    本当は、
    aliases: nisplus [NOTFOUND=return] files
    の方が良いのかも知れないが。。


    (2)sendmailを再起動
    # /etc/init.d/sendmail restart



    以上です。
    続きを読む

    本件、知らなかったのでメモ。

    /etc/mail/access.db - リレーの制御
    /etc/mail/accessで、リレーの許可や拒否設定をすることができます。許可する場合にはホスト名に続きRELAYを、拒否する場合にはREJECTとします。スパムの発信元を記述することで、メールを受け取らないようにすることができますので、簡単なフィルターとして役立ちます。



    上記フィルタで拒否された場合には、MUA(例えばTELNET)上で下記メッセージが出ます。

    RCPT TO: hoge@hogehoge.jp
    550 5.7.1 hoge@hogehoge.jp... Relaying denied


    同時に、/var/log/maillogにもこういうログが出ます。(接続元IPが出ている)
    sendmail[xxxx]: xxxx: ruleset=check_rcpt, arg1=hoge@hogehoge.jp, relay=sv1 [192.168.0.1], reject=550 5.7.1 hoge@hogehoge.jp... Relaying denied



    対策として、/etc/mail/accessを修正し、以下のコマンドを実行する。

    # cd /etc/mail
    # makemap -v hash access.db < access


    この瞬間に有効になる。
    Sendmailの再起動なども不要。
    MUAから接続済みの状態でも、途中から有効になります。
    こんな感じ。

    550 5.7.1 hoge@hogehoge.jp... Relaying denied
    (ここで上記makemap実行)
    RCPT TO: hoge@hogehoge.jp
    250 2.1.5 hoge@hogehoge.jp... Recipient ok




    あたりまえですが、/etc/mail/accessには「”Sendmailが動いているサーバ”から見た接続元IP/ホスト名」を記述する必要があります。
    これは上記/var/log/maillogにも出ていますが、具体的に調べたかったら、メール送信側サーバから

    $ telnet [メールサーバIP] smtp

    とした状態で、メールサーバ上で以下のコマンドを実行すればESTABLISHEDとして表示されます。

    $ netstat -an|grep 25
    :
    :
    tcp 0 0 【メールサーバIP】:25 【接続元IP】:35870 ESTABLISHED
    :

    これ系、二年前に散々やったのに、dumpとかrestoreコマンドを使うという程度のことしか覚えていないので、再度メモっとく。

    このあたり

    日本HP_Linux_技術文書
    技術文書



    このページから

    日本HP_Linux_技術文書_SmartArray/RAIDコントローラ(cciss, cpqarray)についての技術情報
    SmartArray/RAIDコントローラ(cciss, cpqarray)についての技術情報



    こことか

    日本HP_Linux_技術文書_レスキューモード時に SmartArray/cciss接続の TAPE(SCSI)を利用する方法
    基本作業は、レスキューモード起動後に engage scsiで cciss.oに TAPEを認識させた後、st.oをロードする事で cciss.o経由での TAPEが利用可能になります。



    最近だとこっちとか

    日本HP_Linux_技術文書_レスキューモード時に USB-DAT接続の TAPEを利用する方法
    手動でモジュールをロードさせる場合の注意点として、Red Hat系の Anacondaインストーラでは #insmod st.oの '.o'までフルパスで入力する必要があります。kernel 2.6系の場合 .oではなく .koになります。SLES9の場合 #insmodではなく#modprobeを利用する必要があります。各ディストリビューションの詳細は下記をご覧ください。



    具体的な手順はここが参考になる。

    SEXY ELEMENT/backup,restore/RedHat Linux ES 3.0 のバックアップとリスト - SEXY ELEMENT
    この手順書では、HP DL360, DL380 にインストールされた
    RedHat ES 3.0 をバックアップ・リストアする手順を記します
    リストア作業には、KNOPPIX (CD-ROM で動作する Linux) を利用します。

    OpenBlocksを直接グローバルに出すつもりなら、iptablesは一応設定しておく感じで。

    というかお金がある人はNetscreenとか買うだろうから、OpenBlocksを選んだ時点でこれが直接グローバルに出るケースが殆どではなかろうか。


    というわけで、大体こんな感じ(手抜きw

    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -F
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -p udp --dport 5500 -j ACCEPT
    iptables -P INPUT DROP


    /etc/rc.iptablesとかに書いて、/etc/rc.confでiptables=YESとかすればいいっぽい(未確認

    EZ-NET レポート: 手のひらサイズのコンパクトサーバ OpenBlockS266 を使ってみる
    ただし /etc/rc.iptables を利用するためには、/etc/rc.conf 内の /etc/defaults/rc.conf が読み込まれるよりも下の行へ iptables=YES という行を追加する必要があります。


    だそうです。これ実機で確認してませんすみません(もう電源落としてしまったので)



    ちなみにiptablesを設定するときは、シリアル経由でやらないと何かと面倒。
    両側のインタフェースから自由にアクセスできる状態で、シリアル経由でログインして設定変更するとやりやすい。


    あとはSSHを秘密鍵/公開鍵方式にする、とかやれば大体OKかなと。

    # 結局/etc/rc.conf周りの動作を把握できずじまいだな。。

    というわけで、bridgeモードで構築したときのメモ。

    ■ネットワーク構成


    ┌───┐
    │ sv1 │(VPN越しにアクセスしたいサーバ)
    └─┬─┘
    │[10.1.2.100]
    ━━━┷━━━━┯━━━━━━━━ 10.1.2.0/24

    │[10.1.2.1]:eth0
    ┌─┴─┐
    │ obs │(OpenVPNサーバ)
    └─┬─┘
    │[192.168.0.1]:eth1

    ━━━━━━━━┷━━━━┯━━━━━━━━ 192.168.0.0/24

    │[192.168.0.100]
    ┌─┴─┐
    │ WinPC│(OpenVPNクライアント)
      └───┘


    ちなみにobsとWinPCをシリアルで繋いでおくと作業が進めやすい。

    あと以下のようにしてPINGを飛ばしっぱなしにしておくと、いつつながったか判りやすい。
    ・sv1から”OpenVPNクライアントに振られる仮想IP”へ
    ・WinPCから、sv1へ


    ■OpenBlock側作業
    (コンパクトフラッシュにSSDリリース0.4が入っている前提)

    ポート転送を有効化。

    # sysctl -w net.ipv4.conf.all.forwarding=1
    net.ipv4.conf.all.forwarding = 1


    ただ、これを恒常的にする方法がわからんです。。
    とりあえず/etc/rc.confに直書き。。


    次にbridge-utilsをインストール。

    Bridgeの構築
    ブリッジを使うためには、brctlというコマンドを使う。brctlは「bridge-utils」というパッケージに含まれている。これは次の場所から入手できる。


    # autoconf
    # ./configure
    # make
    # make install



    ■下記のようなファイルを作成。

    ブリッジ開始スクリプト bridge-start
    #!/bin/bash
    # Define Bridge Interface
    br="br0"
    # Define list of TAP interfaces to be bridged,
    # for example tap="tap0 tap1 tap2".
    tap="tap0"
    # Define physical ethernet interface to be bridged
    # with TAP interface(s) above.
    br="br0"
    tap="tap0"
    eth="eth0"
    eth_ip="10.1.2.1"
    eth_netmask="255.255.255.0"
    eth_broadcast="10.1.2.255"
    for t in $tap; do
    openvpn --mktun --dev $t
    done
    brctl addbr $br
    brctl addif $br $eth
    for t in $tap; do
    brctl addif $br $t
    done
    for t in $tap; do
    ifconfig $t 0.0.0.0 promisc up
    done
    ifconfig $eth 0.0.0.0 promisc up
    ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast


    ブリッジ終了スクリプト bridge-stop
    #!/bin/bash
    # Define Bridge Interface
    br="br0"
    # Define list of TAP interfaces to be bridged together
    tap="tap0"
    ifconfig $br down
    brctl delbr $br
    for t in $tap; do
    openvpn --rmtun --dev $t
    done



    サーバ側のopenvpn.config

    port 5500
    proto udp
    dev tap0
    tls-server
    ca /root/easy-rsa/keys/ca.crt
    cert /root/easy-rsa/keys/server.crt
    key /root/easy-rsa/keys/server.key
    dh /root/easy-rsa/keys/dh1024.pem
    server-bridge 10.1.2.1 255.255.255.0 10.1.2.200 10.1.2.254
    push "route 10.1.2.0 255.255.255.0"
    client-to-client
    duplicate-cn
    keepalive 10 120
    persist-key
    persist-tun
    status openvpn-status.log
    log-append openvpn.log
    verb 1



    クライアント側のコンフィグ(拡張子ovpn、右クリックから起動)

    client
    proto udp
    dev tap0
    dev-node "ローカル エリア接続 2"
    port 5500
    remote ”VPNサーバのIPアドレス”
    ca "c:\\keys\\ca.crt"
    cert "c:\\keys\\client1.crt"
    key "c:\\keys\\client1.key"
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    ns-cert-type server
    verb 1
    pull
    float



    ■起動
    1.サーバ側
    (1)bridge-start
    (2)openvpn --config openvpn.config

    2.クライアント側
    (1).ovpnファイルを右クリックからVPN起動


    ■終了
    1.クライアント側
    (1).VPNが動いているDOS窓でF4二回押し

    2.サーバ側
    (1)openvpnを停止
    (2)bridge-stop


    SSLキーの作成とかは他所のサイトを参考にしてください。多分そこではハマらないと思う。

    ログはコンパクトフラッシュには書かないほうが良さげ。RAMに書いて時々捨てるとか。

    あと、OpenVPNサーバ上で、ブリッジ開始するタイミングで、デフォルトゲートウエイが消えるので、下記コマンドで追加したほうがいいのかも(だと思う。。ここ自自信無し。デフォゲ消えてても動作上は問題ないみたいですが。。)
    route add ”デフォゲのIP” br0




    ■ifconfigとrouteコマンドの遷移

    OBS起動直後
    # route
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    192.168.0.0 * 255.255.255.0 U 0 0 0 eth1
    10.1.2.0 * 255.255.255.0 U 0 0 0 eth0
    127.0.0.0 * 255.0.0.0 U 0 0 0 lo
    default "デフォゲ" 0.0.0.0 UG 1 0 0 eth0

    # ifconfig
    eth0 Link encap:Ethernet HWaddr 00:0A:85:03:8F:AF
    inet addr:10.1.2.1 Bcast:10.1.2.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:137 errors:0 dropped:0 overruns:0 frame:0
    TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:8296 (8.1 Kb) TX bytes:896 (896.0 b)

    eth1 Link encap:Ethernet HWaddr 00:0A:85:03:0F:AF
    inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:48 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:4659 (4.5 Kb) TX bytes:0 (0.0 b)
    Interrupt:31 Base address:0xfd00

    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    UP LOOPBACK RUNNING MTU:16436 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)



    bridge-start直後
    # ./bridge-start
    Fri Mar 14 15:52:04 2008 TUN/TAP device tap0 opened
    Fri Mar 14 15:52:04 2008 Persist state set to: ON
    Bridge firewalling registered
    device eth0 entered promiscuous mode
    device tap0 entered promiscuous mode
    br0: port 2(tap0) entering learning state
    br0: port 1(eth0) entering learning state
    br0: topology change detected, propagating
    br0: port 2(tap0) entering forwarding state
    br0: topology change detected, propagating
    br0: port 1(eth0) entering forwarding state

    freebsd[271]# route
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    192.168.0.0 * 255.255.255.0 U 0 0 0 eth1
    10.1.2.0 * 255.255.255.0 U 0 0 0 br0
    127.0.0.0 * 255.0.0.0 U 0 0 0 lo
    # ifconfig
    br0 Link encap:Ethernet HWaddr 00:0A:85:03:8F:AF
    inet addr:10.1.2.1 Bcast:10.1.2.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:21 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:966 (966.0 b) TX bytes:0 (0.0 b)

    eth0 Link encap:Ethernet HWaddr 00:0A:85:03:8F:AF
    UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
    RX packets:339 errors:0 dropped:0 overruns:0 frame:0
    TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:20416 (19.9 Kb) TX bytes:896 (896.0 b)

    eth1 Link encap:Ethernet HWaddr 00:0A:85:03:0F:AF
    inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:202 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:20944 (20.4 Kb) TX bytes:0 (0.0 b)
    Interrupt:31 Base address:0xfd00

    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    UP LOOPBACK RUNNING MTU:16436 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

    tap0 Link encap:Ethernet HWaddr 6E:03:0A:17:43:B6
    UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:21 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

    #



    bridge-stop直後(eth0のインタフェース設定がなくなってしまう)
    # route
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    192.168.0.0 * 255.255.255.0 U 0 0 0 eth1
    127.0.0.0 * 255.0.0.0 U 0 0 0 lo
    freebsd[281]# ifconfig
    eth0 Link encap:Ethernet HWaddr 00:0A:85:03:8F:AF
    UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
    RX packets:593 errors:0 dropped:0 overruns:0 frame:0
    TX packets:207 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:42596 (41.5 Kb) TX bytes:17613 (17.2 Kb)

    eth1 Link encap:Ethernet HWaddr 00:0A:85:03:0F:AF
    inet addr:.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:506 errors:0 dropped:0 overruns:0 frame:0
    TX packets:436 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:73730 (72.0 Kb) TX bytes:65145 (63.6 Kb)
    Interrupt:31 Base address:0xfd00

    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    UP LOOPBACK RUNNING MTU:16436 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)



    以上です。

    bridgeじゃない方のモードの方も時間があったら試す予定。(軽く試したけど、うまくいかなかった。。)

    VMWare Player上にクロスコンパイラ環境を構築し、LZOライブラリとOpenVPNのコンパイルをやりかけたところで、クロスコンパイル環境上にOpenSSLのライブラリが必要になった。

    そこでOpenSSLをコンパイルしようと思ったが、OpenSSLの「config」コマンドにクロスコンパイル用GCCの情報を渡す方法がどうしても(と言っても悩んだのは1分くらいだが)判らなかった。

    というわけで色々見てみたが、どうやら1GBのコンパクトフラッシュであればコンパイル環境を載せても容量的には結構余裕らしいというのが判ってきた(コンパイル性能に直結するCPU性能という意味では不足気味かもしれないけど、そうは言ってもPPC266なら充分なんじゃないかなと。386DXとかいうんだったら大変そうだけど)。

    そこでCF側に再度OSをインストール、コンパイルしてOpenVPNまであっさり完成。
    コンパイルは多少遅めだけど耐えられないレベルではない。


    というわけで、以下まとめ。

    ・OpenBlockS266はRoHS対応と非対応がある。世の中の記事にはは非対応(旧版)についてかかれたものも多く、注意が必要。
    ・非RoHS対応版では、コンパクトフラッシュの相性問題があったようだが、RoHS版ならば多分どれでもOK。まあ実績があるものを使うに越したことは無いけど。
    ・クロスコンパイル環境は必要でないケースも多いと思われる。アプリコンパイルする程度なら本体上で充分。

    玄箱とかNFS/SMBとかVMWareとかでRACを試させて裾野を広げようという意図は判るけど。
    index.html
    本資料は1台のハードウェア上でVMwareの複数の仮想環境を利用して、手軽にRACを構築するための設定手順書です。ディスクはASMをGuest OSにLinux利用して構築します。

    やっぱり現実的ではないかなと。
    正式サポートを受けるにはOSCP認証済みの高価な機器を使う必要があるので、我々零細企業レベルでは現実的ではない。またトラブル時に対応可能な人材をキープしておく、もしくは保守契約を結ぶことが必要だが、それもコスト高すぎる。
    Oracle Storage Compatibility Program(OSCP)|Oracle認証|他社製品との接続認証・技術認証|iStorage: ストレージ: 製品 | NEC
    米国オラクル社は、オラクルデータベースが他社ディスクアレイ装置上で同等に動作するかを検証するテストプログラムであるOracle Storage Compatibility Program(OSCP)を提供しています。NECは、OSCPのメンバーとして、オラクルデータベースが格納されているiStorageディスクアレイ装置をレプリケーションソフトウエアであるDynamicDataReplication及びRemoteDataReplication及びNASであるiStorage NVシリーズを用いて検証しました。その結果、テストは正常に終了し、DynamicDataReplication,RemoteDataReplication及び iStorage Sシリーズ ディスクアレイ装置、iStorage NVシリーズのオラクルデータベースに対する互換性が確認できました。


    というわけで現実解はこんなところかなと。

    (1)手動フェールオーバーによるHA構成
    シングル構成(非RAC構成)でディスクのみ外付けRAID5的なものにし、サーバ本体障害発生時はSCSIごとつなぎ変えて短時間で復旧させる。

    これならサーバ2台+外付けディスクで初期費用200万以下(DL360+MSA30クラス)。
    同一構成のサーバを2台あらかじめ準備しておく。
    外付けディスクも物理的に2台(MSA30を二台?)に分けておいて、本番用と毎日のバックアップ(Oracleの日次増分・週次全体のバックアップ先)用にしておきたいところ。

    初期セットアップ時、一台目のサーバを、DATにフルダンプしてもう一台にリストアし同一構成にする。
    SCSI差し替えて正常動作することもあらかじめ確認しておくこと。

    ハードウエア的にもサーバ本体のディスク・電源は冗長化、LANもチーミング、くらいやっておけばまあまあ長持ちするはず。

    本当に24x7な運用には当然向かないが、、そういう人はお金かけてRAC組んでください。

    (2)MySQLのマスタースレーブ等で当面頑張る
    そのうち確実にOracleRACの領域を侵食してくるはず(ある程度はもう入ってきてるかも?でも本当にクリティカルな領域へは、これからかと)なので、そっち系で社内技術蓄積しながら頑張る、っていうのが良いかもと個人的に思っている。(やる気のある社内情報システム要員を有る程度抱えられることが前提だけど)


    関連カテゴリ記事一覧:
    まさかの日記:サーバインフラ、ネットワーク

    そういや昔こんなの書いてた:
    まさかの日記:玄箱で Oracle Real Application Clusters 10g

    前回の続き。
    WEBブラウザからの管理ツールでeth1をDHCPにしてLANに接続、telnetする。
    telnetは初期状態では特定のIDじゃないと入れないのでご注意。

    次にSSHをインストールする。と思ったがまだよくわからん。


    とりあえずファームごとコレに入れ替えるかな。OpenVPNは別途コンパイルしてコマンド起動すればいいし。
    ぷらっとホーム - サポート - 技術情報 - OpenBlockS266
    zImage.initrd.treeboot-productとの違いは、RAMディスクサイズが 32MB になっています。 ntpd, sshd が入っています。

    と思ったがこれにした。
    ぷらっとホーム - サポート - 技術情報 - OpenBlockS266
    0.4-RELEASE-20071020
    OpenBlockS266/128/16R 用
    IPv4 版
    コマンド強化版

    とりあえずローカルPCに3comのFTPサーバを入れる。
    3Com Software Library - Utilities for 32 bit Windows
    3CServer 1.1.007 - a TFTP and FTP server and client for Win32

    ダウンロードしたイメージをFTPで落とせるよう適当に設定。

    で、下記の感じでアップデートする。
    本当はBOOTP+FTPの方が好みだけど、ディップスイッチがどうのこうのと書いてあってめんどくさい(椅子から立ち上がるのが)。
    FTPでやるのであればこのまま座ったままで出来るので。
    どんだけ無精なんだ。

    Linux 2.6.16 (LinuxServer) (0)


    LinuxServer login: user1
    Password:
    SSD/Linux 0.4-20070621/2.6.16 #1 Fri Jun 22 07:51:01 JST 2007

    No mail.
    # id
    uid=32768(user1) gid=100(users) groups=0(wheel),100(users)
    # su - root
    Password:
    # ls
    # df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/ram1 25M 15M 8.5M 64% /
    /dev/hda1 962M 13K 913M 1% /mnt
    # umount /mnt
    # mount -t tmpfs tmpfs /mnt
    # cd mnt
    -su: cd: mnt: No such file or directory
    # cd /mnt
    # ftp 192.168.1.2
    Connected to 192.168.1.2.
    220 3Com FTP Server Version 1.1
    Name (192.168.1.2:user1): anonymous
    331 User name ok, need password
    Password:
    230 User logged in
    Remote system type is Windows/NT.
    ftp> bin
    200 Type set to I.
    ftp> passive
    Passive mode: off; fallback to active mode: off.
    ftp> get zImage.initrd.treeboot.huge-product
    local: zImage.initrd.treeboot.huge-product remote: zImage.initrd.treeboot.huge-product
    200 PORT command successful.
    150 File status OK ; about to open data connection
    100% |***********************************************| 10084 KB 915.43 KB/s 00:00 ETA
    226 File transfer successful.
    10326560 bytes received in 00:11 (915.35 KB/s)
    ftp> bye
    221 Service closing control connection
    # ls
    zImage.initrd.treeboot.huge-product
    # /usr/sbin/flashcfg -f zImage.initrd.treeboot.huge-product
    Load boot image to FlashROM
    ################################################
    #############################
    done


    一旦shutdown -r nowで再起動して、今度は
    OpenBlockS 266について
    /usr/bin/ssh-keygen -t rsa1 -b 1024 -f /etc/ssh/ssh_host_rsa_key -C '' -N '' /usr/bin/ssh-keygen -t dsa -b 1024 -f /etc/ssh/ssh_host_dsa_key -C '' -N ''


    これでsshからログインできるようになった。
    あ、ファイアウオールの設定をWEBからいじったんだけどあれも手順としては必要なのかも。
    まあALLでAnyをAcceptする的な。

    いやー簡単でいいねえ
    明日はオープンソースのVPN、OpenVPNをインストールする予定。

    このページのトップヘ