Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- INPUT=/tmp/menu.sh.$$
- OUTPUT=/tmp/output.sh.$$
- OUTPUT2=/tmp/output2.sh.$$
- OUTPUT3=/tmp/output3.sh.$$
- while [ true ]; do
- dialog --title "iptables - mgmt" \
- --menu "Select table:" 40 80 25 \
- 1 "* Wyświetl reguły dla wybranego łancucha"\
- 2 "* Stwórz nowy łańcuch"\
- 3 "* Stwórz nowy łańcuch w wybranej tablicy"\
- 4 "* Zablokuj adres IP w godzinach 17-22" \
- 5 "* Proxy dla całej sieci na wybranym porcie" \
- 6 "* Przekieruj port \"XXX\" dla wybranego IP"\
- 7 "* Zablokuj wybrany adres MAC" \
- 8 "* Zablokuj wybrany adres IP" \
- 9 "* Ogranicz ilość połączeń" \
- 10 "* Zablokuj porty 600-800 dla wybranego adresu IP" \
- 11 "* Zablokuj możliwość dalszego udostępniania dla wybranego IP" \
- 12 "* Zablokuj możliwość dalszego udostępniania dla całej sieci" \
- 13 "* Otwórz port \"xxxx\" na interfejsie eth0" \
- 14 "* Zablokuj wysyłanie poczty na porcie 25 dla wybranego IP" \
- 15 "* Przekieruj wszystkie porty na wirtualny serwer www BLOKADA" \
- 16 "* Zablokuj wybraną witrynę" \
- 17 "* Zablokuj pulę wybranych publicznych adresów IP" \
- 18 "Wyczyść reguły ze wszystkich tablic" \
- 19 "Usuń utworzone łańcuchy" \
- 20 "Zmień politykę dla ruchu wchodzącego na DROP" \
- 21 "Zezwól na połączenia ICMP" \
- 22 "Zezwól na ruch wchodzący inicjowany lokalnie" \
- 23 "Zezwól na ruch do Twojego serwera WWW" \
- 24 "Zezwól na ruch do Twojego serwera FTP" \
- 25 "Zezwól na wchodzące połączenia SMTP" \
- EXIT "Wyjdź z menu" \
- 2>"${INPUT}"
- menuitem=$(<"${INPUT}")
- case $menuitem in
- 0) clear && echo "Canceled" ;;
- 1) dialog --inputbox "Wpisz nazwę: (pozostaw puste, jeśli chcesz wyświetlić wszystkie)" 8 40 2>"${OUTPUT}"
- clear
- iptables -L $(<"${OUTPUT}") ;;
- 2) dialog --inputbox "Wpisz nazwę dla nowego łańcucha" 8 40 2>"${OUTPUT}"
- clear
- iptables -N $(<"${OUTPUT}")
- iptables -L ;;
- 3) dialog --inputbox "Podaj tablicę" 8 40 2>"${OUTPUT}"
- dialog --inputbox "Wpisz nazwę dla nowego łańcucha" 8 40 2>"${OUTPUT2}"
- clear
- iptables -t $(<"${OUTPUT}") -N $(<"${OUTPUT2}")
- iptables -t $(<"${OUTPUT}") -L ;;
- 4) dialog --inputbox "Podaj adress IP" 8 40 2>"${OUTPUT}"
- clear
- iptables -I FORWARD -s $(<"${OUTPUT}") -m time --timestart 17:00 --timestop 22:00 -j DROP
- iptables -L FORWARD ;;
- 5) dialog --inputbox "Wybierz port" 8 40 2>"${OUTPUT}"
- clear
- iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port $(<"${OUTPUT}")
- iptables -t nat -L PREROUTING ;;
- 6) dialog --inputbox "Podaj adres IP" 8 40 2>"${OUTPUT}"
- dialog --inputbox "Podaj port" 8 40 2>"${OUTPUT2}"
- clear
- iptables -I FORWARD -p tcp -d $(<"${OUTPUT}") --dport $(<"${OUTPUT2}") -j ACCEPT
- iptables -t nat -A PREROUTING -p tcp -i eth0 --dport $(<"${OUTPUT2}") -j DNAT --to $(<"${OUTPUT}");;
- 7) dialog --inputbox "Podaj MAC address (format- aa:bb:cc:dd:ee:ff)" 8 40 2>"${OUTPUT}"
- clear
- iptables -A INPUT -m mac --mac-source $(<"${OUTPUT}") -j DROP
- iptables -A FORWARD -m mac --mac-source $(<"${OUTPUT}") -j DROP
- iptables -L INPUT
- iptables -L FORWARD ;;
- 8) dialog --inputbox "Podaj adres IP" 8 40 2>"${OUTPUT}"
- clear
- iptables -A INPUT -s $(<"${OUTPUT}") -j DROP
- iptables -A FORWARD -s $(<"${OUTPUT}") -j DROP
- iptables -A INPUT -d $(<"${OUTPUT}") -j DROP
- iptables -A FORWARD -d $(<"${OUTPUT}") -j DROP
- iptables -L INPUT
- iptables -L FORWARD ;;
- 9) dialog --inputbox "Wpisz górny limit połączeń" 8 40 2>"${OUTPUT}"
- clear
- iptables -A FORWARD -p tcp -m connlimit --connlimit-above $(<"${OUTPUT}") --connlimit-mask 32 -j DROP
- iptables -L FORWARD ;;
- 10) dialog --inputbox "Podaj adres IP " 8 40 2>"${OUTPUT}"
- dialog --inputbox "Podaj dolny zakres" 8 40 2>"${OUTPUT2}"
- dialog --inputbox "Podaj górny zakres" 8 40 2>"${OUTPUT3}"
- clear
- iptables -I FORWARD -s $(<"${OUTPUT}") -p tcp --dport $(<"${OUTPUT2}"):$(<"${OUTPUT3}") -j DROP
- iptables -I FORWARD -s $(<"${OUTPUT}") -p udp --dport $(<"${OUTPUT2}"):$(<"${OUTPUT3}") -j DROP
- iptables -L FORWARD ;;
- 11) dialog --inputbox "Podaj adres IP" 8 40 2>"${OUTPUT}"
- clear
- iptables -t mangle -A POSTROUTING -d $(<"${OUTPUT}") -j TTL --ttl-set 1
- iptables -t mangle -L POSTROUTING ;;
- 12) clear
- iptables -t mangle -A POSTROUTING -o eth1 -j TTL --ttl-set 1
- iptables -t mangle -L POSTROUTING ;;
- 13) dialog --inputbox "Wybierz port do zablokowania (eth0)" 8 40 2>"${OUTPUT}"
- clear
- iptables -A INPUT -p tcp -i eth0 --dport $(<"${OUTPUT}") -j ACCEPT
- iptables -L INPUT ;;
- 14) dialog --inputbox "Wpisz IP" 8 40 2>"${OUTPUT}"
- clear
- iptables -I FORWARD -p tcp --dport 25 -s $(<"${OUTPUT}") -j DROP
- iptables -L FORWARD ;;
- 15) clear
- iptables -A PREROUTING -t nat -s 192.168.1.12 -p tcp --dport 1:65535 -j DNAT --to- 192.168.1.1:83
- iptables -L PREROUTING ;;
- 16) dialog --inputbox "Wpisz nazwę domeny" 8 40 2>"${OUTPUT}"
- clear
- iptables -A OUTPUT -m string --algo bm --string $(<"${OUTPUT}") -j DROP
- iptables -L OUTPUT ;;
- 17) dialog --inputbox "Wpisz dolny zakres" 8 40 2>"${OUTPUT}"
- dialog --inputbox "Wpisz górny zakres" 8 40 2>"${OUTPUT2}"
- clear
- iptables -I FORWARD -m iprange --dst-rang $(<"${OUTPUT}")-$(<"${OUTPUT2}") -j DROP
- iptables -L FORWARD ;;
- 18) iptables -F;;
- 19) dialog --inputbox "Wpisz nazwę tablicy" 8 40 2>"${OUTPUT}"
- dialog --inputbox "Wpisz nazwę łańcucha do usunięcia" 8 40 2>"${OUTPUT2}"
- clear
- iptables -t $(<"${OUTPUT}") -F $(<"${OUTPUT2}") ;;
- 20) clear
- iptables -A OUTPUT -p tcp -j DROP
- iptables -L OUTPUT ;;
- 21) echo "21" ;;
- 22) echo "22" ;;
- 23) echo "23" ;;
- 24) echo "24" ;;
- 25) clear
- iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT
- iptables -A OUTPUT -p tcp --sport 587 -j ACCEPT
- iptables -L OUTPUT;;
- EXIT) clear
- exit 0 ;;
- *) clear
- exit 0 ;;
- esac
- sleep 5;
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement