Skip to main content

79 posts tagged with "Linux"

View All Tags

Linux: Tripwireの運用サイクルの基本 - ポリシー設定から改竄チェック〜DB更新

· 10 min read
Yu Sasaki
Enterprise Security Manager / Advisor

前回の記事に続けて、Tripwireの初期設定、ファイル改竄チェック、レポートファイルの確認、そしてデータベースファイルの更新方法等の改竄検知の運用サイクルを記載。実施環境等は前記事をご参照。また、ここではポリシーファイルの詳細な説明は省く。あくまでツールの基本的な使い方の流れを説明。参考サイトは例によって記事末尾に掲載。 少し復習から入るが、Tripwireでは2つの鍵ファイル(site key, local key)を利用してファイルの暗号化(や署名)を行い、(インストール時に設定を求められたやつ。)site keyはTripwireの設定・ポリシーファイルを保護、local keyはTripwireのデータベースとレポートを保護するもの。 一つのポリシーファイルを複数のホストに適用し、ポリシー制御を集中させ、DB管理とレポートの生成はサーバー個々に分散させる手法もある。

VMware Fusion のゲスト(仮想)マシンのIPアドレスの固定化

· 3 min read
Yu Sasaki
Enterprise Security Manager / Advisor

本記事はVMware Fusion上の仮想(ゲスト)マシン上でサーバサービスを起動してホスト(Mac)側から常時固定IPでアクセスしたい場合や、Retina Displayを活用するべくホスト側の対応コンソールを用いてRetina非対応のゲストマシンに手軽にsshログインしたい場合に有用なテクニック。 IPアドレスの固定化の手段は2通りあり、一つはゲスト側で固定IPを設定する手順、二つめはホスト側・VMware側のネットワーク設定にてゲスト側のIPを固定化する手順。本記事は後者の手法をゲストのDebian Linuxを用いて紹介。(当手順は対象がWindows系であっても使用可能)

Linux: iptablesのフィルタチェインの種類とパケットフィルタ順序

· 2 min read
Yu Sasaki
Enterprise Security Manager / Advisor

iptablesのパケットのフィルタチェインの処理フローを復習したので下記に纏める。基本技術なので参考文献が充実しており今更感があるが、手を動かしておかないと忘れそう。。当記事の後続はiptablesコマンドによるルールの設定やnmapによるスキャン検査を記載予定。尚、参考サイトはいつも通り記事末尾に記載(公式ドキュメントで理解を深める or iptableって?方向け)。

Linux: sshd デーモンの設定、開始・終了・再起動コマンド

· One min read
Yu Sasaki
Enterprise Security Manager / Advisor

sshdの設定と基本操作に関して復習した為、その結果を下記に纏める。

sshd_config設定ファイル

ファイルパスは通常/etc/ssh/sshd_config 。設定記述と各項目の説明は下記リンクをご参照。自身がよく使う設定ディレクティブについて実際の設定ファイルの右記に説明を入れている。説明内容は参考サイトを元にサマライズしている。 sshd_config設定一覧 尚、元となったconfigファイルはDebian 6に導入したOpenSSH_5.5p1 (設定内容については一部修正)。 下記はデーモンの基本操作。(全てrootユーザー権限で実行。)

デーモンの開始

# /usr/sbin/sshd

フルパスで実行。

デーモンの終了

# kill `cat /var/run/sshd.pid`

インストール時のconfigure設定にもよるが、sshd.pidファイルにプロセスIDを書き込むため、これを利用。

デーモンの再起動

# kill -HUP `cat /var/run/sshd.pid`

但し、既に実行されている子プロセスのssh接続は上記のコマンドでは終了されない。

参考サイト

ssh: tarコマンドによるファイル一括転送及び展開

· 2 min read
Yu Sasaki
Enterprise Security Manager / Advisor

ローカルホスト上のsshコマンドを実行する際の標準入力はリモートホストで実行するコマンドの標準入力として送出される。 例として、カレントディレクトリのファイル(a.txt, b.txt, c.txt)をリモートホスト上の指定ディレクトリにtar書庫で転送し展開するコマンドは下記の通り。

ローカルホスト上のプロンプト

$ ls
a.txt b.txt c.txt
$ tar zcf - * | ssh yu@172.16.56.168 tar zxf - -C /home/yu/test
yu@172.16.56.168's password:
$

tarコマンドのファイル名を指定するべき引数に「-」(ハイフン)を指定すると標準入力/標準出力となる。

リモートホスト上のプロンプト

$ pwd
/home/yu/test
$ ls
d.txt e.txt f.txt
<ローカル側でsshコマンド実行>
$ ls
a.txt b.txt c.txt d.txt e.txt f.txt

また、話変わってリモートホストで実行するコマンドの標準出力・エラー出力は、ローカルホスト上のsshコマンドの標準出力・エラー出力となる。 例として、リモートホストの指定ディレクトリのファイルをカレントディレクトリにtar書庫で転送し展開するコマンドは下記の通り。

リモートホスト上のプロンプト

$ pwd
/home/yu/test
$ ls
a.txt b.txt c.txt d.txt e.txt f.txt
$ cat *
a
b
c
d
e
f
$

ローカルホスト上のプロンプト

$ pwd
/home/yu/test
$ ls
$ ssh yu@172.16.56.168 'cd /home/yu/test ;tar zcf - * ' | tar zxf -
yu@172.16.56.168's password:
$ ls
a.txt b.txt c.txt d.txt e.txt f.txt
$ cat *
a
b
c
d
e
f
$

参考サイト

Linuxコマンド集 - 【 tar 】 ファイルを書庫化・展開する(拡張子.tarなど):ITpro

Linux: SUID, SGIDプログラムの検索 - findコマンド

· 5 min read
Yu Sasaki
Enterprise Security Manager / Advisor

Linuxシステム内のプログラムのパーミッションににSUID(set user-ID)ビットもしくはSGID(set group-ID)ビットが設定されていると、プログラムの実行ユーザの権限ではなく、プログラムの所有ユーザ、グループの権限で実行される。(IBM i の借用権限みたいなものかな)例として、ユーザのパスワード変更コマンドであるpasswdコマンドがある。

# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 Feb 22 2012 /usr/bin/passwd

passwdコマンドはその他一般ユーザから実行可能であり、かつ下記の/etc/passwdファイルを編集する権限も必要である為、SUIDビットを立てている。

# ls -l /etc/passwd
-rw-r--r--. 1 root root 1686 Jun 27 19:31 /etc/passwd

SUID, SGIDビットのプログラムはユーザに対して高権限を与える側面もある為、システム攻撃者のバックドアプログラム/スクリプトとして悪用されることもある。これらを発見する手段の一つとして下記のコマンドがある。

# find / \( -perm -4000 -or -perm -2000 \) -type f -exec ls -la {} \;

簡単に解説すると()内の-permが検索対象のパーミッション設定、-type fで通常ファイルタイプを検索、-execでfind検索結果を-execの後続のコマンドに渡す。その際{}の箇所に検索結果を渡せる。VM上のLinuxで実行した結果は下記の通り。

# find / \( -perm -4000 -or -perm -2000 \) -type f -exec ls -la {} \;
find: `/proc/3652/task/3652/fd/5': No such file or directory
find: `/proc/3652/task/3652/fdinfo/5': No such file or directory
find: `/proc/3652/fd/5': No such file or directory
find: `/proc/3652/fdinfo/5': No such file or directory
-rwsr-x---. 1 root dbus 50552 Sep 14 2012 /lib64/dbus-1/dbus-daemon-launch-helper
-rws--x--x. 1 root root 14280 Oct 14 17:14 /usr/libexec/pt_chown
-rwsr-xr-x. 1 root root 11080 Sep 20 03:40 /usr/libexec/polkit-1/polkit-agent-helper-1
-rwx--s--x. 1 root utmp 9808 Aug 19 2010 /usr/libexec/utempter/utempter
-rwsr-xr-x. 1 root root 224912 Feb 22 2013 /usr/libexec/openssh/ssh-keysign
-rwsr-xr-x. 1 root root 12872 Jul 12 2012 /usr/libexec/pulse/proximity-helper
-rwsr-xr-x. 1 abrt abrt 5792 Sep 26 22:11 /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache
-rwx--s--x. 1 root utmp 17160 May 23 00:10 /usr/lib64/vte/gnome-pty-helper
-rwsr-xr-x. 1 root root 61152 Nov 13 2012 /usr/lib64/nspluginwrapper/plugin-config
-r-sr-xr-x. 1 root root 10224 Feb 18 2013 /usr/lib/vmware-tools/bin64/vmware-user-suid-wrapper
-r-sr-xr-x. 1 root root 9532 Feb 18 2013 /usr/lib/vmware-tools/bin32/vmware-user-suid-wrapper
-rwsr-xr-x. 1 root root 30768 Feb 22 2012 /usr/bin/passwd
-rwsr-xr-x. 1 root root 36144 Dec 8 2011 /usr/bin/newgrp
-rwxr-sr-x. 1 root tty 12016 Apr 29 2013 /usr/bin/write
---s--x---. 1 root stapusr 162584 Feb 22 2013 /usr/bin/staprun
-r-xr-sr-x. 1 root tty 15224 Jul 19 2011 /usr/bin/wall
-rws--x--x. 1 root root 20056 Apr 29 2013 /usr/bin/chsh
-rwsr-xr-x. 1 root root 18072 Sep 20 03:40 /usr/bin/pkexec
-rwsr-xr-x. 1 root root 71480 Dec 8 2011 /usr/bin/gpasswd
-rwxr-sr-x. 1 root mail 20392 Aug 19 2010 /usr/bin/lockfile
-rwsr-xr-x. 1 root root 47520 Jul 19 2011 /usr/bin/crontab
-rwsr-xr-x. 1 root root 54240 Jan 30 2012 /usr/bin/at
-rwxr-sr-x. 1 root nobody 112704 Feb 22 2013 /usr/bin/ssh-agent
-rwx--s--x. 1 root slocate 38464 Oct 10 2012 /usr/bin/locate
-rwsr-xr-x. 1 root root 2214792 Oct 16 03:56 /usr/bin/Xorg
-rws--x--x. 1 root root 20184 Apr 29 2013 /usr/bin/chfn
---s--x--x. 1 root root 123832 Feb 22 2013 /usr/bin/sudo
-rwsr-xr-x. 1 root root 66352 Dec 8 2011 /usr/bin/chage
-rwxr-sr-x. 1 root smmsp 833512 Nov 12 2010 /usr/sbin/sendmail.sendmail
-rwxr-sr-x. 1 root postdrop 213736 Dec 3 2011 /usr/sbin/postqueue
-rwsr-xr-x. 1 root root 9000 Aug 5 22:21 /usr/sbin/usernetctl
-rws--x--x. 1 root root 41136 Aug 23 2010 /usr/sbin/userhelper
-r-s--x---. 1 root apache 13984 Aug 14 02:30 /usr/sbin/suexec
-rwxr-sr-x. 1 root postdrop 180808 Dec 3 2011 /usr/sbin/postdrop
-rwx--s--x. 1 root lock 15808 Aug 19 2010 /usr/sbin/lockdev
-rwsr-xr-x. 1 root root 53472 Apr 29 2013 /bin/umount
-rwsr-x---. 1 root fuse 32336 Dec 8 2011 /bin/fusermount
-rwsr-xr-x. 1 root root 34904 May 23 20:00 /bin/su
-rwsr-xr-x. 1 root root 40760 Sep 26 23:35 /bin/ping
-rwsr-xr-x. 1 root root 36488 Sep 26 23:35 /bin/ping6
-rwsr-xr-x. 1 root root 77336 Apr 29 2013 /bin/mount
-rwxr-sr-x. 1 root root 8792 Aug 5 22:21 /sbin/netreport
-rwsr-xr-x. 1 root root 10272 Feb 22 2013 /sbin/pam_timestamp_check
-rwsr-xr-x. 1 root root 34840 Feb 22 2013 /sbin/unix_chkpwd

diffコマンドやcronと併用することで、定期的に差分チェックが可能。 仮に不要なビット設定がされているコマンドがあった場合は以下のコマンドでSUID, SGIDを削除する。

chmod u-s <ファイル名>
chmod g-s <ファイル名>

実行後の対象ファイルのパーミッションは通常のxに置き換わる。

Linux: tcpdumpコマンドによる通信パケットのキャプチャ(スニッフィング)

· 22 min read
Yu Sasaki
Enterprise Security Manager / Advisor

先日tcpdumpの復習をしたので、備忘録として使い方を下記にまとめておく。

tcpdumpとは

tcpdumpはほとんどのLinuxディストリビューション、及びWindows(Windowsバージョンではwindumpという)で使用できるパケットキャプチャー、基本的なフィルタリングが出来るコマンドベースのFreewareツール。sniffer(スニッファー)ツールにカテゴライズされ、スニッフィングの対象プロトコルはIP, TCP, UDP, ICMP。 (参考) Wikipedia : tcpdump - Wikipedia, the free encyclopedia

公式サイト

Kali LinuxへのVMWare Toolsのインストール

· One min read
Yu Sasaki
Enterprise Security Manager / Advisor

前回に引き続きBackTrackの後継であるKali LinuxへのVMWare Toolsのインストール方法を記載する。BTと比較してKaliは下記の2コマンドでインストールでき、Kaliを再起動すれば反映・起動が完了する。

# apt-get install open-vm-tools
# apt-get install open-vm-toolbox

追記 (2014-09-07)

kali 1.0.9では上記のコマンドでのインストールが出来ない為、VMWareメニューのVirtual Machine→Install VMware Toolを実行し、/media/cdrom0から適当なフォルダにVMwareTools*.tar.gzファイルを解凍しperlスクリプトを実行する。

# tar zxvf VMwareTools-9.6.2-1688356.tar.gz
# cd vmware-tools-distrib/
# ./vmware-install.pl

参考サイト

Linux: BackTrack5 R3にVMWare Toolsをインストール

· 13 min read
Yu Sasaki
Enterprise Security Manager / Advisor

VMWare Fusion上のBackTrackは初期状態だと、ホストOS(Mac)側とコピペやファイルのドラッグ&ドロップや画面サイズの動的変更機能が使えない。手動でVMWare Toolsをインストールする必要がある。手順は下記のサイトの通り。 VMware Tools - BackTrack Linux 下記は作業ログ。基本的にEnterの連打で完了する。インストール後に再起動すればToolsの反映・起動が完了する。

Linux: ルーティングでネットワーク遅延環境を構築 - iptables, tc

· 5 min read
Yu Sasaki
Enterprise Security Manager / Advisor

LinuxにiptablesのNAT設定とtcコマンドでネットワーク遅延環境を模擬的に構築してみたので、その手順を以下に記載する。欲を言えばクライント、サーバ側はStatic Routeに従ってルーティング出来るようルータールールの設定をしたかったが、リソース(主に時間)の関係上割愛。

環境

今回はMacのVMWare fusionで下記の3環境を用意した。左下のCentOS(ルーター部)以外は特にLinuxでなくとも良い。

192.168.11.8
+------------------+
| Kali Linux |-----+
+------------------+ |
+------------------+ | +-----------+
| CentOS (iptables)|-----+-------| BackTrack |
+------------------+ eth0 +-----------+
192.168.11.7 192.168.11.9

検証のイメージとしては、BackTrackからCentOS当てへのHTTPリクエストをKail Linux側へ転送、そのレスポンスをKali Linux経由でBackTrackが受信、Webページの表示を行う。CentOS側のインターフェイスに対してdelayをかけることで疑似的な遅延環境となる。(BackTrack側でtcコマンドを実行すれば話が早いのだが、上記であれば両端の環境がLinux以外のOSでかつ遅延設定できない環境でも対応できる)