Your SlideShare is downloading. ×

Hachiojipm 14 LT

1,186
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,186
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Hachioji.pm #14 Lightning Talk @ytnobody
  • 2. 今回のテーマ 浮気
  • 3. 浮気?!
  • 4. そんなふしだらな奴には 手痛いしっぺ返し!
  • 5. 今日は(サーバ的な意味で)浮気性な スクリプトキディたちに門前払いを食らわせたお話をします。
  • 6. 自分の身は自分で守らないとね!
  • 7. さくらvpsのnginxに大量の不審なアクセスログ
  • 8. アクセス元はパチモンで名を馳せている あの国とかあの国とか
  • 9. 上等だ、アク禁してやる。
  • 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. アクセスログを解析404を頻発させているIPアドレスを抽出
  • 12. そうやって絞り出したIPをiptables で DROP DROP DROP!
  • 13. 今ではアクセスログが たまりすぎることなく平和に過ごしております
  • 14. ご静聴ありがとうございました