ufwで日本以外からのアクセスを遮断する
ufwで日本以外からのアクセスを遮断する
注意:この記事のやり方ではアドレスを全部登録するのに1ヶ月以上かかったので実用的な方法ではありません。(2021/07/14追記)
経緯
WEBサーバーに中露からの攻撃がガンガン来るので、遮断する。
下記の様なアクセスが 1日に数百件来る。
うるさいので日本のIPアドレスからのみを許可する様にしたい。
45.80.68.76 - - [08/Mar/2021:21:29:56 +0900] "POST /_ignition/execute-solution HTTP/1.1" 403 3885 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
45.80.68.76 - - [08/Mar/2021:21:46:01 +0900] "POST /_ignition/execute-solution HTTP/1.1" 403 686 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
さくらのクラウドのパケットフィルタでできるかな?
さくらのクラウドのサーバーなので パケットフィルタでなんとならないか調べてみたが、出来なさそうだ。
ufwでやってみる
公開されている日本に割り当てられた IPアドレスだけを許可一覧にいれてやればいいのでは?
などと考えた。
ufwを有効化
sudo ufw enable
デフォルトをdenyにして
sudo ufw DEFAULT deny
デフォルトで接続禁止にして、許可されたアクセスだけ許すようにする。
注意 SSHでログイン出来なくなるので要注意
ログイン元のIPアドレスを許可リストに追加
sudo ufw allow from 122.249.123.123 to any
自分がログインしている端末のグローバルIPアドレスを許可リストに入れる。
日本のIPアドレスを取得して、ufwコマンドを作成するシェルスクリプトを作る。
vi mk_cmd.sh
#!/bin/bash
wget http://nami.jp/ipv4bycc/cidr.txt.gz
zcat cidr.txt.gz | grep ^JP > cidr.txt
cat cidr.txt | awk {'print "ufw allow from "$2" to any"'} > set_allow_jp.sh
こいつを実行
chmod a+x ./mk_cmd.sh
./mk_cmd.sh
set_allow_jp.shファイルが出来上がる
中身はこんな感じ
ufw allow from 80.80.92.0/22 to any
ufw allow from 85.94.160.0/19 to any
ufw allow from 89.150.2.0/23 to any
ufw allow from 89.150.4.0/22 to any
・・・以下略・・・
set_allow_jp.shを実行
chmod a+x ./set_allow_jp.sh
nohup sudo ./set_allow_jp.sh &
読込に数時間かかりそうなのでバックグラウンドジョブで実行。
以下のコマンドで何件設定されたか確認
sudo ufw status | wc
146311件くらいになれば終了。
1分間で80件くらい追加されるので、全部設定するのに27時間くらいかかりそう。
大丈夫かなぁ。
1日で設定件数役3万件。14万件登録しないといけないので、設定に4〜5日かかりそう。
ぜんぜん実用的じゃ無い。
設定開始から4日で登録件数51606件。
1分で5件くらいしか登録できない状態になった。
14万件登録するのにいつまでかかることやら。
追記:2021/04/05
結局14万件登録するのに1ヶ月かかった。こりゃ使えない。要改善。
ufwは普段あまり使っていないが、大丈夫だろうか。
パフォーマンスに難があるような気がする。
Author And Source
この問題について(ufwで日本以外からのアクセスを遮断する), 我々は、より多くの情報をここで見つけました https://qiita.com/Shiro-neko-kamen/items/7e8411c95b0bedf8312f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .