====== Настройка NAT ====== создаем папку для скриптов sudo mkdir /etc/fire там же делаем файлы списки для тех, кому разрешаем полный доступ к проксе "c улицы" sudo touch /etc/fire/white.lst для тех, кому разрешаем доступ наружу по нату(если надо) sudo touch /etc/fire/inet.lst для тех, кто будет смотреть видео (хотя можно делать доступ всем и рулить паролями) sudo touch /etc/fire/video.lst создаем сам скрипт sudo nano /etc/fire/firewall изначально все для статического ИП #!/bin/sh -e # # правила для фаерфола # переменные #IP для локальной сети LOCALIP=192.168.0.0 #внутреняя сеть LOCALNET=192.168.0.0/24 #IP внешней сети REMOTEIP=85.172.67.100 #IP внешней сети при использовании DynDNS #REMOTEIP=`head /root/ipcheck.dat -n 1` #очищаем все /sbin/iptables -F /sbin/iptables -F -t nat #защита 22 от брутфорса /sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 20 -j DROP /sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT # или запрещаем всем кроме локальной сети #/sbin/iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT #/sbin/iptables -A INPUT -p tcp -s 0/0 --dport 22 -j DROP #разрешает весь локальный трафик /sbin/iptables -A INPUT -i lo -j ACCEPT #разрешаем пинг /sbin/iptables -A INPUT -p icmp -s 0/0 -d 0/0 -j ACCEPT #разрешаем ssh для настройки - 22 #/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT #разрешаем https если веб отчеты на проксе - 443 #/sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT #разрешаем http если веб на проксе - 80 #/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT #разрешаем vpn(pptp) - 1723 #/sbin/iptables -A INPUT -p tcp --dport 1723 -j ACCEPT #для натирования и работы pptp #echo 1 > /proc/sys/net/ipv4/ip_forward # входящие на проксик c "белого листа" for i in `cat /etc/fire/white.lst | grep "#" -v`; do /sbin/iptables -A INPUT -s $i -d $REMOTEIP -j ACCEPT; done; # чтоб на проксе работало все(разрешает соединения начатые с прокси) /sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # все остальное конекты к проксику c улицы дропаем (можем логировать) #/sbin/iptables -A INPUT -s 0/0 -d $REMOTEIP -j LOG --log-prefix WHY /sbin/iptables -A INPUT -s 0/0 -d $REMOTEIP -j DROP # если у нас есть левые соединения например сетевая для vpn или ppoe # например eth1 у нас левый интерфейс то дропаем все что полезет # c него в локальную сеть #/sbin/iptables -A FORWARD -i eth1 -s 0/0 -d $LOCALNET -j DROP #натирование всем в сети #/sbin/iptables -t nat -A POSTROUTING -s $LOCALNET -d 0/0 -j SNAT --to-source $REMOTEIP #варианты #sudo iptables -t nat -I POSTROUTING -s 192.168.8.1 -j MASQUERADE #sudo iptables -t nat -I POSTROUTING -s 192.168.8.0/255.255.255.0 -j MASQUERADE #iptables -t nat -A POSTROUTING -o eth1 -s 192.168.8.0/255.255.255.0 -j MASQUERADE # #натирование по списку #for i in `cat /etc/fire/inet.lst | grep "#" -v`; #do # /sbin/iptables -t nat -A POSTROUTING -s $i -d 0/0 -j SNAT --to-source $REMOTEIP; #done; # видеонаблюдение по списку пример на одну машину #for i in `cat /etc/fire/video.lst | grep "#" -v`; #do # /sbin/iptables -t nat -A PREROUTING -p tcp -s $i -d $REMOTEIP --dport 80 -j DNAT --to 10.10.10.10:80; # /sbin/iptables -t nat -A PREROUTING -p tcp -s $i -d $REMOTEIP --dport 4550 -j DNAT --to 10.10.10.10:4550; # /sbin/iptables -t nat -A PREROUTING -p tcp -s $i -d $REMOTEIP --dport 5550 -j DNAT --to 10.10.10.10:5550; #done; #пробрасываем https если веб отчеты на другой машине - 443 #/sbin/iptables -t nat -A PREROUTING -p tcp -d $REMOTEIP --dport 443 -j DNAT --to 10.10.10.10:443; права на запуск sudo chmod +x /etc/fire/firewall пример файла списка # ip которые выходят в инет # petr 192.168.0.15 # бухи 192.168.0.217 # сервер открывать только для обновления #192.168.0.150 после изменения списков чтоб они принялись надо запустить скрипт sudo /etc/fire/firewall текущие соединения при этом не обрываются (если не удалили из списка) для автозагрузки с постоянным ИП добавляем скрипт в **/etc/rc.local** к примеру у меня этот файл выглядит сейчас так #!/bin/sh -e # # rc.local # /etc/fire/firewall exit 0 если ИП меняется то добавляем ///etc/fire/firewall// в **/etc/ppp/ip-up.d/dyndns_update.sh** просмотр текущих правил делается следующими командами sudo iptables -L -n sudo iptables -t nat -L -n ====== Настройка клиентов ====== на клиенте надо выставить шлюз по умолчанию делается добавлением\правкой параметра **gateway** в файле **/etc/network/interfaces** и после перезагрузки он будет применен, чтоб заработало без перезагрузки команда sudo route add default gw 192.168.0.150 DNS сервер прописывается в **/etc/resolv.conf** nameserver 192.168.0.150 ====== Подсчет массок и подсетей ====== http://ispreview.ru/ipcalc.html http://ping.propheta.ru/index.php/ipcalc http://www.opennet.ru/ipcalc.shtml