INPUTは、サーバーに入力されるパケットに対する設定、FORWARDは、ルーターのような場合に設定する。OUTPUTは、サーバーから出力されるパケットに対する設定となります。
iptablesのマニュアル
ipatblesのmanpage
@ITのiptablesのサンプル
iptablesの設定具体例
Internet のソケット番号一覧
iptablesコマンド表
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
)
プロトコル番号 | プロトコル名 | 主な機能 |
1 | icmp(Internet Control Message) | pingなどに利用する、TCPとUDPを補助する特殊なプロトコル |
6 | tcp(Transmission Control) | いわれる基本プロトコル通常の通信はこれを利用 |
17 | udp(User Datagram) | 一方的にデータを送るプロトコルで、データの到着確認がない |
50 | esp(Encap Security Payload) | IPsecに利用されるプロトコル |
51 | ah(Authentication Header) | IPsecに利用されるプロトコル |
何度もログインチャレンジしてくるホストに対して、あるホストが、一定時間内に一定回数 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
※参考リンク
# service iptables restart
もしファイルを修正しないで、iptablesコマンドで設定した場合には、saveを忘れないでください。
# service iptables save <- 設定した内容を/etc/sysconfig/iptables保存
# 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
とりあえずOFFにする。
# service iptables off
起動時からOFFにする。
# chkconfig iptables off
TCP 6891-6900 UDP 6801 UDP 2001-2120 TCP/UDP 1503(*Winメッセ:アプリケーション共有) TCP/UDP 3389(*Winメッセ:リモートアシスタンス) TCP/UDP 6901