リモートからiptables設定について

このQ&Aのポイント
  • リモートからiptables設定についての方法を教えてください。
  • リモートでサーバーに触れずにiptablesの設定をする方法を教えてください。
  • リモートから/sbin/iptables -P INPUT DROPを実行したら接続が切れてしまいます。どうすればリモートからiptablesを設定できますか?
回答を見る
  • ベストアンサー

リモートからiptables設定について

こんばんわ。 サーバーが違う場所にあり、 触れない状態です。 なので、sshにてiptablesの設定をしたいです。 OS:Fedora7 iptablesのパス /sbin/iptables リモートからiptablesの設定についてですが、 http://fedorasrv.com/iptables.shtml を参考にしてしましたが、 /sbin/iptables -P INPUT DROP したら、接続が切れますので。。。 グーグルで調べても、 リモートから上記のサイトのような設定をして行くのが見つかりませんでした・・・ どうしたら上手くリモートからiptablesを設定出来ますでしょうか? P.S iptablesについて初心者です。 宜しくお願いします。

  • r-n-y
  • お礼率48% (28/58)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.9

あなたのアドレスが 常に 192.0.0.1 で固定されている前提で う~~んと、何度も書いたり消したりで おかしなことに成っているとまずいので ご苦労ですが 今のiptables.shは 名前を変えて保存し もう一度 http://fedorasrv.com/iptables.shtml から コピーしてください ##確認 #!/bin/bash   <=1行目が これで /etc/rc.d/init.d/iptables start <=231行目がこれ   <=232行目(最終行)が空行になっていることを確認してください そしたら 以下で書き換え部分も含めて1~38行目までを通しで書きます ------この下の行が1行目----- #!/bin/bash export PATH=$PATH:/sbin/ # ↑この記述により ifconfigやiptablesの前にいちいち/sbin/ と入れないで済みます #---------------------------------------# # 設定開始 # #---------------------------------------# # インタフェース名定義 LAN=eth0 #---------------------------------------# # 設定終了 # #---------------------------------------# # 内部ネットワークのネットマスク取得 LOCALNET_MASK=`ifconfig $LAN|sed -e 's/^.*Mask:\([^ ]*\)$/\1/p' -e d` # 内部ネットワークアドレス取得 LOCALNET_ADDR=`netstat -rn|grep $LAN|grep $LOCALNET_MASK|cut -f1 -d' '` LOCALNET=$LOCALNET_ADDR/$LOCALNET_MASK # ファイアウォール停止(すべてのルールをクリア) /etc/rc.d/init.d/iptables stop # デフォルトルール(以降のルールにマッチしなかった場合に適用するルール)設定 iptables -P INPUT DROP # 受信はすべて破棄 iptables -P OUTPUT ACCEPT # 送信はすべて許可 iptables -P FORWARD DROP # 通過はすべて破棄 # 自ホストからのアクセスをすべて許可 iptables -A INPUT -i lo -j ACCEPT # 内部からのアクセスをすべて許可 iptables -A INPUT -s $LOCALNET -j ACCEPT iptables -A INPUT -s 192.0.0.1 -j ACCEPT # ↑この行追加 # 内部から行ったアクセスに対する外部からの返答アクセスを許可<=これが38行目になるはず 以上です 38行目から下はいじる必要有りません exitや 入力待ちのは TEST用ですので 本番には必要有りません では ガンバ!!

r-n-y
質問者

お礼

上記で解決致しました。 umasikajiro様 長々お付き合い頂きまして、 本当にありがとうございました。 もう少し色々と勉強して、 知識を高めていく努力します。 ありがとうございました!

その他の回答 (8)

回答No.8

要するに いろいろ書くと混乱するわけですね 了解です。 ではiptables.shの # 内部ネットワークのネットマスク取得 LOCALNET_MASK=`ifconfig $LAN|sed -e 's/^.*Mask:\([^ ]*\)$/\1/p' -e d`   ↓ LOCALNET_MASK=`/sbin/ifconfig $LAN|sed -e 's/^.*Mask:\([^ ]*\)$/\1/p' -e d` ####こちらにも /sbin/ を入れてください それで 実行してからコマンドラインで # iptables -nL|more -10  <=と打った結果が↓ Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 192.168.0.0/23 0.0.0.0/0 <=この行があなたの環境に合わせて出てくるか確認してください ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED LOG all -f 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix `[IPTABLES FR AGMENT] : ' DROP all -f 0.0.0.0/0 0.0.0.0/0 DROP tcp -- !192.168.0.0/23 0.0.0.0/0 multiport dports 135,137,138,139,445 DROP udp -- !192.168.0.0/23 0.0.0.0/0 multiport dports 135,137,138,139,445

r-n-y
質問者

お礼

いつもご丁寧にありがとうございます。 #LOCALNET_MASK=`/sbin/ifconfig $LAN|sed -e 's/^.*Mask:\([^ ]*\)$/\1/p' -e d` でエラーは解消されました。 # sh -x iptables.sh での結果も表示されました。 ただ、 LOCALNET=IPアドレス/255.255.255.224 に #last -i ユーザ名 で出たIPは含まれておりませんでした。 なので、下記のように変更でしょうか? last -i ユーザ名が192.0.0.1だった場合 前略 # 内部ネットワークアドレス取得 LOCALNET_ADDR=`netstat -rn|grep $LAN|grep $LOCALNET_MASK|cut -f1 -d' '` LOCALNET=$LOCALNET_ADDR/$LOCALNET_MASK 192.0.0.1                #追加箇所 exit # ファイアウォール停止(すべてのルールをクリア) 以下略 これで最後だと思います。 P.S ファイヤーウォール構築した場合に、 HP制作ソフト使ってデータDLした場合に、 index.htmlのhtmlファイルが index.htmlと言うディレクトリになってるのですが、 関係はないでしょうか? 違う質問もすいません。。

回答No.7

>iptables.sh: line 16: ifconfig: command not found 1. まず #!/bin/bash の次の行に export PATH=$PATH:/sbin/  と追記してください 2. #5で書いた exit は未だ外さないでください    それでまた sh -x iptables.sh します   今度はアドレス/マスクが出てくるはずです   その値を 取り合えずメモして置いてください 3. last との比較 ># last admin で打つと、IPではなくホストが表示される # last -i ユーザー名  <=でどうですか?(お使いのサーバーでは last -d がリンクされているらしい)  それで駄目なら 例えば 出てきたホスト名が TEST-PC だったら # ping -n TEST-PC <=と打つとIPアドレスが出ます(そのクライアントPCでエコー遮断していなければですが) なんとかIPアドレスが取れたら その値が 2.で取得した アドレス/マスク の範囲内に収まるか確認します ###取り合えず以上までを確認ください ## オマケ: # いずれにしろ sh スクリプトの書き方や Linuxコマンドを もう少し調べた方が良いかもしれませんね # 参考サイトを列記しておきます pathの設定: http://cisco250.hp.infoseek.co.jp/Linux/path/ LINUXコマンド系の参考サイト: 「Linuxコマンド逆引き大全」 http://itpro.nikkeibp.co.jp/article/COLUMN/20060224/230579/ 「Linuxコマンド百科辞典」 http://www.21linux.com/ 「Linuxコマンドcom」 http://xn--linux-op4dtfrgoh.com/ 「@IT Linux Square」 http://www.atmarkit.co.jp/flinux/

回答No.6

しつこくてすみません。 なんか不安になったので、、 >+ LOCALNET=192.168.1.0/255.255.255.0  <=この行が正しい事を確認してください 判ると思いますが、これはサーバーのIPアドレスが含まれるかではなくて あなたがログインするときのIPアドレスが範囲に含まれるかです。 調べるには 例えば lastコマンドを使います。 例えばあなたのログイン時のユーザー名が tarou だとすると コマンドラインで $ last tarou <=こう打つと tarou pts/1 192.168.1.40 Thu Jun 12 13:15 still logged in tarou pts/0 192.168.0.100 Thu Jun 10 13:06 still logged in こんなのが出ますが 6/12のログインはOKですけども  6/10の方は 192.168.1.0/255.255.255.0 の範囲に含まれませんね そうなると 少なくとも初期状態でiptables.shに記述されているアドレス/マスクの自動取得では カバーできませんし LANのアドレスですから ACCEPT_COUNTRY でも駄目だと思います そういうときは LOCALNET=$LOCALNET_ADDR/$LOCALNET_MASK 行に直接数値を入れるか または #4に書いた 参考URL:[iptablesテンプレート] などを見て 追記する必要があると思います

r-n-y
質問者

お礼

umasikajiro様 本当に丁寧にありがとうございます。 時間、知識不足なので、 少しずつやってます。。。 幾つか問題があったので記載します。 # last admin で打つと、IPではなくホストが表示されるような形でした・・ # TEST入力待ち Yまたはy入力で次の処理 while [ 1 ]; do /bin/echo -n "Y/N: ";read line case $line in [yY]) break ;; esac done # TEST入力待ちは以上迄 LOCALNET=$LOCALNET_ADDR/$LOCALNET_MASK exit     #追加t iptables -A INPUT -p tcp -s 210.1.144.0/20 --dport 22 -j ACCEPT の3つ追加して #./iptables.sh すると、 実行出来ないです。 Yで次の処理のと、exit抜くと実行出来ますが、 エラーが出ます。 ./iptables.sh: line 152: iptables: command not found ./iptables.sh: line 156: iptables: command not found ./iptables.sh: line 160: iptables: command not found ./iptables.sh: line 164: iptables: command not found ./iptables.sh: line 169: iptables: command not found ./iptables.sh: line 173: iptables: command not found ./iptables.sh: line 177: iptables: command not found ./iptables.sh: line 181: iptables: command not found ./iptables.sh: line 185: iptables: command not found ./iptables.sh: line 189: iptables: command not found ./iptables.sh: line 193: iptables: command not found ./iptables.sh: line 197: iptables: command not found ./iptables.sh: line 222: iptables: command not found ./iptables.sh: line 223: iptables: command not found ./iptables.sh: line 224: iptables: command not found ./iptables.sh: line 225: iptables: command not found みたいなのがかなり出ます。 iptables -A INPUT -p tcp -s 210.1.144.0/20 --dport 22 -j ACCEPT については、 #iptables -A INPUT -p tcp -s 210.1.144.0/20 --dport 22 -j ACCEPT # iptables -nL>/hoge/tmp/iptest.log ACCEPT tcp -- 210.1.144.0/20 0.0.0.0/0 tcp dpt:22 ともなって、でも接続は維持されてます。 iptables難しいですね。。 初心者ですいません。。。

r-n-y
質問者

補足

書く所がややこしくて、 masikajiro様が見る前に3つ位レス残してます。。。 今、iptables.shの iptablesのところを /sbin/iptables に変更して起動したら、 エラーがかなり出ましたが、 最後に全部OKの文字が。。。 #/sbin/iptalbes -L Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED LOG all -f anywhere anywhere LOG level warning prefix `[IPTABLES FRAGMENT] : ' DROP all -f anywhere anywhere LOG_PINGDEATH icmp -- anywhere anywhere icmp echo-request DROP all -- anywhere 255.255.255.255 DROP all -- anywhere ALL-SYSTEMS.MCAST.NET REJECT tcp -- anywhere anywhere tcp dpt:auth reject-with tcp-reset DROP_COUNTRY all -- anywhere anywhere ACCEPT tcp -- 210.1.144.0/20 anywhere tcp dpt:ssh ACCEPT tcp -- anywhere anywhere tcp dpt:domain LOG all -- anywhere anywhere limit: avg 1/sec burst 5 LOG level warning prefix `[IPTABLES INPUT] : ' ~~中略~~ LOG all -- 222.156.0.0/15 anywhere limit: avg 1/sec burst 5 LOG level warning prefix `[IPTABLES DENY_COUNTRY] : ' DROP all -- 222.156.0.0/15 anywhere LOG all -- 222.250.0.0/16 anywhere limit: avg 1/sec burst 5 LOG level warning prefix `[IPTABLES DENY_COUNTRY] : ' DROP all -- 222.250.0.0/16 anywhere LOG all -- 222.251.0.0/17 anywhere limit: avg 1/sec burst 5 LOG level warning prefix `[IPTABLES DENY_COUNTRY] : ' DROP all -- 222.251.0.0/17 anywhere Chain LOG_PINGDEATH (1 references) target prot opt source destination ACCEPT all -- anywhere anywhere limit: avg 1/sec burst 4 LOG all -- anywhere anywhere LOG level warning prefix `[IPTABLES PINGDEATH] : ' DROP all -- anywhere anywhere と出ます。

回答No.5

またまた わかる範囲で書きます >この時点でSSHから外れてしまって、おかしくならないでしょうか? 1.まず 念のために /etc/sysconfig/iptables を適当なところにコピーしておきます 2.iptables.sh のアドレス取得だけを行うように追記します 前略 LOCALNET=$LOCALNET_ADDR/$LOCALNET_MASK exit  <=iptables.shの、ここにexit を追加してください # ファイアウォール停止(すべてのルールをクリア) 以下略 3.コマンドラインで # sh -x iptables.sh 結果例: + LAN=eth0 ++ ifconfig eth0 ++ sed -e 's/^.*Mask:\([^ ]*\)$/\1/p' -e d + LOCALNET_MASK=255.255.255.0 ++ netstat -rn ++ grep eth0 ++ cut -f1 '-d ' ++ grep 255.255.255.0 + LOCALNET_ADDR=192.168.1.0 + LOCALNET=192.168.1.0/255.255.255.0  <=この行が正しい事を確認してください + exit

r-n-y
質問者

お礼

# sh -x iptables.sh + LAN=eth0 ++ ifconfig eth0 iptables.sh: line 16: ifconfig: command not found ++ sed -e 's/^.*Mask:\([^ ]*\)$/\1/p' -e d + LOCALNET_MASK= ++ netstat -rn ++ grep eth0 ++ grep Usage: grep [OPTION]... PATTERN [FILE]... ++ cut -f1 '-d ' Try `grep --help' for more information. + LOCALNET_ADDR= + LOCALNET=/ + exit でした。 iptablesは /sbin/iptables のパスにありますが。。。 iptables.sh は [root@localhost ~]# vi iptables.sh と~に作ってますが、 環境が問題でしょうか? グローバルIPが100.100.100.100 だったとした場合は、 ※iptables -A INPUT -p tcp -s 210.1.144.0/20 --dport 22 -j ACCEPT の所は iptables -A INPUT -p tcp -s 100.100.100.0/100 --dport 22 -j ACCEPT になります? 宜しくお願い致します。

回答No.4

#3を書いて直後に見直したら、、 >サーバーが違う場所にあり、 これって LAN内じゃないってことですか? ならば iptables -A INPUT -p tcp --dport 22 -j ACCEPT_COUNTRY  行で 日本国内からの port22接続は許可されていると思うのですが  念のためクライアントマシンの グローバルアドレスを調べて iptables -A INPUT -p tcp -s 210.1.144.0/20 --dport 22 -j ACCEPT  とかで出来ませんかねえ? これで接続が維持できたら 確認します。量が多すぎて見づらいのでログに落とします # iptables -nL>/hoge/tmp/iptest.log ACCEPT tcp -- 210.1.144.0/20 0.0.0.0/0 tcp dpt:22 と成っている行が有ればOKだと思います。 [iptablesテンプレート]   http://www.atmarkit.co.jp/flinux/rensai/iptables01/iptables01b.html 「日本のIPアドレス」 http://www.cgis.biz/tools/access.php

回答No.3

失礼いたしました。さすがに#1のは無かったですね。わかる範囲で書いてみます ・うちのはFC5ですが そのページの通りに設定して全然問題なく作動しています ・切断されると言う事は iptables -P INPUT DROP は機能しているが   許可する条件 or LANのIPアドレス取得のどちらかがおかしいのではないかと思います   iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 行の下に以下の10行を追加してください  これで入力待ちの時に Y または yを入れると続行します # TEST入力待ち Yまたはy入力で次の処理 while [ 1 ]; do /bin/echo -n "Y/N: ";read line case $line in [yY]) break ;; esac done # TEST入力待ちは以上迄  (あまりスマートじゃないけど ^^;)  追加したら # sh -x ./iptables.sh  <=と打ってください  ####入力待ちまでのうちでの実行結果は [hoge@hoge hogege]# sh -x iptables.sh + LAN=eth0 ++ ifconfig eth0 ++ sed -e 's/^.*Mask:\([^ ]*\)$/\1/p' -e d + LOCALNET_MASK=255.255.255.0 ++ netstat -rn ++ grep eth0 ++ grep 255.255.255.0 ++ cut -f1 '-d ' + LOCALNET_ADDR=192.168.1.0 + LOCALNET=192.168.1.0/255.255.255.0 + /etc/rc.d/init.d/iptables stop ファイアウォールルールを適用中: [ OK ] チェインポリシーを ACCEPT に設定中filter [ OK ] iptables モジュールを取り外し中 [ OK ] + iptables -P INPUT DROP + iptables -P OUTPUT ACCEPT + iptables -P FORWARD DROP + iptables -A INPUT -i lo -j ACCEPT + iptables -A INPUT -s 192.168.1.0/255.255.255.0 -j ACCEPT + iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT + '[' 1 ']' + /bin/echo -n 'Y/N: ' Y/N: + read line <=ここで入力待ち 上のは 192.168.1.1~192.168.1.254までのLANの場合です #### それでも駄目なら もっと詳しい人の回答を待ちましょう (^^;) ### 或いは http://fedorasrv.com/patio/patio.cgi <=質問掲示板へ

r-n-y
質問者

お礼

お返事、ご丁寧にありがとうございます。 遅くなりました・・・ 少し立て込んでて、 まだ試せてないのですが、 待たせてしまってるのでレスだけ先に返信しておきます。 外部にあって触れないと言うのは、 専用サーバーで、サーバーの管理はデータセンターにあり、入局が出来ないタイプの物で、SSHのみでファイヤーウォール構築しないとダメな環境と言う意味です。 まだやってないのですが、.sh内に + iptables -P INPUT DROP と表記あるは、この時点でSSHから外れてしまって、 おかしくならないでしょうか? 初心者ですいません。。。

  • ops
  • ベストアンサー率52% (13/25)
回答No.2

こんばんわ、 /sbin/iptables -P INPUT DROP をすることで、一切リモートからの受付が拒絶されてしまいます。 参考になるURLを載せておきます。 sshぐらいは明けておき、/etc/host.allowのTCPラッパーで制御してみてはどうでしょうか。 ========================= From RHCE Current

参考URL:
http://penguin.nakayosi.jp/linux/iptables.html
回答No.1

私が状況を勘違いしているのかもしれませんが、、 http://fedorasrv.com/iptables.shtml に書いてあるのは iptables.sh と言うfileに記述する内容です  ([root@fedora ~]# chmod 700 iptables.sh 行の上迄) コマンドとして /sbin/iptables -P INPUT DROP と打つのでは有りませんよ その下の行の [root@fedora ~]# vi iptables_functions は iptables_functions と言う名前のfileの内容です ##### このページの作者さんはコマンドラインの画面そのものに説明を加えていますので [root@fedora ~]# ←行頭がこれで始まる行はコマンドラインでの入力 [root@fedora ~]# vi /hoge/hoge.sh  ← vi コマンドで/hoge/hoge.sh と言うfileを編集 viの付く行から下は そのfileの編集内容 と言う事なのですが、、、

r-n-y
質問者

補足

返事遅くなりました、すいません。。。 お返事ありがとうございます。 fileはやってみたのですが、 どこかおかしいのか分からないですが、 接続が切れてしまいますので。。。 iptablesでfileに記載するような事をやって行こうと思っても、 DROPの時点でダメなので、何か良い方法はないですか? との質問でした・・ ちょっと分かりづらい質問の方法で失礼しました。 ちなみに。。。 [root@fedora ~]# vi iptables.shでfile作成 内容は下記。 #!/bin/bash ~略~ # ファイアウォール起動 /etc/rc.d/init.d/iptables start --------------------------------- までのfile作成で権限付けて、 [root@fedora ~]# vi iptables_functions #ファイル作成 # IPアドレスリスト取得関数定義 IPLISTGET(){ ~略~ # 最新版IPアドレスリストを /tmpへバックアップする /bin/cp cidr.txt /tmp/cidr.txt } --------- 作成。 [root@fedora ~]# vi /etc/cron.daily/iplist_check.sh ←作成 #!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin ~略~ else rm -f IPLIST.new fi ------ まで作成して権限つける。 [root@fedora ~]# ./iptables.sh を実行すると、エラーがひたすら出て、 SSHの接続も不可能になります。 全てコピーペーストでやりました。 saveしてないので、リブートで直りますが。。。

関連するQ&A

  • iptablesを設定するとメールが送受信できません

    iptablesを設定すると外部からのメールの送受信ができません。 iptablesを止めると送受信ができます。 メールサーバー(OpenSSL+Postfix+Dovecot) OS:CentOS5 iptables内容: #!/bin/bash # set LOCALNET=(IPアドレス) #IPTABLES STOP /etc/rc.d/init.d/iptables stop #Default Rule iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP #LOCAL ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -s $LOCALNET -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # SSH iptables -A INPUT -p tcp --dport 22 -j ACCEPT #HTTP iptables -A INPUT -p tcp --dport 80 -j ACCEPT # SSL iptables -A INPUT -p tcp --dport 443 -j ACCEPT #SMTPS iptables -A INPUT -p tcp --dport 465 -j ACCEPT #POP3S iptables -A INPUT -p tcp --dport 995 -j ACCEPT /etc/rc.d/init.d/iptables save /etc/rc.d/init.d/iptables start DNSは外部のを使っています。 サーバーには外部からSSHでアクセスしています。 iptablesを設定しても当たり前ですがSSHでアクセスができます。 メールはエラーというよりメーラーから出ていきません。 サイトにはアクセスができます。 ポートは空いています。 ただiptablesを設定すると465と995は到達ができません。 http://www.cman.jp/network/support/port.html こちらでチェック iptablesを止めるとすべてがうまくいくのでiptablesが原因だと思っていますが 素人すぎて情けないですがご教授のほど宜しくお願いします。,<(_ _)>

  • iptablesの設定で海外からのメールを拒否

    iptablesの設定で海外からのメールを拒否しています。 具体的には http://fedorasrv.com/iptables.shtml のサイトを参考に http://nami.jp/ipv4bycc/cidr.txt から情報を取っているのですが それでは googlw.comやmicrosoft.comのメールも拒否してしまいます。 主に海外のサイトからのメールは拒否したいのですが 特定の海外サイトのみメールの受信を許可できると ありがたいです。 上記サイトのスクリプトに iptables -A INPUT .google.com -p tcp --dport 25 -j ACCEPT という感じで追記しても駄目なんですよね? どのうように書いたらいいのか お教えいただけると大変ありがたいです、 何卒ご教授のほど、宜しくお願い申し上げます。

  • iptables

    FC6でiptablesをdropにすると動きがおかしくなる。なぜか? # iptables -P INPUT DROP # iptables -P FORWARD DROP # iptables -P OUTPUT DROP

  • 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関連のパケットはログをとり、インターネットに出さない という設定は必要ですか? これだと異常にたくさんのログが取れてしまいますが。。

  • iptablesについて

    先ほど、質問しようとしたのですが、制限が800文字だったため、書き込めませんでした。要点だけ。 fedora3でiptablesを使用しています。INPUT,FORWARD,OUTPUT全てDROPに設定し、ssh,http,smtp,pop3,imapを許可しています。 外部からはサーバにアクセス出来ます。しかし、内部からは接続できません。OUTPUTだけをACCEPTにすると内部から外部にアクセス出来ます。 HTTPでは 探索中: www.google.co.jp を最初に探します 探索中: www.google.co.jp HTTP で www.google.co.jp に接続中 警告!: リモートホストに接続できません。 lynx: スタートファイルにアクセスできません http://www.google.co.jp/ となり、SMTPでは postfix/smtp[3818]: connect to mx2.mail.yahoo.co.jp[203.216.227.209]: Connection timed out (port 25) となります。内部から外部への接続は何か適当なポートを使用しているのでしょうか?(問い返し等)

  • iptablesについて

    Linuxのiptablesについて教えてください、初心者です。 VPSを試しに使ってiptablesを勉強しています。 sshから下記を実行しました iptables -F iptables -X iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP iptables -A INPUT -p icmp -j ACCEPT iptables -A INPUT -p tcp -j ACCEPT iptables -A INPUT -p udp -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --sport 22 -j ACCEPT iptables -P INPUT DROP /etc/init.d/iptables save service iptables restart 結果、(1)では22、(2)では22 80、(3)では22 25 80が開いているように表示されてます ブラウザからサーバーにあるホームページは閲覧できません(設定通りで正しいと思います) (1)(2)(3)の違いはなんなのでしょうか?別モノなのでしょうか? (1)iptables -nL Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination (2)nmap (ホスト名) Starting Nmap 5.51 ( http://nmap.org ) at 2014-05-15 08:04 JST Nmap scan report for ホスト名 (IPアドレス) Host is up (0.000013s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds (3)nmap localhost Starting Nmap 5.51 ( http://nmap.org ) at 2014-05-15 08:01 JST Nmap scan report for localhost (127.0.0.1) Host is up (0.0000070s latency). Other addresses for localhost (not scanned): 127.0.0.1 Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds

  • 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]#

  • LINUXのiptablesについて

    通常LINUXのコマンドライン上で新たにiptablesルールを作り直すとき # iptablse -F # iptables -P INPUT DROP # iptables -P OUTPUT ACCEPT # iptables -P FORWARD DROP # service iptables save と上記のようにコマンドを叩いて、あたらしいデフォルトのチェインポリシーを 事前に定義するもののようです。 この後【/etc/sysconfig/iptablse】というファイルを覗いてみると、 # Generated by iptables-save v1.4.7 on Wed Sep 5 06:20:56 2012 *filter :INPUT DROP [1:151] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] COMMIT # Completed on Wed Sep 5 06:20:56 2012 上記のような内容がiptablesに記述されていると思います。 おそらくこれに特定の条件のみ パケットを受信するportを開放したりする記述を追記していくものと存じます。 たとえば -A INPUT -p tcp --dport 22 -J ACCEPT などと記述して他ホストからのssdポートへのアクセスを 許可するといったかんじですね。 ただ冒頭のデフォルトのポリシーの設定に関しては、やはりコマンドライン上で # iptablse -F # iptables -P INPUT DROP # iptables -P OUTPUT ACCEPT # iptables -P FORWARD DROP # service iptables save このようなコマンドを叩いて設定するのが普通なのでしょうか? 例えば、デフォルトポリシーを直接 ファイルに記述するといったことはしないのでしょうか? ================================================================= *filter #以下で、デフォルトのフィルタポリシーを設定する -P INPUT DROP -P OUTPUT ACCEPT -P FORWARD DROP COMMIT ================================================================= 上記のように、直接iptablesの書式で書き込むように・・。 気になった理由としてはコマンドラインでデフォルトポリシーを指定した場合と コマンド -Aをつかって任意のportを開放する指定をした時の記述が異なることがきになっているのです。 デフォルトポリシーの記述は :INPUT DROP [1:151] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] 上記のような 行頭にコロンがついたような記述になっているのに -A INPUT -p tcp --dport 22 -J ACCEPT 上記のような -Aコマンドを叩いたときは、そのままコマンドがiptablseファイルに記述されているように思います。 :INPUT DROP [1:151] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -P INPUT DROP -P OUTPUT ACCEPT -P FORWARD DROP 上記の二種類の書き方を直接iptablesに記述してもキチンと動作します。 なぜ、上記のようにデフォルトポリシーに関しては二種類の書き方が存在するのでしょうか?

  • iptablesの設定について

    RHEL5でのiptable設定で、 iptablesを無効にしている状態と、以下の設定はイコールで、 All許可で良いのでしょうか。 iptqbles -P INPUT ACCEPT Iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT

  • 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 どこが間違っているのか見つけられず困っています。