Archives 10月 2017

botによるDOS攻撃、特定ファイルへの連続アクセスをipブロックにて遮断

access.log により moodle/calendar/set.php への不正規アクセスを確認 ユーザーエージェントは “MJ12bot”

ipsetを利用することで、IPアドレスの集合を簡単に管理することができる。
iptables を実行しなくて済むので早速入れた。

# yum install ipset 

セットの作成

接続拒否IPの集合”BLACKLIST”を作成

# ipset create BLACKLIST hash:net

プログラムフロー

moodle/calendar/set.php 先頭へ追記

[highlight_php]
$uaip = $_SERVER[‘REMOTE_ADDR’];//ipを取得
$ua = $_SERVER[‘HTTP_USER_AGENT’];// ユーザエージェントを取得
if( strpos($ua, ‘MJ12bot’) !== false ){
http_response_code( 301 ) ;
header( “Location: ../../abcdef/iptables.php?uaip=$uaip” ) ;
exit;
}
[/highlight_php]

../../abcdef/iptables.php 新規作成 (場所はどこでもいい)

[highlight_php]
<?php
$file=’/var/www/deny_ip’;
$getparam=htmlspecialchars($_GET[‘uaip’]);

file_put_contents($file,$getparam,FILE_APPEND | LOCK_EX);
?>

[/highlight_php]

/var/www/deny_ip には MJ12botがアクセスしてきたipアドレスが書き込まれていく

/root/iptables.sh シェルスクリプト作成

[highlight_php]
#!/bin/bash

# 拒否IPリストに記載されたIPからのアクセスを拒否する
if [ -s /var/www/deny_ip ]; then
for ip in `cat /var/www/deny_ip`
do
ipset add BLACKLIST $ip
done
fi
: > /var/www/deny_ip

[/highlight_php]

cron で5分おきに実行 vi /etc/crontab

[highlight_php]
*/5 * * * * root sh /root/iptables.sh
[/highlight_php]

cron log確認 tail -f /var/log/cron

ipset list BLACKLIST

[highlight_php]
Name: BLACKLIST
Type: hash:net
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 17008
References: 1
Members:
158.69.254.103 ←これが拒否IP
[/highlight_php]

特定IPをブロック 追加 削除 CentOS7

遮断したいIP 例 149.56.223.241を設定します


 # iptables -I INPUT -s 149.56.223.241 -j DROP
 # /etc/init.d/iptables save
 # /etc/init.d/iptables restart


Firewall  IPTABLE 操作
 iptables -L -v -n    一覧が見れる
 iptables -L -v -n --line-numbers   行番号もでる
num   pkts bytes target     prot opt in     out     source               destination         
1        4   240 DROP       all  --  *      *       149.56.223.241       0.0.0.0/0           
2        0     0 DROP       all  --  *      *       185.163.1.11         0.0.0.0/0           
3       31  1865 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25 

iptables -D INPUT 1 1のルールが消えるが、その後に繰り上がって、2が1になるので注意!

次回このコマンドをアタック検出→ 自動実行にしてみる

Vagrant入れて、ホストからpingが通る、インターネット接続までmac

インストールはここの記事に従う

Vagrantfile 有効なとこだけ

	Vagrant.configure("2") do |config| 
	config.vm.box = "rafacas/centos71-plain"
	
	  config.vm.provider "virtualbox" do |vm|
		vm.memory = 1024
	  end
	  
	  config.vm.define :app do |server|
		server.vm.hostname = "app"
		config.vm.network :public_network, :bridge => "en1: Wi-Fi (AirPort)"
	  end
	end

起動時にエラー

	翻訳	
	VagrantはVirtualBox共有フォルダをマウントできませんでした。 これは通常です
	ファイルシステム "vboxsf"が利用できないためです。 このファイルシステムは
	VirtualBox Guest Additionsとカーネルモジュールを介して利用可能になりました。
	これらのゲストの追加情報が適切にインストールされていることを確認してください。
	ゲスト。 これはバージュのバグではなく、通常は不具合が原因です
	不気味な箱。 コンテキストの場合、試行されたコマンドは次のとおりです。
	
	mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant
	
	コマンドから出力されたエラーは次のとおりです。
	
	/sbin/mount.vboxsf:マウントに失敗しました:そのようなデバイスはありません

	

mac $ vagrant plugin install vagrant-vbguest で解決できた。

$ curl yahoo.co.jp → ソースが開く

$ ping 192.168.111.103
PING 192.168.111.103 (192.168.111.103): 56 data bytes
64 bytes from 192.168.111.103: icmp_seq=0 ttl=64 time=0.531 ms

Vargrant ホストからpingが通る。インターネットに繋がる までのまとめ