From: OneROFL
Newsgroups: email
Date: Mon, 27 Apr 2008 17:02:14 +0000 (UTC)
Subject: Настройка Linux роутера на базе дистрибутива Debian GNU/Linux 4.0 r3.
Задача.
1.Доступ в интернет(квотирование трафика) для офиса
(~до 300 человек возможно больше, зависит от железа)
2.ВПН канал для обеспечения доступа к ресурсам
локальной сети с удаленного компьютера, подключенного
к сети интернет
3.APlusServer - сервер для обмена информацией 1С бухгалтерии
с удалеными КПК, подключенными к интернет, установленным
на комьютере под управлением MS WINDOWS.
1. Доступ в интернет
Для выполнения задач было выбрано: iptables,прокси сервер
SQUID,SAMS(SQUID Account Management System, http://sams.perm.ru) v1.0.1.
Все кроме SAMS входит в дистрибутив, причем для установки
потребуются пакеты со всех 3-х DVD дистрибутива.(в 4.0 r3)
Далее настройка, все с нуля:
Настоятельно рекомендую перед установкой хорошенько разобраться с Линукс,
а так же погонять на виртуальных машинах будущую конфигурацию.
Скорее всего на реальном железе глюков из-за незнания мат.части будет
очень много. Копипаст сводит к нулю возможности администрирования системы
в нештатных ситуациях.
УСТАНОВКА СИСТЕМЫ:
Celeron 2.4, 256 MB, IDE 20GB HDD, 2 сетевых интерфейса (один для инета - ADSL,
другой смотрит в локалку)
Разбиение диска:
Можно выбрать один из вариантов, который предлагает система, т.е.
создать разделы для "всех" каталогов(без LVM, далее самый последний вариант),
Потом немного поправить размеры разделов, а именно:
т.к. у нас роутер с билингом, то нам потребуются большие разделы
для логов(/var) и для устанавливаемого ПО(/usr), для раздела /home
не нужно много места, т.к. не будет пользователей, использующих
роутер как свалку для своих файлов, все остальное оставляем как рекомендует
программа установки. Например, изменяем на
/usr 8 Gb
/home 1 Gb
/Var 10 Gb
При установке системы очень удобно, если в первую очередь будет сконфигурирован
интерфейс, подключенный к интернету(IP адрес, ДНС сервера провайдера и шлюз), т.к.
сразу же будут установлены и настроены обновления безопастности системы.
Сетевые интерфейсы называются ethX, где X - номер интерфейса, у нас 2 карточки,
значит будет два интерфрйса eth0 и eth1.
- устанавливаем только базовую систему, все звездочки вырубаем.
- никакого интернет сервера, баз данных и тем более рабочего стола,
- нужна девственно не грязная система
После инсталляции установим пакет mc (Midnight Commander), можно конечно
использовать ТОЛЬКО командную строку, но это не только не удобно, это также
не эффективно, т.к. повышает время настройки сервера, особенно для тех, кто
никогда не видел линукс, но "жызнь" заставила.
Сначала добавляем все 3 DVD дистрибутива "в базу" системы установки apt,
для того чтобы "она" знала, какое ПО доступно, и где оно находится.
Добавление DVD дистрибутива в базу(набираем в командной строке, ессно
нужно войти в систему под суперпользователем т.е. root):
apt-cdrom add
После вставляем наш DVD в DVD-дисковод и нажимаем ввод.
Повторяем для всех 3-х DVD.
Установка пакета mc:
apt-get install mc
Далее для удобства копипаста готовых конфигурационных файлов, файрвола,
и для будущего удаленного администрирования устанавливаем пакет ssh.
apt-get install ssh
Пакет ssh сводит к минимуму необходимость работать за консолью сервера
и позволяет удаленно логиниться на роутер. Для того чтобы подконектиться
к нашему серверу из MS Windows необходима программа putty.
В putty: пишем адрес сервера(небходимо сконфигурировать 2й сетевой интерфейс,
который смотрит в локалку, об этом ниже), а так же меняем кодировку(Window-Trancelation)
на UTF-8, иначе/если наш миднайт командир будет очень "красивым".
Конфигурируем 2-ю сетевую карточку, для этого нужно отредактровать следующий конфиг:
/etc/network/interfaces, примерно так:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth1
iface eth1 inet static
address IP адресс провайдера
netmask 255.255.255.X
network Х.Х.Х.0
broadcast Х.Х.Х.255
gateway Х.Х.Х.Х
dns-nameservers Х.Х.Х.X Х.Х.Х.Х
auto eth1
iface eth0 inet static
address 192.168.Х.Х
netmask 255.255.255.0
auto eth0
После необходимо перезапустить "сеть", чтобы ОС установила новые IP адреса.
Для упрощения будущей жизни конфигурирование сетевых интерфейсов лучше проводить
ДО установки ПО, чтобы потом не искать в конфигах, например, апача, где же он берет
старый IP адрес:
/etc/init.d/networking restart
Вводим команду ifconfig и проверяем установленную конфигурацию
сетевых интерфейсов. И команду route -N, в маршрутах должен быть адрес шлюза
провайдера, который указан в файле /etc/network/interfaces.
Адреса ДНС серверов находятся в файле /etc/resolf.conf:
nameserver X.X.X.X
nameserver X.X.X.X
Теперь необходимо проверить, как работает "сеть", пробуем пингануть
локалку и шлюз провайдера...
Сначала пишем скрипт, чтобы "запустить" НАТ.
С помощью, например, MC назовем скрип goinet и установим права на запуск (должна
появиться звездочка перед именем файла), запускаем:
Файрвол с комментариями будет ниже - просто даем интернет. После запуска этого
скрипта на одной из рабочих станций под управлением MS Windows(вся офисная сеть
построена на базе домена Windows 2003 Server и рабочих станций на базе ОС MS Windows
XP SP2) устанавливаем адрес шлюза = адресу нашего Линукс роутера в локальной сети,
так же адреса ДНС серверов провайдера и пробуем пингануть шлюз провайдера и зайти в
интернет.
Если все работает, значит можно приступать к установке системы "раздачи" интернета.
Настройку файрвола нужно проводить после установки и конфигурирования системы учета трафика
и ВПН, т.к. помимо глюков с инетом и ВПН возникнут глюки с файрволом и разобраться,
какой глюк где, будет очень сложно.
В случае дублирования IP адреса в локальной сети нашего интернет сервера
с одной из рабочих станций, будут очень жесткие и непредсказуемые ошибки во
всей сети. Интернет будет то работать, то нет, пинг то проходит, то нет.
Если при пинговании одного из IP адресов локальной сети с роутера возникают
потери пакетов, то одна из возможных ошибок - это дублирование IP адреса.
Установка и настройка SQUID+SAMS.
Сначала необходимо установить все пакеты, необходимые для работы этой связки.
Пишем скрипт, например go-SAMS-DEB:
Собираем и устанавливаем SAMS из исходников, работает корректней, чем из deb пакетов,
которые были доступны на момент написания этой статьи. Для более подробной информации
читаем документацию для SAMS.
Будем использовать класическую авторизацию на прокси сервере SQUID, то есть
NCSA авторизацию.
Изменяем один из конфигов апача /etc/httpd.conf, сейчас он пустой, пишем в конфиг следующее:
Если у вас возникли проблемы с кодировкой веб интерфейса,
надо в конфиге апача(/etc/apache2/apache2.conf) задать параметр
AddDefaultCharset Off
В конфиге SAMSa /etc/sams.conf в поле MYSQLPASSWORD= указываем пароль, он
и будет использоваться при создании базы в Web интрефейсе. Так же проверяем путь
SAMSPATH=/usr/local, в каталоге /usr/local/bin должны находиться бинарники SAMSa.
В конфиг SQUIDa /etc/squid/squid.conf в поле тега TAG: auth_param (после комментариев)
добаляем параметры ncsa авторизации(не в конец файла!):
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/ncsa.sams
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
На всякий случай нада проверить наличие файла /usr/lib/squid/ncsa_auth
Конфигурирование файла /etc/php5/apache2/php.ini:
раскомментируйте вызов библиотеки поддержки mysql:
extensions=mysql.so
C версии 1.0 SAMS работает в safe_mode php
Настриваем php для работы в режиме safe mode
включаем режим safe mode. Для этого выставляем параметр safe_mode:
safe_mode = On
SAMS для некоторых функций WEB интерфейса использует системные команды, например wbinfo.
В режиме safe_mode php блокирует доступ к системным командам. Php позволяет выполнять
системные команды, расположенные в каталоге, заданном параметром safe_mode_exec_dir.
Изменяем этот параметр:
safe_mode_exec_dir = "/usr/local/share/sams/bin"
Далее разрешаем исполнение системных скриптов из кода php. Ищем в файле конфигурации параметр
Копируем скрипт samsd.debian (находится в исходных текстах /sams-1.0.1/etc/) в /etc/init.d/
переименовываем его в samsd и выполняем команду добавления запуска демона при автозагрузке ОС:
update-rc.d samsd defaults
Меняем владельца каталога /usr/local/share/sams на наш интернет сервер apache2
(Можно использовать миднайт командер):
chown -R www-data:www-data /usr/local/share/sams
Так же меняем владельца конфигурационного файла /etc/sams.conf:
chown www-data:www-data /etc/sams.conf
Изменяем права на /usr/local/share/sams и на все, что в нем есть:
chmod 700 -R /usr/local/share/sams
Устанавливаем полный доступ на файлы в каталоге /usr/local/share/sams/data:
chmod 777 /usr/local/share/sams/data -R
Создаем символическую ссылку из корневой директории сервера APACHE2 на директорию, в которой
находятся файлы SAMS:
ln -s /usr/local/share/sams /var/www
Переименовываем файл(если нужно) /usr/local/share/sams/lang/lang.en в lang.EN,
также, если нужно переименовываем каталоги /usr/local/share/sams/doc/en и ru в EN и RU.
Права на каталоги SAMSa(/usr/local/share/sams, и на линк /var/www/sams), в случае
если SAMS не захочет работать, можно выставить позже, сначала поставить 777 на все,
а уже при шлифовке конфигурации выставить как положено.
Веб интерфейс SAMS готов к работе. В браузере заходим на /X.X.X.X/sams, где
Х.Х.Х.Х IP адрес нашего роутера в локальной сети.
Жмем кнопку создать базы. Вводим пароль для юзера sams, который указан в конфиге
/etc/sams.conf. Создаем базы. Запускаем Web интерфейс SAMS. Для добавления пользователей
логинимся под юзером admin пароль по умолчанию qwerty. Для юзера auditor, пароль по умолчанию
audit.
Необходимо выставить авторизацию NCSA в администрировании SAMS и в шаблонах,
а так же выставить чтение логов SQUID через равные промежутки времени. При непрерывном
способе падает лог SQUIDa access.log. В случае, если это произошло необходимо
удалить этот файл и создать новый с правами как у старого, предварительно
изменив непрерывный способ чтения логов на дискретный, например раз в 1 минуту.
Позже можно установить параметры чтения логов раз в 10 минут например, и
и проверять наличие команды на реконфигурирование squid каждые 5 секунд,
вообщем как можно реже, без ущерба для контроля за трафиком. Это необходимо,
чтобы оптимально использовать ресурсы интеренет сервера.
если в файле /var/log/squid/caсhe.log:
2004/11/01 10:34:19| Rebuilding storage in /usr/local/squid/cache (DIRTY)
2004/11/01 10:34:20| Store rebuilding is 2.8% complete
2004/11/01 10:34:21| WARNING: newer swaplog entry for dirno 0, fileno 00002098
2004/11/01 10:34:34| WARNING: Disk space over limit: 1251072 KB > 1048576 KB
Места еще навалом, df показывает что свободно еще больше 50%
возможно запортился файл swap.state из-за сбоев системы или пропадания электроэнергии,
попробуй сделать так:
1 - останови сквид
2 - убей файл swap.state (обычно в каталоге /usr/local/squid/cache )
3 - запусти сквид, он пересоздаст swap.state, правда это займет некоторое время.
А размер кэша для диска в конфиге сквида случаем не менял ? если менял, возможно
придется пересоздать дисковый кэш.
при сохранении и загрузке конфигурации SAMSa через вэб интерфейс
падают пароли пользователей, т.е. прописываются в файл ncsa.sams
в незашифрованном виде
После добавления пользователя при его будущем редактировании(когда пароль уже
был введен, нужно, например, изменить ФИО пользователя) возможны глюки с паролем.
Если при сохранении параметров поле пароля осталось пустым,
то возможно пароль для этого юзера будет падать и станет невозможным залогиниться на прокси сервер.
Лечиться так:
Проблема в файле src/userbuttom_1_prob.php
Когда редактировал юзера, на форме в поле пароль было пусто. Не знаю почему, видимо
так и должно быть - типа если пароль меняешь, то введешь новый, а если не меняешь то и
нечего его вообще показывать, но вот в описанном файле было сравнение старого пароля
с тем что передан в форме, но проверки на его "пустоту" не было. Вставил проверку,
если пароль пустой то и не менять его.
PS ncsa.sams менялся всегда, когда редактировал пользователя, даже если пароль не трогал.
Установка и настройка VPN.
Для VPN будем использовать PoPToP. Он есть в дистрибутиве Debian.
Устанавливаем командой:
apt-get install pptpd
Далее "идем в конфиг" /etc/pptpd.conf и правим в нем например так:
#IP адрес, который будет дан роутеру "на" VPN соединении
localip 192.168.1.1
#диапазон IP адресов, который будет дан клиенту
remoteip 192.168.1.234-238
Перезагружаем сервис(демона) pptpd, чтобы изменения вступили в силу:
/etc/init.d/pptpd restart
Добавляем пользователя нашего VPN сервера в файле /etc/ppp/chap-secrets
(<логин> pptpd <пароль> <адрес, который получит клиент
на своей стороне впн интерфейса>):
vpnuser pptpd 123 *
Пробуем подключиться через создание ВПН соединения к роутеру из MS Windows.
В каталоге /etc/ppp/ip-up.d создаем файл, например, go_vpn_log с правами 755,
и пишем в него следуюшие:
#!/bin/sh
echo "------------------------------------------------" >> /var/log/vpn.log
date >> /var/log/vpn.log
echo "from IP $6 with speed $3">> /var/log/vpn.log
echo "------------------------------------------------" >> /var/log/vpn.log
Теперь при подключении VPN-клиента информация о подключении
будет записываться в наш лог файл /var/log/vpn.log
Файрвол iptables.
Теперь наша задача разрешить доступ к интернету из локальной сети только так,
как нужно, и запретить все из вне, кроме того, что нам нужно, используя iptables.
И так первое правило: все, что окружает наш роутер - это зло. Для обеспечения
безопастности не будем делать разницы между компьютерами в локальной сети
и компьютерами во внешней сети(интернет), и в файрволе явно пропишем правила для каждого
обращения через/на наш интернет сервер.
Немнога теории: когда пакет попадает на наш роутер, сначала он попадает в таблицу
mangle цепочка PREROUTING, далее он идет в таблицу nat-PREROUTING, далее, в зависимости
от того куда направлен пакет, он идет либо:
потом на выход: mangle-POSTROUTING..nat-POSTROUTING.
Вывод можно сделать такой: нас интересуют только 2 цепочки таблицы filter:
это INPUT - то есть все то, что ломится непосредственно на наш сервер и
цепочка FORWARD, то есть все то, что идет через роутер как в локальную сеть
так и из нее.
Политика такая, все вообщем изначально бан, и далее:
INPUT:
Запрещаем все, что непосредственно долбится на наш cервер, кроме:
VPN из вне и SSH+SQUID из локалки, то есть: можно подключиться к нашему
серверу(зная пароль) ТОЛЬКО по VPN из интернета(порт 1723), все остальное запрещено
(нет фильтрации по IP адресу, тк заранее не известен диапозон IP адресов, с которых
будет подключение, т.е. например, ноутбук из любой точки России).
И на прокси сервер(порт 3128) + SSH(порт 22), опять же зная пароли доступа,
из локальной сети.
Разрешаем выходить любым пакетам из нашего роутера(OUTPUT), т.к. в этом случае
инициатором подключения является наш сервер(SQUID, обновления безопастности, например).
Так же разрешаем уже установленные входящие подключения, инициированные интернет сервером.
FOWRWARD:
Пользователям локальной сети(помимо SQUID) разрешаем DNS запросы(почта, чтоб
не "мусорить" циферками серверов в настройках TheBat). Аська убрана, и будет
подключаться через SQUID(HTTPS), в файрволе просто закомментирована.
А так же разрешаем установленные соединения из локальной сети, которые были разрешены.
Для коннекта аськи через SQUID необходимо просто в ее настройках указать,
что подключение будет HTTPS, указать адрес и порт 3128 нашего прокси сервера
и задать логин и пароль доступа на прокси сервер.
И так еще раз обрисуем более подробно, чтоже нам нужно обеспечить:
1. Доступ в интернет пользователям локальной сети через прокси сервер SQUID.
2. Доступ на БЕСПЛАТНЫЕ и "БУХГАЛТЕРСКИЕ"(эл. отчетность) почтовые сервера,
минуя прокси сервер, напрямую (если упадет SQUID, то по крайней мере основная
артерия документооборота организации будет работать).
3. Доступ из вне по VPN, а так же! используя VPN подключение, доступ
на сервер терминалов организации (например, удаленное администрирование 1С бухгалтерии)
4. Доступ к APlusServer(порт 5555), который установлен на сервере терминалов, для обмена
данными 1С с КПК сотрудников организации, подключенными(КПК :) ) к интеренет.
Для написания файрвола принципиально важно понимать как идет пакет, который
мы хотим обработать. Без знания теории максимум, что может получиться - это хороший
копипаст. Оставляю чтение документации и изучения синтаксиса iptables на совести
администратора, хотя в подробном разборе файрвола будет все описано достаточно точно.
И так, файрвол(/etc/fw):
#!/bin/sh
#Закоментированно, все что касается аськи, кто хочет может пустить ее напрямую из локалки,
#но не рекомендую, накачают трафика юзеры.
#Описываем переменные. Так файрвол будет более компактный, читаемый
#и масштабируемый:
SERVER1C="192.168.х.х"
INET="eth1"
NET="eth0"
NET_NET="192.168.х.х/24"
INETIP="х.х.х.х"
LANIP="192.168.х.х"
ELCOM_SMTP="х.х.х.х"
ELCOM_POP="х.х.х.х"
IRIDAN="х.х.х.х"
UNPRIVPORTS="1024:65535"
DNS_SERVER1="х.х.х.х"
DNS_SERVER2="х.х.х.х"
#ICQ_SERVER1="64.12.0.0/16"
#ICQ_SERVER2="205.188.0.0/16"
SYSADMIN="192.168.х.х"
#Сбрасываем все правила.
#Таблицы nat и mangle засоряются
#при отладке файрвола, когда его нужно запускать
#несколько раз для тестирования, например сервера APlusServer
#и в случае, если это не учесть, будут сильные глюки
#при обмене КПК с сервером.
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTING
iptables -t mangle -F
#Политика по умолчанию, запретить все нах
iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
#Прямо дропаем пакеты NEW, но без флага --syn(запрос на установку соединения)
iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP
#Явный бан всех запросов на соединение из инета,
#кроме тех, которые нужны, а нам нужен только VPN(порт 1723)
iptables -A INPUT -d $INETIP -p TCP --syn --dport ! 1723 -j DROP
#ДАем VPN для PoPToPа
#разрешаем порт 1723 и протокол 47(используется при авторизации)
iptables -A INPUT -p TCP -d $INETIP --dport 1723 -j ACCEPT
iptables -A INPUT -p 47 -j ACCEPT
#Даем сервер терминалов для VPN подключений порт 3389
iptables -A FORWARD -p TCP -s $NET_NET -d $SERVER1C --dport 3389
-j ACCEPT
#Порт форвардинг, перенапрявляем запросы на наш APlusServer,
#который установлен на сервере терминалов.
#После разрешаем в цепочке FORWARD ходить туда клиентам
iptables -t nat -A PREROUTING -d $INETIP -p TCP --dport 5555
-j DNAT --to-destination $SERVER1C:5555
iptables -A FORWARD -p TCP -d $SERVER1C --dport 5555 -j ACCEPT
#Открываем TCP порты каторые слушать только из локалки
#SQUID+SSH
iptables -A INPUT -s $NET_NET -p TCP -d $LANIP -m multiport
--dport 22,3128 -j ACCEPT
#Даем инет юзерам, ессно через SQUID
#То есть разрешаем уже установленные входящие подключения
#на незарезервированные порты(смотрим матчасть, как устанавливается
*соединение, например, при запросе клиента на www.ya.ru)
iptables -A INPUT -d $INETIP -p TCP --dport $UNPRIVPORTS
-m state --state ESTABLISHED,RELATED -j ACCEPT
#Разрешить DNS для сквида и для локалки(почта, аська).
#Чтобы злой умышленник не смог подменить свой IP адрес и закосить
#под наш ДНС сервер, разрешаем ТОЛЬКО ответы на нашы ДНС запросы
#В протокле UDP, если пакет не первый, то он получает статус ESTABLISHED
#Так же обрабатываем протокол TCP. Очень редко, когда это может понадобиться,
#т.к. в основном он используется при обмене данными ДНС серверов, но все же...
iptables -A INPUT -p UDP -s $DNS_SERVER1 -m state --state ESTABLISHED
--sport 53 -j ACCEPT
iptables -A INPUT -p TCP -s $DNS_SERVER1 --sport 53 --dport $UNPRIVPORTS
-m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p UDP -s $DNS_SERVER2 -m state --state ESTABLISHED
--sport 53 -j ACCEPT
iptables -A INPUT -p TCP -s $DNS_SERVER2 --sport 53 --dport $UNPRIVPORTS
-m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p UDP -s $NET_NET -d $DNS_SERVER1 --dport 53 -j ACCEPT
iptables -A FORWARD -p UDP -s $DNS_SERVER1 -d $NET_NET --sport 53
-m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p TCP -s $NET_NET -d $DNS_SERVER1 --dport 53 -j ACCEPT
iptables -A FORWARD -p UDP -s $NET_NET -d $DNS_SERVER2 --dport 53 -j ACCEPT
iptables -A FORWARD -p UDP -s $DNS_SERVER2 -d $NET_NET --sport 53
-m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p TCP -s $NET_NET -d $DNS_SERVER2 --dport 53 -j ACCEPT
#Почта только провайдерная и электронная отчетность,
#остальная бан, ибо нех
iptables -A FORWARD -s $NET_NET -d $ELCOM_POP -p TCP --dport 110 -j ACCEPT
iptables -A FORWARD -s $NET_NET -d $ELCOM_SMTP -p TCP --dport 25 -j ACCEPT
#ICQ, разрешаем авторизацию аське, кому нада раскомментируйте
#iptables -A FORWARD -p TCP -s $NET_NET -d $ICQ_SERVER1 --dport 5190 -j ACCEPT
#iptables -A FORWARD -p TCP -s $ICQ_SERVER1 -d $NET_NET --sport 5190
#-m state --state ESTABLISHED -j ACCEPT
#Разрешаем ICQ отправлять сообщения и все что с этим связано
#нет нормальной спецификации на ICQ, все со снифера
#iptables -A FORWARD -p TCP -s $NET_NET -d $ICQ_SERVER2 --dport 5190 -j ACCEPT
#iptables -A FORWARD -p TCP -s $ICQ_SERVER2 -d $NET_NET --sport 5190
#-m state --state ESTABLISHED -j ACCEPT
#Разрешаем уже установленные соединения, выше было разрешено
#только обращаться во вне из локальной сети, но надо же чтобы и ответы
#на запросы доходили, то есть даем в локалку
#кпк сервер, днс, почту и терминал, все остальное либо через сквид
#либо никаГ
iptables -A FORWARD -p TCP -m state --state ESTABLISHED,RELATED
-m multiport --sport 5555,53,110,25,3389 -j ACCEPT
#Внутри дИмакратия, то есть разрешаем нашему серверу устанавливать соединения,
#а так же чтоб "внутри все ходило"
iptables -A INPUT -p ALL -s 127.0.0.1 -i lo -j ACCEPT
iptables -A INPUT -p ALL -s $LANIP -i lo -j ACCEPT
iptables -A INPUT -p ALL -s $INETIP -i lo -j ACCEPT
iptables -A OUTPUT -p ALL -d 127.0.0.1 -o lo -j ACCEPT
iptables -A OUTPUT -p ALL -s $INETIP -j ACCEPT
iptables -A OUTPUT -p ALL -s $LANIP -j ACCEPT
iptables -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT
#Дырочка для сисадмина :)
#ну это святое, малоли взгрустнется, и нада будет развеять скуку,
#поубивав зомби и в очередной раз спасти все человечество от злой гнили
#накрайняк скачать новый фильмец с трекера, и под пиво его посмотреть
iptables -A FORWARD -p TCP -d $SYSADMIN --dport $UNPRIVPORTS -j ACCEPT
iptables -A FORWARD -p TCP -s $SYSADMIN --sport $UNPRIVPORTS -j ACCEPT
#копипаст, пусть будет, мат.часть не помешает:
#Есть некоторые провайдеры, которые очень не любят, когда одним
#подключением пользуется несколько компьютеров, если мы начинаем
#устанавливать на все пакеты одно и то же значение TTL, то тем
#самым мы лишаем провайдера одного из критериев определения того,
#что подключение к Интернету разделяется несколькими компьютерами.
#Для примера можно привести число TTL = 64, которое является стандартным
#для ядра Linux.
iptables -t mangle -A PREROUTING -i $INET -j TTL --ttl-set 64
Добавляем после отладки наш файрвол в автозагрузку, есть скрипт, который
запускается последним при загрузке системы /etc/rc.local, вот туда и пишем
команду /etc/fw(/полный путь/fw) и не забываем установить права на fw:
chmod 711 /etc/fw (полный доступ ТОЛЬКО! для владельца и запуск для всех остальных).
781 Прочтений • [Настройка Linux роутера на базе дистрибутива Debian GNU/Linux 4.0 r3. (debian linux network iptables vpn 1c install squid pptp)] [08.05.2012] [Комментариев: 0]