Показать полную графическую версию : Поднятие прокси на Lunix
Здравствуйте уважаемые гуру
Опыта работы системным администратором мало
После универа зеленый еще )
На работе возникла потребность поднять проксю на линукс
До этого стоял керио но со временем стал ужасно глючить
Сеть состоит из 40 машин + 4 сервера (терминалка 1с, Актив директори, файловая помойка ну и сама прокся
провайдер дает интернеты через dhcp авторизация через MAC
подскажите с чего начать? и что мне понадобиться
AMDBulldozer
02-11-2012, 21:36
Для каких протоколов? Для http и еще некоторых - squid.
Но Вы уверены в том, что Вам нужен именно proxy-сервер? Может быть Вам необходим просто шлюз с NAT?
в итоге должен получиться обычный интернет сервер который будет получать интернет от провайдера и шарить его в сеть
sedarmill
02-11-2012, 22:45
https://wiki.archlinux.org/index.php/Router
Названия пакетов отсюда можно взять..
подскажите с чего начать?
С установки на виртуальную машину и созданием сети из 2-3 виртуальных машин например..
Rezor666
02-11-2012, 23:13
Если не хотите сильно углубляться в Linux или тратить на начальном этапе слишком много времени то советую поставить PfSense (http://www.pfsense.org/), как его ставить можно почитать в моем блоге.
на какой чем стабильнее работает убунта или дебиан?
Rezor666
02-11-2012, 23:29
barasin, Они оба стабильны. PfSense это вообще FreeBSD чем нестабильность? :)
Тут Вам надо определиться что Вы хотите от сервера...
Если шлюз то как мне лучше или PfSense или M0n0wall или ИКС.
Если сборная солянка то конечно брать чистый дистрибутив и пилить его.
И вообще на Lunix вы не чего не поднимите...
нужен чистый шлюз
качаю PfSense ставлю на чистый хард настраиваю как в вашем блоге все?
Rezor666
03-11-2012, 01:12
barasin, да, для ваших нужд даже не надо squid ставить.
если нужен простой шлюз, почему не купить готовую железку? а ля Dlink, Zyxel, Asus, Netgear. Не говоря уже о Cisco...
AMDBulldozer
03-11-2012, 02:33
Для использования Linux-клмпьютера в качестве маршрутизатора никакое дополнильное ПО не требуется.
Просто настройте forwarding и nat. Это делается четырьмя-пятью командами (в зависимости от того, имеет ли Ваш компьютер статический ip в сети или получает его по dhcp). Если не найдете сами, потом как-нибудь отпишусь в теме. Ищите google'ом статьи со строкой "echo 1 > /proc/sys/net/ipv4/ip_forward". Эта команда включает работу компьютера в режиме шлюза.
Точка зрения И вообще на Lunix вы не чего не поднимите »
представляется мне более, чем странной.
Rezor666
03-11-2012, 10:29
AMDBulldozer, Если Вы на Lunix поднимите что то тогда и поговорим.
И вообще на Lunix вы не чего не поднимите... »
Если Вы на Lunix поднимите что то тогда и поговорим. »
мне не понятны данные заявления.
Для Linux Iptables +NAT (http://yandex.ru/yandsearch?text=iptables+NAT&from=os&lr=213)
Для FreeBSD Ipfw + NAT (http://www.exonix.ru/?magsxhatkepcg8gr1hciali.htm) ну очень старая статья...
barasin, я бы все-таки остановился на Linux. В средних/мелких конторках никогда не ясно что понадобится завтра. Сегодня только NAT, а завтра уже прокси (фильтровать где лазить и что качать можно, а что - нет). В этом случае Linux гибче.
Если решитесь, почитайте к примеру вот это (http://www.k-max.name/category/linux/netfilter-iptables/)
AMDBulldozer
03-11-2012, 17:26
AMDBulldozer, Если Вы на Lunix поднимите что то тогда и поговорим. »
Разумные люди, прежде чем давать советы незнакомому человеку, как минимум, смотрят конфигурацию его компьютера - там указана ОС, которой он пользуется.
P.S. Подавляющее большинство домашних маршрутизаторов работают именно на Linux. Вам это ни о чем не говорит?
Rezor666
03-11-2012, 17:28
exo, А для Lunix статью можно?
AMDBulldozer, вы когда читаете слова пропускаете?
А для Lunix статью можно? »
а ссылок из поиска не достаточно? Я позже напишу. по приведённым ссылкам.
Rezor666
03-11-2012, 21:37
exo, я уже в шоке... LUNIX LUNIX LUNIX где такая ОСь и маны на нее...
AMDBulldozer
03-11-2012, 22:25
Только что освободился, сейчас примерно набросаю, каким образом включить forwarding и nat на linux-системе.
Автор написал, что ip получает от провайдера по dhcp. Значит для nat мы использует -j MASQUERADE, а не -j SNAT --to x.x.x.x.
Сразу хочу оговориться, что начну с предварительной части, которая НЕ НУЖНА на рабочей системе. Она используется исключительно для того чтобы избавиться от неопределенности в состоянии системы (я же не знаю, что Вы уже понаписали в правилах брандмауэра).
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F
Этими командами мы очистили таблицы правил межсетевого экрана и установили политики по умолчанию.
Прошу обратить внимание на два момента.
1. Мы СНАЧАЛА устанавливаем политики, а потом сбрасываем таблицы. Почему именно так? Да потому, что в хорошо сконфигурированной системе политика всегда должна запрещать прохождение любого пакета, который не был явно разрешен соответствующим правилом. "Запрещено всё, что не разрешено".
В такой ситуации, политики должны быть изменены первыми. Потому что если мы поступим обратным образом и сначала сбросим правила, то любой пакет, который придет в промежутке между сбросом правил и изменением политик, будет отброшен. А это недопустимо - любые действия на корпоративном шлюзе не должны нарушать работоспособность сети предприятия.
2. Все команды рекомендуется записывать с указанием полного пути. Это во-первых, экономит время, а во-вторых, затрудняет работу потенциальному злоумышленнику.
Теперь включаем NAT:
/sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQURADE
(допустим, что eth1 - это интерфейс Вашего интернет-соединения. Рекомендую во всех правилах, когда это возможно, указывать интерфейс, даже если это не обязательно. Это сильно облегчит Вам жизнь, когда список правил разрастется до нескольких сотен и/или появится резерное подключение к провайдеру).
Разрешаем маршрутизацию пакетов между интерфейсами:
echo 1 > /proc/sys/net/ipv4/ip_forward
не будет лишней и такая команда:
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
Всё. Дело сделано. Предполагая, что таблица машрутизации у Вас уже настроена (утилитами route либо ip c параметром route, если Вы по каким-то причинам используете iproute2) можете указывать Ваш Linux-компьютер в качестве шлюза и спокойно работать в сети).
Примечание: естественно, на практике использовать подобный способ категорически не рекомендуется, поскольку межсетевой экран мы с Вами отключили в самом начале нашего примера, оставив компьютер открытым для всех видов сетевых угроз.
Кроме того, вполне возможно Вам потребуется настроить статические правила трансляции адресов для организации серверов доступных из сети провайдера (а значит, если у Вас публичный ip, то и из интернета).
Попробуем чуточку улучшить наш с Вами набор правил:
Для начала, не будем указывать в сценарии ни явных имен программ, ни наименований интерфейсов. Заменим их на переменные, которые установим в самом начале сценария:
IPTABLES=/sbin/iptables
IF_LAN=eth0
IF_INT=eth1
(IF - от слова "интерфейс". Названия переменных можете выбирать произвольно)
$IPTABLES -A FORWARD -i $IF_LAN -o $IF_INT -j ACCEPT
(разрешили все исходящие соединения, с локального интерфейса на интерфейс провайдера)
$IPTABLES -A FORWARD -i $IF_INT -o $IF_LAN -m state --state ESTABLISED,RELATED -j ACCEPT
(а вот входящие пакеты разрешили пропускать только если они относятся к уже установленному соединению)
$IPTABLES -P FORWARD DROP
(политика по умолчанию - тотальный запрет)
ну и т.д.
После создания скелета сценария можно его улучшать и дополнять.
Добавить проверку корректности переменной содержащей путь до iptables:
[ -x "$IPTABLES" ] || (echo $IPTABLES - not executable; exit 1)
Записать нормальные правила работы межсетевого экрана (этим мы сейчас заниматься не будем).
И последнее. Ваш сценарий не должен исполняться каждый раз при включении компьютера. Это может быть слишком долго.
Сохраните результат его работы: "iptables-save > iptables" и пусть потом все таблицы разом восстанавливаются командой iptables-restore. Обычно это автоматически обеспечивается соответствующим системным сервисом, но он, к сожалению, в каждом дистрибутиве разный.
К примеру, для Debian необходимо установить этот сервис командой "aptitude install iptables-persistent" и сохранять правила командой "iptables-save > /etc/iptables/rules.v4"
Команду "echo 1 > /proc/sys/net/ipv4/ip_forward" (или "sysctl net.ipv4.ip_forward=1" - это одно и то же) необходимо исполнять независимо от использования команды iptables-restore. Правда на этот случай тоже есть системный сервис, но пора закругляться. И так слишком длинно получилось.
Rezor666, а всё понятно. ОС Линукс обычно называют любую ОС с ядром Linux. Так называют для простоты.
К примеру, для Debian »
хорошо, что добавили, а то у Rezor666 могли появится вопросы.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC