99.9%の攻撃は海外IPから・・・
ハッキングが海外IPからというのは当たり前!当たり前体操٩(๑❛ᴗ❛๑)۶
また、日本人ハッカーも海外プロキシ経由などで足を残さないように、アタックするのは常識です。つまり、海外からのシステムへのアクセスを遮断すれば快適な運営が可能になります。実のところ、海外からのアクセスで汚されていたログが本当にすっきりしちゃうわけです。
サイバー攻撃の実際を覗いてみよう Norse – IPViking
すさまじいですね。どこぞの銀英伝みたいな・・・。
サーバーをインターネットに繋げるという事は、世界中のサイバー攻撃の対象体の1つになるという事です、3日以内に必ず何かしらの攻撃を受けます。
@see Norse IPViking(クリックで見れます。)
鎖国しよう
その心は、原則的にサーバーシステムの運営に関わるサービスへのアクセスは許さないけど、長崎のApache港(80port)くらいは解放し、外交の窓口を残しといてやるぜ!ってこと٩(๑❛ᴗ❛๑)۶
※当記事の内容はホスティング業者の管理パネルからのVNCによるログイン、オンプレミスなどSSH以外でのログインが別に確保出来る状態のサーバーに対してのみ行ってください、補償はしかねます。
海外からのアクセスを弾く 神器ipset
ipsetのインストール、yumで楽々です。
# yum install ipset
インストール:
ipset.x86_64 0:6.11-3.el6
依存性関連をインストールしました:
libmnl.x86_64 0:1.0.2-3.el6
週1回実行するようにスクリプトを作成
スクリプトの概要
- 週1回実行される
- 日本のIPを取得しホワイトリストフィルターを作る
- ダウンロードに失敗しているなら指定したアドレスにメール
# cd /etc/cron.weekly
# vi jp_ipwhitelist.sh
[bash] #!/bin/bash
# 国別コードリストをダウンロード
if [ -s cidr.txt ]; then
mv cidr.txt cidr.txt.old
fi
wget http://nami.jp/ipv4bycc/cidr.txt.gz
gunzip cidr.txt.gz
#差分チェック
ipdiff=$(diff cidr.txt.old cidr.txt | grep -c “^<“)
# 上記が存在していて、差分の数が200行以上の場合
# (通常考えられない量の変更=ファイルが正常に取得できていないと判断
if [ $ipdiff -gt 200 ]; then
# メールでIPリストが正常に取得できなかった事を管理者にメールする。
mail -s “iplist_check ERROR from hostname
” root@hostname
#正常に取得できなかったリストを削除
rm -f cidr.txt
else
# ホワイトリストセットを作成
ipset create -exist WHITELIST hash:net
# ホワイトリストセットに日本のIPアドレスを登録 ※while read ADDRESSで変数【ADDRESS】に代入
sed -n ‘s/^JP\t//p’ cidr.txt | while read ADDRESS; do
ipset add WHITELIST $ADDRESS
done
fi
[/bash]
実行権限を付与します。
# chmod +x ./jp_ipwhitelist.sh
1度実行してみます。
# ./jp_ipwhitelist.sh
ホワイトリスト確認
# ipset list WHITELIST | less
[bash] Name: WHITELIST
Type: hash:net
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 48272
References: 0
Members:
157.1.0.0/16
118.67.64.0/19
192.41.192.0/22
198.73.220.0/24
202.94.176.0/20
202.94.192.0/19
202.131.8.0/21
222.231.128.0/17
103.246.60.0/22
103.26.152.0/22
180.94.40.0/21
203.196.16.0/21
103.47.100.0/22
202.21.145.0/24
(略)
[/bash]
きちんと登録されてますねっ!
先程のホワイトリストを保存
# /etc/init.d/ipset save
ipset: Saving IP sets to /etc/sysconfig/ipset: [ OK ]
/etc/sysconfig/ipsetに保存されています。
見てみましょう。
# cat /etc/sysconfig/ipset
[bash] create WHITELIST hash:net family inet hashsize 1024 maxelem 65536
add WHITELIST 157.1.0.0/16
add WHITELIST 118.67.64.0/19
add WHITELIST 192.41.192.0/22
add WHITELIST 198.73.220.0/24
add WHITELIST 202.94.176.0/20
add WHITELIST 202.94.192.0/19
add WHITELIST 202.131.8.0/21
add WHITELIST 222.231.128.0/17
add WHITELIST 103.246.60.0/22
add WHITELIST 103.26.152.0/22
add WHITELIST 180.94.40.0/21
add WHITELIST 203.196.16.0/2
(略)
[/bash]
いい感じ。
ipset自動起動設定
# chkconfig ipset on
# chkconfig –list ipset
ipset 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iptablesの設定
SSH+FTP+MySQLは海外からのアクセスを遮断
# vi /etc/sysconfig/iptables
[bash]
※一部抜粋 下記を参考に各環境で設定して下さい。
# SSH, HTTP, FTP1, FTP2, MySQL
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
#-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
# New SSH(SSHport変更用)
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 11122 -j ACCEPT
# New FTP(FTPport変更用)
#-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 11121 -j ACCEPT
# FTP Passive
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 50000:50030 -j ACCEPT
↓変更
# SSH, HTTP, FTP1, FTP2, MySQL
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 20 -m set –match-set WHITELIST src -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -m set –match-set WHITELIST src -j ACCEPT
#-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -m set –match-set WHITELIST src -j ACCEPT
# New SSH(SSHport変更用)
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 11122 -m set –match-set WHITELIST src -j ACCEPT
# New FTP(FTPport変更用)
#-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 11121 -j ACCEPT
# FTP Passive
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 50000:50030 -m set –match-set WHITELIST src -j ACCEPT
[/bash]
再起動します。
# service iptables restart
iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ]
iptables: ファイアウォールルールを消去中: [ OK ]
iptables: モジュールを取り外し中: [ OK ]
iptables: ファイアウォールルールを適用中: [ OK ]
これでSSH/FTP/MySQLの封鎖ができました。
[bash] ∩ ∩
| | | |
| |__| |
/ 一 ー \ 人人人人人人人人人人人
/ (・) (・)|<IMAPとか他は鎖国しなくていいの?>
| ○ | YYYYYYYYYYYYYYYY
\__ ─ __ノ
∩_∩
/ \ /\
| ^)=(^)| 人人人人人人人人人人
| ●_● | < サーバー管理者なら自分で設計しろって事だよ >
/ // ///ヽ <言わせんな、恥ずかしい>
| 〃 —— ヾ| YYYYYYYYYYYYYY
\__二__ノ
[/bash]
確認しよう
# iptables -L
[bash] Chain RH-Firewall-1-INPUT (1 references)
target prot opt source destination
ACCEPT icmp — anywhere anywhere icmp any
ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp — anywhere anywhere state NEW tcp dpt:http
ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ftp-data match-set WHITELIST src
ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ftp match-set WHITELIST src
ACCEPT tcp — anywhere anywhere state NEW tcp dpt:mysql match-set WHITELIST src
ACCEPT tcp — anywhere anywhere state NEW tcp dpt:11122 match-set WHITELIST src
ACCEPT tcp — anywhere anywhere state NEW tcp dpts:50000:50030 match-set WHITELIST src
ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ddi-tcp-1
[/bash]
ホワイトリストのフィルターが設定されていることがわかります。
cronが生きているか確認
cronが生きているか確認
# /etc/init.d/crond status
crond (pid 1399) を実行中…
# chkconfig crond –list
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
筑波大学のVPN Gateを使い海外からアクセスしてみる。
過去の記事:筑波大学学術研究プロジェクト VPN Gate
VPN Gate の概要
VPN Gate 学術実験プロジェクトは、日本に所在する筑波大学における学術的な研究を目的として実施されているオンラインサービスです。本研究は、グローバルな分散型公開 VPN 中継サーバーに関する知見を得ることを目的としています。
VPN Gate を使うと・・・
VPN Gate に VPN 接続すると、以下の 3 つの利点を得ることができます。
政府の検閲用ファイアウォールを回避し、海外の YouTube などの Web サイトを自由に閲覧できます。
IP アドレス が VPN サーバーのものに書き換わります。インターネットで安全に情報発信をしたり、Web コンテンツを閲覧したりできます。
暗号化により公衆無線 LAN を安全に利用できます。
VPN Gate は過去の共有型 VPN サービスと比べて、政府の検閲用ファイアウォールによって遮断されにくいという特徴があります。しかも、無償で利用可能です。ユーザー登録は不要です。
@see 筑波大学VPN Gate
今回はドイツのVPN中継サーバーを選択
ドイツのIPを選びます。
ドイツに繋がりました。
SSHにアクセス
防御成功(ㆁᴗㆁ✿)ふふふふふ~
FTPにアクセス
防御成功です☆
お疲れ様でしたー!
@see 稲葉サーバーデザイン
@see oxynotes.com