Edit
目次

Edit
iptablesの設定

Edit
iptableインストール

INPUTは、サーバーに入力されるパケットに対する設定、FORWARDは、ルーターのような場合に設定する。OUTPUTは、サーバーから出力されるパケットに対する設定となります。
iptablesのマニュアル
ipatblesのmanpage
@ITのiptablesのサンプル
iptablesの設定具体例
Internet のソケット番号一覧
iptablesコマンド表
iptablesのチュートリアル

Edit
iptables設定ファイルの設定

# emacs /etc/sysconfig/iptables
  :INPUT ACCEPT [0:0]
  :FORWARD DROP [0:0]
  :OUTPUT ACCEPT [1457:149179]
  :FW-001 - [0:0]
  -A INPUT -j FW-001
  -A FW-001 -i lo -j ACCECT                             # loopback accept
  -A FW-001 -p icmp -m icmp --icmp-type any -j ACCEPT
  -A FW-001 -p esp -j ACCEPT
  -A FW-001 -p ah -j ACCEPT
  -A FW-001 -m state --state RELATED,ESTABLISHED -j ACCEPT
  -A FW-001 -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
  -A FW-001 -p udp -m state --state NEW -m tcp --dport 53 -j ACCEPT
  -A FW-001 -p udp -m state --state NEW -m tcp --dport 67 -j ACCEPT
  -A FW-001 -p udp -m state --state NEW -m udp --dport 68 -j ACCEPT
  -A FW-001 -p tcp -m state --state NEW -m udp --dport 80 -j ACCEPT
  -A FW-001 -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
  -A FW-001 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -s 192.168.0.0/16
  -A FW-001 -j REJECT --reject-with icmp-host-prohibited

プロトコルの説明 (Protocol list )

プロトコル番号プロトコル名主な機能
1icmp(Internet Control Message)pingなどに利用する、TCPとUDPを補助する特殊なプロトコル
6tcp(Transmission Control)いわれる基本プロトコル通常の通信はこれを利用
17udp(User Datagram)一方的にデータを送るプロトコルで、データの到着確認がない
50esp(Encap Security Payload)IPsecに利用されるプロトコル
51ah(Authentication Header)IPsecに利用されるプロトコル

Edit
BruteForceAttack対策

何度もログインチャレンジしてくるホストに対して、あるホストが、一定時間内に一定回数 ssh でのログインに失敗したら、そのホストからのアクセスを一定時間遮断する設定

# emacs /etc/sysconfig/iptables
 #-------------------------------------------------------#
 #       SSH Behavior                                    #
 #-------------------------------------------------------#
 :BAD_SSH - [0:0]
 -A BAD_SSH -m recent --name conSSH --remove
 -A BAD_SSH -m recent --name badSSH --set -j LOG --log-level DEBUG --log-prefix "BAD SSH:"
 -A BAD_SSH -j REJECT
 :SSH_ACT - [0:0]
 -A SSH_ACT -m recent --name badSSH --rcheck --seconds 1800 -j REJECT
 -A SSH_ACT -m recent --name conSSH --rcheck --seconds 600 --hitcount 3 -j BAD_SSH
 -A SSH_ACT -m recent --name conSSH --set
 -A SSH_ACT -j ACCEPT
 #-------------------------------------------------------#
 #       Main Behavior                                   #
 #-------------------------------------------------------#
 ...
 -A FW-001 -p tcp -m state --state NEW -m tcp --dport 22 -j SSH_ACT
 ...

※Mainの22番ポート(SSH)の部分を上記で追加したルールを利用するように変更、またユーザールールは先頭に記述。

IPリストは以下のファイルのフォルダ位置

# cd /proc/net/ipt_recent/

IPリストから指定したIPを削除

# echo -192.168.0.100 > /proc/net/ipt_recent/badIP

※参考リンク

Edit
iptablesの再起動

# service iptables restart

もしファイルを修正しないで、iptablesコマンドで設定した場合には、saveを忘れないでください。

# service iptables save     <- 設定した内容を/etc/sysconfig/iptables保存


Edit
iptablesのログ解析の導入

Edit
IPTables log analyzerのインストール

# wget http://nchc.dl.sourceforge.net/sourceforge/iptablelog/iptablelog-v0.9.tar.gz
# tar zxvf iptablelog-v0.9.tar.gz
# ln -s /usr/local/src/iptablelog /usr/local/apache2/htdocs/iptablelog

Edit
iptablesのOFF

とりあえずOFFにする。

# service iptables off

起動時からOFFにする。

# chkconfig iptables off

Edit
MSNのキック

TCP 6891-6900
UDP 6801
UDP 2001-2120
TCP/UDP 1503(*Winメッセ:アプリケーション共有)
TCP/UDP 3389(*Winメッセ:リモートアシスタンス)
TCP/UDP 6901

Edit
関連リンク