2010年9月27日月曜日

携帯機種変更

こんばんわ、Cです。

携帯電話の機種変更をしてきた。
といっても、最新機種はバカみたいに高いので
中古本体を購入しauショップに持ち込んで変更した。

ついに携帯もREDになった。

2010年9月25日土曜日

apache Install

Cです。

ESXi上のCentOS5.5にapacheをインストールする。
Debianではないのでご注意を。

#rpm -qa httpd
何も表示されなければインストールされていない。(パッケージでは)
#yum -y install httpd
#yum -y install mod_ssl
#yum -y install php
#yum -y install php-gd

こんだけインストールする。
initスクリプトはK15httpdとなっており、起動しないようになっている。よい。

apacheの設定 /etc/httpd/conf/httpd.conf
226行目 ServerName サーバネーム:80   サーバネームの指定
329行目 AllowOverride All      /var/www/html(デフォルト)でhtaccessを有効にする

apacheのSSL設定 /etc/httpd/conf.d/ssl.conf
112行目 SSLCertificateFile /etc/pki/tls/certs/localhost.crt httpsdの使用する公開鍵の場所指定
119行目 SSLCertificateKeyFile /etc/pki/tls/private/localhost.key httpsdの使用する秘密鍵の場所指定
134行目 #SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt 上位認証局の証明書保存場所(今使用しないからコメントアウト)
227行目 CustomLog logs/ssl_access_log combined

秘密鍵と証明書の作成
#cd /etc/pki/tls  (しかるべきとこへ移動)
#openssl genrsa -des3 2048 > private/localhost.key (localhost.keyで秘密鍵を作成)
パスフレーズの設定を求められるので、入力したら秘密鍵が作成される 
#openssl rsa -in private/localhost.key -out private/localhost.key
(apacheを起動すると毎回パスフレーズを求められるので、秘密鍵からパスフレーズを削除する)

生成された秘密鍵を使ってサイト証明書を作成する
# openssl req -new -x509 -key private/localhost.key -out certs/localhost.crt -days 3650

-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:URLでのホスト名を指定
Email Address []:

apache自動起動設定
スマートな設定はrc*.dの中のシンボリックリンクのファイル名を変更するのだが、
せっかくchkconfigを勝手に導入してくれているので使おう。
#chkconfig httpd on
#chkconfig --list | grep httpd
onになってたらOK

apacheプロセス起動
#/etc/init.d/httpd start
# ps -ef|grep http
これでhttpdが動いてればOK

あとはiptablesの設定をすれば繋がる。
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

iptables IP spoofing 対抗ルール

さて、Cです。

IP spoofing attack。
送信元IPアドレスを偽装するということ。
送信元IPアドレスを攻撃ターゲット目標に偽装し、
世界のいろんなIPアドレスにパケットを送信することにより、
世界各地から攻撃ターゲットへ向けてパケットの雨が降り注ぐ攻撃など
さまざまな攻撃に使われる。
他にも、フィルタリングで許可されているであろう、プライベートアドレスに
送信元IPアドレスを偽装することによって、内部に到達させちゃおうって攻撃にも使う。。

・外部側のインターフェイスへ送信元IPがプライベートなものが到着したら、
ログに出力して、破棄する。

・受信パケットの送信元IPアドレスが自分のIPアドレスだった場合破棄。

このルールを書く。

内部アドレスは192.168.0.0/24を使っていると仮定。外部IFはeth0。
#$IPTABLES -N ANTISPOOF
#$IPTABLES -A ANTISPOOF -i eth0 -s 127.0.0.0/8 -j LOG --log-prefix "iptables:Spoofed source IP!"
#$IPTABLES -A ANTISPOOF -i eth0 -s 127.0.0.0/8 -j DROP
#$IPTABLES -A ANTISPOOF -i eth0 -s 10.0.0.0/8 -j -j LOG --log-prefix "iptables:Spoofed source IP!"
#$IPTABLES -A ANTISPOOF -i eth0 -s 10.0.0.0/8 -j DROP
#$IPTABLES -A ANTISPOOF -i eth0 -s 172.16.0.0/12 -j LOG --log-prefix "iptables:Spoofed source IP!"
#$IPTABLES -A ANTISPOOF -i eth0 -s 172.16.0.0/12 -j DROP
#$IPTABLES -A ANTISPOOF -i eth0 -s 192.168.0.0/16 -j LOG --log-prefix "iptables:Spoofed source IP!"
#$IPTABLES -A ANTISPOOF -i eth0 -s 192.168.0.0/16 -j DROP
#$IPTABLES -A ANTISPOOF -i eth0 -s 192.168.0.0/24 -j LOG --log-prefix "iptables:Spoofed source IP!"
#$IPTABLES -A ANTISPOOF -i eth0 -s 192.168.0.0/24 -j DROP
#$IPTABLES -A ANTISPOOF -i eth0 -s 自分のIPアドレス -j LOG --log-prefix "iptables:Spoofed source IP!"
#$IPTABLES -A ANTISPOOF -i eth0 -s 自分のIPアドレス -j DROP
#$IPTABLES -I INPUT 1 -j ANTISPOOF
#$IPTABLES -I FORWARD 1 -j ANTISPOOF

ちょっと粋な書き方をしてみた。
最初にANTISPOOFというオリジナルチェインを作成する。
そこへ、各プライベートIPへのLOGを吐き出すルールとDROPルールを記述する。
最後に、作成したANTISPOOFチェインをINPUTとFORWARDの1行目へINSERTする。

パケット転送を有効にしているlinuxであればFORWARDにも追記しておくべきだと思うので
こんな書き方にした。

2010年9月24日金曜日

iptables ループバックインターフェイス

こんばんわ、Cです。

おそらく、全員書くことになるであろうルールです。

・ループバックインターフェイス上に到達した、
あるいは存在するパケットは全て許可してやろう。

という、とても美しいルール。

Linux上で働く、アプリケーションの多くはクライアント/サーバ方式を採用している。
XWindowSystemとか。
そのアプリケーションはループバックインターフェイス経由のTCP/IPスタックで
データを他のプロセスに転送する。
だから、このルールが必要だ。

$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
※$IPTABLESの中には/sbin/iptablesなどが入っているつもり

シンプルなルールだな。
モチロンこのルールは各チェーンが DROP になっていることが前提だ。
ACCEPTになってたらこのルール書かなくてもALL ACCEPT。

このルールを、初期化ルールに書き加えてもいいし、
ループバック許可シェルスクリプトとして別にしてもいい。
ただ、コマンドで打ち込んで設定できて満足はしないで欲しい。
何かあったときに莫大なルールを設定しなおすことになるぞ。

iptables initialize

Cです。

netfillterの初期化。

#!/bin/bash
IPTABLES=/sbin/iptables

modprobe ip_tables
modprobe ip_conntrack_ftp

#現在のルールとカスタムテーブルを消しちゃう
$IPTABLES --flush
$IPTABLES --delete-chain

#暗黙のデナイさん参上
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

ip_conntrack_ftpモジュールは
passiveFTPのルールをきれいに書くことができる。

デフォルトではALL ACCEPTに設定されている事が多いです。
Linuxの使い方や状況によってDROPを設定してやろう。

やはりiptablesの設定等はシェルスクリプトにしちゃって、
1コマンドで正常な設定に戻せるようにしておくべきだ。

2010年9月23日木曜日

yum rpm

こんばんわ、Cです。

私は普段、パッケージ管理にはapt+dpkgを使っているのだが。

やはり企業システムとなるとRedHat系が多く、
yumやrpmについても知っておく必要がある。

yum check-update アップデート可能なパッケージの一覧を表示
yum update アップデート可能な全パッケージをアップデート
yum update パッケージ名 パッケージをアップデート
yum install パッケージ名 パッケージをインストール
yum remove パッケージ名 パッケージを削除
yum clean ダウンロードしたパッケージと古いヘッダを削除する。
yum clean packages ダウンロードしたパッケージを削除
yum list 利用可能なパッケージ一覧を表示
yum list installed インストールされているパッケージ一覧を表示
yum info 利用可能なパッケージの詳細を表示
yum info パッケージ名 パッケージの詳細を表示

ダウンロードしたキャッシュがどんどん積もっていくのでたまにcleanしてやろう。
溜まり量確認
#du -h /var/cache/yum

rpm
#rpm -qa インストールされてる全部のrpmを表示する。grepで引っ掛けよう。
#rpm -qi パッケージ名 パッケージの詳細情報を表示。info
#rpm -ql パッケージ名 そのパッケージが作成した?ディレクトリを表示する。
#rpm -qf プログラム名 そのプログラムがどのパッケージに入ってるか表示する。

使わないと忘れていく。

2010年9月18日土曜日

アップ

茶太朗のブラッシングをしたのだが、
毛が抜ける抜ける、きりが無い。

2010年9月15日水曜日

CentOS 5.5

Cですよ。

さあESXiが動いたので、その上に仮想マシンを作ってWebサーバを建てよう。

リソース割り当てから考えてみる。
今回はフロントWebサーバとして構築してみる。

CPU:1個
メモリ:1024MB
ディスク:40GB

これでも充分すぎるだろう。

パーティションについては最低限のところでバッサリ区切ってしまおう。

/home  25GB  Webコンテンツが保存されるようにする。1ユーザしか使わないのでクォータしない。
/var 10GB 各種ログが積もっていく。
/usr  1GB
/swap 1024MB
/   残り全部

最低限これだけきっとけばいいだろう。

インストールはちょちょいと終了。

個人的に最小構成で必要なものはあとからインストールしたかったのだが、
sshとかdhclientとかおせっかいで入っちゃいます。

この辺がDebianとは違いますな。

次はみんなのapache2をインストールします。

2010年9月11日土曜日

メレンゲの泡立ち

誕生日プレゼントとして
右上にあるChouchouみたいな青いやつを頂いた。

Chouchouではなくて顔を洗うときに泡立てする
泡だて器みたいなもの。

使ってみるとまさにメレンゲの泡立ち。

2010年9月10日金曜日

養殖槽3

Fresh water 用のタマゴから孵った魚を入れる水槽。
成魚になると売ってコインにする。

もうコインが泳いでるようにしか見えない。

養殖槽2

Salt water の売る為の魚を育てる 水槽。
タマゴのみの水槽で孵った魚をここに移します。

2010年9月6日月曜日

養殖槽の状態

タマゴ14個

2010年9月5日日曜日

Conky 自動起動設定

Cです。

Conkyを自動的に起動するよう設定をする。

Conky auto start
#echo "conky -d" >> /home/ユーザ/.profile

これで自動的にconkyが起動する。

Conky というツールを知っているか


ごきげんよう、Cです。

あなたは、Conkyというツールを知っているか。
そのツールは使う人間が賢ければ賢いほど便利なツールになるんだぜ。

簡単に言うと、コマンドを設定したポーリング間隔毎に実行し、
結果をデスクトップ画面に表示させることが出来る。
常に確認しておきたい情報等を表示させておけば便利だ。

Conky install Memo
#apt-get update
#apt-get install conky

これでインストールされたはずだ。

設定ファイルは、各ユーザのホームディレクトリに.conkyrcというファイルを作成し書いてくれ。
私の設定ファイルを特別に見せてあげよう。





Conky Configuretion
use_xft yes
xftfont verdana:size=6
alignment top_left
xftalpha 0.8
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
draw_shades no
draw_outline no
draw_borders no
stippled_borders 10
border_margin 4
border_width 1
default_shade_color grey
default_outline_color black
default_color ff3333
use_spacer none
no_buffers yes
uppercase no
color1 ff3333

gap_x 15
gap_y 25
muximum_width 150

TEXT
${color ff3333}${font M+2VM+IPAG circle:size=6}C-SYSTEM ver 0.9.0
${font Radio Space Bold Italic:style=Bold:pixelsize=13}Date${font} ${hr 1}

${font Radio Space:size=9}${time %d %m %Y} ${font Radio Space:size=9}${time %H:%M}
${font Radio Space Bold Italic:style=Bold:pixelsize=13}System${font} ${hr 1}

HostName: ${nodename}
LinuxVer: ${kernel}
UpTime: ${uptime_short}

${font StyleBats:size=9}A${font} CPU0: ${freq_dyn cpu1}MHz ${alignr}${cpu cpu0}%
${cpubar cpu0}
${cpugraph cpu0 20,230}
${font StyleBats:size=9}A${font} CPU1: ${freq_dyn cpu2}MHz ${alignr}${cpu cpu1}%
${cpubar cpu1}
${cpugraph cpu1 20,230}

${font StyleBats:size=9}C${font} MEM: $mem / $memmax
${font StyleBats:size=9}C${font} SWAP: $swap / $swapmax

${font StyleBats:size=9}m${font} HDD: ${fs_used /} / ${fs_size /}
${fs_bar /}
Read: ${diskio_read}/s ${alignr}Write: ${diskio_write}/s

${font StyleBats:size=9}8${font} Battery: ${battery_percent BAT1}% ${battery_bar BAT1}

${font Radio Space Bold Italic:style=Bold:pixelsize=9}Network${font} ${hr 1}

${font PizzaDude Bullets:size=9}/${font} eth0 : ${addr eth0}
${downspeedgraph eth0 18,110}${alignr}${downspeedgraph eth0 18,110}
Up: ${upspeed eth0} Kb/s${alignr}Down: ${downspeed eth0} Kb/s
${font PizzaDude Bullets:size=9}/${font} eth1 : ${addr eth1}
${downspeedgraph eth1 18,110}${alignr}${downspeedgraph eth1 18,110}
Up: ${upspeed eth1} Kb/s${alignr}Down: ${downspeed eth1} Kb/s

2010年9月2日木曜日

Aircrack-ng

おはよう、Cです。

ipod tach を使う為、無線APを導入したのだが、やっぱり無線は特にセキュリティが気になる。

もちろんWEPなど使う気は無いが、WEPのもろさを試してみたかった為、
一度WEPで設定して「Aircrack-ng」を使ってみた。うっへっへ
「-ng」は「んぐ」ではなく「ネクストジェネレーション」ですよ。

WEPキーの解析手順
 1、Wireless インターフェイスをモニタリングモードにする
 2、受信状況を確認しターゲット(勿論自分のAP)を特定する
 3、色々
 4、パケットをキャプチャしIVを溜め込む
 5、溜まったIVからWEPキーを特定する

大体こんな感じ。
条件として、Wirelessインターフェイスがモニタリングモードをサポートしていないと出来ない。

Aircrack-ng Memo
#apt-get update
#apt-get install aircrack-ng

以上でインストール完了。
続いてインターフェイスモードをモニタリングにチェンジ

#airmon-ng start wlan0 (インターフェイス名は人それぞれ)
 Interface   Chipset   Driver
 wlan0      cipname   drivername
               (monitor mode enabled on mon0)
               ↑モニターモードだよmon0インターフェイスだよ

これでモニターモードになりました、自動的にmon0とwlan0が有効になってしまう。
MACアドレスを偽装したい場合は一度インターフェイスをDownにしよう。
MACアドレス偽装についてはmacchengerのところを見よう。

#airodump-ng mon0
 受信範囲に入っているAPがずらずら表示される

2個目のコンソールからターゲットAPに絞ってデータをキャプチャする
#airodump-ng --channel 7 --bssid "ターゲットBSSID" -w "保存ファイル名" wlan0

これでファイル名.capという名前でキャプチャしたデータが保存されて行く。
1個目のコンソールはctl+Cしてよい。

ターゲットアクセスポイントにクライアントが存在しフレームが頻繁にやり取りされていれば
順調にIVが溜まっていくかもしれない。
あなたはどうしますか?

 選択肢
  ⇒待つのは慣れているのでこのまま待つ
   魔法を使う

このまま待っていれば、ただ単純に電波を受信している受動的な攻撃なので
相手に悟られることは無いでしょう。(相手に行動を監視されていなければ)

魔法に関しては、次回まとめる。

沢山データが集まったら解析する(airodump-ngのコンソールはそのままキャプチャさせておく)
#aircrack-ng "キャプチャファイル名”

これで解析できたらよし。
 解析できなければ、引き続きキャプチャデータが増大していくのを待って再度aircrack-ng!!