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