返回列表 發帖

網絡安全 Iptables and Spamhaus IP drop lists

最近見到這方面的資料,與大家分享。

http://www.spamhaus.org/faq/section/DROP%20FAQ

其中一個與iptables 配合的scripts
  1. #!/bin/bash
  2. # Generate automatic firewall rules to block bad IPs listed on spamhaus.org
  3. FILE=/tmp/drop.lasso
  4. wget -O $FILE http://www.spamhaus.org/drop/drop.lasso
  5. iptables -F ; flush iptables, comment line if you use other rules
  6. for ipblock in `egrep -v '^;' $FILE | awk '{print $1}'`
  7. do
  8. iptables -I INPUT -s $ipblock -j DROP
  9. done
複製代碼

TOP

回復 1# ckleea

iptable就是firewall嗎? 這樣可以自動update block list 嗎?

TOP

可以用 cron job

適合使用一般家用 router使用。如果用 routerOS或其他高檔的 router,就可以有在 router level 做。

這 scripts 可用在raspberrypi。

當然其他安全設定都要做。

TOP

另一版本
  1. #!/bin/bash

  2. IPT="/sbin/iptables"
  3. FILE="/tmp/drop.lasso"
  4. URL="http://www.spamhaus.org/drop/drop.lasso"

  5. echo ""
  6. echo -n "Deleting DROP list from existing firewall..."

  7. #This will delete all dropped ips from firewall
  8. ipdel=$(cat $FILE  | egrep -v '^;' | awk '{ print $1}')

  9. for ipblock in $ipdel
  10. do
  11. $IPT -D spamhaus-droplist -s $ipblock -j DROP
  12. $IPT -D droplist -s $ipblock -j LOG --log-prefix "DROP Spamhaus List"
  13. done


  14. echo -n "Applying DROP list to existing firewall..."

  15. #This will drop all ips from spamhaus list.
  16. [ -f $FILE ] && /bin/rm -f $FILE || :
  17. cd /tmp
  18. wget $URL

  19. blocks=$(cat $FILE  | egrep -v '^;' | awk '{ print $1}')
  20. $IPT -N spamhaus-droplist

  21. for ipblock in $blocks
  22. do
  23.         $IPT -A droplist -s $ipblock -j LOG --log-prefix "DROP Spamhaus List"
  24.         $IPT -A droplist -s $ipblock -j DROP
  25. done

  26. $IPT -I INPUT -j droplist
  27. $IPT -I OUTPUT -j droplist
  28. $IPT -I FORWARD -j droplist

  29. echo "...Done"
複製代碼

TOP

個人使用這一個版本
  1. #!/bin/bash
  2. IPTABLES=/sbin/iptables
  3. FILE="/tmp/drop.lasso"
  4. URL="http://www.spamhaus.org/drop/drop.lasso"
  5. #echo ""
  6. #echo -n "Applying DROP list to existing firewall..."
  7. $IPTABLES -D INPUT -j Spamhaus
  8. $IPTABLES -D OUTPUT -j Spamhaus
  9. $IPTABLES -D FORWARD -j Spamhaus
  10. $IPTABLES -F Spamhaus
  11. $IPTABLES -X Spamhaus
  12. [ -f $FILE ] && /bin/rm -f $FILE || :
  13. cd /tmp
  14. wget $URL
  15. blocks=$(cat $FILE | egrep -v '^;' | awk '{ print $1}')
  16. $IPTABLES -N Spamhaus
  17. for ipblock in $blocks
  18. do
  19. #$IPTABLES -A Spamhaus -s $ipblock -j LOG --log-prefix "DROP List Block"
  20. $IPTABLES -A Spamhaus -s $ipblock -j DROP
  21. #echo $ipblock
  22. done
  23. $IPTABLES -I INPUT -j Spamhaus
  24. $IPTABLES -I OUTPUT -j Spamhaus
  25. $IPTABLES -I FORWARD -j Spamhaus
  26. #echo "...Done"
  27. /bin/rm -f $FILE
複製代碼
非常簡單

用 cron job 每天運行一次

TOP

呢個script應該放係邊個folder會比較好

TOP

回復 7# orangelau


    我通常放在 /opt/scripts,將它設定為 executable e.g. chmod a+x scriptsname;然後在 cronjob 設定每天或每週行一次

TOP

回復 8# ckleea

是否將呢27句全部放在同一個file,然後係crontab裡設定定時運作就可以
Screen Shot 2014-05-30 at 2.45.08 pm.jpg
2014-5-30 14:55

TOP

回復 9# orangelau


    是

TOP

回復 10# ckleea

Thanks!!

TOP

返回列表