mirror of
				https://github.com/mail-in-a-box/mailinabox.git
				synced 2025-10-31 19:00:54 +00:00 
			
		
		
		
	clutter
This commit is contained in:
		
							parent
							
								
									22d173ff80
								
							
						
					
					
						commit
						e70eabbd21
					
				| @ -1,67 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # Written by Onder Vincent Koc | ||||
| # @url: https://github.com/koconder/dshield_automatic_iptables | ||||
| # @credits: http://wiki.brokenpoet.org/wiki/Get_DShield_Blocklist | ||||
| # | ||||
| # Dshield Automatic Import to iptables | ||||
| # Import Dshield Blocklist in a basic shell script which will run silently via cron | ||||
| # and also use a seprate chain file to support other iptables rules without flushing | ||||
| # i.e. fail2ban and ddosdeflate | ||||
| 
 | ||||
| # path to iptables | ||||
| IPTABLES="/sbin/iptables"; | ||||
| 
 | ||||
| # list of known spammers | ||||
| URL="http://feeds.dshield.org/block.txt"; | ||||
| 
 | ||||
| # save local copy here | ||||
| FILE="/tmp/dshield_block.text"; | ||||
| 
 | ||||
| # iptables custom chain | ||||
| CHAIN="dshield"; | ||||
| 
 | ||||
| # check to see if the chain already exists | ||||
| $IPTABLES -L $CHAIN -n | ||||
| 
 | ||||
| # check to see if the chain already exists | ||||
| if [ $? -eq 0 ]; then | ||||
| 
 | ||||
|     # flush the old rules | ||||
|     $IPTABLES -F $CHAIN | ||||
| 
 | ||||
|     echo "Flushed old rules. Applying updated dsheild list...."     | ||||
| 
 | ||||
| else | ||||
| 
 | ||||
|     # create a new chain set | ||||
|     $IPTABLES -N $CHAIN | ||||
| 
 | ||||
|     # tie chain to input rules so it runs | ||||
|     $IPTABLES -A INPUT -j $CHAIN | ||||
| 
 | ||||
|     # don't allow this traffic through | ||||
|     $IPTABLES -A FORWARD -j $CHAIN | ||||
| 
 | ||||
|     echo "Chain not detected. Creating new chain and adding dsheild list...." | ||||
| 
 | ||||
| fi; | ||||
| 
 | ||||
| # get a copy of the spam list | ||||
| wget -qc $URL -O $FILE | ||||
| 
 | ||||
| blocklist=$( cat $FILE | awk '/^[0-9]/' | awk '{print $1"/"$3}'| sort -n) | ||||
| for IP in $blocklist | ||||
| do | ||||
|     # add the ip address log rule to the chain | ||||
|     $IPTABLES -A $CHAIN -p 0 -s $IP -j LOG --log-prefix "[dsheild BLOCK]" -m limit --limit 3/min --limit-burst 10 | ||||
| 
 | ||||
|     # add the ip address to the chain | ||||
|     $IPTABLES -A $CHAIN -p 0 -s $IP -j DROP | ||||
| 
 | ||||
|     echo $IP | ||||
| done | ||||
| 
 | ||||
| echo "Done!" | ||||
| 
 | ||||
| # remove the spam list | ||||
| unlink $FILE | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user