#!/bin/bash # /usr/sbin/blok # Skrypt do włączania i wyłączania określonych adresów IP # Na podstawie skryptu Zciech'a # (c) Adi - 2006-10-01 V1.0 # dostosowanie do CDN2 rikardo7 # Przykład użycia: # w konsoli: "blok start 12" - włącza blokadę dla IP:x.x.x.12 #set -x . /etc/rc.conf . /etc/net.conf # Ustawiamy zmienne i=`which iptables` IP=`ifconfig eth1 | grep "inet " | awk '{print $2}' | cut -d ":" -f 2` PART_1=`echo $IP | cut -d "." -f1` PART_2=`echo $IP | cut -d "." -f2` PART_3=`echo $IP | cut -d "." -f3` PART_4=`echo $IP | cut -d "." -f4` PART_5=`echo $IP | cut -d "." -f4` IP_LAN=`echo $PART_1.$PART_2.$PART_3.` ADRES=`echo $2 | awk '{print $1}'` ME=`basename $0` ERROR=0 # Sprawdzamy czy user ma prawa root'a if [ "`/usr/bin/id -u`" != 0 ] ; then echo "$ME: Musisz mieć prawa root'a do uruchomienia tego skryptu!" >& 2 exit 1 fi # Zła ilość parametrów - wyświetlam pomoc if [ $# != 2 ];then echo "Włączanie lub wyłączanie dostępu" echo "do Internetu dla określonego użytkownika" echo "----------------------------------------" echo "Użycie:" echo "$ME start|stop 0-255" echo "$ME -h tekst pomocy" echo "Przykład: blok start 12 - włącza blokadę dla IP: $IP_LAN""12" exit 1 fi # Sprawdzenie czy zakresy podanych parametrów są prawidłowe if [ $ADRES -le 1 ]; then ERROR=1 fi if [ $ADRES -ge 255 ]; then ERROR=1 fi # Nieprawidłowy parametr - wychodzimy ze skryptu if [ $ERROR = 1 ]; then echo "Nieprawidłowy parametr!" echo "Wpisz: $ME -h aby uzyskać pomoc." exit 1 fi # Obsługa włączeń i wyłączeń case "$1" in 'stop') if [ $ERROR = 0 ]; then $i -D INPUT -s $IP_LAN$2 -j REJECT 2>/dev/null $i -D FORWARD -s $IP_LAN$2 -j REJECT 2>/dev/null echo Odblokowalem: $IP_LAN$2 fi ;; 'start') if [ $ERROR = 0 ]; then $i -D INPUT -s $IP_LAN$2 -j REJECT 2>/dev/null $i -D FORWARD -s $IP_LAN$2 -j REJECT 2>/dev/null $i -I INPUT -s $IP_LAN$2 -j REJECT 2>/dev/null $i -I FORWARD -s $IP_LAN$2 -j REJECT 2>/dev/null echo Zablokowalem: $IP_LAN$2 fi ;; '-h') echo "Włączanie lub wyłączanie dostępu" echo "do Internetu dla określonego użytkownika" echo "----------------------------------------" echo "Użycie:" echo "$ME start|stop 0-255" echo "$ME -h tekst pomocy" echo "Przykład: blok start 12 - włącza blokadę dla IP: $IP_LAN""12" exit 1 ;; *) # Nieprawidłowy parametr - wychodzimy ze skryptu echo "Nieprawidłowy parametr!" echo "Wpisz: $ME -h aby uzyskać pomoc." esac # Koniec