パン屑の轍

ボドゲとかプログラミングとかゲームとか

iptalbles LOGについてメモ

iptalbles LOGについてメモ

概要

  • カーネルロギング機能を用いてsyslogにログを出力する
  • ULOGターゲットというものも存在し、これはMySQLデータベースへのロギング等より広範囲な機能を持つ
    • 詳細はこちら 結構色々使えそうではある。
  • ログの出力先はsyslog.confで指定できる(らしい)
  • ArchLinuxのページがわかりやすい

ログ関連のオプション

Option --log-level
Example iptables -A FORWARD -p tcp -j LOG --log-level debug
Explanation iptablessyslog が用いるlog levelを指定する。
log levelについて詳細はsyslog.confを参照のこと。
通常は、debug, info, notice, warning, warn, err, error, crit, alert, emerg, panicであり、errとerror, warnとwarning, panicとemergは同じ意味だが、error, warn, panicの3つは使用すべきでない。
優先順位は、ログに記録されるメッセージの重要度を意味する。
メッセージは全てカーネル機能を通して記録される。換言すると、syslog.confに kern.=info /var/log/iptables を設定し、iptables の全 LOG メッセージのログレベルを infoにすることで、 /var/log/iptables に全メッセージを出力できます。
infoレベルを使用するカーネルの他の部分からのメッセージも、ここに出力されることに留意してください。
ロギングの詳細については、syslogとsyslog.confのmanページや他のHOWTO等を読むことをおすすめします。
Option --log-prefix
Example iptables -A INPUT -p tcp -j LOG --log-prefix "INPUT packets"
Explanation ログメッセージにプリフィックスを付加するために使用します。プリフィックスをgrepすることで、異なるルールのメッセージを抽出することができます。プリフィックスの長さは空白文字等を含めて、29文字までです。
Option --log-tcp-sequence
Example iptables -A INPUT -p tcp -j LOG --log-tcp-sequence
Explanation ログメッセージにTCPシーケンスナンバーを付加します。TCPシーケンスナンバーはパケットを特定するための数字であり、ストリームがどのように並んでいるべきかを示します。このオプションはログが認証されていないユーザによって見られた場合、セキュリティリスクを引き起こす可能性があります。
Option --log-tcp-options
Example iptables -A FORWARD -p tcp -j LOG --log-tcp-options
Explanation TCPパケットヘッダから種々のオプションを記録します。これはデバッグに役立ちます。
Option --log-ip-options
Example iptables -A FORWARD -p tcp -j LOG --log-ip-options
Explanation --log-tcp-optionsと似ていますが、これはIPオプションを記録します。

kern.= info /path/to/logでログレベルごとにログの出力先を変えられる、ってことは

  • Well Knowポートの通信とかはinfoに設定して、/var/iptables/logに出力
  • それ以外はdebugに設定しておいて、普段は/dev/nullに、必要に応じて/var/iptables/logに出力

とかもできるんだろうか。
iptablesAWS Greengrassのようなロギングを出来るとよさげなのだけれど。
iptables以外のログが混ざるのがなかなか難しいところ。混ざらなくするためにログレベルがもっとほしい。

Web3.0のWebブラウザ Braveをインストールしてみる

Twitterからこんな画像が流れてきました。

f:id:souljacker-cannot-get-mysoul:20180414171057p:plain

medium.com

どうも次世代の各種サービスはこうだ!って感じのもののようです。 (記事は適当に読み飛ばしました)

こちらの記事によると、Chromeよりも数倍速いようです。

news.mynavi.jp

数倍速いと言われれば、使って見ざるを得ません。

というわけで、早速Braveをインストールします。

OS: Voyager Linux 64bit ( Debian baseのDistro)

github.com

curl https://s3-us-west-2.amazonaws.com/brave-apt/keys.asc | sudo apt-key add -
echo "deb [arch=amd64] https://s3-us-west-2.amazonaws.com/brave-apt `lsb_release -sc` main" | sudo tee -a /etc/apt/sources.list.d/brave-`lsb_release -sc`.list

sudo apt update
sudo apt install brave

簡単ですね。

見た目はこんな感じでおしゃれな感じです。

f:id:souljacker-cannot-get-mysoul:20180414170432p:plain

初回起動ゆえか少し起動に時間がかかった気がしますが、ブラウジング自体はかなり速い気がします。しばらく使ってみて、感触を確かめたら、またなんか書きます。


4/29追記: 速度はかなりよさ気なのだけれど、Vivaldiの画面分割やスピードダイヤル機能はやはり魅力的であった。 とはいえ、Braveは出来立てほやほやなので、そういったブラウザ独自の便利機能やアドオンなどはこれから充実していくだろうし、とりあえずはこのまま使い続けようかなと思う。

あと、ブラウザ版よりもスマホ版のBraveがかなりの爆速、やばい、なんだこれは。 体感ではSafariの八倍くらい速い。

Linuxデバッグツール備忘録

Linuxデバッグ(とか)ツール備忘録

Linuxデバッグやトレース等を行うためのツールの使い方などのメモ。

strace

概要

プログラムのシステムコール発行を追跡するためのツール

sudo apt-get install sysstat

使い方

$ strace <options> -o <log file name> ./<execution target>
$ strace <options> -o <log file name> python <execution target>

<options>については以下。

  • -T : マイクロ秒の精度で情報を取得
  • -tt : システムコール発行時の時刻をマイクロ秒単位で表示

nice | renice

概要

nice値(優先順位: max -20 ~ 19 min)を変更するためのツール

reniceは既に実行されているプロセスのnice値を変更するためのツール

使い方

$ nice -n <niceness> <command(exgrep "hoge")>
$ renice <diff niceness> <pid>
$ renice <diff niceness> -u <user>

-uを指定した場合は、そのユーザ権限で実行されている全プロセスが対象になる

sar

概要

CPU, メモリ, DISK IOなど様々な情報のモニタリングを行うためのツール

sudo apt-get install sysstat

使い方

$ sar <options> -o <log file name> <interval> <count>
hh:mm:ss CPU %user %nice %system %iowait %steal %idle
hh:mm:ss all     0.88     0.00    0.00        0.00       0.00    99.12
<snip>

<options>については以下。

  • -f <file name> : -oで吐き出したファイルを食わせる
  • -P <ALL|CPU No.> : CPU状況を見たい時
  • -r : メモリ使用量を見たい時
  • -R : メモリページの状況を見たい時
  • -d : ディスクIOの状況を見たい時
  • -n <keyword> : ネットワークの状況を見たい時。<keyword>については以下。
    • DEV : インターフェース
    • IP : IP
    • TCP : TCP
  • -s hh:mm:ss -e HH:MM:SS : hh:mm:ssからHH:MM:SSの情報を表示
  • -u : -oをつけない場合つける

見方

CPU

  • %user : ユーザモードでのCPU利用率
  • %nice : nice値を変更しているプロセスのCPU使用率
  • %system : カーネルモードでのCPU利用率
  • %iowait : IO待ちでのCPU使用率
  • %steal : ゲストOSが割り当ててもらえなかったCPU使用率
  • %idle : 待機中CPU使用率

参考

Qiita - Linux - sarコマンドについて @makaaso

stress

概要

負荷をかけるためのツール

sudo apt-get install stress

使い方

$ stress <options> -q -t <timeout sec> &

<options>については以下

<N>は全てワーカーの数

  • -c <N> : CPUに負荷をかけたい時
  • -i <N> : ディスクIOに負荷をかけたい時
  • -m <N> : メモリに負荷をかけたい時

ldd

概要

リンクしているライブラリを調べるツール

使い方

$ ldd <program>

gdb

概要

デバッガ

使い方

$ gdb <object file>

上記実行後、コマンドの入力が求められる。

  • 行にブレークポイントを張るとき: b <src file>:<lines>
  • 関数にブレークポイントを張るとき: b <function name>
  • ブレークポイント一覧表示: i b
  • ブレークポイント削除: d <no>
  • 変数にウォッチポイントを張る時: w <var name>
  • 実行するとき: run
  • ステップ実行するとき(関数スキップ): n
  • ステップ実行するとき(関数の中に入る): s
  • 変数の値を見たい時: p <var name>
  • 変数の値を変える時: p <var name>=<value>
  • 既に実行されているプロセスにアタッチするとき: attach <pid>
  • デタッチするとき: detach

Ctrl-x => 1 or 2ソースコードを見ながら実行できる。

参考

Qiita - はじめてのgdb

Qiita - gdbで効率的にデバッグするためのTips

MEMWATCH

概要

メモリリーク・破壊監視ライブラリ

使い方

ソースコード#include "memwatch.h"を追加。

コンパイル時に、gcc-DMEMWATCH -DMW_STDIO memwatch.cを渡す。

実行すると、メモリリーク等の報告が記載されたmemwatch.logファイルが吐き出される。

参考

IBM developerWorks

readelf

概要

ELFバイナリを読むためのツール

使い方

$ readelf <options> <ELF file>

<options>については以下。

  • -h : 開始アドレス
  • -S : 開始アドレス、データとコードのファイル内オフセット、サイズ

taskset

概要

プロセスを指定したCPUで動作させるためのツール

使い方

$ taskset -c <CPU No.s> <command>`
$ taskset -pc <CPU No.s> <pid>`

cat /proc/cpuinfo

概要

CPU情報が見れる

time

概要

実行時間を見るためのツール

使い方

$ time <command>

随時更新

Windows Phone買ってみた

先日Windows Phone lumia 640 を入手しました。

Windows Phoneと言えば、去年正式に死亡宣告がなされた時代の仇花、ドリームキャスト、ベータマックスなガジェットです。

Microsoft、ついにWindows Phoneの終了を確認

こういう不幸なハードウェア好き。 安いし。新品だと30kちょいのものが中古で4k。ラズパイより安い。

さて、どんなものか買ってみたWindows Phoneの感想ですが

  • 想像以上に良くできてる

正直大したことないのだろうと思っていましたが、これがなかなか良くできています。 動作はサクサクでWindows10のパネルUIは直感的です。

家ではMacLinux(VoyagerLinux 超オススメ)ばかり使ってWindowsはあまり触りませんが、個人的にWindows10はモダンな感じでわりかし使いやすく好きなOSでした。 しかし、Windows Phoneを使ってみて、Windows10はモバイルが一番映えるOSなんだということを再認識しました。 ノートPCだとあまりパネルUIの恩恵を感じることはないのですが、Windows PhoneだとパネルUIがピタッとハマった感があります。

普段はiPhoneを使っており、iOSのキーボードの感覚に慣れているため、Android に馴染みにくいものを感じていたのですが、このWindows Phoneはそういった違和感はありませんでした。 (日本語キーボードの扱いが若干下手な感があるのは残念)

モノとしての出来はなかなか高いと思います(マジで)。

  • アプリはまぁ……

LINEやTwitterなどの日常的に使うであろうアプリはありますが、やはりゲーム系はかなり弱い印象です。 マイクラがあるのが救いか。

社用携帯なんかの用途には逆にゲームがなくてOfficeが使える点は有利だと思うのですが、やはり認知度の問題でしょうか? あまりそういった話も聞いたことはありません。

  • 電池持ちはいい

最近iPhone6Sの電池がかなり保たなくなってきていたので、ほぼ新品に近いWindows Phoneのバッテリー持ちはかなり長く感じます。 充電なしでも2日は持ちます(頻繁に使わなければ) まあこれはSIMなしで運用していることも影響してそうですが、標準的な電池持ちはあると言ってもいいでしょう。

  • 結論

スペア・おもちゃ用として一台確保して損はない。

唐突にスマホがお亡くなりになった時のため+遊びで一台持つ価値は十分にあるでしょう。 (安いし)

去年正式にお亡くなりなったということで話題性も抜群です。

Windows Phoneを持っておけばみんなの視線(白い目)を集めること間違いなし!

Windows Phone lumia 640 - Amazon

そのうち、Androidを入れたりなんやかんやして遊びます。