Hatena::ブログ(Diary)

ツユダクの肉増しのRuby on Railsの初心者で このページをアンテナに追加 RSSフィード

2014-04-07

iptablesを

| 22:48 | iptablesを - ツユダクの肉増しのRuby on Railsの初心者で を含むブックマーク iptablesを - ツユダクの肉増しのRuby on Railsの初心者で のブックマークコメント

パケットフィルタする機能。

今はこれを使うのがナウいっぽい。

$ sudo apt-get install iptables-persistent

iptables-persistent は /etc/iptables/rules.v4とrules.v6を読み込む起動スクリプト
ルールは /etc/iptables/rules.v4 に書く。

*filter

# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allows all outbound traffic
# You could modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

# Allows SSH connections for script kiddies
# THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

# Now you should read up on iptables rules and consider whether ssh access 
# for everyone is really desired. Most likely you will only allow access from certain IPs.

# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# log iptables denied calls (access via 'dmesg' command)
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

# Reject all other inbound - default deny unless explicitly allowed policy:
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT

etc/iptables/rules.v6は使ってないならDROPで。

反映

sudo service iptables-persistent start|restart

今の定義を全部消したい時

sudo /sbin/iptables -F 

今の定義の確認

sudo /sbin/iptables -L


http://d.hatena.ne.jp/mercysluck/20120211/p1

2014-02-03

Linuxで脆弱性検知するRootKit Hunter

| 20:06 | Linuxで脆弱性検知するRootKit Hunter - ツユダクの肉増しのRuby on Railsの初心者で を含むブックマーク Linuxで脆弱性検知するRootKit Hunter - ツユダクの肉増しのRuby on Railsの初心者で のブックマークコメント

インストールして辞書をアップデートして検査実行するだけなのでお手軽すぎ。ふいた。

install

$ sudo apt-get install rkhunter 

rootkit情報のアップデート

定期的にやるやつ。

$ sudo rkhunter --update

実行

$ sudo rkhunter --check

実行すると区分毎にチェックしてくみたいようで何度かエンターを押す必要がある。

診断内容は、

  1. コマンドの改ざんされてないか
  2. rootkitワームが仕掛けてられてないか
  3. バックドアトロイが仕掛けてられてないか
  4. 起動ファイルに不審な仕掛けがないか
  5. パスワードの設定されていなにアカウントはないか
  6. sshでのrootログインが禁止sれているか
  7. syslog/rsyslogデーモンが起動しているか
  8. /dev以下に不審なファイルがないか
  9. Apacheとかのソフトウェアは問題のないバージョンか

て感じっぽい。

穴探すために定期的にやりたいかも。

2014-01-19

ログ監視して特定の文字がある場合に何かするツール swatch

| 14:51 | ログ監視して特定の文字がある場合に何かするツール swatch - ツユダクの肉増しのRuby on Railsの初心者で を含むブックマーク ログ監視して特定の文字がある場合に何かするツール swatch - ツユダクの肉増しのRuby on Railsの初心者で のブックマークコメント

ログ監視といえばtailコマンドがあるけど、人が張り付く必要があるので自動化したツール『swatch』というのがある。
http://www.atmarkit.co.jp/ait/articles/0211/12/news002_3.html
http://blog.jojo.jp/?eid=1330087
ログ監視は他にもあるみたいだけどとりあえずこれで。頭文字のsは Simple の意っぽい。

よくわからないけどswatchはユーザ空間での使用が想定されているようで、
aptで入れたのに/etc/init.dに初期化スクリプトが作られない。
初期化スクリプトが作られない理由は、tailでの人間張り付きをプログラムで代行しようとしてるだけだからなのかも。

環境

swatch
This is swatch version 3.2.3
Built on May 7, 2008
Built by E. Todd Atkins <Todd.Atkins@StanfordAlumni.ORG>

古いw

Perl

This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-gnu-thread-multi
(with 80 registered patches, see perl -V for more detail)

OS

3.2.0-4-amd64 #1 SMP Debian 3.2.46-1 x86_64 GNU/Linux

インストール

$ sudo apt-get install swatch

Perl製。インストールはこれだけで全部入ってくる。

設定ファイルかく

ホームディレクトリに.swatchrcを作り、そこに検出パターンとその後のアクションを記述する。

.swatchrc
watchfor /hoge/
  exec "echo 'hogeが見つかりました!!!!!'"
  continue  

continueキーワードは、検出後に継続して監視するようにする。
書かないとプロセスは終了する。

動かす

オプションtで監視するファイルを指定する。指定しないと、/var/log/messagesを見てた。
複数ファイルを監視したい時は -t "hoge.log foo.log"みたいな感じで。
screenでもう1つシェルを起動してecho "hoge" >> nemui.logした後の様子。

$ swatch -t nemui.log
*** swatch version 3.2.3 (pid:20826) started at Sun Jan 19 14:11:37 JST 2014

/usr/bin/tail: hoge.log: file truncated
hogeが見つかりました!!!!!

なんかのエラーとか再起動したとかのメール送信に使うものっぽい。
監視対象はただのテキストでよいのでログ監視以外でもなんか使えるかも。

2013-11-14

gem install で OpenSSL::SSL::SSLError

| 21:57 | gem install で OpenSSL::SSL::SSLError - ツユダクの肉増しのRuby on Railsの初心者で を含むブックマーク gem install で OpenSSL::SSL::SSLError - ツユダクの肉増しのRuby on Railsの初心者で のブックマークコメント

久々にVPSでgemを入れたらエラーになった。

$ gem i passenger
ERROR:  While executing gem ... (OpenSSL::SSL::SSLError)
    SSL_connect returned=1 errno=0 state=SSLv3 read server hello A: wrong version number

たぶんここに書いてることっぽい。
http://railsapps.github.io/openssl-certificate-verify-failed.html

エラーメッセージは、 OpenSSLがサーバー証明書を検証できなかったため、接続が失敗したことを示します。
あなたは新しいRailsアプリケーションを作成し、エラーが表示される場合、それはあなたのコンピュータ上のOpenSSL証明書ファイルを更新する必要がある

githubのリポジトリにとりにいく時にSSL通信になって、その時にサーバ証明書を検証できなくてエラーになっているらしい。
このエラーをなくすには、サーバ証明書を検証できるようOpenSSL証明書ファイルを更新しないといけないらしい。

$ rvm reinstall 2.0.0 --with-openssl-dir=`brew --prefix openssl` --verify-downloads 1
.
.
.
Making gemset ruby-2.0.0-p247 pristine. - using Zsh, can not show progress, be patient...
Making gemset ruby-2.0.0-p247@global pristine. - using Zsh, can not show progress, be patient...
$ gem i passenger
Fetching: daemon_controller-1.1.7.gem (100%)
Successfully installed daemon_controller-1.1.7
Fetching: rack-1.5.2.gem (100%)
Successfully installed rack-1.5.2
Fetching: passenger-4.0.23.gem (100%)
Building native extensions.  This could take a while...
Successfully installed passenger-4.0.23
3 gems installed

2013-09-26

nginxでBasic認証をする

| 20:00 | nginxでBasic認証をする - ツユダクの肉増しのRuby on Railsの初心者で を含むブックマーク nginxでBasic認証をする - ツユダクの肉増しのRuby on Railsの初心者で のブックマークコメント

nginx version: nginx/1.4.1
Linux debian 3.2.0-4-amd64

サイトにBasicかけたかったので調べた。
nginxがBasic認証時に使う認証ファイルの生成には、apacheが使っているモジュールと同じものを使う。
認証ファイルの生成はapache2-utilsというソフトウェアを使う。
apacheに同梱されてるものだと思うけど今回の環境でapacheは入れてないのでapache2-utilsをインストールした。

インストール

sudo apt-get install apache2-utils

Basic認証ファイル

$ sudo htpasswd -c /etc/nginx/htpasswd "#{ユーザ名}"
New password:
Re-type new password:
Adding password for user hoge

htpasswdというファイルが生成される。
上で入力したユーザ名と入力したパスワードがBasic認証時に必要になる。

設定ファイルにかく

nginx.conf

    location / { 
+        auth_basic "Restricted";
+       auth_basic_user_file /etc/nginx/htpasswd;
    .......

認証をかけたいlocationディレクティブに上の2行を書けばOK。