Возможно вы искали: 'Волшебный сон'

May 15 2025 18:27:39
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Настройка Linux роутера на базе дистрибутива Debian GNU/Linux 4.0 r3. (debian linux network iptables vpn 1c install squid pptp)

Настройка Linux роутера на базе дистрибутива Debian GNU/Linux 4.0 r3. (debian linux network iptables vpn 1c install squid pptp)

Ключевые слова: debian, linux, network, iptables, vpn, 1c, install, squid, pptp, (найти похожие документы)

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 и установим права на запуск (должна
появиться звездочка перед именем файла), запускаем:

#!/bin/sh
INET="eth1"
INETIP="X.X.X.X"

iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -t nat -A POSTROUTING -o $INET -j SNAT --to-source $INETIP
echo "1" > /proc/sys/net/ipv4/ip_forward


Файрвол с комментариями будет ниже - просто даем интернет. После запуска этого
скрипта на одной из рабочих станций под управлением MS Windows(вся офисная сеть
построена на базе домена Windows 2003 Server и рабочих станций на базе ОС MS Windows
XP SP2) устанавливаем адрес шлюза = адресу нашего Линукс роутера в локальной сети,
так же адреса ДНС серверов провайдера и пробуем пингануть шлюз провайдера и зайти в
интернет.

Если все работает, значит можно приступать к установке системы "раздачи" интернета.
Настройку файрвола нужно проводить после установки и конфигурирования системы учета трафика
и ВПН, т.к. помимо глюков с инетом и ВПН возникнут глюки с файрволом и разобраться,
какой глюк где, будет очень сложно.

В случае дублирования IP адреса в локальной сети нашего интернет сервера
с одной из рабочих станций, будут очень жесткие и непредсказуемые ошибки во
всей сети. Интернет будет то работать, то нет, пинг то проходит, то нет.
Если при пинговании одного из IP адресов локальной сети с роутера возникают
потери пакетов, то одна из возможных ошибок - это дублирование IP адреса.


Установка и настройка SQUID+SAMS.

Сначала необходимо установить все пакеты, необходимые для работы этой связки.
Пишем скрипт, например go-SAMS-DEB:

#!/bin/sh
aptitude install apache2 apache2-mpm-prefork
aptitude install libapache2-mod-php5 php5-cgi php5-common php5-mysql
aptitude install mysql-server mysql-client libmysqlclient15off
aptitude install squid
aptitude install libpcre3
apt-get install php5-gd
apt-get install libpcre3-dev
apt-get install libmysqlclient15-dev
apt-get install gcc
apt-get install make


Собираем и устанавливаем SAMS из исходников, работает корректней, чем из deb пакетов,
которые были доступны на момент написания этой статьи. Для более подробной информации
читаем документацию для SAMS.

Будем использовать класическую авторизацию на прокси сервере SQUID, то есть
NCSA авторизацию.

Изменяем один из конфигов апача /etc/httpd.conf, сейчас он пустой, пишем в конфиг следующее:

AddType application/x-httpd-php .php .phtml
Options ExecCGI


Если у вас возникли проблемы с кодировкой веб интерфейса,
надо в конфиге апача(/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. Ищем в файле конфигурации параметр

disable_functions = "chdir,dl,ini_get_all,phpinfo,system,shell_exec,popen,proc_open,exec,passthru,pcntl_exec"


и если он не пустой, убираем из него запрет вызова функций phpinfo system shell_exec exec

Также убираем запрет вызова функций phpinfo system shell_exec exec в параметре

hphp.executor.func.blacklist = chdir,dl,ini_get_all,popen,proc_open,passthru,pcntl_exec


Копируем скрипт 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.

Перезагружаем веб сервер и прокси сервер:

/etc/init.d/apache2 restart
/etc/init.d/squid restart


Права на каталоги 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
Когда редактировал юзера, на форме в поле пароль было пусто. Не знаю почему, видимо
так и должно быть - типа если пароль меняешь, то введешь новый, а если не меняешь то и
нечего его вообще показывать, но вот в описанном файле было сравнение старого пароля
с тем что передан в форме, но проверки на его "пустоту" не было. Вставил проверку,
если пароль пустой то и не менять его.

if($auth=="ncsa"||$auth=="ip")
{
if(isset($_GET["passwd"])) $passwd=$_GET["passwd"];
else $passwd="";
$passwd=trim($passwd);
........

if ($passwd!="")
{
if($password!=$defpassw) $passwd=$password;
}
else
{
$passwd=$defpassw;
}


Вместо:

if($auth=="ncsa"||$auth=="ip")
{
if(isset($_GET["passwd"])) $passwd=$_GET["passwd"];
........
if($password!=$defpassw) $passwd=$password;


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, далее, в зависимости
от того куда направлен пакет, он идет либо:

1.mangle-INPUT..filter-INPUT..local_routing..mangle-OUTPUT..nat-OUTPUT..filter-OUTPUT..выход


либо:

2.mangle-FORWARD..filter-FORWARD..выход


потом на выход: 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

iptables -A FORWARD -s $NET_NET -d $IRIDAN -p TCP --dport 110 -j ACCEPT
iptables -A FORWARD -s $NET_NET -d $IRIDAN -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

iptables -A FORWARD -p UDP -d $SYSADMIN --dport $UNPRIVPORTS -j ACCEPT
iptables -A FORWARD -p UDP -s $SYSADMIN --sport $UNPRIVPORTS -j ACCEPT

#копипаст, пусть будет, мат.часть не помешает:
#Есть некоторые провайдеры, которые очень не любят, когда одним
#подключением пользуется несколько компьютеров, если мы начинаем
#устанавливать на все пакеты одно и то же значение TTL, то тем
#самым мы лишаем провайдера одного из критериев определения того,
#что подключение к Интернету разделяется несколькими компьютерами.
#Для примера можно привести число TTL = 64, которое является стандартным
#для ядра Linux.
iptables -t mangle -A PREROUTING -i $INET -j TTL --ttl-set 64

#Включаем НАТ
iptables -t nat -A POSTROUTING -o $INET -j SNAT --to-source $INETIP
echo "1" > /proc/sys/net/ipv4/ip_forward


Добавляем после отладки наш файрвол в автозагрузку, есть скрипт, который
запускается последним при загрузке системы /etc/rc.local, вот туда и пишем
команду /etc/fw(/полный путь/fw) и не забываем установить права на fw:
chmod 711 /etc/fw (полный доступ ТОЛЬКО! для владельца и запуск для всех остальных).
814 Прочтений •  [Настройка Linux роутера на базе дистрибутива Debian GNU/Linux 4.0 r3. (debian linux network iptables vpn 1c install squid pptp)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Настройка Linux роутера на базе дис... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка