uForum.uz

uForum.uz (https://uforum.uz/index.php)
-   OpenSource (https://uforum.uz/forumdisplay.php?f=158)
-   -   Need help - IPtables (https://uforum.uz/showthread.php?t=9433)

Maxim_ka 10.06.2009 12:38

Need help - IPtables
 
Доброго времени суток знатоки )))

Существует некоторая проблемка, с настройкой IPtables

Начну с того, что имеется сеть, в которую приходит интернет от 2 провайдеров. На две разные машины, будем называть их Sarkor и TPS.
Sarkor является основным каналом, а TPS резервным. На Саркоре установлена система Ideco Internet Control Server, она настроена безупречно.
На TPS уставновлена связка SQUID+MYSQL+APACHE+SAMS, и тоже работает отлично. Помимо них существует компьютер с Windows Server 2003, которые работает как DHCP, локальный DNS и Active Directory.
Проблема заключается в том, что пользователи пользуются почтовыми клиентами, а как вы знаете почта не проксируется, и сквид здесь не помощник.
С IPtables знаком только теоретически, все попытки добавлять правила были не удачными, надеюсь на помощь. Как сделать так, чтобы пользователи сидели в нете, через проксю TPS (squid), и одновременно пользовались почтовыми клиентами :dash2:
Благодарю заранее.

Gebo 10.06.2009 13:23

Цитата:

Сообщение от Maxim_ka (Сообщение 228343)
а как вы знаете почта не проксируется, и сквид здесь не помощник.

Может это поможет?
А вообще честно сказать я не понял зачем почту через прокси пускать?

German Stimban 10.06.2009 17:10

Я правильно понял, что надо через Iptables прозрачно пропускать весь трафик на 25 и 110 порту? Если да, то надо squid сделать прозрачным, разрешить на нем пропускать информацию по нужным портам (делается добавлением нужной acl в начале правил), а затем настроить iptables таким образом, чтобы все обращения на нужные порты перенаправлялись на порт сквида. Это в гугле, по запросу "прозрачный прокси-сервер squid".
Если неправильно понял, то просьба более детально все разъяснить

Maxim_ka 12.06.2009 16:35

Благодарю, за ответы, не было времени их обработать, Герман, вы правы, в принципе мне это и нужно. Как обработаю отпишусь обязательно

Maxim_ka 26.09.2009 00:02

Доброй ночи, знатоки )) Хочу посоветоваться, делал ли кто-нибудь систему учета трафика на основе iptables, хотелось бы узнать, может у кого есть заготовки, или может кто посоветует какое-нибудь ПО. Ситуация такова:
Ubuntu 9.04-server (просто потому что репозитории бесплатные) - Стоит система учета трафика на основе SQUID, с авторизацией пользователей и паролей (обязательно), Также существует начальство, которое не желает пользоваться проксей, и писать имя пользователя и.т.д.... пара компов для которых открыто абсолютно все через iptables, 10 юзеров пользующиеся почтовыми клиентами в основном MS outlook, для них открыты порты 25 и 110, есть пользователи которые пользуются VPN соединениями до другого объекта и удаленным рабочим столом в качестве терминала, соответсвтенно порты 1723 и 3389 открыты для них.Вот для всей этой котовасии требуется учет. Жду советов ... Заранее благодарю.
P.S. Не хочется изобретать велосипед

Dolphin 26.09.2009 01:14

Цитата:

Сообщение от Maxim_ka (Сообщение 276074)
Доброй ночи, знатоки )) Хочу посоветоваться, делал ли кто-нибудь систему учета трафика на основе iptables, хотелось бы узнать, может у кого есть заготовки, или может кто посоветует какое-нибудь ПО. Ситуация такова: Ubuntu 9.04-server (просто потому что репозитории бесплатные) - Стоит система учета трафика на основе SQUID, с авторизацией пользователей и паролей (обязательно), Также существует начальство, которое не желает пользоваться проксей, и писать имя пользователя и.т.д.... пара компов для которых открыто абсолютно все через iptables, 10 юзеров пользующиеся почтовыми клиентами в основном MS outlook, для них открыты порты 25 и 110, есть пользователи которые пользуются VPN соединениями до другого объекта и удаленным рабочим столом в качестве терминала, соответсвтенно порты 1723 и 3389 открыты для них.Вот для всей этой котовасии требуется учет. Жду советов ... Заранее благодарю. P.S. Не хочется изобретать велосипед

Делал такое, пользуемся. Опишу вкратце.
Стоит прозрачный сквид.
Трафик по всем портам, кроме хттп и фтп идет через роутер, весь проходящий трафик просматривается pmacctd, пишется в MySQL.
Авторизация тупо по ип.

Кроном запускается дикая конструкция из sh, php и сишного бинарника (собственно, идет постепенное мутирование в один бинарник), которая делает следующее:
1. Выцепляет необработанный кусок лога сквида, кладет в базу данных, попутно группируя запросы по домену.
2. Суммирует пакеты, записанные pmacctd, проверяет на предмет превышения квоты пользователем.
3. Просматривает таблицы разрешений пользователей, забаненых сайтов, исходя из них формирует конфиг сквида и изменения iptables, прогоняет их. Пользователи с оверквотой банятся iptables по всем портам, кроме 80, сквид этих пользователей редиректит на страничку с объяснениями. Забаненые сайты также редиректятся на отдельную страничку.
4. Ищет несовпадения ip и mac, дабы покарать особо умных. Пока не приходилось.

Юзеры смотрят свою статистику браузером (скрипт на пхп), начальство и одмины имеют расширенный доступ к статистике по паролю.

Напрягучесть в плане дискового пространства - около 1,5 гб логов в бд в месяц, с диска они чистятся.
Напрягучесть в плане мозгов - машина с 2 гб и E4400 помимо роутинга двух внутренних сетей и трех внешних линков служит LDAP, файл-помойкой, астериском, сервером нескольких БД и обслуживает приблуды вроде CVS, чата и подобных мелочей без проблем. Небольшое подтормаживание мускуля наблюдается только в момент анализа выюзанного трафика.

Могу объяснит поподробней и дать примеры скриптов. Не знаю, велосипед или нет.
Есть аналогичная готовая система, но она ориентирована только на непрозрачный сквид. Забыл, как называется.

hrundel 26.09.2009 01:53

Цитата:

Сообщение от Maxim_ka (Сообщение 276074)
Доброй ночи, знатоки )) Хочу посоветоваться, делал ли кто-нибудь систему учета трафика на основе iptables, хотелось бы узнать, может у кого есть заготовки, или может кто посоветует какое-нибудь ПО.

1. iptables+ulog(есть вариант ulog'a умеющий писать сразу в мускул)
2. После того, как трафик в мускуле можно делать всё что угодно(написав простую веб морду на том же пхп) - смотреть статистику, генерить отчёты итд
3. Весь софт есть в репозитариях убунту - атп-кэш сёрч улог

Maxim_ka 26.09.2009 13:37

Спасибо за подробное описание, Тимур, но Ваша система достаточно сложна в исполнении, и на ее создение особо нет времени, потому что это заставит в корне поменять конфиги моего роутера, для меня это никак не приемлимо, я не могу его останавливать, потому что он по совместительству еще и OPenVpn сервер, к нему филиалы соединяются...
Думаю здесь нет надобности написания дополнительный вебморды, больших скриптов, достаточно того, чтобы "что-то" сливало информацию об использованном трафике, в какой-нибудь файлик... Да и потом доступ к нету по паролю... это обязательное требование, потму что в нашей компании есть сотрудники которые не имеют стационарный комп, и садятся на чужие машины... но пользуют свой трафик. так что продолжаю поиск.
Спасибо hrundel... буду пробовать

hrundel 27.09.2009 11:27

Цитата:

Сообщение от Maxim_ka (Сообщение 276225)
доступ к нету по паролю... это обязательное требование

Тогда либо squid для http трафика(и включить в нем авторизацию по логину/паролю), а остальное пустить через иптаблес(но конечно без пароля) либо писать свой софт(клиент-сервер) и ставить клиентскую часть(которая и будет заниматься авторизацией) на каждую раб.станцию.

JackDaniels 27.09.2009 11:49

Цитата:

Сообщение от Maxim_ka (Сообщение 276074)
Доброй ночи, знатоки )) Хочу посоветоваться, делал ли кто-нибудь систему учета трафика на основе iptables, хотелось бы узнать, может у кого есть заготовки, или может кто посоветует какое-нибудь ПО. Ситуация такова:
Ubuntu 9.04-server (просто потому что репозитории бесплатные) - Стоит система учета трафика на основе SQUID, с авторизацией пользователей и паролей (обязательно), Также существует начальство, которое не желает пользоваться проксей, и писать имя пользователя и.т.д.... пара компов для которых открыто абсолютно все через iptables, 10 юзеров пользующиеся почтовыми клиентами в основном MS outlook, для них открыты порты 25 и 110, есть пользователи которые пользуются VPN соединениями до другого объекта и удаленным рабочим столом в качестве терминала, соответсвтенно порты 1723 и 3389 открыты для них.Вот для всей этой котовасии требуется учет. Жду советов ... Заранее благодарю.
P.S. Не хочется изобретать велосипед

Если уж совсем ничего не прикручивать и не менять кардинально, то прописать правила на каждую группу пользователей (Группа «Юзер», «Босс», «Админ») и не авторизовать по логин-паролю, а например по МАК-адресу, ну или по айпи — И каждый получит то, что должен.

Ну а прикрутить какой ни будь биллинг и веб-морду думаю проблем не составит.

Maxim_ka 27.09.2009 12:36

Цитата:

Сообщение от hrundel (Сообщение 276578)
Тогда либо squid для http трафика(и включить в нем авторизацию по логину/паролю), а остальное пустить через иптаблес(но конечно без пароля) либо писать свой софт(клиент-сервер) и ставить клиентскую часть(которая и будет заниматься авторизацией) на каждую раб.станцию.

hrundel, вы описали ту ситуацию, которая у меня уже и так есть, весь трафик, который проксируется... у меня уже пущен через прокси, и имеется авторизация по пользователю и паролю, и трафик считается безотказно. Весь вопрос был в учете трафика пущенного через iptables.

Maxim_ka 27.09.2009 12:38

На понедельник, решил попробовать состряпать ulog+iptables, может что дельное и выйдет.
А на второе хочу посмотреть проект NiTraf... Продолжаются раскопки...

maxbugs 28.09.2009 16:30

Цитата:

Сообщение от Maxim_ka (Сообщение 228343)
Как сделать так, чтобы пользователи сидели в нете, через проксю TPS (squid), и одновременно пользовались почтовыми клиентами

Не совсем понятен вопрос.Если прокся на ТПС,а почта на Саркоре,то поможет обычный DNAT (портмаппинг). Если нужно автоматическое переключение на второй канал,при падении первого,то можно решить без всяких Iptables,переключением шлюза и днс на клиентских компах.

Как совсем простой вариант,для любых извращений: на 2003-й сервак поставить Kerio и использовать оба канала,вплоть до разграничения по портам и ресурсам.
Так же на нем ведется вся статистика.

Второй вариант,посадить ISA Server,но на счет двух каналов незнаю.

Dolphin 28.09.2009 16:59

Цитата:

Сообщение от maxbugs (Сообщение 277131)
Если нужно автоматическое переключение на второй канал,при падении первого,то можно решить без всяких Iptables,переключением шлюза и днс на клиентских компах.

Да, несомненно, удобно.

Maxim_ka 29.09.2009 07:26

Прошу прощения, но первое сообщение этой темы уже исчерпало себя, та проблема была решена, на данный момент проблемой остается учет статичтики взятой из iptables.
Вчера пробовал поставить приблуду nitraf, пока застопорился на отображение cgi в браузере... как отобразятся они в браузере, так узнаем, считает он трафик или нет...
Поиски продолжаются...

maxbugs 29.09.2009 10:41

Цитата:

Сообщение от Maxim_ka (Сообщение 277345)
Прошу прощения, но первое сообщение этой темы уже исчерпало себя, та проблема была решена, на данный момент проблемой остается учет статичтики взятой из iptables.
Вчера пробовал поставить приблуду nitraf, пока застопорился на отображение cgi в браузере... как отобразятся они в браузере, так узнаем, считает он трафик или нет...
Поиски продолжаются...

Попробуйте Internet Access Monitor For Squid. Считывает логи Squid'а и отображает их в удобоваримом виде.
Еще можно поискать связки счетчиков с MRTG.
Sams довольно не плохо считает трафик,но насколько он вам подходит,хз.

Maxim_ka 29.09.2009 19:01

ну вот, вроде все, проблема решена... рассмотрел проект nitraf достаточно старая, но хорошая задумка, но немного не доделана, я думаю, что разобраться не составит труда, немного подковырять скриптики надо, под себя... а вообщем меня она устроила. Я думаю на сегодняшний момент тема исчерпана.... бедм тестить.. Ушел обкатывать nitraf )))

Максим Ахмедов 14.01.2010 02:36

Решил не создавать отдельную тему....
Система Debian 4
IPTABLES(8)
вот такой распрекрасной строчкой даю юзерам полный доступ в инет без прокси через шлюз:
iptables -t nat -A POSTROUTING -o eth3 -s 192.168.1.20 -d ! 192.168.1.0/24 -j MASQUERADE
где eth3 это интерфейс который ведёт в глобалку
вопрос в следующем, как с помощью подобной строчки дать полный доступ юзеру, но только на один или два конкретных хоста?

С уважением.

Dolphin 14.01.2010 05:51

Цитата:

Сообщение от Styler (Сообщение 342278)
вопрос в следующем, как с помощью подобной строчки дать полный доступ юзеру, но только на один или два конкретных хоста?

iptables -t nat -A POSTROUTING -o eth3 -s 192.168.1.20 -d [целевой хост] -j MASQUERADE

Alexander Abgaryan 14.01.2010 10:09

Цитата:

Сообщение от Maxim_ka (Сообщение 276594)
На понедельник, решил попробовать состряпать ulog+iptables, может что дельное и выйдет.
А на второе хочу посмотреть проект NiTraf... Продолжаются раскопки...

Хы, кто-то ещё помнит NiTraf =)
Кстати в бета версии нитрафа я как раз использую связку улог+иптаблес - штука хорошая.

Максим Ахмедов 14.01.2010 21:34

Цитата:

Сообщение от Timur Rasulov (Сообщение 342288)
Цитата:

Сообщение от Styler (Сообщение 342278)
вопрос в следующем, как с помощью подобной строчки дать полный доступ юзеру, но только на один или два конкретных хоста?

iptables -t nat -A POSTROUTING -o eth3 -s 192.168.1.20 -d [целевой хост] -j MASQUERADE

примного благодарен, а можно ли там прописывать доменные имена хостов?

Dilshod Bobokulov 15.01.2010 10:57

eth0:0
 
Цитата:

Сообщение от Alexander Abgaryan (Сообщение 342380)
Хы, кто-то ещё помнит NiTraf =)
Кстати в бета версии нитрафа я как раз использую связку улог+иптаблес - штука хорошая.

Александр, а на саб.интерфейсах можно слушать трафик для подсчета или все таки нужно указать физический интерфейс?

Dilshod Bobokulov 15.01.2010 11:10

метод шамана
 
Цитата:

Сообщение от Styler (Сообщение 343043)
примного благодарен, а можно ли там прописывать доменные имена хостов?

если для просмотра и анализа, можно так:
Код:

iptables -t nat -A POSTROUTING -o eth3 -s 192.168.1.20 -d [целевой хост] -m comment --comment "domennoe_imya_hosta" -j MASQUERADE

Максим Ахмедов 15.01.2010 17:32

первый вариант (работает, но тут только ip)
iptables -t nat -A POSTROUTING -o eth3 -s 192.168.1.20 -d 213.180.204.8 -j MASQUERADE
второй вариант (работает, но он полагаю не целесообразен, доступ возможен только к 213.180.204.8)
iptables -t nat -A POSTROUTING -o eth3 -s 192.168.1.20 -d 213.180.204.8 -m comment --comment "ya.ru" -j MASQUERADE
третий вариант (не работает)
iptables -t nat -A POSTROUTING -o eth3 -s 192.168.1.20 -d -m comment --comment "ya.ru" -j MASQUERADE

с одним доменом ассоциировано несколько ip адресов как например ya.ru, так как же разрешить доступ только по доменному имени

German Stimban 15.01.2010 17:51

Цитата:

Сообщение от Styler (Сообщение 343654)
с одним доменом ассоциировано несколько ip адресов как например ya.ru, так как же разрешить доступ только по доменному имени

Поставь транспарентно squid и не мучайся

Dilshod Bobokulov 15.01.2010 18:12

Цитата:

Сообщение от Styler (Сообщение 343654)
с одним доменом ассоциировано несколько ip адресов как например ya.ru, так как же разрешить доступ только по доменному имени

Можно написать bash скрипт, который использует 2 внешних файла, в 1ом список IP адресов из локальной сети, 2ом список доменов для которых нужен доступ.

Максим Ахмедов 15.01.2010 21:08

Цитата:

Поставь транспарентно squid и не мучайся
к сожалению этот вариант не устраивает спасибо Герман
Цитата:

Можно написать bash скрипт, который использует 2 внешних файла, в 1ом список IP адресов из локальной сети, 2ом список доменов для которых нужен доступ.
если вас не затруднит, с этого место попрошу вас по подробнее

German Stimban 15.01.2010 21:17

Styler, ОК. Корпоративный DNS-сервер есть?

Alexander Abgaryan 15.01.2010 21:20

Цитата:

Сообщение от Dilshod Bobokulov (Сообщение 343246)
Александр, а на саб.интерфейсах можно слушать трафик для подсчета или все таки нужно указать физический интерфейс?

Я уже слабо помню как она работает, но вроде в настройках net-acct можно было указать интерфейсы для прослушивания. Но вообще я советую заюзать связку ulogd-mysql + iptables + самописная морда на пхп.

Alexander Abgaryan 15.01.2010 21:24

Цитата:

Сообщение от Styler (Сообщение 343043)
примного благодарен, а можно ли там прописывать доменные имена хостов?

Можно, при применении правила имена резолвятся и добавляется столько правил, сколько ип адресов соответствует доменному имени.
Простой пример:
iptables -A INPUT -s mail.ru -j DROP

результат

DROP all -- 217.69.128.43 0.0.0.0/0
DROP all -- 217.69.128.44 0.0.0.0/0
DROP all -- 217.69.128.41 0.0.0.0/0
DROP all -- 217.69.128.42 0.0.0.0/0

Максим Ахмедов 15.01.2010 23:27

Цитата:

Корпоративный DNS-сервер есть?
да, конечно есть
Цитата:

Можно, при применении правила имена резолвятся и добавляется столько правил, сколько ип адресов соответствует доменному имени.
спасибо Александр

Благодарю всех за внимание решение найдено

Максим Ахмедов 29.07.2010 17:42

новая проблема с iptables, не работают строки:
для проброски портов
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 4899 -j DNAT --to-destination 192.168.0.6:4899
и интернет для юзверя без прокси
iptables -t nat -A POSTROUTING -s 192.168.0.6 -d ! 192.168.0.0/24 -j MASQUERADE

при этом строки добавляются без мата, как будто всё в порядке...
Debian 4.0
iptables 1.3.6

Максим Ахмедов 03.08.2010 15:07

спасение утопающих дело рук самих утопающих.

1. Надо включить форвардинг:
#echo 1 > /proc/sys/net/ipv4/ip_forward

2. Что бы форвардинг работал после ребута:
#vim /etc/sysctl.conf

3. Добавляем строку в конец файла:
#net.ipv4.ip_forward = 1

Berlin 12.12.2011 12:55

Никто не пробовал пользоваться надстройкой iptables типа firehol и vuurmuur.Стоит ли вообще использовать?

German Stimban 12.12.2011 13:36

Цитата:

Сообщение от Berlin (Сообщение 658949)
Никто не пробовал пользоваться надстройкой iptables типа firehol и vuurmuur.

В моей жизни правила iptables были достаточно просты и немногочисленны, проще было ручками написать.


Текущее время: 20:13. Часовой пояс GMT +5.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
OOO «Единый интегратор UZINFOCOM»