#!/bin/bash #Машина в офисе # office=192.168.1.111 #Машина администратора admin=192.168.1.51 #Адреса роутера server0=192.168.2.5 # server1=10.15.1.2 # Адрес файлового архива с mp3 и video #video_serv=172.18.1.2 # Интерфейс смотрящий на клиентов # iface_cli=eth1 # Интерфейс смотрящий во внешний мир iface_world=eth0 # Интерфейс смотрящий на архив #iface_int=etheth2 #Порты, на которых работает конфигуратор и авторизатор # conf_port=5555 # user_port1=5555 # user_port2=5555 # Разрешаем форвардинг пакетов между интерфейсами # Эта штука необязательна, просто в некоторых дистрибутивах # по умолчанию форвардинг разрешен, а в некоторых - запрещен # Если мы подстрахуемся, хуже не бкдет echo "1" > /proc/sys/net/ipv4/ip_forward # Очищаем правила файрвола iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X # Политика по умолчанию DROP: всем всё запрещено iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP # Разрешаем пингам ходить всюду и всегда #iptables -t filter -A INPUT -p icmp -j ACCEPT #iptables -t filter -A FORWARD -p icmp -j ACCEPT #iptables -t filter -A OUTPUT -p icmp -j ACCEPT # Разрешаем всё на локальном интерфейсе iptables -t filter -A INPUT -d 127.0.0.1 -j ACCEPT iptables -t filter -A OUTPUT -s 127.0.0.1 -j ACCEPT # БАНИМ КОГО НАДО # iptables -t filter -A INPUT -s 192.168.1.111 -j DROP # разрешить доступ мне по 80 порту, следующее запретит всем. iptables -t filter -A INPUT -s 192.168.1.51 -p tcp --dport 80 -j ACCEPT #запретить всем доступ по 80 порту iptables -t filter -A INPUT -s 192.168.0.0/16 -p tcp --dport 80 -j DROP # iptables -t filter -A INPUT -s 192.168.1.111 -p tcp --dport 22 -j ACCEPT iptables -t filter -A INPUT -s 192.168.1.51 -p tcp --dport 22 -j ACCEPT # закрыть по SSH iptables -t filter -A INPUT -s 192.168.0.0/16 -p tcp --dport 22 -j DROP # Разрешить серверу общаться с внешним миром iptables -t filter -A INPUT -i $iface_world -j ACCEPT iptables -t filter -A OUTPUT -o $iface_world -j ACCEPT #iptables -t filter -A INPUT -s $admin -d $server0 -j REJECT #iptables -t filter -A OUTPUT -d $admin -s $server0 -j REJECT # Разрешить видео-серверу обращаться во внешним миром и роутером # iptables -t filter -A INPUT -s $video_serv -j ACCEPT # iptables -t filter -A FORWARD -s $video_serv -j ACCEPT # iptables -t filter -A FORWARD -d $video_serv -j ACCEPT # iptables -t filter -A OUTPUT -d $video_serv -j ACCEPT # DNS. Замечу, ДНС работает и по TCP и по UDP iptables -t filter -A INPUT -p tcp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p tcp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p tcp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p udp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p udp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT # SSH #iptables -t filter -A INPUT -p tcp -s $office -d $server0 --dport 22 -j ACCEPT #iptables -t filter -A OUTPUT -p tcp -d $office -s $server0 --sport 22 -j ACCEPT #iptables -t filter -A INPUT -p tcp -s $admin -d $server0 --dport 22 -j ACCEPT #iptables -t filter -A OUTPUT -p tcp -d $admin -s $server0 --sport 22 -j ACCEPT # Stargazer configurator #iptables -t filter -A INPUT -p tcp -s 192.168.0.0/24 -d $server0 --dport $conf_port -j ACCEPT #iptables -t filter -A OUTPUT -p tcp -d 192.168.0.0/24 -s $server0 --sport $conf_port -j ACCEPT # UDP stargazer InetAccess #iptables -t filter -A INPUT -p udp -s 192.168.0.0/24 --sport $user_port2 -d $server0 --dport $user_port1 -j ACCEPT #iptables -t filter -A OUTPUT -p udp -d 192.168.0.0/24 --dport $user_port1 -s $server0 -j ACCEPT #All local # iptables -t filter -A INPUT -p tcp -s 192.168.0.0/24 -d $server0 -j ACCEPT # iptables -t filter -A OUTPUT -p tcp -d 192.168.0.0/24 -s $server0 -j ACCEPT #Маскарад #iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE #iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -o eth0 -j MASQUERADE