• 締切済み

ファイアウォールとしてping of deathの設定をしたいです

ファイアウォールとしてping of deathの設定をしたいのですが、どのように記述したらよいでしょうか? 1秒間に1回 バースト5にし、ログをとり、破棄したいです。 iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-request -j LOG --log-prefix "ping-death" iptables -A INPUT -p icmp --icmp-type echo-request -j DROP これでよろしいのでしょうか?

みんなの回答

noname#41381
noname#41381
回答No.6

#5です。 自分もちょっと混乱しています^ ^;; 少なくとも#4でちょっと誤りと補足があります。 Ping of DeathはIPヘッダ20バイト+ICMPヘッダ8バイトを引いた65,507がIPパケットの最大なのに それ以上のICMPデータをつけたICMPパケットを送ることが出来ることで フラグメントオフセット値+サイズで16ビット値のオーバーフローを狙うものでした。 自分も試していないので(通常のpingだと65,508バイト以上が送れない)ちょっとわかりませんが、 確かにデータサイズはIPパケット長以上になるかもしれませんが、 実際には0xffffが入るのではないでしょうか? #65,507バイトの正常なPingも止まってしまいますが... もともと勘違いしているかもしれません。 すみません、もうちょっと調べてみます。

hotchan
質問者

お礼

ご協力、ありがとうございました。 参考にさせて頂きます。

noname#41381
noname#41381
回答No.5

#4補足より >65,535バイト以上のICMPエコーは、設定できないようですが。。 > IPヘッダーのパケット長は16ビットで表現しているので最大値が65,535なのです。 つまり、IPパケットの最大値が65,535バイトということになり、 それより大きいICMPパケットというのは存在しないということですね。 Ping of Death攻撃自体が、IPヘッダ20バイトを引いた65,507より大きなICMPパケット(65,508~65,535バイト) によってクラッシュが引き起こされる可能性があるといった攻撃になります。

noname#41381
noname#41381
回答No.4

#3補足より ># Fragment(外部からのフラグメントしたパケットはログをとり、破棄する) > 単純にフラグメントされたパケットを破棄してしまっては、 フラグメントされた通常のパケットもdropされてしまいます。 やはりICMPのパケット長チェックが妥当なような気がしますが...。

hotchan
質問者

補足

kanop_98さんに紹介して頂いたアドレスを見ると、 http://www.geocities.co.jp/SiliconValley-Cupertino/5128/500_compu/iptables-extension.html#3.4 85 バイトよりでかい ping のパケットを破棄する場合、 iptables -A INPUT -p icmp --icmp-type echo-request -m length\ --length 85:0xffff -j DROP --length length[:length] 値あるいは範囲でもいい(混在も可) 値の最小値は 0 最大値は 65535 とありましたが、最大値は 65535 ということは、 >ping of death は65,535(データ部65,507)バイト以上のICMPエコーに対する脆弱性からくるものなので とあるので、65,535バイト以上のICMPエコーは、設定できないようですが。。

noname#41381
noname#41381
回答No.3

#2補足より >結局、いろいろなサイトを参考に下記のようにしてみました。いかがでしょうか? > ># Ping of death >iptables -N ping-death >iptables -A ping-death -m limit --limit 1/s -j ACCEPT >iptables -A ping-death -j LOG --log-prefix "### Ping of death ###" >iptables -A ping-death -j DROP >iptables -A INPUT -i ppp0 -p icmp --icmp-type echo-request -j ping-death >iptables -A FORWARD -i ppp0 -p icmp --icmp-type echo-request -j ping-death > このルールだと、1秒間に5回以上のType8のicmpは止めれますが、(ping floodには対応できる) Ping of Deathはフラグメント化されたIPパケットになるので、対応できないのではないでしょうか? (断片パケットはicmpパケットとして認識されない) やはりLength指定でパケットサイズを見るしか無いかと思います。

hotchan
質問者

補足

そしたら、下記のような設定があったのですが、いかがですか? # Fragment(外部からのフラグメントしたパケットはログをとり、破棄する) iptables -N fragment iptables -A fragment -j LOG --log-prefix "### Fragment ###" iptables -A fragment -j DROP iptables -A INPUT -f -i ppp0 -j fragment iptables -A FORWARD -f -i ppp0 -j fragment http://www.kkoba.com/linuxrouter/iptables.shtml

noname#41381
noname#41381
回答No.2

その後気づいたのですが、そもそもping of Deathを引っかけるなら 「length」モジュールでパケット長をある程度指定すればいいのではないでしょうか? 例はこちら http://www.geocities.co.jp/SiliconValley-Cupertino/5128/500_compu/iptables-extension.html#3.4 で、#1補足より >>-m limitに「--limit-burst 5」が足りないですね。 > >デフォルトが5なので、記述しなくていいのではないでしょうか? > ありゃりゃ、その通りです。すみませんでした。 >1秒ごとに10個のicmpパケットが届いた場合、最初は5個のパケットを受け取り、 > マッチするのは「1秒間に5個のecho-request(type 8)のICMPパケットが来た場合」 かと思います。 >RETURN やiptables -N を使用して設定している人もいるのですが、 >いまいち使い方が分からないのですが、教えて頂けますか? > 自分もそれほど詳しくないので、参考サイトを記載させていただきます。 で、まずはmanでしょうか。 http://www.linux.or.jp/JM/html/iptables/man8/iptables.8.html 設定については、こことかはどうでしょうか? http://tlec.linux.or.jp/docs/iptables.html

hotchan
質問者

補足

>「length」モジュールでパケット長をある程度指定すればいいのではないでしょうか? ますます混乱しそうなのでやめときます。 結局、いろいろなサイトを参考に下記のようにしてみました。いかがでしょうか? # Ping of death iptables -N ping-death iptables -A ping-death -m limit --limit 1/s -j ACCEPT iptables -A ping-death -j LOG --log-prefix "### Ping of death ###" iptables -A ping-death -j DROP iptables -A INPUT -i ppp0 -p icmp --icmp-type echo-request -j ping-death iptables -A FORWARD -i ppp0 -p icmp --icmp-type echo-request -j ping-death

noname#41381
noname#41381
回答No.1

#@IT会議室でも同じ質問が出ていましたが...^ ^; >1秒間に1回 バースト5にし > ということであれば、 -m limitに「--limit-burst 5」が足りないですね。 しかも"ACCEPT"になっているようですが...。 厳密にはping of death は65,535(データ部65,507)バイト以上のICMPエコーに対する脆弱性からくるものなので このルールでは違うものも引っかかる可能性がありますね。 (少なくともping of deathは引っかかるので大丈夫ですが)

hotchan
質問者

補足

>-m limitに「--limit-burst 5」が足りないですね。 デフォルトが5なので、記述しなくていいのではないでしょうか? >しかも"ACCEPT"になっているようですが...。 あ、すみません。デフォルトポリシーは、 iptables -P INPUT DROP になっています。 上記の私の記述では、 1秒ごとに10個のicmpパケットが届いた場合、最初は5個のパケットを受け取り、その後、1秒ごとにバーストが1個づつ回復し、パケットを1個づつ受け取るように設定され、その通過したパケットのログをとった上で、破棄する というふうになっていますでしょうか? 通常はどのように記述するのが一番、良いですか? RETURN やiptables -N を使用して設定している人もいるのですが、いまいち使い方が分からないのですが、教えて頂けますか?

関連するQ&A

  • firewalld-cmdについて教えて頂けますか

    #特定サーバへのみping応答 $IPTABLES -A INPUT -p icmp --icmp-type echo-request -s 192.168.176.31 -j ACCEPT #ssh接続を許可 $IPTABLES -A INPUT -s 192.168.176.31 -p tcp --dport 8892 -m state --state NEW -j ACCEPT_FILTER ご多用の中誠に恐れ入りますが、firewalld-cmdについてご教示頂けますでしょうか。 firewalld-cmdで特定サーバへのみping応答するようやろうとして何度も失敗をしており困ってます。 OSはfedora24です。

  • ファイアウォールの設定 ICMP

    現在、ICMPは拒否していますが、許可した方がいいのでしょうか。 Destination UnreachableとTime Exceededは許可しなくても 特に問題ないようですが、Echo RequestとEcho Replyは設定しようか 迷っています。 Pingを使わないのならいらないということですが、 ログを見ると、192.168.0.1ルーターに対するEcho Requestをブロックされている ので許可した方がいいのでは?とも思っています。 特別な操作をしたわけではありません。 ウィルスでないことは分かっています。 拒否していても特に不具合はありませんが、どのようにすればいいですか。 よろしくお願いします。

  • iptablesの設定について

    IISとApachのテストサイトを構築しています。 LINUXマシンにNICを2枚差し、 インターネット側:FW-OUT(eth0) プライベート側:FW-IN(eth1) WEBサイトの仮想アドレスとして、 V_WEB(eth0:1) V_WIN2K(eth0:2) MAINTマシンからPINGは172.32.0.0は通るのですが、 当該マシンから両WEBページが閲覧できません。 記述は、 http://www.atmarkit.co.jp/flinux/rensai/security03/security03a.html を参考に変更しました。 何か手がかりがあればお願いします。 #!/bin/sh # # Define IP Address FW_OUT='172.32.0.100' FW_IN='192.168.0.1' V_WEB='172.32.0.10' V_WIN2K='172.32.0.20' R_WEB='192.168.0.10' R_WIN2K='192.168.0.20' MAINT='172.32.0.150' ANY='0.0.0.0' # # Flush chains /sbin/iptables -F # /sbin/iptables -P INPUT DROP /sbin/iptables -P FORWARD DROP /sbin/iptables -P OUTPUT DROP # /sbin/iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT /sbin/iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT # /sbin/iptables -A OUTPUT -p icmp -s $FW_OUT --icmp-type 0 -d $MAINT -j ACCEPT /sbin/iptables -A INPUT -p icmp -s $MAINT --icmp-type 8 -d $FW_OUT -j ACCEPT # /sbin/iptables -A OUTPUT -p icmp -s $V_WEB --icmp-type 0 -d $MAINT -j ACCEPT /sbin/iptables -A INPUT -p icmp -s $MAINT --icmp-type 8 -d $V_WEB -j ACCEPT /sbin/iptables -A OUTPUT -p icmp -s $V_WIN2K --icmp-type 0 -d $MAINT -j ACCEPT /sbin/iptables -A INPUT -p icmp -s $MAINT --icmp-type 8 -d $V_WIN2K -j ACCEPT # /sbin/iptables -A INPUT -p icmp -s $MAINT --icmp-type 0 -d $V_WEB -j ACCEPT /sbin/iptables -A OUTPUT -p icmp -s $V_WEB --icmp-type 8 -d $MAINT -j ACCEPT /sbin/iptables -A INPUT -p icmp -s $MAINT --icmp-type 0 -d $V_WIN2K -j ACCEPT /sbin/iptables -A OUTPUT -p icmp -s $V_WIN2K --icmp-type 8 -d $MAINT -j ACCEPT # /sbin/iptables -A INPUT -p TCP -s $MAINT --dport 22 -d $FW_OUT -i eth0 -j ACCEPT /sbin/iptables -A OUTPUT -p TCP ! --syn --sport 22 -s $FW_OUT -d $MAINT -o eth0 -j ACCEPT # /sbin/iptables -A FORWARD -p TCP -s $ANY --dport 80 -d $R_WEB -j ACCEPT /sbin/iptables -A FORWARD -p TCP ! --syn -m state --state ESTABLISHED --sport 80 -s $R_WEB -d $ANY -j ACCEPT # /sbin/iptables -A FORWARD -p TCP -s $ANY --dport 443 -d $R_WEB -j ACCEPT /sbin/iptables -A FORWARD -p TCP ! --syn -m state --state ESTABLISHED --sport 443 -s $R_WEB -d $ANY -j ACCEPT # /sbin/iptables -A FORWARD -p TCP -s $ANY --dport 80 -d $R_WIN2K -j ACCEPT /sbin/iptables -A FORWARD -p TCP ! --syn -m state --state ESTABLISHED --sport 80 -s $R_WIN2K -d $ANY -j ACCEPT # /sbin/iptables -A FORWARD -p TCP -s $ANY --dport 135 -d $R_WIN2K -j ACCEPT /sbin/iptables -A FORWARD -p TCP ! --syn -m state --state ESTABLISHED --sport 135 -s $R_WIN2K -d $ANY -j ACCEPT /sbin/iptables -A FORWARD -p TCP -s $ANY --dport 137 -d $R_WIN2K -j ACCEPT /sbin/iptables -A FORWARD -p TCP ! --syn -m state --state ESTABLISHED --sport 137 -s $R_WIN2K -d $ANY -j ACCEPT /sbin/iptables -A FORWARD -p TCP -s $ANY --dport 138 -d $R_WIN2K -j ACCEPT /sbin/iptables -A FORWARD -p TCP ! --syn -m state --state ESTABLISHED --sport 138 -s $R_WIN2K -d $ANY -j ACCEPT /sbin/iptables -A FORWARD -p TCP -s $ANY --dport 139 -d $R_WIN2K -j ACCEPT /sbin/iptables -A FORWARD -p TCP ! --syn -m state --state ESTABLISHED --sport 139 -s $R_WIN2K -d $ANY -j ACCEPT /sbin/iptables -A FORWARD -p TCP -s $ANY --dport 445 -d $R_WIN2K -j ACCEPT /sbin/iptables -A FORWARD -p TCP ! --syn -m state --state ESTABLISHED --sport 445 -s $R_WIN2K -d $ANY -j ACCEPT # # Flush Nat Rules # /sbin/iptables -t nat -F # # Nat Rules # /sbin/iptables -t nat -A POSTROUTING -s $R_WEB -o eth0 -p TCP -j SNAT --to $V_WEB /sbin/iptables -t nat -A POSTROUTING -s $R_WIN2K -o eth0 -p TCP -j SNAT --to $V_WIN2K # # End Of Rules [root@firewall FW]#

  • iptablesの設定がうまく反映されません

    iptablesを有効にすると、サーバが公開しているウエブページの閲覧がローカル、外部ドメインともにできません。内部名前解決もできなくなってしまいます。メールもローカル、外部ドメインからも送受信できなくなります。 無効にすると、全て問題なく動作します。 iptables無効状態ではHTTP:80、HTTPS:443 SMTP:25/587、POP3:110/995、IMAP:143/993 は外部からポートスキャンで、アクセスできましたとなります。 iptablesを有効にすると、どのポート番号もポートスキャンで、アクセスできませんとなります。設定は下記のとおりです。有効状態で唯一、22番だけポートスキャンで成功します。 何がいけないのでしょうか。よろしくお願いします。 環境:CentOS6.2 、1台のサーバでApache,Bind,Postfix/Dovecot が稼動中です。 [root@hogehoge ~]# cat /etc/sysconfig/iptables # Generated by iptables-save v1.4.7 on Tue Jun 12 22:39:14 2012 *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [24:2320] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A INPUT -s 192.168.0.0/24 -j ACCEPT -A INPUT -j LOG --log-prefix "[iptables] " --log-level 6 -A INPUT -p udp -m udp --dport 53 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -A INPUT -p tcp -m tcp --sport 25 -j ACCEPT -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m tcp --dport 587 -j ACCEPT -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Tue Jun 12 22:39:14 2012

  • サーバーでポート587番が開放できない

    現在O社のVPSでメールサーバーを構築し、ポート587番を開放したくてiptablesの編集を行いましたが、開放されません。 O社のサポートに問い合わせをしても3日返事ももらえなくて困ってます。 有識者の方のアドバイスをいただきたくて投稿いたしました。 ● VPSのOSはCentos6.2です。 ● SELinuxは無効になっています。 ------------------------------------------------------- # iptables -n -L で確認すると次の用に出力されます。 --------------------------------------------------- Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:587 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:110 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:143 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:465 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination ------------------------------------------------------------------------------- ● cat /etc/sysconfig/iptables で確認すると以下のとおりです。 *** CKFILTER 省略 **** -A INPUT -i lo -j ACCEPT -A INPUT -s xxx.xxx.xxx.0/24 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -f -j LOG --log-prefix "FRAGMENT DROP:" --log-level 7 -A INPUT -f -j DROP -A INPUT ! -s xxx.xxx.xxx.0/24 -p tcp -m multiport --dports 135,137,138,139,445 -j DROP -A INPUT ! -s xxx.xxx.xxx.0/24 -p udp -m multiport --dports 135,137,138,139,445 -j DROP -A INPUT -p icmp -m icmp --icmp-type 8 -j PINGOFDEATH -A INPUT -d 255.255.255.255/32 -j DROP -A INPUT -d 224.0.0.1/32 -j DROP -A INPUT -p tcp -m tcp --dport 113 -j REJECT --reject-with tcp-reset -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m tcp --sport 20 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --dport 4000:4029 -j ACCEPT -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -A INPUT -p tcp -m tcp --dport 587 -j ACCEPT -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT -A INPUT -m limit --limit 1/sec -j LOG --log-prefix "INPUT DROP:" --log-level 7 -A INPUT -j DROP -A FORWARD -m limit --limit 1/sec -j LOG --log-prefix "FORWARD DROP:" --log-level 7 -A FORWARD -j DROP -A OUTPUT ! -d xxx.xxx.xxx.0/24 -p tcp -m multiport --sports 135,137,138,139,445 -j DROP -A OUTPUT ! -d xxx.xxx.xxx.0/24 -p udp -m multiport --sports 135,137,138,139,445 -j DROP -A CKFILTER -j DROP -A PINGOFDEATH -m limit --limit 1/sec --limit-burst 4 -j ACCEPT -A PINGOFDEATH -j LOG --log-prefix "PINGDEATH DROP:" --log-level 7 -A PINGOFDEATH -j DROP COMMIT # Completed on Tue Apr 15 15:44:15 2014 ● iptablesの編集は次のスクリプト(http://centos.server-manual.com/centos6_iptables.html を参考にさせてもらっています。) -------------------------------------- なぜかポート587番は開放されません。 ● telnetで確認すると # telnet localhost 587 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused となります。 ネットでも検索しましたがヒットしませんでした。

  • iptablesの設定でINPUTが制限されない

    iptablesをさわっています。80番ポートのみあけたいのですが、80番以外も外部からアクセスできてしまいます。 iptables -P FORWARD DROP iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT FILTERNAME=CKFILTER TARGET=CKFILTERED iptables -A $FILTERNAME -s 58.6.0.0/17 -j $TARGET iptables -A $FILTERNAME -s 58.6.128.0/17 -j $TARGET iptables -A $FILTERNAME -s 58.7.0.0/16 -j $TARGET iptables -A $FILTERNAME -s 58.14.0.0/15 -j $TARGET iptables -A $FILTERNAME -s 58.16.0.0/16 -j $TARGET iptables -A $FILTERNAME -s 58.17.0.0/17 -j $TARGET iptables -A CKFILTER -j ACCEPT iptables -A CKFILTERED -j LOG --log-prefix "Reject-TCP " iptables -A CKFILTERED -j DROP iptables -A INPUT -p tcp -m state --state NEW -j CKFILTER iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT どこが間違っているのか見つけられず困っています。

  • postfixでメール送信できません

    postfixでメール送信ができなくて困っています。 送信方法はmailコマンドです。 iptablesを切って実行すると送信できるので、iptablesの設定が原因だと想定しています。 解決できるようどうかお力添えをお願いします。 メールサーバの構築は以下のサイトを参考にしました。 http://morizyun.github.io/blog/postfix-centos-sakura-vps-aws/ ■環境 CentOS6.6 ■/etc/sysconfig/iptables (1)# mail以下を追加しました。 (2)IPアドレスはマスクをかけています。 # Generated by iptables-save v1.4.7 on Mon Mar 16 16:02:28 2015 # xxx.xxx.xxx.xxx/32 : localhost # yyy.yyy.yyy.yy/28 : company # zzz.zzz.zzz.zzz/32 : firewall *filter :INPUT DROP [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :LOGGING - [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -s zzz.zzz.zzz.zzz/32 -d xxx.xxx.xxx.xxx/32 -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -s yyy.yyy.yyy.yy/28 -d xxx.xxx.xxx.xxx/32 -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -s zzz.zzz.zzz.zzz/32 -d xxx.xxx.xxx.xxx/32 -p icmp -m icmp --icmp-type 0 -j ACCEPT -A INPUT -s yyy.yyy.yyy.yy/28 -d xxx.xxx.xxx.xxx/32 -p icmp -m icmp --icmp-type 0 -j ACCEPT -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -s zzz.zzz.zzz.zzz/32 -d xxx.xxx.xxx.xxx/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 53022 -j ACCEPT -A INPUT -s yyy.yyy.yyy.yy/28 -d xxx.xxx.xxx.xxx/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 53022 -j ACCEPT -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -d xxx.xxx.xxx.xxx/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 443 -j ACCEPT -A INPUT -p udp -m state --state NEW,RELATED,ESTABLISHED -m udp --sport 53 -j ACCEPT -A INPUT -s 210.188.224.14/32 -p udp -m udp --sport 123 -j ACCEPT -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -d xxx.xxx.xxx.xxx/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --sport 80 -j ACCEPT # http -A INPUT -p tcp --dport 80 -j ACCEPT # mail -A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -m limit --limit 1/s -j LOG --log-prefix "[iptables INPUT] : " -A INPUT -j LOGGING -A OUTPUT -o lo -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -d zzz.zzz.zzz.zzz/32 -p icmp -m icmp --icmp-type 0 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -d yyy.yyy.yyy.yy/28 -p icmp -m icmp --icmp-type 0 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -d zzz.zzz.zzz.zzz/32 -p icmp -m icmp --icmp-type 8 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -d yyy.yyy.yyy.yy/28 -p icmp -m icmp --icmp-type 8 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -d zzz.zzz.zzz.zzz/32 -p tcp -m tcp --sport 53022 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -d yyy.yyy.yyy.yy/28 -p tcp -m tcp --sport 53022 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -p tcp -m tcp --sport 443 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -p udp -m udp --dport 53 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -d 210.188.224.14/32 -p udp -m udp --dport 123 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -p tcp -m tcp --dport 80 -j ACCEPT # http -A OUTPUT -p tcp --sport 80 -j ACCEPT # mail -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT -A OUTPUT -m limit --limit 1/s -j LOG --log-prefix "[iptables OUTPUT] : " -A OUTPUT -j LOGGING #-A LOGGING -m limit --limit 3/hour -j LOG --log-prefix "DROP:" -A LOGGING -j DROP COMMIT

  • iptablesの設定 NetBiosについて

    RedHat9 Linux でサーバ兼ルータを構築しています。(DMZも使用しています) (WAN側 ppp0 、DMZ側 eth1、LAN側 eth2) iptables の設定として、 # ポリシーの設定 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # NetBIOS関連のパケットはログをとり、インターネットに出さない iptables -N net-bios iptables -A net-bios -j LOG --log-prefix "### NetBIOS ###" iptables -A net-bios -j DROP iptables -A INPUT -i ppp0 -p tcp -m multiport --sport 135,137,138,139,445 -j net-bios iptables -A INPUT -i ppp0 -p udp -m multiport --sport 135,137,138,139,445 -j net-bios iptables -A INPUT -i ppp0 -p tcp -m multiport --dport 135,137,138,139,445 -j net-bios iptables -A INPUT -i ppp0 -p udp -m multiport --dport 135,137,138,139,445 -j net-bios iptables -A FORWARD -p tcp -m multiport --sport 135,137,138,139,445 -j net-bios iptables -A FORWARD -p udp -m multiport --sport 135,137,138,139,445 -j net-bios iptables -A FORWARD -p tcp -m multiport --dport 135,137,138,139,445 -j net-bios iptables -A FORWARD -p udp -m multiport --dport 135,137,138,139,445 -j net-bios というのを設定しました。 下記のサイトを参考にしました。 http://www.kkoba.com/linuxrouter/iptables.shtml ところで、NetBIOS関連のパケットはログをとり、インターネットに出さない という設定は必要ですか? これだと異常にたくさんのログが取れてしまいますが。。

  • iptableコマンドを複数記載したスクリプトを実行したいです。

    Linuxのコマンドについてお聞きしたいです。 iptableコマンドを複数記載したスクリプトを作成し、そのスクリプトを実行することによってパケットフィルタリングの設定をしようと思っています。 Windowsで下記のようなファイルを作成しました。 #!/bin/sh iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE iptables -P INPUT DROP iptables -P FORWARD DROP iptables -A FORWARD -i eth1 -s 192.168.0.0/24 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i eth0 -d 210.98.76.54 -p tcp --dport 80 -j ACCEPT iptables -A INPUT -i eth1 -d 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -i eth0 -d 202.228.202.2 -p udp --sport 53 --dport 1024:65535 -j ACCEPT iptables -A INPUT -j LOG --log-prefix "### INPUT ###" iptables -A FORWARD -j LOG --log-prefix "### FORWARD ###" これをLinuxの/rootに作成したbinフォルダにフロッピーでコピーしました。 ファイル名をfilterにしたので、[root@linux root]# filter とし、Enterとし、 スクリプトを実行して設定を反映させようとしました。 しかし、: bad interpreter: そのようなファイルやディレクトリはありません と出てしまいます。 何が足りないのでしょうか?

  • iptablesのログ記述について

    http://www.atmarkit.co.jp/flinux/rensai/iptables01/template01.html を参考に勉強しなおしているのですが iptables -N LOGGING iptables -A LOGGING -j LOG --log-level warning --log-prefix "DROP:" -m limit iptables -A LOGGING -j DROP iptables -A INPUT -j LOGGING iptables -A OUTPUT -j LOGGING の内容でわからないことがあります。 一番下の3行 一.iptables -A INPUT -j LOGGING 二.iptables -A OUTPUT -j LOGGING 三.iptables -A LOGGING -j DROP 一.無効パケットの破棄(DROP)を指定し、ログ出力の後に破棄されるようにします。 二.INPUTおよびOUTPUTチェインに対し、このLOGGINGが行われるように設定します。 この二つの意味の違いがよくわからないのです。 一は「パケット廃棄→ログ出力」の流れは分かるのですが、 二は、「INPUT処理、OUTPUT処理」→「ログ出力?」 同じ処理ではないのでしょうか? ということですと、 「一と二で同じ処理をするのに、 LOGGINGのチェインの位置が変わっている」のはなぜなのでしょうか? とわからなくなっています。 ご教授お願いします。