先日、
でrobot.txtと.htaccessでの対応方法を書きましたが、それから、数日はサーバの反応も良かったようなのです。
でも、数日が過ぎ、また、サーバの反応が鈍いとの連絡を受け、ログを調べたところ、また、botのアクセスが始まっていました。
加えて、botとは、別に、不明なアクセスが多数あり、これは、
robot.txt
や
.htaccess
では、防ぎきれるものでは無いと判断し、今度は、サーバの入口である、
ポートで制限
を試みることにしました。
ポートで制限というと
iptables
での制限となりますが、リモートでの作業は一歩間違えると、自分自身も入れなくなり、サーバ操作ができなくなります(>_<)
とりあえず、自分のPC上に、今のiptablesのコンフィグをダウンロードし、編集し、確認してから実際のiptablesを書き換えることにしました。
編集前のiptablesは、
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT – [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp ! –tcp-flags FIN,SYN,RST,ACK SYN -m state –state NEW -j DROP
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -s **.**.**.0/255.255.192.0 -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.192.0 -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -s ***.***.**.0/255.255.255.0 -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -s ***.***.***.0/255.255.255.0 -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -s ***.***.***.***/255.255.255.*** -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 20 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 443 -j ACCEPT
-A INPUT -s **.**.**.0/255.255.192.0 -p icmp -m icmp –icmp-type 0 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p icmp -m icmp –icmp-type 0 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p icmp -m icmp –icmp-type 0 -j ACCEPT
-A INPUT -s **.**.**.0/255.255.192.0 -p icmp -m icmp –icmp-type 3 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p icmp -m icmp –icmp-type 3 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p icmp -m icmp –icmp-type 3 -j ACCEPT
-A INPUT -s **.**.**.0/255.255.192.0 -p icmp -m icmp –icmp-type 8 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p icmp -m icmp –icmp-type 8 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p icmp -m icmp –icmp-type 8 -j ACCEPT
こんな感じでした。
ポートの送信以外は全て遮断した上での設定になります。
今回、この
送信側
に問題があったようです。
※実は、この問題に気づくのに1週間かかってしまいました。
人の書いたiptablesを引き継いで管理するのは、ちょっとばかり骨が折れます(^^;)
今回は、余りにも遮断するIPが多いのと、何が悪さをしているのかを把握するのが難しいこともあり、該当IPを一つ一つ遮断しているのは酷なことになると判断し、iptablesの一番最初のポリシーとして、
全ポート遮断
から、必要なポートを開けていく手法にすることとしました。
よく考えたら、今の世の中、こうしないと、サーバで何が起きているのか把握するのは困難ですよね(T_T)
で、全ポート遮断から始めるため、少々、今までとは、ルールを書く上で注意が必要になります。
それが、各ルールのOUTPUT側を必要に応じて書く必要があると言うことです。
これを考慮して、書いていったんですが、それが、下記のルールになります。
折角ですので、一つ一つ補足説明をかけるところは書いてみたいと思います。
*filter
#全ポートを遮断
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:RH-Firewall-1-INPUT – [0:0]
#ループバックアドレスからのアクセスを許可し、サーバ内部でのパケット送受信を可能にします。
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
#SYNflood(接続をあぶれさせる)攻撃の接続を破棄する
-A INPUT -p tcp -m tcp ! –tcp-flags FIN,SYN,RST,ACK SYN -m state –state NEW -j DROP
#確立済みの接続及びそれと関連する接続についてパケットは許可し、上記で許可した受入れパケット及び 外部DNSサーバーへの問合せに対する応答パケットを通過させるようにします。
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
#信頼できる特定ホストからのSSH接続を許可します。
-A INPUT -s **.**.0.0/255.255.0.0 -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -s **.**.**.0/255.255.192.0 -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.192.0 -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -s ***.***.**.0/255.255.255.0 -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -s ***.***.***.0/255.255.255.0 -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -s ***.***.***.***/255.255.255.*** -p tcp -m tcp –dport 22 -j ACCEPT
#FTP接続を許可します。
-A INPUT -p tcp -m tcp –dport 20 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 21 -j ACCEPT
#PASSIVモードでのファイル転送を許可します。
-A INPUT -p tcp -m state –state NEW –dport 1024: -j ACCEPT
#HTTPアクセスを許可します。
-A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
#HTTPSアクセスを許可します。
-A INPUT -p tcp -m tcp –dport 443 -j ACCEPT
#信頼できる特定ホストからのPING応答を許可します。
-A INPUT -s **.**.**.0/255.255.192.0 -p icmp -m icmp –icmp-type 0 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p icmp -m icmp –icmp-type 0 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p icmp -m icmp –icmp-type 0 -j ACCEPT
-A INPUT -s **.**.**.0/255.255.192.0 -p icmp -m icmp –icmp-type 3 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p icmp -m icmp –icmp-type 3 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p icmp -m icmp –icmp-type 3 -j ACCEPT
-A INPUT -s **.**.**.0/255.255.192.0 -p icmp -m icmp –icmp-type 8 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p icmp -m icmp –icmp-type 8 -j ACCEPT
-A INPUT -s **.**.0.0/255.255.0.0 -p icmp -m icmp –icmp-type 8 -j ACCEPT
#自ホストから特定の外部DNSサーバーへの問合せを許可します。
# DNS
#-A OUTPUT -p udp –dport 53 -j ACCEPT
#-A OUTPUT -p tcp –dport 53 -j ACCEPT
-A OUTPUT -p tcp –dport 53 -s ***.***.0.0/16 -j ACCEPT
-A OUTPUT -p udp –dport 53 -s ***.***.0.0/16 -j ACCEPT
-A OUTPUT -p tcp –dport 53 -s ***.0.0.0/8 -j ACCEPT
-A OUTPUT -p udp –dport 53 -s ***.0.0.0/8 -j ACCEPT
-A OUTPUT -p tcp –dport 53 -s hoge.hogehoge.hoge.hoge -j ACCEPT
-A OUTPUT -p udp –dport 53 -s choge.hogehoge.hoge.hoge -j ACCEPT
-A OUTPUT -p tcp –dport 53 -s hoge2.hogehoge.hoge.hoge -j ACCEPT
-A OUTPUT -p udp –dport 53 -s hoge2.hogehoge.hoge.hoge -j ACCEPT
このように、ルールを決定し、ローカルPCに構築した仮想環境上のLinuxで動作確認後、リモートサーバのiptablesを上書きしたところ、
パッタリ
不明なアクセスが止みました\(^o^)/
それが、一昨日の昼頃なんですが、今のところ、
サーバの応答が鈍い
サーバにアクセスできない
といった連絡は来ていないので、これで、今回の事象は収束になったと考えているところです。
う〜ん、なかなか難しいところがありますが、解決できると気持ちいいものですね(^o^)
— PR —
【初期費用無料】【サーバーレンタル料無料】【配送料無料】プレミアムウォーター
エステ体験「美脚時代コース」エルセーヌモデル達も大絶賛! お腹・お尻・脚などやせにくい部分を多彩な手技で集中ケア!まずは体験!エルセーヌの「美脚時代コース」へ!
エスセーヌ「ヘッドファーストフェイシャル」
「若見え肌が嬉しい!」体験者I様(40歳)談 など喜びの声が続々!
お顔のエステで、顔は小さく!目は大きく!肌はワントーン明るく!
◆エステ業界初!重力に逆らう美顔コース
効果をしっかり実感できる体験エステ!
— PR —
※たった1ヶ月(31日)で60万円を稼ぐ方法(^o^)
たった4つの“無料”授業を受けるだけで、稼げる側の人になれます(^_-)
→ http://bit.ly/1NtIeg2
コメント