Board logo

標題: 網絡安全 Iptables and Spamhaus IP drop lists [打印本頁]

作者: ckleea    時間: 2014-5-20 12:33     標題: 網絡安全 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
複製代碼

作者: ckleea    時間: 2014-5-20 12:50

One more example

http://www.debian-tutorials.com/ ... -spamhaus-listed-ip
作者: orangelau    時間: 2014-5-20 13:08

回復 1# ckleea

iptable就是firewall嗎? 這樣可以自動update block list 嗎?
作者: ckleea    時間: 2014-5-20 13:33

可以用 cron job

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

這 scripts 可用在raspberrypi。

當然其他安全設定都要做。
作者: ckleea    時間: 2014-5-20 21:32

另一版本
  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"
複製代碼

作者: ckleea    時間: 2014-5-20 21:34

個人使用這一個版本
  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 每天運行一次
作者: orangelau    時間: 2014-5-21 01:55

呢個script應該放係邊個folder會比較好
作者: ckleea    時間: 2014-5-21 06:17

回復 7# orangelau


    我通常放在 /opt/scripts,將它設定為 executable e.g. chmod a+x scriptsname;然後在 cronjob 設定每天或每週行一次
作者: orangelau    時間: 2014-5-30 14:55

回復 8# ckleea

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

圖片附件: Screen Shot 2014-05-30 at 2.45.08 pm.jpg (2014-5-30 14:55, 100.22 KB) / 下載次數 841
http://telecom-cafe.com/forum/attachment.php?aid=3260&k=55f87442a9e715349c3bcb236c7f74f9&t=1732531086&sid=L94w92


作者: ckleea    時間: 2014-5-30 15:32

回復 9# orangelau


    是
作者: orangelau    時間: 2014-5-30 19:15

回復 10# ckleea

Thanks!!




歡迎光臨 電訊茶室 (http://telecom-cafe.com/forum/) Powered by Discuz! 7.2