HOME | ソフトウェア | Cサンプルコード | Perlサンプルコード | 愛用フリーソフト | TIPS | ブログ |
RedHat Linux メモ


 --- * --- * --- * --- * --- 
 初期設定
 --- * --- * --- * --- * --- 

0.rootになる
1.ctrlとcapsの入れ替え
 →vi /etc/X11/XF86Configで,
  # Option "XkbOption" "ctrl:swapcaps"
  のコメントを外す.
  そうすると以下のxfree86ファイルが反映される.
  →chmod 644 xfree86をしてから,
  /usr/X11R6/lib/X11/xkb/keycodes/xfree86において
  = 37; // 66;
  = 66; // 37;
    78⇔123,110⇔133
2.rootを出る
4.ftpして.bashrc, /etc/bashrc を上書き,cmemoのget
5.再起動# (killall ‐HUP inetdでも可?)
6.アンインストール(通常はapt-getを利用)
    rpm -e webmin
7.サービスの停止
   /etc/xinetd.confのコメントアウト ->telnet
   chkconfig --del 
   
   httpd, sendmail, identd, FreeWnn, lpd, nfs, portmap
     netfs, autofs, gpm, kudzu, postfix, ypbind 
   (ftpは/etc/inetd.confをいじらない)
   (cannaはcmemoに必要)
   (これらは/etc/init.d/の下にあるファイルを指定)
   inetd.confの初期化 -> #killall -HUP inetd
   on/offの一覧を見る -> chkconfig --list
8.ftpの設定変更(/etc/vsftpd/vsftpd.conf)
  →anonymousログインを未許可
9.ntpdate -s 192.168.1.1(NTPサーバ)で時刻の同期
10.ワークスペースの切り替えショートカットの変更
   →キーボードのショートカットで変更


(Fedora)
1.日本語環境の整備
   Fedoraでは文字コードがデフォルトでUTP-8になっていて,これをEUCにする.
   1. /etc/sysconfig/i18n のファイル中の 
     LANG="ja_JP.UTF-8" を 
     LANG="ja_JP.eucJP" に変更して、
   2 . /etc/man.config 中の
     PAGER /usr/bin/less -isr を
     PAGER /usr/bin/lv -i に変更する.



 --- * --- * --- * --- * --- 
 設定
 --- * --- * --- * --- * --- 

■FTPによるインストール(CDが付いていないPC)
1.bootnet.imgとrawrite.exeファイルを1つの
  ディレクトリに入れる
2.Win上でコマンドプロンプトでrawriteを実行
3.書き込み先をa:として起動ディスクを作成する
4.CD媒体を別のマシンに入れる
5.FTPのディレクトリ指定でサーバマシンの/mnt/cdrom/を指定


■NFSによるインストール
1.bootnet.imgとrawrite.exeファイルを1つの
  ディレクトリに入れる
2.Win上でコマンドプロンプトでrawriteを実行
3.書き込み先をa:として起動ディスクを作成する
4.CD媒体を別のマシンに入れる
5.NFSマウント許可を与える.
   →/etc/exportに/mnt/cdrom/ *(ro)を1行で書く.
6.export -a
7./etc/init.d/nfs restart
8.NFSのディレクトリ指定でサーバマシンの/mnt/cdrom/を指定


■WEBサーバの簡単起動
1.設定ファイルの変更(/etc/httpd/conf/httpd.conf)
  →ServerName 10.25.149.49とする.
  →AddDefaultCharset ISO-8859-1をコメントアウトする.
2.httpdの起動
  /etc/init.d/httpd start
3.chkconfig httpd on
4.テキストファイル(*.html)を置く


■SSHの設定(公開鍵利用)
・クライアントでの設定
1. cd (home)/.ssh
2. ssh-keygen -t rsa
3. パスフレーズの入力(鍵のペアが生成される)
 + id_rsa (秘密鍵)
 + id_rsa.pub(公開鍵)
4. id_rsa.pubをサーバ上の(home)/.ssh/temp.pubへ安全に移動

・サーバでの設定
1. cd (home)/.ssh
2. touch authorized_keys
3. chmod 700 authorized_keys
4. cat temp.pub >> authorized_keys


■パーティション例
 hda1:128M(1-16):/boot
  hda2:512M(17-81):/swap (メモリの倍推奨)
  hda3:5G:/


■キックスタート
boot:linux ks=nfs:172.20.1.1:/tftpboot/rh9/ks.cfg


■新たなディスク(hda7)の生成
1.パーティションを区切る.
  →fdisk /dev/had
2.パーティションhda7をフォーマットする.
  →mkfs -t ext2 /dev/hda7 3333456
3.マウントする.
  →mount -t ext2 /dev/hda7 /mnt/hdd/


■カーネルのアップグレード
1.# apt-get install kernel
  →選択するapt-get install kernel#2.2.18-0vl4.2
2a.GRUBの設定
  →/boot/grub/menu.list
2b.LILOの設定
  →/boot/lilo.conf
    →/sbin/lilo
3.ヘッダファイルのインストール
  # apt-get install kernel-headers
4.再起動


■USB-HDDを使えるようにする.
1.機器を接続する.
2.ルートになる.
3.デバイスドライバを読み込む
    # modprobe usb-storage
4.書かれているかを確認する.
  # cat /proc/bus/usb/devices
5.機器が読み込まれているかを確認する.
  # dmesg
6.マウントポイントを作成する.
    # mkdir usb_hdd
7.マウントする.
    # mount -t vfat /dev/sda1 /mnt/usb_hdd


■ネットワークの設定
・IPアドレスの設定
 →/etc/sysconfig/network-scirpts/ifcfg-eth0
・ゲートウェイやホスト名の設定
 →/etc/sysconfig/network
・静的なルーティング情報の設定
 /etc/sysconfig/static-routesに以下のように書き込む.
 eth1 net 192.168.3.0 netmask 255.255.255.0 gw 192.168.0.46
  eth1 host 192.168.3.4 netmask 255.255.255.0 gw 192.168.0.46
・ネットワーク設定の反映
 etc/init.d/network restart
・IPアドレスの一時的なallocation
  # ifconfig eth0 192.168.2.1 netmask 255.255.255.0
・ホスト名の一時的なallocation
 # hostname hoge

(注意点)/etc/sysconfig/networking/profiles/default/ifcfg-eth0
があると/etc/sysconfig/network-script/ifcfg-eth0が読まれない。


■DNS
・DNSへの問い合わせを行わない
 /etc/resolv.conf のnameserverをコメントアウトする


■コマンド実行の調査
starace -f -o /tmp/out.txt ./hoge.exe


■起動スクリプトの作成
1./etc/rc.d/init.d/test(スクリプト)を作成する.
  #!/bin/sh
    case "$1" in
      start)
      /usr/bin/eject cdrom
      ;;
      stop)
      ;;
    esac
    exit
2.シンボリンクをはる.
   →ln -s ../init.d/test ../rc5.d/S18teststart


■シンボリックリンク
・シンボリックリンクを張る(Aに元のファイルがあり、Bからリンクを張る)
 ln -s A/ B/

・シンボリックリンクを削除
 1. ln -f -s A/
  2. rm A/


■環境変数の設定
$ export http_proxy="http://hoge:password@proxy.co.jp:8080"
$ export ftp_proxy="http://hoge:password@proxy.co.jp:8080"
$ export


■イメージファイル(initrd.img)の編集
1.zcat /mnt/floppy/initrd.img > /tmp/initrd-fd
2.mount -o loop /tmp/initrd-fd /mnt/initrd 
3./mnt/initrd 以下を編集する.
4.更新する.
  gzip -9 < /tmp/initrd-fd > /mnt/floppy/initrd.img


■ドライバ
・ドライバの読み込み
 modprobe (ドライバ名)
・ドライバの場所
 /lib/modules/2.4.〜/kernel/drivers/net/
・使用モジュール
 /etc/modules.conf
・モジュールの確認
 $ lsmod


■ネットワークカードの認識方法
1.ネットワークカードを挿す
2./etc/sysconfig/network-script/ifcfg-eth* の設定
3./etc/modules.conf に"alias eth* (ドライバ名)"を追加


■経路テーブル
参照:route, netstat -nr
追加:
route add -net 192.168.2.0 netmask 255.255.255.0 dev eth0 gw 192.168.2.1
route add -host 192.168.2.24 netmask 255.255.255.0 dev eth0 gw 192.168.2.1
route add default gw 192.168.2.1
削除:route del (same)
拒否:route add -net 192.168.2.0 netmask 255.255.255.0 reject 


内部設定
・ロードアベレージの参照
 uptime
・解像度
 →/etc/X11/XF86Config-4
 →Section "Monitor" および Section "Screen" を変更する.


■設定の参照
・現在のパス
 $ echo $PATH
・PINGを行ったマシンのホスト名,IPアドレスおよびMACアドレス
  $ arp -a
・全プロセス
 $ ps aux
・スペック
 $ cat /proc/cpuinfo
  $ cat /proc/meminfo
・マウントされているHDDの容量
 $ df
・ディレクトリの容量(Mbytes)
  $ du -sm hogehoge/


■ビープ音を消す
set bell-style visible を ~/.bashrc に記述
set prefer-visible-bell を ~/.inputrc に記述



 --- * --- * --- * --- * --- 
 アプリ
 --- * --- * --- * --- * --- 

■OpenSSL
・RSA
 + 公開鍵生成
  openssl rsa -in private.pem -out public.pem -pubout -outform PEM
 + 暗号化
 	openssl rsautl -encrypt -pubin -inkey public.pem -in plain.txt -out enc.dat
  + 復号
  openssl rsautl -decrypt -inkey private.pem -in enc.dat -out plain2.txt
  + 署名データの作成
  openssl rsautl -sign -inkey private.pem -in plain.txt -out sign.dat
  + 署名データからオリジナルデータの復元
  openssl rsautl -verify -certin -inkey cert.pem -in sign.dat
・擬似乱数
 + 生成
  openssl rand -out rand.dat -rand iv.dat 16
・SHA1
 + ハッシュ値生成
  openssl dgst -sha1 -binary -out output.dat input.txt


■ftp
・scpのように一度にダウンロードする.
 →ftp://usrname:passwd@192.168.254.1/home/usrname/...
・ftpをフォワードできるようにする(FW)
 →vi /etc/rc.local に以下を追加
   #ftp module load
      modprobe ip_conntrack_ftp
      modprobe ip_nat_ftp


■iptables
・IP転送の設定
 1./etc/sysctl.confでnet.ipv4.ip_forward=1
  2.リブート
 3."# sysctl net.ipv4.ip_forward" で確認
・設定
 1."# vi iptables.sh" で内容作成
 2."# ./iptables.sh"
 3."# /sbin/service iptables save"
    →/etc/sysconfig/iptablesが生成される.
 4."# chmod 700 /etc/sysconfig/iptables"
 5."# service iptables restart" 
        →リブートでも良い.
・FWのMACアドレス制御の例
  iptables -A INPUT -i eth1 -m mac --mac-source 00:00:00:00:00:00 -j DROP
  iptables -A FORWARD -i eth1 -m mac --mac-source 00:00:00:00:00:00 -j DROP
・チェック対象ALLのうちSYNがセットされたフラグが対象(SYNパケットのドロップ)
 →iptables -A FORWARD -i eth0 -p tcp --tcp-flags ALL SYN -j DROP
・SYN ACKパケットのドロップ
 →iptables -A FORWARD -i eth0 -p tcp --sport 80 --tcp-flags SYN,ACK SYN,ACK -j DROP
・DNATの変換後IPアドレスに範囲を設ける
 iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 
  192.168.1.1-192.168.1.10
  # 10種類の宛先にランダムに変換


●vi
・1画面進む Ctrl + f
・1画面戻る Ctrl + b
・移動
  1行目  1G
    100行目 100G
    文末    G


●tcpdump
・普通の使い方
  tcpdump -q -i eth0 port http  #q:簡単表示
  tcpdump -i eth0 -X -s 1600  #1600バイトのダンプ(デフォルトは68バイト)
  tcpdump host 192.168.2.2  #host限定
・tcptraceとの組み合わせ
  1.tcpdump -n -i eth0 tcp port 22 -w 1.dmp
  2.tcptrace 1.dmp
  n:アドレス未解決, nn:アドレスとポートを未解決
・シーケンス番号を完全に表示
  -Sをつける
・MACアドレスの表示
  -eをつける
・SYNのみの表示
 tcpdump 'tcp[13] & 18 == 2'
 →tcpの13バイト目と18(00010010)の論理積が2であるならSYNパケットである。
・SYNまたはSYN-ACKの表示
 tcpdump 'tcp[13] & 2 == 2'


●nmap
・マシン探索(フルコネクション)
  nmap -sT -P0 192.168.20.1-254 -p 80
・マシン探索(ハーフコネクション)
  nmap -sP -P0 192.168.20.1-254 -p 80
 -P0は事前に80番へSYNを出さない.
・オプションT(スキャン速度)
  -T 0:5分以上の間隔
  -T 1:15秒間隔
  -T 2:0.4秒間隔
  -T 3:
  -T 4: 
  -T 5: 


■ファイルの暗号化・復号
・暗号化
 gpg --symmetric data.txt
・復号
 gpg data.txt.gpg
・パスフレーズによるバッチ処理
 gpg (passphrase) | gpg --passphrase-fd 0 --batch -c data.txt
・パスフレーズ書いてあるファイルによるバッチ処理
 cat passphrase.txt | gpg --passphrase-fd 0 --batch -c data.txt


■アンチウィルスチェック(F-Plot)
・/home 配下のウィルスチェック
 f-plot /home

(http://vine.1-max.net/f-prot.html参照)


■nessus
・概要
 クライアントとサーバがあり,脆弱性探索ツール.
 クライアントからサーバを操作してサーバから攻撃をしかける.
・インストール
 1.nessus-libraries-2.0.12.tar.gz のインストール
 2.libnasl-2.0.12.tar.gz のインストール (configureで--enable-cipherをつける)
 3.nessus-core-2.0.12.tar.gz のインストール
 4.nessus-plugin-2.0.12.tar.gz のインストール
 5.ライブラリのコピー
   cp /usr/local/lib/libnasl.so.2 /usr/lib/
     cp /usr/local/lib/libnessus.so.2 /usr/lib/
     cp /usr/local/lib/libhosts_gather.so.2 /usr/lib/
     cp /usr/local/lib/libpcap_nessus.so.2 /usr/lin/
・使い方
 1.コンソール画面に立つ
 2.nessus-mkcert
    →ほとんどそのままリターンでよい.
 3.nessus-adduser
    →クライアントからサーバにログインするための設定


●snort
1.snortの入手(http://www.snort.org/dl/)
2.libpcap-***.rpmのインストール
3.snortのインストール


■top
・プロセス番号1234のCPUとMEMを10回測定する.
  top p 1234 n 10
・更新
    space
・終了
  q


■時刻合わせ(ntp)
【サーバの設定】
 1./etc/ntp.confの修正
    →アクセス制御を無くすには?
   restrict default ignoreをコメントアウトする.
    →特定ネットワークの許可
      restrict 192.168.2.0 を追加
 2.ntpdの起動
   "# /etc/rc.d/init.d/ntpd start"

【クライアントでの使用方法】
 1.ルートになる
 2.時刻の取得の例
   "# /usr/sbin/ntpdate ntp1.tohoku.ac.jp (130.34.11.117)"
 3.ハードウェアクロックに設定
   "# /usr/sbin/hwclock --systohc"


■crond
・編集
  1.rootになる.
  2./etc/crontabを編集する.次のような行を最後に追加します.
    この例では毎日AM5:12に、自動的にバックアップされます。
    12 05 * * * root /root/backup.sh
       注)最後はリターンを入れること
  3.crondを再起動します。
    /etc/rc.d/init.d/crond restart
     *)分 時(1-24) 日(1-31) 月 曜日(0-7,0=7=Sun) user ジョブ 
         の順になっている.
・一般ユーザによるcron
  1.crontab -eで入力
    0 * * * * perl auto_ftp.pl(1時間毎に実行される)
  2.crontab -lで確認
  3.crontab -rで全てのcronを消去
   (例)
   */5 * * * *   root /root/test.sh (5分毎に)
   0   * * * *   omote /home/omote/test.sh (1時間毎に)
   30  8 * * 1,2 omote /home/omote/test.sh (月と火の8時半に)
   #1月と12月それぞれの1〜20日,23時0分に実行する
   * 23 1-20 1,12 * /root/test.sh
  注)test.shはフルパスで書き,中身もフルパスで書くこと


■NFS
【serverの設定】
 0.nfsとportmapを起動しておく.
 1./etc/hosts, /etc/hosts.deny, /etc/hosts.allowを編集する.
   →/etc/hosts.denyではALL : ALLを追加
   →/etc/hosts.allowではALL : 192.168.1.0/255.255.255.0を追加
 2.ディレクトリ”/nfs”を作成する.
   →mkdir /nfs
 3./etc/exportsでマウントを許可するディレクトリとユーザを設定する.
   →/nfs/ prime01(rw)を追加
 4.export -a
 5./etc/rc.d/init.d/nfs restart
 6.マウント内容を確認
   →showmount -e localhost
【clientの設定】
 0.nfsとportmapを起動しておく.
 1.サーバの確認
   →showmount -e server's IP
 2.マウントのためのディレクトリを作成する.
   →mkdir -P /mnt/hd
 3.マウント
   →mount -t nfs prime08:/master/ /mnt/hd


■tftp
【サーバ】
 1.tftp-server-*.rpmをインストール
 2./etc/xinetd.d/tftpを変更
    →server -args の"-s"を取る.
    →disableを"no"にする.
 3.xinetdの再起動
【クライアント】
 1.tftp-*.rpmをインストール
 2.test.txtファイルのコピー
    →"$ tftp 192.168.2.1:/tftpboot/test.txt"


■netperf
【サーバ】
 ・netserverを起動する.

【クライアント】
 ・netperf -H (server's IP)


■DHCPサーバ
1.設定ファイル(/etc/dhcpd.conf)の作成
  server-identifier server.abc.or.jp; --->(1)
  shared-network DHCP { --->(2)
    option domain-name-servers nx01.abc.or.jp; --->(3)
    option domain-name "hogehoge.gr.jp"; --->(4)
    option routers 192.168.1.254; --->(5)
    option subnet-mask 255.255.255.0; --->(6)
    option broadcast-address 192.168.1.255; --->(7)
    default-lease-time 6000; --->(8)
    max-lease-time 72000; --->(9)

    subnet 192.168.1.0 netmask 255.255.255.0 { --->(10)
     range 192.168.1.64 192.168.1.126; --->(11)
    }
    } 

(1) DHCP サーバー自身のホスト名または IP アドレス.
(2) { } の範囲の設定に任意の名前を設定しログ参照時に確認しやすくする.
(3) クライアントに設定する DNS サーバー.
(4) ドメイン名.
(5) デフォルトルータ.
(6) サブネットマスク.
(7) ブロードキャストアドレス.
(8) デフォルトの DHCP リース時間.
(9) 最大の DHCP リース時間.
(10) subnet...{ からのサブネット毎の設定.
(11) リースできる IP アドレスの範囲.

2.ログファイルの作成
   →# touch /etc/dhcpd.leases
3.DHCPサーバの起動
   →# /etc/init.d/dhcpd start


■C言語からperlサブルーチンを利用する
1.コードの作成(ctest.c, ptest.plの中にsub_testサブルーチンが書かれている)
2.コンパイル
  gcc -o ctest -I/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE \\
                -L/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE \\
                -Dbool=char -DHAS_BOOL ctest.c -lperl -lm
3.コンパイルでlibperl.soに関するエラーが出たら
  ln -s /usr/local/lib/perl5/ppc-linux/5.00404/CORE/libperl.so \\
          /usr/local/lib/libperl.so 
4.実行
  ./ctest ptest.pl
注)ptest.pl内の修正は再コンパイルが不必要


■cu
1.uucp-*.rpmをインストールする.
2.cu -l ttyS0で使用する.


■awk
・スペース区切りの2つ目だけを表示
  awk '{print($2)}' #全て表示は$0
・置換(/ -> -)
  awk '{gsub("/","-");print ($1);}'
・正規表現を使った置換($5 -> -)
  awk '{gsub(".+\@","-",$5);print ($1);}'
・a.txtの4〜8行目を出力する
  cat a.txt | awk 'NR>=4&&NR<=8{print}'
・output.txt内において,正規表現で'remote [0-9]\+\/100'にマッチした行の/を
 削除して,その行の第一ブロックと第二ブロックのみを表示.
 正規表現では,9/100や21/100などがマッチ.
  cat output.txt | grep 'remote [0-9]\+\/100' | awk '{gsub("/","")};print($1,$3);'


■sed
・hoge1.txtのwinをlinuxに置換して、hoge2.txtとする
 cat hoge1.txt | sed -e 's/win/linux/g' > hoge2.txt 
・ディレクトリ内のlog20050101.txtの日時のみを表示
 ls | grep 'log' | sed -e 's/log//g' | sed -e 's/.txt//g'


■tsort
tsort a.txt
a.txt内の重複を消してソートする.


■イメージバックアップをとる
1.保存
  →dd if=/dev/hda(hda1) of=/mnt/hda.img bs=1024k
2.リストア 
  →dd if=/mnt/hda.img of=/dev/hda(hda1) bs=1024k


■CD−R
・イメージファイルの作成方法
   $ mkisofs -o a.iso -V boot_disk /mnt/cdrom 
・焼き方
   $ cdrecord -scanbusでCDRのアドレスを調べる.0,0,0
  $ cdrecord -eject speed=8 dev=0,0,0 hoge.iso
・CDからCDへ焼く方法
  $ mount /dev/cdrom
  $ dd if=/dev/cdrom of=/tmp/a.iso
  $ cdrecord -eject speed=8 dev=0,0,0 fs=8m -dummy /tmp/a.iso 
  fsはバッファサイズ,-dummyはテスト有り

■*.img → *.iso の作成方法
1.mkdir temp
2.mv hoge.img temp
3.mkisofs -R -J -b hoge.img -o hoge.iso temp


■MIBファイルの取得
【情報を提供するサーバの設定】
 1.設定ファイルの変更
   →/etc/snmp/snmp.conf
 2.snmpdを起動
   #/etc/rc.d/init.d/snmpd start
【情報を取得するクライアントの設定】
 1.net-snmp-utilsのインストール
 2.全メモリ容量
   $ snmpget -c public -v 1 (サーバIP) .1.3.6.1.4.1.2021.4.5.0
 3.空きメモリ容量
   $ snmpget -c public -v 1 (サーバIP) .1.3.6.1.4.1.2021.4.6.0
 4.CPU使用率(1分間の平均)
   $ snmpget -v 1 -c private localhost .1.3.6.1.4.1.2021.10.1.5.1
 5.様々な情報
   $ snmpwalk -Os -c public -v 1 (サーバIP) system
・snmpツリーを表示する
 snmptraslate -Tp


■apt-get(ftpベース)
【インストール】
http://apt.freshrpms.net/からRedHat9用のRPMをダウンロードして
インストール
【設定】
 1.apt-getのインストール
 2.リポジトリ設定ファイル(/etc/apt/source.list)の変更
   →rpm ftp://ayo.freshrpms.net Linux/redhat/9/en/i386 os updates
   →rpm http://ayo.freshrpms.net redhat/9/i386 os updates
【使用】
 ・依存関係などのデータベースを更新する.
   #apt-get update
 ・パッケージのアップグレード(インストール済みパッケージを最新にする)
   #apt-get upgrade
 ・パッケージのインストール
   #apt-get install パッケージ名
 ・ディストリビューションごとアップグレードされます
   #apt-get dist-upgrade
 ・パッケージのアンインストール
   #apt-get remove パッケージ名
 ・パッケージの検索
   #apt-cache search 検索文字列
 ・パッケージの依存関係表示
   #apt-cache depends パッケージ名
【簡易apt-getサーバ構築方法】
 1.httpサーバの起動
 2.ディレクトリの作成
  →/var/www/html/rh9-apt/i386/base
  →/var/www/html/rh9-apt/i386/RPMS.os
  →/var/www/html/rh9-apt/i386/updates
 3.それぞれにファイルのコピー
  →os/RPMSの中身をRPMS.osに入れる


■コマンド
・IPからホスト名を検索
 1.$nslookup - root1.ocn.co.jp
 2.>172.20.149.49 と入力する
 3.>exit


■圧縮/解凍
gtar zxvf hoge.tar.gz
gtar zcvf hoge.tar.gz ./directory
bzip2 -dc fdlinux-2.1.tar.bz2 | tar xvf - (解凍)
bzip2 -dz hoge (圧縮) 
bunzip2 hoge.bz2 (解凍)


■ファイルの分割/復元
split -b 1000k hoge.jpg hoge.
→hoge.*のファイルが1000kずつ出来る.
cat hoge.* > hoge.jpg
→hoge.jpgに復元される.


■grep
・ファイルhoge.txt内のkeyのある行を大文字小文字を区別せずに検索表示
 grep -i "key" hoge.txt
・さらに行数を追加
 grep -in "key" hoge.txt
・さらに同じディレクトリ内の全てのファイルを対象
 grep -in "key" *
・先頭appleの検索
 grep '^apple'
・aで始まりbで終わる文字の検索
 grep 'a * b'
・先頭スペースの検索
 grep '^ '
・AまたはBの検索
 grep 'A\|B'
・tcpdumpのテキストログからSYNパケットの行を表示
 cat tcpdump_log.txt | grep ' S ' | grep -v ' ack '


■nkf
・jisへ変換して上書き
 nkf --overwrite -j hoge.txt
・sjisへ変換して上書き
 nkf --overwrite -s hoge.txt
・eucへ変換して上書き
 nkf --overwrite -e hoge.txt
・UTF8へ変換して上書き
 nkf --overwrite -w hoge.txt
・コードを推測する
 nkf -g hoge.txt


■rpmメモ
・インストール rpm -ihv hoge.rpm
・アンインストール rpm -e hoge.rpm
・アップデート rpm -Uvh hoge.rpm
・参照 rpm -qa | grep hoge
・リビルド rpm --rebuild hoge.src.rpm
・プログラムがどのrpmに含まれているかを検索
 rpm -qf /bin/login


■strace
・a.exeのstraceした結果をtemp.txtに吐き出す
 strace -o temp.txt a.exe


■gccコンパイル
sslライブラリが/libにあるから
 ->gcc hoge.c -o hoge -lssl
*warningは修正しなくてもよい.


■マウント
mount /dev/cdrom
mount /dev/fd0
(/etc/fstabに書き込まれているからこれでよい)
マウンド場所は /mnt/floppy/
アンマウントは umount /dev/fd0


■出力されたログを別プログラムでの参照方法
1.file1にログ出力するプログラムを起動
2.tail -f file1


■各種ツール
hping2:
・発信元偽装して最高速でeth0から192.168.1.1に対してUDP大量パケット送出
 hping2 192.168.1.1 --udp -i u1 -I eth0 --rand-source
newtear:
 UDPパケットのフラグメンテーションとDoS攻撃
 MACアドレスまでは偽造できない.
 newtear 172.20.149.1 172.20.149.2 -s 80 -t 23 -n 10
 //アドレス1の80番ポートからアドレス2の23番ポートへ10個のUDPパケットを投げる.
trash:
 ICMPパケットのフラグメンテーションとDoS攻撃
 MACアドレスまでは偽造できない.
 trash 172.20.149.1 172.20.149.2 10
  //アドレス1からアドレス2へ10個のパケットをフラグメントして投げる.
trash2:
 さらに送信元IPアドレスをランダムに偽装してもっと細かくフラグメントする.
 trash2 172.20.149.1 10 //アドレス1へ10個*10くらいのパケットを投げる.
mpac:
 1つだけTCPパケットを生成するツール.MACアドレスの指定も可能.
rain:
 TCP,UDP,ICMPにおけるパケット生成ツール.特定のマシンに対して
 パケットを生成できる.
 Usage: ./rain [options] -t 
オプション一覧
 -c		パケット数(指定無しは無限個)
 -d		送出間隔(初期値は15000microseconds)
 -s		SrcIP(0はランダム,初期値は127.0.0.1)
 -t     	TargetIP
 --size	        パケットサイズ(bytes)(初期値は1024)
 --dport | -p   TargetPort(初期値は138)
 --sport        SrcPort(初期値は420)
 --sim          既知攻撃をシミュレーション (--help --sim for a list of attacks)
 --udp          Use UDP shower
 --tcp          Use TCP shower (Default)
 --stream       Use a streaming, non-spoofed TCP send shower (--help --stream)
 --connect      Use a streaming, non-spoofed TCP connect shower (--help --connect)
 --seq          Specifies the TCP sequence number; Default is process ID
 --win          Specifies the TCP window size; Default is 56
 --urg          Use TCP URG shower
 --ack          Use TCP ACK shower
 --ack-seq      Specifies the initial TCP acknowledgement sequence; Default is 0
 --psh          Use TCP PSH shower
 --rst          Use TCP RST shower
 --syn          Use TCP SYN shower (Default)
 --fin          Use TCP FIN shower
 --icmp         Use ICMP shower
 --icmp-type    Set ICMP type (--help --icmp-type)
 --icmp-code    Set ICMP code (--help --icmp-code)
 --igmp         Use IGMP shower
 --igmp-type    Set IGMP type (--help --igmp-type)
 --igmp-code    Set IGMP code (--help --igmp-code)
 --frag         Set fragment offset; Default is 0 (--help --frag)
 --tos          Specifies Type of Service value (--help --tos)
 --ttl          Specifies the Time to Live of the packet; Default is 64
 --id           Specifies the id sequence of the packet; Default is the process ID
 --id-of        When specified, rain will overflow the id field of the packet by
                increasing it with each send by one (used with -c 0)
 --version | -v Prints version information
 --help         Prints this help menu