海外のサーバーから攻撃が何回かありました。ここでは海外IPからのアクセスを遮断(ブロック)して国内IPからのアクセスのみを許可するファイヤーウォールの設定について解説します。
ここでは日本のみのIPアドレスのリストを作成します。
日本のIP以外も許可する場合は COUNTRYLIST='JP' の部分を COUNTRYLIST='JP KR CN' のように記述してください。
vi /root/iptables/jpip_setup.sh
#!/bin/bash COUNTRYLIST='JP' wget -q http://ftp.apnic.net/stats/apnic/delegated-apnic-latest :> /root/iptables/jpip for country in $COUNTRYLIST do for ip in `cat delegated-apnic-latest | grep "apnic|$country|ipv4|"` do COUNTRY=`echo $ip | awk -F"|" '{ print $2 }'` IPADDR=`echo $ip | awk -F"|" '{ print $4 }'` TMPCIDR=`echo $ip | awk -F"|" '{ print $5 }'` FLTCIDR=32 while [ $TMPCIDR -ne 1 ]; do TMPCIDR=$((TMPCIDR/2)) FLTCIDR=$((FLTCIDR-1)) done echo "$IPADDR/$FLTCIDR" >> /root/iptables/jpip done done
chmod 700 /root/iptables/jpip_setup.sh /root/iptables/jpip_setup.sh
下記は、FTPとSSHとWebminは自宅のIPからのみ、メールは海外からでも送受信できるように、その他のポートは国内IPからのみ、許可する設定例です。
※http https を国内IPのみに限定すると検索エンジンにクロールされなくなる場合があるので注意してください。
ポート番号に対するサービスについてはよく使うポートを参照してください。
iptablesの設定は既に行われているものとします。
iptables設定内容はこちらを参照ください。
vi /root/iptables/iptables_setup.sh
# 自宅のIPのみ許可するポート iptables -A INPUT -s 124.155.55.202 -p tcp -m multiport --dports 20,21,22,989,990,4000:4029,10000 -j ACCEPT # 国内海外IP問わず許可するポート iptables -A INPUT -p tcp -m multiport --dports 25,465,587 -j ACCEPT # 国内IPからのみ許可するポート if [ -e "/root/iptables/jpip" ]; then for ip in `cat /root/iptables/jpip` do iptables -A INPUT -s $ip -p tcp -m multiport --dports 80,110,143,443,993,995 -j ACCEPT done fi
chmod 700 /root/iptables/iptables_setup.sh /root/iptables/iptables_setup.sh
Copyright(C) systemexpress.co.jp All Rights Reserved. Author Takayuki Yukawa