2008年12月31日水曜日

iptablesで設定したルールを再起動後も反映したい

どこに書けばいいのでしょうか? > Debian , Ubuntu
正解は/etc/network/if-pre-up.d

iptables-restoreコマンドをうまいこと駆使してやってください

まあ後はiptablesのメモ

最初に決めるルールINPUTは入ってくパケットOUTPUTは出て行くパケット
FORWARDは転送するパケット
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT


全てのルールをクリア
iptables -F
すべてのユーザー定義もクリア
iptables -X
パケットカウンタもクリアしたいなら
iptables -Z


iptables -A INPUT -p tcp --dport 4000:4999 -s ! 192.168.0.0/24 -j DROP
↑の例だと192.168.0.0/24以外のネットワークから来たパケットで4000から4999ポートを指定
しているものを削除
※注意 --dportは-p tcpが指定されていない場合は使えない(udpでも良いけど)



現在のルールを表示
iptables -L


最終的にはこんな感じで
#!/bin/bash
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F


#iptables -A INPUT -p tcp --dport 4000:4999 -s ! 192.168.0.0/24 -j DROP
#iptables -A INPUT -p tcp --dport 4000:4999 -j DROP
iptables -A INPUT -p tcp --dport 4000:4999 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 4000:4999 -s 192.168.0.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 4000:4999 -s ! 192.168.0.2 -j DROP







iptables -L

携帯端末以外のIPを制限するhtaccessを簡単生成

http://www.dspt.net/tools/mobile_ip/

2008年12月25日木曜日

Drupalをubuntu8.10にインストール

1.環境設定
LAMP入れとけばおk

2.mySQLでテーブル作成
# mysql -u root -p

mysql> create database drupal;
            ↑データベース名

mysql> grant select,insert,update,delete,create,drop,index,alter,create temporary tables,lock tables on drupal.* to root@localhost identified by 'drupal';
↑の例だとrootってユーザーでパスワードはdrupal

mysql> flush privileges;

3.webからごにょごにょ設定
http://drupal.jp/drupal6/quick_start

2008年12月24日水曜日

auのUA

携帯のUserAgentを知りたいなーってときにすぐ出てこないのでメモ
KDDI-KC37 UP.Browser/6.2.0.11.1.2.2e (GUI) MMP/2.0

WMP11でWindows Live Messengerに再生曲表示

なんか手順が変わってた
Windows Live Messenger は、現在、自分の聞いている曲をメンバーにお知らせできる機能があります。
しかし、Messenger の設定で表示するようにしたつもりなのですが、表示されていないのに気がつきました。

iTunesでは自動的に再生している曲を表示してくれますが、Windows XP のWindows Media Playerの場合は、Windows Live Messenger だけでなく、Windows Media Playerでも設定する必要があります。

まずは、Windows Live Messenger を下記のように設定します。

1. 「メニューを表示します」アイコンをクリックして表示されるメニューより「ツール」の 「オプション」をクリックします。
2. 「オプション」が表示されるので、左側の欄にある「個人設定」をクリックします。
3. 「表示名」の下にある「Windows Media Player の音楽情報を表示メッセージで公開する」にチェックをつけます。
4. 「OK」をクリックします。

Windows Live Messenger の設定が完了したら、Windows Media Player と Windows Live Messenger を連携させましょう。
Windows Media Player で下記のように設定します。なお、Windows Media Playerのバージョンによって、少し設定方法が違いますので、ご注意ください。

Windows Media Player 11の場合

1. Windows Media Player を起動します。
2. 「プレイビュー」の下の▼ボタンをクリックし、「プラグイン」から「オプション」をクリックします。
3. 左側の欄にある「バックグラウンド」をクリックします。
4. 右側に「Windows Live Messenger ミュージック プラグイン」が表示されますので、チェックをつけます。
5. 「OK」をクリックします。


参考リンク
http://mysterious-ramu.spaces.live.com/blog/cns!8F86F6CC5EC84012!310.entry

2008年12月23日火曜日

決済用普通預金ってのがあるらしい

利息はつかないけど、全額保障されるらしい
ペイオフで保障されるのは1000万までだから金持ちの人はいいんじゃないかな

2008年12月21日日曜日

ここら辺でsquidのconfをまとめようか

acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow localnet
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 8080
hierarchy_stoplist cgi-bin ?
cache_mem 32 MB
maximum_object_size_in_memory 300 KB
cache_dir ufs /var/spool/squid 1500 64 1024
maximum_object_size 12096 KB
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
via off
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
dns_nameservers 210.130.1.1 210.130.0.1
hosts_file /etc/hosts
forwarded_for off
maximum_single_addr_tries 5
coredump_dir /var/spool/squid

細かい説明は・・・・いいよね多分わかるべさうん・・・

前書いたやつ1
前書いたやつ2

ubuntu8.10にはgnump3dパッケージが無いんだ

やあ (´・ω・`) ようこそ、Ubuntu8.10へ。
うん、「また」なんだ。
つーわけでgnump3dを入れるとなると自分でソースからビルドするか、debパッケージを探すかになります。
http://packages.ubuntu.com/
しょうがないので↑から適当に選ぶ「Search package directories」にgnump3dを入れて、Distributionは一個前のhardyを選択

一個前だとあるんだね・・・なんでレポジトリから消えたかは知らないけど・・・・
http://packages.ubuntu.com/hardy/gnump3d

まあダウンロードしたらGUIからでもdebファイルをインストールすると良いよ。GUI無い人はこんな感じでインストールすると良いんじゃない?
# dpkg -i gnump3d_3.0-2_all.deb


参考リンク
debパッケージをインストールする

.bashrcを作っても読み込まないよー><

そんなときは.profileを作ればいいのさ
こんな感じで・・・
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi

※あと注意するところは.bash_loginがあってそっちを読みにいってる可能性があるので、そっちを削除してみるかそっから.bashrcを読ませるかやってみること

2008年12月19日金曜日

なんか軽くて良い音楽プレイヤーがあるらしい

今までMPC使ってたけどこれもいいかもね
Fittle
まとめwiki

manコマンドの出力をtxtにする

man uptime | col -bfx < uptime.txt
こんな感じでおk

2008年12月14日日曜日

今日覚えた四字熟語

・朝三暮四
目先のことしか見えてないこと

・八面六臂
なんかすごい活躍

参考リンク
http://contest2004.thinkquest.jp/tqj2004/70237/t/tyousan.html

FLASH版CookieみたいなSharedObjectについて

とあるゲームをやっていたときにふと思ったのでメモ。
ゲームをプレイしてある面で止める→次にブラウザ立ち上げてみる→続きからPLAYできる→Cookieを消してみる→続きから出来る
なぜ?それはFLASHのSharedObjectというデータを読み込んでいるからなのさ

どこに保存されているの?
WindowsXPなら
C:\Documents and Settings\<ユーザー名>\Application Data\Macromedia\Flash Player\#SharedObjects
とかだな多分
Linuxなら
/home/username/.macromedia/Flash_Player/とか探せばいいみたいね

参考リンク
http://www.gravity-works.jp/gravica/web/000077.shtml

2008年12月7日日曜日

cshの限界について

配列を参照するのにforeach文というものがあります
これはperlとかphpにあったりします。そんでcshにもあるのですが・・・
なぜかcshのforeach文に指定できる配列数の上限は997なのです
この997配列がMAXというのはOSやハードウェアの仕様によらずに、どの環境でも同じでした。
つまりcshの言語仕様ってことらしい。なぜ??なんでだろーなんでだろー

いろいろなシェル(一部perlで検証してみた)
イナバの物置風にforeachの捌ける配列MAXを探す
※スクリプト中に使われるファイル(list.txt,list2.txt)は複数行あるテキストファイルです。このファイルに例えば3行あれば3個の配列を用意します(空行は除く)。
つまりcshが997が限界なのかを検証するには997行のファイルと998行のファイルを用意すればいいのです。


まずはbash 全然平気

#!/bin/bash
array=(`cat list.txt`)
for line in ${array[@]}
do
echo $line
done
echo "やっぱりbash ${#array[@]} 人のっても大丈夫"


続いてzsh まあbashの強化版だし平気みたい

#!/usr/bin/zsh
array=(`cat list.txt`)
for line in ${array[@]}
do
echo $line
done
echo "やっぱりzsh ${#array[@]} 人のっても大丈夫"


cshとは違うのだよcshとは みたいな感じで余裕でクリア

#!/bin/tcsh
set array=`cat list.txt`
foreach i ($array)
echo $i
end
echo "やっぱりtcsh ${#array} 人乗っても大丈夫"


流石perlだどんな配列でもなんとも無いぜ!

#!/usr/bin/perl
open (FH,"list.txt");
@array=<FH>;
foreach (@array) {
print;
}
print "やっぱりperl ",$#array+1,"人乗っても大丈夫\n";
close FH;


この入力ファイルが997行以上あると・・・・
ちょおまwwwwみたいな感じで駄目 csh終わったな・・・

#!/bin/csh
set array=`cat list2.txt`
foreach i ($array)
echo $i
end
echo "やっぱりcsh ${#array} 人乗っても大丈夫"

2008年12月6日土曜日

Firefoxの拡張 backword を試す

backwordはなんかホップアップで単語の意味を表示してくれる拡張みたいです。
Googleツールバーにも同様の機能があるらしいけど分からん・・・・

ココからインストールして
適当に設定する。
アドオンから設定→DictionaryをGoogle - Japaneseに設定
さらに検索するにはホップアップから虫眼鏡マークをクリックするんだけどそれにつかうサイトをSearch Webに書くエキサイトが良いと思うので
http://www.excite.co.jp/dictionary/english_japanese/?search=
と書いておこうか

そういやこの拡張いれればDictionarySearchいらんな


**一応設定メモ
Setting Ⅰ
Dictionary → 表示に使う辞書
Show phonetics(rarely hang on Firefox) → 読み方?を示すのかな?なんかたまにFirefoxがハングするとか書いてあるので触らない
Search Web → 虫眼鏡マークのなんとか・・・↑の方に既に書いた

Setting Ⅱ
Use Storage → 検索した単語をローカルにキャッシュするかどうかC:\Documents and Settings\Admin\Application Data\Mozilla\Firefox\Profiles\hogehoge.default\backwordの中に保存されてるみたいよ あと右下の有効、無効を切り替えるマークを右クリック→Pages→
Review Page of Local Storageで自分のキャッシュが見れるお
Automatically back word and context → ポップアップにあらわれるメニューがごちゃごちゃと増える
あとは良く分からん


参考リンク
発音も分かる無料マウスオーバー辞書なFirefox拡張「backword」

2008年11月30日日曜日

%COMSPEC%→がcmd.exeを示すように・・・

環境変数を列挙したページがあったようだ
cd %APPDATA%
とかやるとアプリケーションデータに行くと思うよ

http://www.atmarkit.co.jp/fwin2k/win2ktips/267swchos/swchos.html

VirtualPCの設定ファイルとかの場所は?

・使用しているバーチャルHDDは?
VirtualPCコンソール→設定(T)→ハードディスクのバーチャルハードディスクファイルってのを見れば分かると思う

・使用してるVirtualマシンは?(その他、復元ファイルなどは?)
\Documents and Settings\ユーザー名\Application Data\Microsoft\Virtual PC\Virtual Machines
を見ればいける

2008年11月28日金曜日

2008年11月26日水曜日

FFベンチをやってみた

結果は3000くらい

2chのテンプレに習って報告してみる
構成
【   .CPU.  】 AMD Athlon 64 3200+
【   Mem   】 1GB DDR400
【  M/B  】Albatron K8X890 Pro
【  VGA   】GeForce 7300GS (AL-GF7300GS)
【VGAドライバ】
【 DirectX....】 DirectX9.0c
【 Sound   】
【   OS    】
【   Ver .   】
▼スコア
【 .Low  】
【  High  .】


http://www.playonline.com/ff11/download/media/benchmark01.html

2008年10月26日日曜日

apache2でWebDAV設定→Thunderbirdのカレンダー公開

環境はDebian etch - apache2.2を想定

1.a2enmodで必要なモジュール読み込む
a2enmod webdav
a2enmod dav_fs

2.httpd.confに↓みたいに書いとけばok
そんでまあcalってディレクトリ作ってパーミッションとか777にしとけば
まあ間違いないだろう
<Directory /var/www/cal/>
Dav On
Options Indexes
AuthType Basic
AuthName "input webdav password!"
AuthUserFile "/etc/apache2/pass"
Require valid-user
Order allow,deny
allow from all
</Directory>

3.ロックファイルやらうんちゃらは
/etc/apache2/mods-enabled
にある
dav_fs.conf
で定義してあるから別に書かなくてもおk

4.thunderbirdにlightningって拡張いれて
新しいカレンダーでも作ってごにょごにょすれば良いですよ

ファイルの関連付けを行う時にgvimが追加できなくなる事象について

レジストリの
[HKEY_CLASSES_ROOT¥Applications¥gvim.exe]のフルパスが間違ってるとからしいです。
直すのが面倒ならそのキーごと削除→再登録でおk

参考リンク
「ファイルを開くプログラムの選択」でプログラムを参照しても一覧に追加されずに選択できない

2008年10月24日金曜日

解析テンプレ

定番解析ソフトと解析勉強サイト
●デバッガ OllyDbg
Digital Travesiaで再配布

●プロセスメモリエディタ兼デバッガ スペシャルねこまんま57号
http://www.vector.co.jp/soft/win95/hardware/se254476.html

●プロセスメモリエディタ兼デバッガ うさみみハリケーン
http://hp.vector.co.jp/authors/VA028184/

●ヘキサエディタ Stirling
http://www.vector.co.jp/soft/win95/util/se079072.html

●PCゲーム解析指南+OllyDbg日本語化パッチ Digital Travesia
http://hp.vector.co.jp/authors/VA028184/

参考書
・解析魔法少女美咲ちゃん マジカル・オープン!
  ISBN:4-7980-0853-2 2,730円 A5判 280 頁
・クラッカー・プログラム大全―禁断のシリアルナンバー解析テクニック
  ISBN:4-88718-746-7 2625円 A5判 304頁
・はじめて読む8086
  ISBN:4871482456 1,682円 286頁

購入回避推奨
ゲーム解析スレ・書評サイト等で酷評されている参考書
・いまどきのアセンブラプログラミング [橋本和明(著)]
・いまどきのアセンブラの教科書 [橋本和明(著)]
・アセンブラ読本 for Game ゼロからはじめるゲーム改造 [橋本和明(著)]

sshのダイナミック転送でSOCKSプロキシ

1.まあ普通にsshダイナミック転送する
2.Firefoxの接続設定でSOCKS v5 プロキシに設定
3.名前解決はローカルでやろうとするので
about:configからnetwork.proxy.socks_remote_dnsをtrueにする

でおk


参考リンク
SSH のダイナミック転送ってすごいんですよ

2008年10月14日火曜日

Project Cartoon

ITプロジェクトの現状を木で表現したあれ
http://www.projectcartoon.com/

2008年10月2日木曜日

vimのtips

カーソルラインを表示
set cursorline

カーソルコラムを表示(縦線)
set cursorcolumn

コマンドを続けるには縦棒を使う
command Pw w | !perl %

自動整形の実行方法を決める
改行後もコメントとするかとか
set formatoptions?

コマンド結果をリダイレクト
:h :redir

キーコード(特殊文字) Ctrl+k 押してからキー押すと
名前を挿入できる
:h key-codes

タブをスペースに変更
set expandtab
retab

テキストファイルに固有の設定を
残す
h modeline

マークした箇所をTodoハイライト
h group-name でどんなハイライトがあるか分かるよ
syntax match Todo /\%'a.*/ containedin=ALL

プラグイン、固有の設定ファイル
boxes
diff.exe
color sampler pack
txt.vim -> $VIMRUNTIME/syntax/txt.vim
MRU.vim
skeleton.html
eregex.vim -> $VIMRUNTIME/plugin/eregex.vim
$VIMRUNTIME/plugin/eregex_e.vim
検索は:M/hogeで それ以外は大文字で

テキストに対し固有の設定を書く
マッピングなどはmodeline使えないため
autocmd BufRead ~/デスクトップ/kara.txt set nonu |
\nnoremap j gj| nnoremap k gk


------------------------------------------



参考リンク
お勧めプラグイン

2008年9月21日日曜日

aptitudeコマンドまとめ

http://dolphin.c.u-tokyo.ac.jp/~nori1/aptitude-ja/ch02s01s02.html

なんか早いOpenDNSっていうDNSがあるらしい

ここに書いてあるみたいに
優先DNSを「208.67.222.222」にして、代替DNSを「208.67.220.220」
に設定すればよろし

検証はまた後で・・・

公式サイト

2008年9月16日火曜日

面白いコピペ




1 名前:Socket774[sage] 投稿日:2008/09/09(火) 17:00:33 ID:AVvI1x3R
 |㍑㍍||l㌔㍍l|
 |㌧㌦||l㌻㍊l|
 |    ||l㍗㌍l| ┏━━━━━━━━━━┓
 |    ||    | ┃┌――――――――┐┃
 |    ||    | ┃|    \       .|┃
/ ̄ ̄ ̄ ̄ ̄フ.┃| n.∧∧\      .|┃コニl
㌢㍍㌘㌶㌧./...┃| l (^Д^)/)、ヘ,,∧  |┃ ._ __
      //! ┃| `ー,  `(`ミ゚ヮ゚,,ミ |┃/ .// /l
___/./  .┃|  ノ  |´\ とソ  .|┃ ̄|三三/
___|/     .┃|  し'`J ^|  |  .|┃⊂⊃
            ┃└─―――――――┘┃ |  |
            ┗━━━━━━━━━━┛ `ー´
    人は何かの犠牲なしに何も得ることは出来ない

    パソコンを得るためには相応の代価が必要になる

      それが自作PCにおける自己責任の原則だ

 このスレに来るまで 僕等はそれが世界の真実だと信じていた...



多分↑をJaneとかにコピペすりゃーズレないだろう

apache2のインデックスにヘッダとかフッタとか付ける

#
# ReadmeName is the name of the README file the server will look for by
# default, and append to directory listings.
#
# HeaderName is the name of a file which should be prepended to
# directory indexes.
ReadmeName README.html
HeaderName HEADER.html

autoindexモジュールの
この辺の設定を変える。README.htmlの内容がファイルインデックスの欄の前か後ろに出るはずさ

New Live Wall! 通称ぬりかべって?

なんかWebページにコメントを残せるみたいです
現在は新しい開発者により九尾というものになっている
ようです。


リンク
公式サイト
まとめwiki

ettercapでDHCP Spoof

ettercap -i eth0 -M dhcp:/255.255.255.0/192.168.0.2 -T

2008年9月15日月曜日

rep2の過去ログ(DAT)を整理するには

rep2/data以下にある2channelフォルダごと削除すればよろし
machibbs.com/は町BBSのDAT保存フォルダらしい

2008年9月7日日曜日

telnetでSMTPコマンド叩いてメール送信

↓を参考にどうぞ
http://ash.jp/net/telnet_smtp.htm

postfixで設定されている環境変数を列挙する

postconf
でおk

デフォルトの設定値は↓で確認
postconf -d

2008年9月6日土曜日

bashでCtrl-S押すと端末がロックされる

Ctrl-Qで解除だそうで

2008年9月1日月曜日

2008年8月24日日曜日

ddclientでDynDNSのIPをアップデートしてみようか

aptでインストールして初期設定して
まだ足りないとこあるから
dpkg-reconfigure ddclient
打って再設定。デーモンで動かさないようにする。

そんで/etc/ddclient.confを編集
use=if
になってるけどこれだと自分のIPアドレス(プライベートアドレス)を通知してしまうので、
use=web
にして回避させる。

あとは普通に
ddclient
と打てばアップデートされる
cronか何かに登録しておくといいかも



参考サイト
http://tinstoy.jugem.jp/?eid=13

ファイル、ディレクトリの新規作成時のデフォルトのパーミッションを変更するには

umaskってコマンドを使います。

引数なしの
umask
で現在のパーミッションの確認

umask 0027
のように打つことで次回以降のファイルやディレクトリ作成時のデフォルトパーミッションの変更が出来ます
上記の例だと
ディレクトリだと下記のように
drwxr-x---
ファイルだと下記のようになります
-rw-r-----

※ファイルの場合は最初から実行権限を付与しません

参考リンク
http://linuxtips.biz/030/post_19.html

2008年7月30日水曜日

lsofでどのプロセスがどのファイルシステムを使用中か調べる

lsof /media/cdrom
みたいに

プロセスが使用中のファイルも見れる
参考リンク
http://d.hatena.ne.jp/hogem/20070223/1172221315

2008年7月27日日曜日

x11vncのリバースコネクトについて

http://www.karlrunge.com/x11vnc/#faq-reverse-connect

2008年7月20日日曜日

puttyで起動時の引数を指定してすぐにコンソールを開く

-load オプションを起動時の引数に与えてやればいいと思います。
詳しくはこちらの 3.8.1 Starting a session from the command line
を見てもらえれば分かると思います。



参考サイト
http://p0t.jp/archives/2006/09/1.html

2008年7月12日土曜日

zshを使おうか

まずzshの強力な補完機能を有効にする


autoload -U compinit
compinit


そんでキーバインドをvi風にする


bindkey -v


あとプロンプトを変えておく

PROMPT="%/%%"



テトリスもできるらしい

zsh
autoload -U tetris
zle -N tetris
bindkey '^T' tetris

Control-T を押せばゲーム開始。zsh最強。

2008年7月10日木曜日

最近、気になったソフト

IgRemote・・・すげー早いVNCだって
Social IME・・・みんなで育てるIMEだって

2008年7月6日日曜日

perlの出力、入力関係

STDIN 標準入力:キーボードからの入力。
STDOUT 標準出力:ディスプレー (コンソール)。
STDERR 標準エラー出力:ディスプレー (コンソール)。

だそうですよ
print STDERR "Erorr";
でエラー出力されるぽい

WindowsでもUNIXでもエラー出力をリダイレクトする際は
route 2> route.txt
みたいに2をつければおk

2008年7月5日土曜日

@wikiのデータバックアップをperlで自動化してみる

まず、ブラウザから保存までの過程を行い、パケットをキャプチャします。
今回、対象とするサイトはこちらです。キャプチャはWiresharkなどでも良いですが、今回はTCPのフローまで見る必要はありません。HTTPのリクエストヘッダさえ分かれば大丈夫なので、Live HTTP Headersなどで見たほうが便利です。(このソフトを使えばHTTPリクエストをGUI上で自由に変更できます。どのヘッダが必要か不要かも分かるので便利です)で、キャプチャしたものが以下のものです↓
Content-Length以下にはwikiidとpassというパスワードを送っています。submitのURLエンコードは「ダウンロード」という文字列を表しています。
ちなみにwikiidの項とpassの項とCookieは適当です。



POST /_mng/backup.php HTTP/1.1
Host: www34.atwiki.jp
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9) Gecko/2008052906 Firefox/3.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www34.atwiki.jp/_mng/backup2.php
Cookie: PHPSESSID=5684723debae48752efea5555565acdd
Content-Type: application/x-www-form-urlencoded
Content-Length: 93

wikiid=***********&pass=*******&submit=%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89




次にLive HTTP Headersのリプレイ機能を使って必要なヘッダが何かを判断します。まずCookieが必須かどうかを調べる必要があります。なぜならCookieが必要だった場合はCookie取得の処理が追加されるからです。いらなそうなヘッダを削除→リプレイで目的の結果になるかを確認 を繰り返してください。で、調べた結果、不要だということが分かりました。つまりPerlスクリプトではCookieヘッダは発行しません。ちなみにこの鯖はContent-Typeを指定しないとトップに戻されるようです。


-------------- wiki_back.pl ----------------------------------

#!/usr/bin/perl
use Net::HTTP;

### Initial Setting ###########################

$server ="www34.atwiki.jp";

###############################################


$header{'Host'} = "$server";
$header{'User-Agent'} = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9) Gecko/2008052906 Firefox/3.0';
$header{'Accept'} = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
$header{'Accept-Language'} = 'ja,en-us;q=0.7,en;q=0.3';
$header{'Accept-Encoding'} = 'gzip,deflate';
$header{'Referer'} = 'http://www34.atwiki.jp/_mng/backup2.php';
$header{'Content-Type'} = 'application/x-www-form-urlencoded';
$content = 'wikiid=***********&pass=*******&submit=%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89';

$s = Net::HTTP->new(Host => "$server") || die $@;
$s->max_line_length(0);
$s->keep_alive(300);

$s->write_request( POST => '/_mng/backup.php' , %header , $content );


($code, $mess, %h) = $s->read_response_headers;
unless($code eq "200"){
die "erorr!!";
}

open (FH,">back.zip") or die $!;
binmode FH;

while (1) {
my $buf;
my $n = $s->read_entity_body($buf, 1024);
die "read failed: $!" unless defined $n;
last unless $n;
print FH $buf;
}

close FH;


print "\n$code $mess\n";
foreach $key(keys %h){

print $key," ";
print $h{$key},"\n";

}


-------------- wiki_back.pl ----------------------------------




※注意
Windows環境下ではファイルをopenした後に必ずファイルをバイナリモードにして下さい。
バイナリモードの指定は
binmode FH;
と引数にファイルハンドルを指定します。これを行わないと0D(CR)の後に0A(LF)が追加されてしまいます。
UNIX環境下ではこの指定は不要です。



ちなみに鯖からのレスポンスヘッダ内でContent-dispositionというヘッダがあります。このスクリプト内ではback.zipという名前でファイルを作成していますが、普通ブラウザではこの項を見てファイル名を決定します。↓はhoge.zipの例
Content-disposition attachment; filename=hoge.zip

2008年7月4日金曜日

vimだとCtrl+Hでバックスペースが入るお

:h i_^Hで確認してみよう

bashのキーバインドをviにしている人も試してみてください

あと
追記:なんか世間一般的にそうなってるみたいです。なにもvimに限った事ではないのかも


Ctrl+M・・・Enter
Ctrl+H・・・BackSpace
Ctrl+I・・・Tab

必要ないモジュールをアンロードしてみてはいかが?

必要ないモジュールはアンロードしておくのが吉ですよ
たとえばUSBのohci_hcdはなぜだかwakeupを繰り返しカーネルのログに吐き出し
やたらリソースを食っていました。
/etc/modprobe.d/blacklistに以下を追加しました。

blacklist trident
blacklist ac97_codec
blacklist joydev
blacklist gameport
blacklist ohci_hcd
blacklist usbcore
blacklist ide_cd
blacklist cdrom
blacklist pcspkr
blacklist psmouse
blacklist parport_pc
blacklist parport
blacklist snd_ali5451
blacklist snd_ac97_codec
blacklist snd_ac97_bus
blacklist snd_pcm
blacklist snd_timer
blacklist snd
blacklist soundcore
blacklist snd_page_alloc


※注意
参考サイトに書いてあったのですが書いただけではなく
update-initramfs -u
コマンドでロードイメージを更新する必要があるようです



モジュールのロード、アンロードについては前回書きました。

参考
Debianインストール覚え書き

2008年6月30日月曜日

sysctlでカーネルパラメータのチューニング

前回前々回でバッファが重要みたいなことを言いました。
個々のソフトでバッファサイズを調整するのは煩わしいので今度はカーネル側でやろうと思います。つーか本当の動機はvsftpdではバッファサイズの調整が出来ないっぽいからですけど・・・

/etc/sysctl.confを編集します

net.ipv4.tcp_rmem=500 1500 5000

net.ipv4.tcp_wmem=500 1500 5000

↑の2行を追加します。上が受信バッファ、下が送信バッファです多分
なんで3つの値を渡しているかはこちらを参照してください
そんで書いたらこんな感じでパラーメータを設定して下さい
sysctl -p
でおkね


まあ/proc以下をechoで飛ばして設定しても良いんですが再起動すると戻ってしまうので・・・・

自宅鯖のapache2をチューニング

Sambaの件でバッファリングが大きすぎてサーバー側で処理できなくなる→切断となっていることに気づいたのでもしかするとapache2で大きいファイルを落とすときに切れる現象も同じなんじゃないかなと思ってチューニングしてみる。
受信バッファサイズ送信バッファサイズを調整して鯖が落ちるのを止める。

俺はhttpd.confに↓を書いた。でおkだった。
SendBufferSize 4000
ReceiveBufferSize 1500

具体的にどうコネクションが切れるか検証してないけど多分こんな感じだと思う
クライアント「オラオラ・・・もっとパケット送るぜー!ウィンドサイズはでかいからなーw」
サーバー「ちょwwwおまwww待ってくれそんな処理しきれwww」
(ただいまサーバーがシーケンシャルナンバーの整理などしておりますしばしお待ちください)
クライアント「おかしいな?返事がない・・・しかたないコネクション切るか」
サーバー「ふう・・・終わったぜ!さあパケット返そうかな・・・ってコネクション切れてるしwwww」

みたいなノリだと思う
まあバッファの調整はマシンのスペックを見て調整しましょってことで

sambaで接続が切れる問題

socket options = IPTOS_LOWDELAY SO_RCVBUF=1000 SO_SNDBUF=1000

バッファリングが多すぎたみたい
低スペックなPCだとNODELAYは辛いようだ

socketオプションは↓を参照
http://www.linux.or.jp/JM/html/LDP_man-pages/man7/socket.7.html

2008年6月29日日曜日

Firefox3のウィルススキャンいらね

about:configからbrowser.download.manager.scanWhenDoneをfalseに設定。

Linuxでログイン時に表示されるメッセージを変える

ここに書いてありました
/etc/motdを編集すればいいだけです簡単ですね

CJKにしないとモナーとかズレるからどうしようかなーと思って
boxesからAAを拝借こんなのいれてみた
boxes -d mouseね




.--, .--,
( ( \.---./ ) )
'.__/o o\__.'
{= ^ =}
> - <
__.""`-------`"".__
/ \
\ Debian /
/ \
\___________________/
___)( )(___
(((__) (__)))

sambaを入れてみよう

aptかなんかでインストール
/etc/samba/smb.confを直そうか

[global]
unix charset = UTF-8
dos charset = CP932
display charset = UTF-8

まず↑の設定を確認unix charsetは環境に合わせてどうぞ


workgroup = MSHOME

次にワークグループを合わせて

security = share

セキュリティをshareにした。パスワード求められるとウザイので・・・
でもこれだとvistaとかだと問題になるそうです XPの場合は大丈夫らしいけど

guest account = ageftp

あとはゲストアカウントを誰にするかを決める。



[upload]
path = /var/www/upload/
available = yes
browsable = yes
public = yes
writable = yes
read only = no
create mask = 0777
printable = no
guest ok = yes

あとは適当にどうぞ

ここで別にゲストアカウントを誰々って決めなくても良いんですが、
じつはこの/var/www/uploadディレクトリはftpのanonymousログインを
許可しているのでotherのパーミッションに書き込みを与える事が出来ないのです

aptitudeでインストールすると推奨パッケージも入れてしまう

apt-get installだとインストールしなんだよね・・・なんかお節介でヤダ
上のほうのメニューから外せるそうですよ

aptitudeのフラグの意味

ここに書いてあった
http://dolphin.c.u-tokyo.ac.jp/~nori1/aptitude-ja/ch02s02s02.html

ちなみにAは自動的にインストールされたか動画を表すんだって

LinuxでS.M.A.R.T情報を表示する

aptかなんかでsmartmontoolsをインストール

# smartctl -a /dev/hda
これで見れるらしい↓の方が見やすいかも
# smartctl -A /dev/hda
参考サイト
項目の詳しい説明は下記のwkipedia参照
http://ja.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology


Windowsだとこんなものもあるらしい
CrystalDiskInfo

2008年6月27日金曜日

Linuxコマンド ログイン関連 faillog,lastlog

faillog・・・何回ログインをミスったか
lastlog・・・最後にログインした時間はいつか?

Linuxでよく使われるscreenを今更使ってみた

つーわけでメモ

aptかなんかでサクッとインストールしてscreenで起動します。
まずコマンドはプレフィックスキー(コマンド前に毎回入力するキー)がいります。そんでデフォルトのプレフィックスキーはCtrl+aです。
Ctrl+a ?でヘルプ見れます。

コマンド一覧 プレフィックスキーは省略

c 新しい端末を開く
" 画面リストの表示
n 次の画面へ
p 前の画面へ
n nの端末へ移動(nは端末番号)
S 画面分割 大文字のSなのでshiftと共に押す!
\ バックスラッシュ 全てを破棄してscreenを終了
Ctrl+i ウィンド間の移動
X ウィンドウのクローズ 大文字のX!
[ コピーモードの開始 開始地点、終了地点でエンターかスペース
] ペースト
:resize -10 ウィンドのリサイズ。-10だと縮める10広げるみたいな感じ
d デタッチ



screen -r でデタッチした端末をアタッチ
screen -ls で端末一覧表示

2008年6月23日月曜日

リダイレクトについて

command > hoge 2>&1
エラー出力を標準出力先と同じにするこれを使えば
$gunzip_message = qx/gunzip -f $unixtime.dat.gz 2>&1/;
↑のようにエラー出力を捕らえることも可能になる
command &> hoge


参考
http://www.fireproject.jp/feature/bash/basic/redirect-pipe.html



2008年6月22日日曜日

クレジットカードの使えるコンビニ

サークルKサンクス
ローソン
ミニストップ

Firefoxの拡張ViewSourceWith使う時の注意点

例えばこのBloggerの入力フォームはUTF-8です。
Kaoriya版のvimだとsjisがデフォルトなので文字化けします。下のように起動時にエンコーディングを変えておくと良いかもしれません。


シンタックスを当てたいときはこんな感じでオプションを追加していけば良いんじゃないでしょうか

kaoriya版vimでは便利なコマンドが用意されているよ

http://nanasi.jp/articles/vim/cmdex_vim.html

↑に書いてありました

/vim71-kaoriya-w32j/runtime/plugin/cmdex.vim
↑に置かれているので見てみると良いんじゃないでしょうか

HTMLConvertは中で2html.vimを呼んでるみたいですね
TOhtmlコマンドがあるのになんでこんなコマンドあるんだろ・・・

2008年6月16日月曜日

vimでマークを視覚的に表示する

http://nanasi.jp/articles/vim/showmarks_vim.html
http://www.vim.org/scripts/script.php?script_id=152

他にもマークにマッチする正規表現があるのでそれでもおkです。
たとえばaマークをTodoハイライトするには
syntax match Todo /.*\%'a.*/ containedin=ALL
を$VIM/runtime/syntax/txt.vimというファイルを作り入れておきます。
自分はtxtにそのハイライトを当てているので_gvimrcの中で
autocmd BufRead,BufNewFile *.txt setfiletype txt
を追加してファイルタイプを設定しています。

2008年6月15日日曜日

2008年6月14日土曜日

シェルの環境変数で前回コマンドの終了ステータスを確認する

$?に入っているそうですよ
http://www.geocities.jp/geo_sunisland/exit_status.html

ActivePerlでyahooにメールを送ろうか

Net::SMTPモジュールを使います。ただデフォルトでauthメソッドを使おうとしてもパケットを投げてくれないので、下のモジュールを新たにppmか何かでインストールして下さい。

次にコーディングに入ります。Net::SMTPについての説明はこちらを参照してください。
メールヘッダについてはTo:だけでいいかと思ったらうまく送信できなかったので、Thunderbirdのパケットをキャプチャしたものを丸パクリします。
Dataヘッダについては何でもいいかと思いますが、一応現在時を取得する方が親切設計でしょう。どれが必要なヘッダか不要なヘッダかは面倒なので調べていません。
Message-IDですがこちらを見る限り何でもいいそうです。好きな命名規則で良いでしょう。
*参考
yahooの鯖はSMTPを拡張したESMTPで運用されています。ESMTPではグリーティングの際にEHLOコマンドを用います。(SMTPではHELOコマンド)
EHLOコマンドでは自分のホストを通知します。Thunderbirdでは

EHLO [192.168.0.6]

とグリーティングしますが、Net::SMTPでは

EHLO localhost.localdomain

とグリーティングします。まあどっちでも構いませんが、、、
http://www.atmarkit.co.jp/fnetwork/rensai/netpro06/netpro01.html


#!/usr/local/bin/perl

use Net::SMTP;

$user="??????";
$passwd="?????????????";
$maildata=<<"END";
Message-ID: <1234567890123456@yahoo.co.jp>
Date: Sat, 14 Jun 2008 09:59:39 +0900
From: uesugi
User-Agent: Thunderbird 2.0.0.14 (Windows/20080421)
MIME-Version: 1.0
To: yahoo
Subject: This Mail Make Perl
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
END


$smtp = Net::SMTP->new('smtp.mail.yahoo.co.jp',Timeout=>30,Debug=>1);


$smtp->auth($user, $passwd) or die "Auth Fail\n";
$smtp->mail('????????????????????@yahoo.co.jp');
$smtp->to('????????????????????@yahoo.co.jp');

$smtp->data();
$smtp->datasend("$maildata");
$smtp->datasend("\n");
$smtp->datasend("A simple test message\n");
$smtp->dataend();

$smtp->quit;


print $smtp->domain,"\n";
$smtp->quit;

Debian(etch)でcpan設定

まずCPANを使う上で必要なソフトは下記のとおりです。先にインストールしておきます。
gzip,tar,unzip,make,lynx,wget,ncftpget(ncftpでインストール)


#cpan
で初回起動時の設定が入る。基本的にEnterでデフォルトの設定で問題ないと思います。
The next option deals with the charset your terminal supports. In
general CPAN is English speaking territory, thus the charset does not
matter much, but some of the aliens out there who upload their
software to CPAN bear names that are outside the ASCII range. If your
terminal supports UTF-8, you say no to the next question, if it
supports ISO-8859-1 (also known as LATIN1) then you say yes, and if it
supports neither nor, your answer does not matter, you will not be
able to read the names of some authors anyway. If you answer no, names
will be output in UTF-8.

Your terminal expects ISO-8859-1 (yes/no)?
↑のように聞かれたらnoがいいかもしれません。

そんで使えるCPAN鯖が無かった場合はftp://ftp.kddlabs.co.jp/CPAN/とかを使うといいかもです。

find `perl -le 'print for @INC'` -name '*.pm' | less
↑のコマンドでインストールされているモジュールを確認できます。

あと
cpan> m /Net::SMTP_.*/
Module id = Net::SMTP_auth
CPAN_USERID APLEINER (Alex Pleiner )
CPAN_VERSION 0.08
CPAN_FILE A/AP/APLEINER/Net-SMTP_auth-0.08.tar.gz
MANPAGE Net::SMTP_auth - Simple Mail Transfer Protocol Client with AUTHentication
INST_FILE /usr/local/share/perl/5.8.8/Net/SMTP_auth.pm
INST_VERSION 0.08
↑みたいな感じでモジュール検索もできます

2008年6月12日木曜日

pearのコマンドとか・・・

phpのライブラリ管理のpear
よく使うコマンド備忘録

pear
PEARコマンド一覧表示

pear help command_type
command_typeの説明を表示

pear list
現在インストールされているパッケージ一覧

pear list-upgrades
更新ライブラリの確認

pear upgrade package
パッケージのアップグレード前述のpear list-upgradeで出てきたPACKAGE欄を
packageに入れる

aptitudeのよく使うコマンドとか

検索時には正規表現が使えます
lで検索すると制限できていいかも・・・

~d説明
正規表現説明にパッケージ説明がマッチするパッケージにマッチします。

~d"test"
みたいな感じで

検索パターン

2008年6月8日日曜日

scimとgvimは相性悪いみたい

http://d.hatena.ne.jp/silverintegral/20071115
こんな感じでどーぞ

2008年6月7日土曜日

定期的に文章をバックアップする

なんか大事な文章を日付順にバックアップしておきたいときに書くシェルスクリプトとか・・・

#! /bin/bash

var=`LANG=C date +'%Y%m%d%a'`
cp /media/taihi1/komando.txt /media/taihi1/komando-bak/$var.txt

Linux版のvim7に日本語ヘルプを入れてみる

なんかkaoriyaさんのとこに
http://www.kaoriya.net/vimdoc_j/
という日本語ヘルプがあったので落としてくるそんで解凍とかする。
解凍したものを/usr/share/vim/vim71に放り込んでも拡張子が.jaxとかなっててうまくいかない
しょうがないから拡張子を.jax→.txtにする
一括変換とかシェルスクリプトでできそうだけど分からないからPerlで書く
#!/usr/local/bin/perl

$newdir=".";
chdir $newdir or die "$newdir is not found!\n";
opendir(DIR, ".");
@file = readdir(DIR);
closedir(DIR);

@file = sort {(stat ($a))[8] <=> (stat ($b))[8]} @file;

foreach(@file){
if($_=~/^\.$|^\.\.$|^rename\.pl$/){
next;
}
if ($_=~/\.jax$/){
$moto=$_;
$_=~s/\.jax$//;
system "mv $moto $_.txt";
#print "$moto $_.txt\n";
}
# print $_,"\n";
# `mv $moto `;
}

2008年5月17日土曜日

telnetのポート番号を変更したりとか・・・

/etc/servicesあたりかなあと
/etc/inetd.confとかも・・・

2008年5月6日火曜日

expectを使って自動的にPCをシャットダウンさせる

こんな感じで書くと良いですよ
WebからやりたいならPerlならsystem関数とかで呼べば良いんじゃないでしょうか


#!/usr/bin/expect
set timeout 10
spawn telnet 192.168.0.2
expect "login:"
send "root\n"
expect "Password:"
send "hogehoge\n"
send "shutdown -h now\n"
send "exit\n"
interact

apache2にDirectoryIndexの設定項目が無い件

/etc/apache2/mods-enabledのdir.confにあるそうです

参考リンク
http://www.maocat.jp/?p=10

vsftpdでanonymousログインを許可させる場合の注意点

/etc/vsftpd.confを編集して
anonymous_enable=YESを追加する
↓のようにanonymousユーザーのディレクトリを決定させる
anon_root=/var/www/upload/

この時の注意点としてはパーミッションにその他ユーザが書き込めないような設定にしておくこと(これをしないとログインできない)
例:rwxr-xr-xやrwxrwxr-xなど

squidでユーザー認証を行う(Ubuntu8.04)

まずhtpasswdでユーザー名とパスワードのMD5値のペアtxtを用意します。
# htpasswd -c /etc/squid/passwd hogehoge
New password:
Re-type new password:
できたら↓のように指定します。
auth_param basic children は認証プロセスの為のプロセス数を指定します。
auth_param basic realm はBASIC認証時に現われるメッセージを指定します。この場合は"Squid proxy-caching web server"と表示されます。
auth_param basic credentialsttl はパスワードの生存時間を指定します。(HTTPアクセスヘッダに付随させるBASIC認証で生存時間があるのはよく分からないですが・・・)
auth_param basic casesensitive は大文字小文字を区別するかどうかです(多分)offなので区別します。最後にacl kusi proxy_auth REQUIREDでアクセスリストkusiを定義
ローカルネットの後にhttp_access allow kusiを入れているので
LAN内のホストなら無条件で通し、WAN側からの要求にはBASIC認証を要求します。



auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl kusi proxy_auth REQUIRED

http_access allow localnet
http_access allow kusi
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all

参考リンク
http://squid.robata.org/faq_19.html#l-06

2008年5月4日日曜日

Linux版FirefoxとWindows版Firefoxの挙動の差異

about:configから

browser.urlbar.clickSelectsAllをtrueにすると
URLバーをクリックした際にすべて選択されます。

browser.backspace_actionを0にするとバックスペースで履歴を一つ前に辿れます。
1ならスクロールアップ。2なら何もしないです。

↓はよく設定する箇所です(Mailtoタグの無効化と検索時のbeep音の無効化)
network.protocol-handler.external.mailto
false
accessibility.typeaheadfind.soundURL
空文字列

ubuntu8.04のネットワーク設定が何かローミングモードとかなってて嫌な感じになる

ローミングモードを一つのNICだけ無効にしてもなんか意味ないみたい
IPアドレスも複数持てたりしちゃって嫌なので
/etc/network/interfaces

auto lo
iface lo inet loopback



iface eth0 inet dhcp
auto eth0


iface eth2 inet dhcp
iface eth3 inet dhcp
iface eth4 inet dhcp


と記述しておく
autoを付けなければ立ち上がらないので・・・・
前に書いたロードモジュール名をblacklistに入れる方法だと/etc/init.d/networking をリスタートかけるごとにロードされてしまうみたい

Linuxでリッスン(Listen)してるポートの確認

lsof -iで
でも微妙に分かりにくいので
netstat -anp | grep LISTEN | less
こんな感じで

あとは
netstat -tap
とかやって
詳しく見たい場合は
lsof -i:5900

Linuxでモジュールの確認と削除を行う

主にDebian系での話です

lsmod・・・ロードされているモジュールを確認(miiがNICか?)
modinfo・・・lsmodに表示されている各モジュール名を引数に取り、詳しい情報を表示する
rmmod・・・モジュールをアンロードする
insmod・・・モジュールをロードする
modprobe・・・依存関係を処理しながらロードしてくれる

/etc/modprobe.d/blacklistに項目を追加すれば再起動してもモジュールをアンロードできる

参考
http://markun.cs.shinshu-u.ac.jp/learn/linux/h_05-05.html

2008年5月3日土曜日

Ubuntu8.04のxorg.conf設定を行う

なんか色々自動でやってくれるのはいいけどCPU切替器を挟むと表示がおかしくなるため手動で設定する。
1.Section "Screen"にサブセクションを作って解像度と色深度を設定
SubSection "Display"
Depth 24
Modes "1280x1024"
EndSubSection

2.xvidtuneコマンドで位置を調整する。GUIメニューのshowボタンを押せば
"1280x1024" 108.00 1280 1344 1456 1688 1024 1025 1028 1066 +hsync +vsync
のようにコンソールに表示されるのでメモる。

3.Section "Monitor"に水平同期周波数と垂直同期周波数とさっきメモったパラメータをModeLineと共に指定する。
Section "Monitor"
Identifier "Configured Monitor"
HorizSync 31.5 - 81
VertRefresh 56 - 76
ModeLine "1280x1024" 108.00 1280 1344 1456 1688 1024 1025 1028 1066 +hsync +vsync
EndSection

参考リンク
http://linux.kororo.jp/cont/tips/display_tune.php




で最終的に出来上がったxorg.confが↓

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "jp106"
Option "XkbLayout" "jp,jp"
Option "XkbVariant" "106,"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
EndSection

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
EndSection

Section "Device"
Identifier "Configured Video Device"
EndSection

Section "Monitor"
Identifier "Configured Monitor"
HorizSync 31.5 - 81
VertRefresh 56 - 76
ModeLine "1280x1024" 108.00 1280 1344 1456 1688 1024 1025 1028 1066 +hsync +vsync
EndSection

Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
SubSection "Display"
Depth 24
Modes "1280x1024"
EndSubSection
EndSection

Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
EndSection

Xの画面位置を調整する

xvidtuneコマンドからどうぞ

x2vncについて・・・・・

デュアルスクリーンハック - MS-Windows と X ディスプレイをリンク
このプログラムは x2x と vncviewer の機能をマージします。 X ディスプレイを起動したマシンとメインスクリーンで VNC サーバを起動したマシン が、あたかも一つのマシンに結合された二つのディスプレイであるかのように振る舞う ことを可能にします。マウスポインタを選択した方にある画面から外すと、ポインタ がもう一つの画面に現れます。

だそうですいつか調べます

2008年4月29日火曜日

ASCIIコードで\x0cって何を表すか?

ASCIIコード
改ページだそうです

参考リンク
http://www12.plala.or.jp/mz80k2/electronics/ascii/ascii.html

2008年4月26日土曜日

KNOPPIXを外付けHDDなどにインストール

USBメモリでKNOPPIX v5.01を起動
ひろちゃん帝国 ココログ村
USB-Knoppixではじめよう
この辺を参考にどうぞ
あとfdiskでパーティションをアクティブにするのを忘れないように・・・

2008年4月20日日曜日

NTPで時刻あわせ Linux

こんな感じでcronに登録しておくといいです
#!/bin/bash
ntpdate ntp.jst.mfeed.ad.jp

またハードウェアクロックとの同期も取る必要があります
ハードウェアクロックがずれていると再起動した時におかしな時間になってしまいます。
hwclock --systohc
と打てばおkです。
hwclock
と打てば現在のハードウェアクロックを見れます
hwclock --adjust
と打てば前回の差分から進む(または遅れる)時間を計測していい感じに調整してくれます

cronとかには↓のように登録しておくといいかも
#!/bin/bash
ntpdate ntp.jst.mfeed.ad.jp > /dev/null
hwclock --adjust
hwclock --systohc

2008年4月19日土曜日

COBOL符号付数値の表記方法

10の位以上 &h3x 0 1 2 3 4 5 6 7 8 9
プラスの1の位 &h4x @ A B C D E F G H I
マイナスの1の位 &h5x p q r s t u v w x y

参考リンク

2008年4月13日日曜日

squidでプロキシーサーバーを立てる

まず、
apt-get install squid

などでインストールする。
次に/etc/squid/squid.confを編集する
http_port 8080

visible_hostname 192.168.0.11

http_portで接続ポートを設定、visible_hostnameで自分自身のホスト名を設定

acl localnet src 192.168.0.0/255.255.255.0

http_access allow manager localhostの下あたりに
http_access allow localnet


forwarded_for off

アクセス元のIPを隠す

via off

viaヘッダを隠す

header_access Cache-Control deny all

キャッシュコントロールヘッダの無効化


cache_dir ufs /var/spool/squid 1500 64 1024

キャッシュディレクトリサイズの変更とか
ufs --> なんかこれ指定しとけてきなあれ
/var/spool/squid --> キャッシュディレクトリ
1500 --> なんメガバイトのサイズを上限とするかこの例だと1500MB
64 --> キャッシュディレクトリの最初の階層のフォルダ数
1024 --> キャッシュディレクトリの2番目の階層のフォルダ数








参考
http://tech.ckme.co.jp/proxy.shtml
http://squid.robata.org/squid2.0-conf.html

2008年4月3日木曜日

SSLで利用するポート

443だそうです

2008年3月31日月曜日

端末を終了しても(ログアウトしても)処理し続ける

nohupコマンドを使用します。

http://www.linux.or.jp/JM/html/gnumaniak/man1/nohup.1.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231191/?ST=oss

例)

nohup nmap -sS -P0 -T2 -p 1-65000 -oN kaons.txt -r -v -sV hogehoge.info &> nohup.txt
こんな感じで・・・&>はエラー出力と標準出力を同じファイルに出す

nmapを使う

nmap -sS -P0 -T2 -p 1-65535 -oN kaons.txt -r -v -sV hoge.co.jp


-sS  ステルススキャン
-P0 ホストの発見を省略する(確実にそのホストが存在していると分かっている場合はこれを使用する)
-T2 スキャン速度。T1、T2、T3、T4、T5と早くなっていく。T5は高速回線が望ましい。
-p ポートスキャンする範囲↑の例では1から65535番まで(全部)
-oN  出力するファイル
-r  ランダムにスキャンしない
-v   冗長オプション。多くの情報を出力する。
-sV そのポートで使用されているアプリを特定する
-O OSを特定する

※注意
家庭用のブロードバンドルーターを使っている人はスキャン速度をT3以下にしないと落ちる場合があります。

2008年3月29日土曜日

Linuxでスワップ頻度を調整する

swappinessという値を変更する。これは0~100までの値で大きいほどスワップし、
小さいほどアプリケーションに割り当てるメモリを多く取り結果スワップが減る。

現在の値を表示する(デフォルトは60)
cat /proc/sys/vm/swappiness

一時的に40に変更する(再起動後はデフォルトに戻る)
echo 40 > /proc/sys/vm/swappiness

永続的に変更する
/etc/sysctl.confを編集し
vm.swappiness=40
を付け加える
その後
# sysctl -p
で適用



参考リンク
ITmedia
http://www.itmedia.co.jp/enterprise/articles/0712/10/news011_4.html

http://www.linuxmagic.org/tips02.html

2008年3月22日土曜日

apacheの.htaccessでユーザーアクセスする人を絞る

AuthType Basic
AuthUserFile "/etc/apache2/pass"
AuthName "Enter pass word"
Require user hogehoge

Require user の後にhogehogeという人なら許すという設定

2008年3月18日火曜日

ブロードバンドルータの設定や確認をperlで行う1

市販されているブロードバンドルーターの多くがブラウザから設定を行うタイプだと思います。これはGUIにより容易に設定が行えますが、ポートの開閉やIPアドレスの定期的な確認などがしたいときには煩わしくプログラムで自動化したいと思うことがあります。
まずは下図の様な場合を想定し、目的のスクリプトを作成したいと思います。

ルーターはNP-BBRPでWAN側はPPPoE接続されています。今回は例としてNP-BBRPを想定しますが、どのルーターでも出来るように説明します。
まず、認証方法を確認します。ブラウザからログインして設定画面に行きます。
この場合http://192.168.0.1/にアクセスしログインします。下図のような画面が出てきました。ユーザー名、パスワード欄に適切なワードを入れてログインします。

2008年3月15日土曜日

analog /etc/analog.cfg以外のコンフィグファイルを使う

analog -G +g/var/www/hoge/foo.cfg.txt

のように書きます。+gの後にスペースを入れないように注意します。
また-Gをつけるのを忘れないで下さい。

analogを使ってログ解析

analogはログ解析ソフトです。
Debianならaptで簡単にインストールできます。
インストールしたらまず/etc/analog.cfgを編集します。

ログファイルの指定
LOGFILE /var/log/apache2/access.log

古いログファイルの指定 (gzで圧縮されていても大丈夫です)
LOGFILE /var/log/apache2/access.log.*

出力HTMLの指定
OUTFILE /var/www/hoge/Report.html


HOSTEXCLUDE・・・このホストからのログは対象としない
リモートホストでの指定ではワイルドカード(*)を省略しないこと
HOSTINCLUDE・・・このホストを集計の対象とする
FILEEXCLUDE・・・このファイル(ディレクトリ)を集計の対象としない
DNSFILE・・・IPの逆引き結果をキャッシュするファイル
DNS WRITE・・・キャッシュを参照、新しいIPはキャッシュする詳しくはこちら
DNSGOODHOURS・・・キャッシュの有効期限 詳しくはこちら


LANGUAGE japanese-utf
HOSTEXCLUDE 192.168.0.*
HOSTEXCLUDE *.point.ne.jp
HOSTEXCLUDE *.ezweb.ne.jp
#FILEINCLUDE /upload/*
FILEEXCLUDE /icons/*
DNSFILE /var/www/kaiseki/dnscache.txt
DNS WRITE
DNSGOODHOURS 679

BROWSER ON
DAILYREP ON
DAILYSUM ON
FAILHOST ON
FAILREF ON
FAILURE ON
FAILUSER ON
FIVEREP ON
FIVESUM ON
FULLBROWSER ON
HOST ON
HOURLYREP ON
HOURLYSUM ON
ORGANISATION ON
QUARTERLY ON
QUARTERREP ON
QUARTERSUM ON
REFERER ON
REQUEST ON
SEARCHWORD OFF
SIZE ON
WEEKHOUR ON
WEEKLY ON


ALL ONで全て有効にしてから不要なものをOFFにしていく方法もある。


ALL ON
FAILVHOST OFF
INTSEARCHQUERY OFF
INTSEARCHWORD OFF
PROCTIME OFF
REDIRHOST OFF
REDIRREF OFF
REDIRUSER OFF
REDIRVHOST OFF
SEARCHQUERY OFF
SEARCHWORD OFF
VHOST OFF



参考リンク
http://www.miloweb.net/analog.html

2008年3月14日金曜日

apacheのログにリモートホストを表示する

/etc/apache2/apache2.conf

HostnameLookups Off
という項があるので
HostnameLookups On
に変更する。

2008年3月10日月曜日

puttyでsftp/scp (psftp/pscp)

sftpはputtyの中にある
psftpを実行します。
実行するとコンソールが開くので
open hogeuser@bar.test.jp 22

と入力します。
また鍵認証をした場合はputtyに登録してあるセッション名でもログインできます。
open sessionname


ログインしたあとはhelpコマンドによってコマンド一覧を見れます。
一つ一つのコマンドの詳細はhelp <コマンド>によって見れます。
ローカルのファイルを確認する場合はWindowsの場合
!dir

と入力します。
put test.txt

でtest.txtをリモートへ送信します。

注意
ftpといってもsshのポートを利用します。



scpは
pscp.exeをDOS窓から実行します


C:\>pscp.exe foo.txt user@bar.test.jp:
Using keyboard-interactive authentication.
Password:
foo.txt | 14 kB | 14.1 kB/s | ETA: 00:00:00 | 100%


注意
pscpにpathが通っていること
user@bar.test.jp:←のコロンを忘れないこと

参考リンク
PSFTPの利用

2008年3月7日金曜日

vimでタブをスペースに変換する

:set expandtab
で今後入力されるタブがスペースに変換される。

:retab
既存のタブはこのコマンドで変換される。

:set tabstop=4
としていれば4つのスペースに変換される。

2008年3月5日水曜日

Apacheのautoindexモジュールが文字化けする

ApacheのautoindexはデフォルトエンコーディングでUTF-8を指定しているにも関わらず、
インデックスをリクエストしたときにレスポンスヘッダに
charset=ISO-8859-1
が付いてしまいます。

回避するためにはautoindexのconfのIndexOptionsに
Charset=UTF-8
を追加します。

2008年2月27日水曜日

2chのスレを自動保存

2chのスレを自動で保存する方法を考えます。
スレの進行が早いところはすぐにDAT落ちしてしまいます。プログラムによって定期的にDATを取得できたら便利です。
いきいきwikiによるとUser-AgentをMonazilla/1.00 (ブラウザ名/バージョン)にするといいようです。
また鯖の転送量を減らす目的でgzipを推奨しています。
例としてJaneviewのリクエストヘッダを見て見ます。


こんな感じです。
これよりどこにアクセスし、DATを取得しているか分かります。
取得したdatはgzipに圧縮されているのでgunzipで展開します。(gunzipコマンドのあるLinux環境を想定しています)
ここで注意して欲しいのは必ずgzipで返ってくるとは限らない点です。gzipではなく生のDATが送られてきても対応できるようにします。

例としてDATを取得するスクリプトをいかに示します。定期的に取得する場合はcronなどで回して下さい。

#!/usr/bin/perl
use Net::HTTP;

### Initial Setting ###########################

$server ="namidame.2ch.net";
$category ="campus";
$unixtime ="1234567890";
$backup_directory ='/var/www/';

###############################################

unless($backup_directory=~/\/$/){
$backup_directory.='/';
}


$s = Net::HTTP->new(Host => "$server") || die $@;
$s->max_line_length(0);
$s->keep_alive(300);

$s->write_request(GET => "/$category/dat/$unixtime.dat", 'User-Agent' => "Monazilla/1.00 (perl/1.3)" , 'Accept-Encoding' => "gzip" );


($code, $mess, %h) = $s->read_response_headers;
unless($code eq "200"){
print "Thread not found!\n";
exit;
}

open (FH,">$backup_directory$unixtime.dat.gz") or die $!;

while (1) {
my $buf;
my $n = $s->read_entity_body($buf, 1024);
die "read failed: $!" unless defined $n;
last unless $n;
print FH $buf;
}

close FH;


print "\n$code $mess\n";
foreach $key(keys %h){

print $key," ";
print $h{$key},"\n";

}


chdir "$backup_directory" or die $!;
$gunzip_message = qx/gunzip -f $unixtime.dat.gz 2>&1/;

if($gunzip_message=~/not.*in.*gzip.*format/){
exec "mv $unixtime.dat.gz $unixtime.dat";
}

2008年2月18日月曜日

Debian(etch)の日本語環境設定

$ sudo dpkg-reconfigure locales


こんな感じでおk簡単ですね

参考リンク
http://wiki.debian.org/JapaneseEnvironment

2008年2月13日水曜日

x11vncよく使いそうなオプション(追加)

前回の他に見つけた良く使いそうなオプション

-allow
リモートアクセスを許可するホストを設定する。
例)192.168.0.5からだけアクセスを許可する
-allow 192.168.0.5
例)192.168.0.0/24からのアクセスを許可する
-allow 192.168.0.

-nopw
パスワードファイルが無くても警告を出さない

*その他のx11vnc関連の投稿
x11vnc端末から実行した際に出るエラー出力が邪魔
x11vncの設定を保存するには
Ubuntu7.04 にx11vncをインストールする

x11vnc端末から実行した際に出るエラー出力が邪魔

~$ x11vnc &> /dev/null &

こんな感じでnullへ捨てる。最後の&はバックグラウンドで実行するという意味。

2008年2月8日金曜日

ダウソ板で良く使われる隠語

葱→Negies
PG→peerguardian

2008年1月20日日曜日

School Days LxHの動画を抽出する

まずDVDの読めるPCでディスクを検索します。
次にMV.AFSという1.15GBくらいのファイルがあるのでHDDにコピーします。
この中にpssファイルがアーカイブされているので抽出します。
こちらで配布されているAFS Cutter Ver.1.00を使ってPSSファイルを抽出します。抽出したファイルはbinという拡張子になっていますがPSSファイルです。再生はVLCプレイヤーなどで出来ます。

ゲームで使われていないムービーは
AFS_0836・・・niceboatと書かれた延々と続くスタッフロール
AFS_0855・・・工事中でちゅ!と書かれた世界の落書き

参考
http://freeuse.ddo.jp/contents/game/ps2/ps2mov.html

2008年1月7日月曜日

ProxomitronをLinuxで・・・

1.wineで動かす
2.Privoxyで頑張る

2008年1月2日水曜日

perlでURLデコード

#!/usr/local/bin/perl

open (FH,"access.log");
open (FH2,">kekka.txt");
while(){
s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2',$1)/eg;
print FH2;
}
close FH;
close FH2;

s置換演算子のオプションeは置換後の文字列(ここではpack('H2',$1))の評価を行う。
gオプションは繰り返しマッチさせる。