【Linux】Linux-iptablesコマンドを一歩一歩学ぶ(186)

10714 ワード

00.目次
文書ディレクトリ
  • 00. ディレクトリ
  • 01. コマンド概要
  • 02. コマンドフォーマット
  • 03. 共通オプション
  • 04. 参考例
  • 05. 付録
  • 01.コマンドの概要
    iptablesコマンドはLinuxでよく使われるファイアウォールソフトウェアで、netfilterプロジェクトの一部です.直接構成したり、多くのフロントエンドやグラフィックインタフェースで構成したりすることができます.
    02.コマンドフォーマット
      : iptstate [  ] [  ]
    

    03.一般的なオプション
    -t< >:       ;
    -A:         ;
    -D:         ;
    -i:         ;
    -R:         ;
    -L:           ;
    -F:           ;
    -Z:                   ;
    -N:            ;
    -P:           ;
    -h:      ;
    -p:             ;
    -s:          ip  ;
    -j<  >:        ;
    -i<    >:              ;
    -o<    >:                  。
    

    フォーマットの詳細
    iptablesコマンドオプション入力順序
    iptables -t    <-A/I/D/R>      [   ] <-i/o    > -p     <-s  IP/   > --sport     <-d   IP/    > --dport      -j   
    

    テーブル名は次のとおりです.
  • raw:Webアドレスフィルタなどの高度な機能.
  • mangle:サービス品質を実現するためのパケット修正(QOS).
  • net:ゲートウェイルータ用アドレス変換.
  • filter:ファイアウォールルール用のパケットフィルタリング.

  • ルール・チェーン名は次のとおりです.
  • INPUTチェーン:入力パケットを処理する.
  • OUTPUTチェーン:出力パケットを処理する.
  • PORWARDチェーン:転送パケットを処理する.
  • PREROUTINGチェーン:宛先アドレス変換(DNAT)用.
  • POSTOUTINGチェーン:ソースアドレス変換(SNAT)用.

  • アクションは次のとおりです.
  • accept:パケットを受信します.
  • DROP:パケットを破棄します.
  • REDIRECT:リダイレクト、マッピング、透明エージェント.
  • SNAT:ソースアドレス変換.
  • DNAT:宛先アドレス変換.
  • MASQUERADE:ADSL用IP偽装(NAT).
  • LOG:ログ記録.

  • 04.参考例
    4.1既存のiptablesルールのクリア
    [root@localhost ~]# iptables -F 
    [root@localhost ~]# 
    

    4.2指定されたユーザー定義チェーンの削除
    [root@localhost ~]# iptables -X 
    [root@localhost ~]# 
    

    指定したユーザー定義チェーンを削除します.このチェーンは参照されていない必要があります.参照されている場合は、削除する前に関連するルールを削除または置換する必要があります.パラメータが指定されていない場合、このコマンドは、組み込まれていないチェーンを削除しようとします.
    4.3全てのチェーンのパケット及びバイトのカウンタをクリアする
    [root@localhost ~]# iptables -Z
    [root@localhost ~]# 
    

    4.4ローカルループバックインタフェースを許可する(即ち、ネイティブアクセスを実行する)
    [root@localhost ~]# iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
    [root@localhost ~]# 
    

    4.5確立または関連チェーンの通行を許可する
    [root@localhost ~]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    [root@localhost ~]# 
    

    4.6すべてのネイティブの外部へのアクセスを許可する
    [root@localhost ~]# iptables -A OUTPUT -j ACCEPT
    [root@localhost ~]# 
    

    4.7 22ポートへのアクセス許可
    [root@localhost ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    [root@localhost ~]# 
    

    4.8 80ポートへのアクセス許可
    [root@localhost ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    [root@localhost ~]# 
    

    4.9 ftpサービスを許可する21ポート
    [root@localhost ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    [root@localhost ~]# 
    

    4.10 FTPサービスを許可する20ポート
    [root@localhost ~]# iptables -A INPUT -p tcp --dport 20 -j ACCEPT
    [root@localhost ~]# 
    

    4.11他の許可されていない規則へのアクセスを禁止する
    [root@localhost ~]# iptables -A INPUT -j REJECT
    [root@localhost ~]# 
    

    4.12他の許可されていない規則へのアクセスを禁止する
    [root@localhost ~]# iptables -A FORWARD -j REJECT
    [root@localhost ~]# 
    

    4.13単一IPを遮断するコマンド
    [root@localhost ~]# iptables -I INPUT -s 172.16.0.88 -j DROP 
    [root@localhost ~]# 
    

    4.14セグメント全体、すなわち172.16.0.1から172.16.0.254までのコマンド
    [root@localhost ~]# iptables -I INPUT -s 172.16.0.0/24 -j DROP
    [root@localhost ~]# 
    

    4.15セグメント全体、すなわち172.16.0.0から172.16.255.254までのコマンド
    [root@localhost ~]# iptables -I INPUT -s 172.16.0.0/16 -j DROP
    [root@localhost ~]# 
    

    4.16セグメント全体、すなわち172.0.0.0から172.255.255.254までのコマンド
    [root@localhost ~]# iptables -I INPUT -s 172.0.0.0/8 -j DROP
    [root@localhost ~]# 
    

    4.17追加されたiptablesルールの表示
    [root@localhost ~]# iptables -L -n -v
    Chain INPUT (policy ACCEPT 158 packets, 17668 bytes)
     pkts bytes target     prot opt in     out     source               destination         
    
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
    
    Chain OUTPUT (policy ACCEPT 106 packets, 19752 bytes)
     pkts bytes target     prot opt in     out     source               destination         
    [root@localhost ~]# 
    

    4.18追加されたiptablesルールの削除
    すべてのiptablesをシーケンス番号で表示し、実行します.
    [root@localhost ~]# iptables -L -n --line-numbers
    
    

    例えばINPUTの9番のルールを削除する
    [root@localhost ~]# iptables -D INPUT 9
    
    

    4.19フィルタテーブルINPUTのすべての規則をクリアする
    [root@localhost ~]# iptables -F INPUT
    [root@localhost ~]# 
    

    4.20 filterテーブルINPUTのデフォルトルールを設定するのはDROPです
    [root@localhost ~]# iptables -P INPUT DROP
    [root@localhost ~]# 
    

    05.付録
    参考:【Linux】一歩一歩Linuxシリーズチュートリアルのまとめ