global menu
search this site
sponsored links
REX CARD
楽天カード
漢方スタイルクラブカード
DMM mobile
OCN モバイル ONE
IIJmio

撮影機材
store
category archive
monthly archive
powered by

エントリーアーカイブ

CentOS 5のiptablesでポートフィルタリングを行う

CentOS

2010/08/05 13:58

概要

iptablesの設定は再起動で消えてしまう為、設定用シェルスクリプトを作成してシステム起動時に実行する。ただし、今回はサーバ運用を想定しての設定。

iptablesの設定

  1. iptablesはインストール済
  2. 自動起動の設定
    # /sbin/chkconfig --level 2345 iptables on
  3. iptables設定用シェルスクリプトの作成
    # vi /root/iptables.sh
    #!/bin/bash
    
    # 設定をクリア
    iptables -F
    
    # 受信を全て破棄
    iptables -P INPUT DROP
    
    # 送信を全て許可
    iptables -P OUTPUT ACCEPT
    
    # 通過を全て破棄
    iptables -P FORWARD DROP
    
    # ICMPを許可
    iptables -A INPUT -p icmp -j ACCEPT
    
    # ローカルホストからの通信を許可
    iptables -A INPUT -i lo -j ACCEPT
    
    # ローカルエリアからの通信を許可
    iptables -A INPUT -s (ローカルエリアのアドレス) -j ACCEPT
    
    # 自分が出したリクエストに対して戻ってきた通信は許可
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    # ブロードキャストアドレス,マルチキャストアドレス宛のパケットを破棄
    iptables -A INPUT -d 255.255.255.255 -j DROP
    iptables -A INPUT -d 224.0.0.1 -j DROP
    
    # SSHの許可
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    
    # ローカルエリアからのNetBIOS(Samba)の許可
    iptables -A INPUT -d (ローカルエリアのアドレス) -p tcp --dport 139 -j ACCEPT
    iptables -A INPUT -d (ローカルエリアのアドレス) -p udp --dport 137 -j ACCEPT
    iptables -A INPUT -d (ローカルエリアのアドレス) -p udp --dport 138 -j ACCEPT
    
    # HTTPの許可
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    
    # HTTPSの許可
    iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    
    # 上記のルールにマッチしなかったパケットをログに記録して破棄
    iptables -A INPUT -m limit --limit 1/s -j LOG --log-prefix "[IPTABLES INPUT] : "
    iptables -A INPUT -j DROP
    iptables -A FORWARD -m limit --limit 1/s -j LOG --log-prefix "[IPTABLES FORWARD] : "
    iptables -A FORWARD -j DROP
    
    # 設定の保存
    service iptables save
    
    # iptablesの再起動
    service iptables restart
    
  4. 所有権の変更
    # chmod 700 /root/iptables.sh
  5. iptables設定用シェルスクリプトをシステム起動時に実行
    # vi /etc/rc.d/rc.local
    #起動時に iptables を設定
    sh /root/iptables.sh
    

解説サイト