Hachiojipm 14 LT

1,418 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,418
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Hachiojipm 14 LT

  1. 1. Hachioji.pm #14 Lightning Talk @ytnobody
  2. 2. 今回のテーマ 浮気
  3. 3. 浮気?!
  4. 4. そんなふしだらな奴には 手痛いしっぺ返し!
  5. 5. 今日は(サーバ的な意味で)浮気性な スクリプトキディたちに門前払いを食らわせたお話をします。
  6. 6. 自分の身は自分で守らないとね!
  7. 7. さくらvpsのnginxに大量の不審なアクセスログ
  8. 8. アクセス元はパチモンで名を馳せている あの国とかあの国とか
  9. 9. 上等だ、アク禁してやる。
  10. 10. use strict;use warnings;my $limit = 10;my $expire = 600;my $cnt = {};my $addr;while ( my $line = <STDIN> ) {   my @part = split /s/, $line;   my $stat = $part[8];   $addr = $part[0];   next unless $addr =~ /^d+?.d+?.d+?.d+$/;   next if $addr =~ /^127./;   next unless $stat =~ /^4/;   $cnt->{$addr}->{cnt} ||= 0;   if ( $cnt->{$addr}->{cnt} < $limit ) {       $cnt->{$addr}->{cnt} ++;       $cnt->{$addr}->{time} = time();       if ( $cnt->{$addr}->{cnt} >= $limit ) {           `iptables -A INPUT -s $addr -j DROP`;       }   }   for $addr ( keys %$cnt ) {       if ( time - $cnt->{$addr}->{time} >= $expire ) {           delete $cnt->{$addr};           `iptables -D INPUT -s $addr -j DROP`;       }   };}
  11. 11. アクセスログを解析404を頻発させているIPアドレスを抽出
  12. 12. そうやって絞り出したIPをiptables で DROP DROP DROP!
  13. 13. 今ではアクセスログが たまりすぎることなく平和に過ごしております
  14. 14. ご静聴ありがとうございました

×