Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Firewall *nix: iptables, ipfw, pf etc...

Автор: Alukardd
Дата сообщения: 13.05.2015 15:55
Renua
Ну единственное отличие, которые я вижу от моего примера это IP адрес на который вы source'ите. Проверьте наличие адреса 192.168.100.177 на интерфейсе eth0 той машины, что NAT'ит.

А вообще для простоты Вы можете использовать вместо -j SNAT --to-source 192.168.100.177-j MASQUERADE
Автор: Renua
Дата сообщения: 13.05.2015 16:24
Alukardd
т.е.
Код: iptables -t nat -A POSTROUTING -d 46.28.17.145 -p tcp -m tcp --dport 80 -o eth0 -j MASQUERADE
Автор: Alukardd
Дата сообщения: 13.05.2015 16:45
Renua
С маскарадом, да, всё так.
Правило DNAT'а всё равно надо.
Автор: Renua
Дата сообщения: 13.05.2015 16:55
Alukardd
спасибо большое

Автор: OOD
Дата сообщения: 19.05.2015 12:43
Можно ли с помощью iptables бороться со спамерами баном по IP их хостов?
Автор: ipmanyak
Дата сообщения: 19.05.2015 15:23
OOD
Цитата:
Можно ли с помощью iptables бороться со спамерами баном по IP их хостов?
Можно, но не нужно.
Ибо хостов море. Запаришься вносить хосты, таблица будет огромной, айпитаблес начнет тормозить.
Если уж очень хочется и у тебя точно нет писем, например, с Японии, Китая, Италии и др, то можно побрить их блоки сетей, В Инете есть эти списки.

Для борьбы со спамом есть средства в почтовиках , причем на уровне DNS
- DNS-BL
- требовать PTR
- брить хосты, которые в HELO/EHLO пишут типа
pppoe*-*
ppp
adsl-...
dynamic-
и так далее . Ибо нормальные почтовики таких имен не имеют в HELO

Не на уровне DNS
- Greylisting
- Tarpit
- Spamassasin
Автор: Alukardd
Дата сообщения: 19.05.2015 15:50
OOD
Если нужно работать с большими списками ip адресов, то есть ipset.
Автор: OOD
Дата сообщения: 20.05.2015 09:07
Alukardd
в etc/host.deny прописываю туда правила , не блокирует -это ipset , или что то еще?
CentOS 6.
Автор: Alukardd
Дата сообщения: 20.05.2015 10:14
OOD
ipset это ipset — в шапке есть ссылка!
Автор: yakostik
Дата сообщения: 27.05.2015 21:54
Проблема в iproute помогите решить
Есть сервер с двумя входами от двух провайдеров и 3-мя выходами в сеть (исходящая карта одна но на ней еще два вирт интерфейса по vlan)
Стоит задача раздать инет части пользователей через сквид части через NAT по IP клиента плюс нарезать скорость.
Все настроил отказоустойчивость сделал скриптом в варианте проверки доступности шлюза провайдера и подмене дефаултного роутера в зависимости от доступности того или иного шлюза провайдера.

Но вот захотелось мне сделать работу сразу по двум провайдерам с балансировкой нагрузки и тут получился трабл
сделал две таблицы маршрутизации
добавил пару маршрутов вот так

ip route add $P1_NET dev $IF1 src $IP1 table $TBL1 > /dev/null 2>&1
ip route add default via $P1 table $TBL1 > /dev/null 2>&1
ip route add $P2_NET dev $IF2 src $IP2 table $TBL2 > /dev/null 2>&1
ip route add default via $P2 table $TBL2 > /dev/null 2>&1

ip route add $P1_NET dev $IF1 src $IP1 > /dev/null 2>&1
ip route add $P2_NET dev $IF2 src $IP2 > /dev/null 2>&1


ip route add default via $P1 > /dev/null 2>&1

ip rule add from $IP1 table $TBL1 > /dev/null 2>&1
ip rule add from $IP2 table $TBL2 > /dev/null 2>&1


ip route add $P0_NET dev $IF0 table $TBL1 > /dev/null 2>&1
ip route add $P2_NET dev $IF2 table $TBL1 > /dev/null 2>&1

ip route add 127.0.0.0/8 dev lo table $TBL1 > /dev/null 2>&1
ip route add $P0_NET dev $IF0 table $TBL2 > /dev/null 2>&1
ip route add $P1_NET dev $IF1 table $TBL2 > /dev/null 2>&1

ip route add 127.0.0.0/8 dev lo table $TBL2 > /dev/null 2>&1

iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -s $P0_NET -o $IF1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $P0_NET -o $IF2 -j MASQUERADE

где
LAN interface IF0
# WAN interface 1 IF1="p4p1"
# WAN interface 2 IF2="p5p1"
IP1,2 мои внешние адреса
P1,2 шлюзы моих провайдеров
P1_NET,P2_NET мои подсети внешние Р0_NET внутреня
TBL1,TBL2 таблицы маршрутизации

Ну естественно удалил добавление шлюза при поднятии внешних интефейсов

ну и собственно правило роута с балансом
ip route delete default
ip route add default scope global nexthop via $P1 dev $IF1 weight $W1 \
nexthop via $P2 dev $IF2 weight $W2

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

После запуска все заработало но странно
Squid работает на ура коннекты идут куда надо трафик балансит между сетевками.

NAT тоже работает но полностью отказались работать правила настройки скорости клиентов настроенные через tc скорость клиантов показывает на уровне 10-15 килобит как только отключаю балансировку сразу начинает отрабатывать правильная

Ну и еще один глюк это OpenVPN клиенты видят внешние интерфейсы сервера могут создать сессию им все настраивается но внутри сети они могут пинговать только внутреннюю сетевую карту сервера машины внутри самой сети не доступны.


Скорость нарезал вот так

lan="p6p1"
wann1="p5p1"
wann2="p4p1"
SpeedIPS="1000Mbit" #Скорость провайдера
SpeedLevel11="1Mbit" #Скорость 1         set-class 11
SpeedLevel5="5Mbit" #Скорость 5            set-class 5

tc qdisc del dev $lan root
tc qdisc del dev $wann1 root
tc qdisc del dev $wann2 root

tc qdisc add dev $lan root handle 1: htb default 150 #r2q 1400
tc class add dev $lan parent 1: classid 1:1 htb rate $SpeedIPS burst 20k
#speed 1m
tc class add dev $lan parent 1:1 classid 1:11 htb rate $SpeedLevel11 ceil $SpeedLevel11 burst 20k
tc qdisc add dev $lan parent 1:11 handle 11: sfq

tc class add dev $lanwfree parent 2:1 classid 2:11 htb rate $SpeedLevel11 ceil $SpeedLevel11 burst 20k
tc qdisc add dev $lanwfree parent 2:11 handle 11: sfq

#speed 5m
tc class add dev $lan parent 1:1 classid 1:5 htb rate $SpeedLevel5 ceil $SpeedLevel5 burst 20k
tc qdisc add dev $lan parent 1:5 handle 5: sfq

tc class add dev $lanwfree parent 2:1 classid 2:5 htb rate $SpeedLevel5 ceil $SpeedLevel5 burst 20k
tc qdisc add dev $lanwfree parent 2:5 handle 5: sfq
tc filter add dev $lan parent 1:0 protocol ip prio 1 handle 11 fw flowid 1:11
tc filter add dev $lan parent 1:0 protocol ip prio 1 handle 5 fw flowid 1:5

ну и маркировка самих клиентов
/sbin/iptables -t mangle -A POSTROUTING -d $ip -j CLASSIFY --set-class 1:11
/sbin/iptables -t mangle -A POSTROUTING -s $ip -j CLASSIFY --set-class 1:11

Подскажите где я туплю уже три дня копаюсь в этом всем но результат все тот же
Автор: Alukardd
Дата сообщения: 27.05.2015 22:23
yakostik
Хз что могло сломать одно правило с nexthop'ами...
Меня смущает, что вы маркируете пакеты в таблицы POSTROUTING, хотя как по мне делать это надо до маршрутизации.
Автор: yakostik
Дата сообщения: 27.05.2015 22:55
Alukardd
Думаете стоит это делать в PREROUTING надо попробовать переписать и проверить.

А что могло случиться с тем что OpenVPN перестал маршрутизироватся во внутреннюю сеть?
Автор: Alukardd
Дата сообщения: 28.05.2015 11:50
yakostik
Вы пока проверьте теорию с PREOUTING.
А вопросы по OpenVPN задайте в соответствующей теме с приложенными конфигами клиента и сервера.
Автор: yakostik
Дата сообщения: 28.05.2015 20:20
Alukardd
Спасибо вопрос конечно задам но по моему он тоже выплывает из этой же проблемы так как без баланса нагрузки vpn работает как часы.
Такое ощущение что отключается НАТ или форвард пакетов между сетевками, ну или не отключается, а начинает как то сильно сильно глючить

Добавлено:
Alukardd
Проверил таже фигня что и с POSTROUTING да и опять же пока не включаю две таблицы маршрутизации такая настройка шейпера работает без вопросов
Автор: Alukardd
Дата сообщения: 28.05.2015 23:02
yakostik
мде, опять же отвлекаясь от непосредственно правила балансировки, не понимаю зачем у Вас прописаны маршруты до сети одного провайдера в таблице для маршрутизации к другому провайдеру
Цитата:
ip route add $P1_NET dev $IF1 table $TBL2 > /dev/null 2>&1
ip route add $P2_NET dev $IF2 table $TBL1 > /dev/null 2>&1


А вообще вот она светлая мысля — у Вас пакеты уходят с разных интерфейсов и там независимо отрабатывает conntrack, т.о. образом весь NAT'ящийся транзитный трафик у Вас просто разрывается и нету целостности TCP соединения!
Собственно само по себе оно не работает, хотя казалось бы должно, но нет, там чистый weighted round-robin. Так что вдумчиво читаем пример в данном разделе(там пример для 3-х провайдеров).

Добавлено:
Возможно удасться обойтись чем-то таким.
Автор: yakostik
Дата сообщения: 28.05.2015 23:41
Alukardd
Спасибо буду читать
Хотя сегодня пока ставил эксперименты с маркировкой трафика для tc заметил что если есдлить все правила tc то вроде бы и нат начинает работать адекватно во всяком случае машина через нат смогла проверить скорость на яндексе и показала 80% от скорости прова что по входящими что по исходящиму трафику.
То есть возможно что собака порылась еще глубже и проблема где то в правилах шейпера.

А по поводу Вашего замечания по таблицам в результате у меня получаются вот такие две таблицы

ip route list table pr1
default via 11.11.11.9 dev p4p1
10.0.0.0/8 dev p6p1 scope link
11.11.11.8/29 dev p4p1 scope link src 11.11.11.12
22.22.22.96/29 dev p5p1 scope link
127.0.0.0/8 dev lo scope link

ip route list table pr2
default via 22.22.22.97 dev p5p1
10.0.0.0/8 dev p6p1 scope link
11.11.11.8/29 dev p4p1 scope link
22.22.22.96/29 dev p5p1 scope link src 22.22.22.99
127.0.0.0/8 dev lo scope link

где 11.11.11.12 и 22.22.22.99 мои IP
А 11.11.11.9 и 22.22.22.97 шлюзы провайдеров

В моем понимании маршрут на подсеть провайдера нужен если балансер кинул трафик отправленный в подсеть 1 провайдера через сетевку 2 провайдера, по идеи он должен передаваться на сетевку 1 провайдера и попадать по назначению ну и аналогично для подсети второго провайдера.
Автор: yakostik
Дата сообщения: 09.06.2015 15:36
Alukardd
Поигрался с настройками и понял во всяком случае почему у меня не работает vpn оказалось что пакет в мою внутреннюю сеть уходит с IP vpn клиента другими словами не работает NAT

добавил
iptables -t nat -A POSTROUTING -s $P0_NET -o $IF3 -j MASQUERADE

$IF3 это tun0

и vpn заработал почему он корректно работал без этой строки при настройке на 1 шлюз и не работал при работе двух шлюзов с балансом не совсем понятно.

Теперь как я понял надо создать вирт интерфейс пустить в него трафик до того как он пройдет (или после) nat и уже на нем резать скорость потому что вроде как nat и шейпер на одном интерфейсе жить не могут.
Кто то такое делал может подскажите?
Автор: yakostik
Дата сообщения: 10.06.2015 21:52
Нашел еще вот такую вещь

ip route get 8.8.8.8
8.8.8.8 via 22.22.22.97 dev p5p1 src 22.22.22.99
cache
ip route get 8.8.8.8
8.8.8.8 via 11.11.11.9 dev p4p1 src 11.11.11.12
cache
ip route get 8.8.8.8
8.8.8.8 via 11.11.11.9 dev p4p1 src 11.11.11.12
cache
ip route get 8.8.8.8
8.8.8.8 via 22.22.22.97 dev p5p1 src 22.22.22.99
cache
ip route get 8.8.8.8
8.8.8.8 via 11.11.11.9 dev p4p1 src 11.11.11.12
cache
ip route get 8.8.8.8
8.8.8.8 via 22.22.22.97 dev p5p1 src 22.22.22.99
cache

Другими словами по какой-то причине постоянно меняется закешированный маршрут скорее всего именно из за этого я и получаю такие траблы с трафиком и скоростью если смотреть tcpdump то пакеты уходят то с одного то с другого интерфейса
Если же верить вот этому мануалу http://help.ubuntu.ru/wiki/ip_balancing да и все подобным такой вид балансировки как раз и построен на том что маршруты должны кешироватся
Автор: Alukardd
Дата сообщения: 29.06.2015 12:02
Вопрос

alexagn
Смотреть правила iptables нагляднее командой iptables -vnL, тогда не надо будет делать ремарок насчёт anywhere относительно loopback и прочих пояснений.

Показывать сетевую активность нагляднее отфильтрованным выводом tcpdump'а.
Интернет прям работает-работает? И вы можете выполнить, например telnet yandex.ru 80?
Автор: JDesign
Дата сообщения: 07.07.2015 23:12
Может кто сталкивался:
Как с помощью iptables перенаправлять весь трафик на VPN для одного клиента знаю.
А вот как решить вопрос частично?
К примеру пользователь хочет загрузить с "мобильника" приложение, как направить трафик через VPN в appstore/p-market и обратно, а остальной пускать напрямую без VPN? Есть ли какие-то решения и на сколько реально делить трафик?
Автор: Ruza
Дата сообщения: 08.07.2015 10:18

Цитата:
на сколько реально делить трафик?

Реально. Но для апстора и гугля придётся вычислять их подсети.

[
Автор: OOD
Дата сообщения: 15.09.2015 10:05
Подскажите в ibtables тысячи таких записей:

-I FORWARD -s 104.244.14.252 -j REJECT
-I FORWARD -s 80.14.18.212/24 -j REJECT

можно ли как либо эти записи в другой файл записать, или ничего страшного, сколько еще записей можно добавить
Автор: vlary
Дата сообщения: 15.09.2015 16:26
OOD
Цитата:
Подскажите в ibtables тысячи таких записей:
А может, проще вместо тысяч REJECT сделать десяток ACCEPT?
Для тех адресов, кому это позволено?
А еще лучше рассказать, чего этим хотели добиться. Может, делать нужно вообще по-другому?
Автор: OOD
Дата сообщения: 15.09.2015 17:06
vlary
Есть почтовик Exchange, в логах вижу адреса в основном их много из одной подсети, но бывают и индивидуальные, вижу оттуда валит спам, анализирую через whois кто такой и нужен ли он нам и блокирую через REJECT IP, или подсеть, спама практически нет, но переживаю за iptables сколько подобных записей он сможет профильтровать и не начнет ли тормозить
Автор: vlary
Дата сообщения: 15.09.2015 19:07
OOD
Цитата:
вижу оттуда валит спам, анализирую через whois кто такой и нужен ли он нам и блокирую через REJECT IP
Смелое решение... Такие вещи лучше блокировать либо силами самого почтовика, либо через spamhaus/dnsbl, они все наверняка там.
А справиться должен справится.
Автор: OOD
Дата сообщения: 15.09.2015 21:01
vlary
в Exchange есть родная лочилка- она имеет ограничение порядка 1,5к адресов, либо доменов, либо зон (в общем записей) она забилась высвобождать их и логически думать какой домен в какой сети живет -это геморой. Майкрософт говорят, что ограничение можно убрать путем пересборки Exchange, но они не несут ответственности как он будет работать и не говорят где именно это делать.
лочилки
zen.spamhaus.org
dnsbl.sorbs.net
bl.spamcop.net
dnsbl-1-uceprotect.net
cbl.abuseat.org
Подключены, но они не справляются

Подскажите, а подобные правила блокировки можно где либо логировать, смотреть лог того как лочит iptables?
Автор: vlary
Дата сообщения: 15.09.2015 23:24
OOD
Цитата:
а подобные правила блокировки можно где либо логировать
Конечно. Добавив в конец правила
-I FORWARD -s 104.244.14.252 -j REJECT LOG
Как-то так. Точнее посмотришь в мане.
Автор: TGR3
Дата сообщения: 29.09.2015 15:45
добрый день

Сейчас
iptables -I FORWARD 1 -p tcp -d нужные сайты --dport 80 -j ACCEPT
iptables -I FORWARD 2 -p tcp -d нужные сайты --dport 80 -j ACCEPT
iptables -I FORWARD 3 -p tcp -d нужные сайты --dport 80 -j ACCEPT
iptables -I FORWARD 4 -p tcp -d smsc.ru --dport 80 -j ACCEPT
iptables -I FORWARD 5 -p tcp -d нужные сайты --dport 80 -j ACCEPT
iptables -I FORWARD 6 -p tcp --dport 80 -j DROP

все порты кроме 80 открыты. хочетось бы закрыт и 443 хотя бы, чтоб не было возможностей выйти по https.

фокус с iptables -I FORWARD 6 -p tcp --dport 80,443 -j DROP не работает

или этот фаерволл плюшевый и такое не сделаешь?
Автор: Alukardd
Дата сообщения: 29.09.2015 16:48
TGR3
что там у Вас плюшевое я не знаю. iptables умеет очень и очень многое. Особенно вместе с пакетом iproute2.
iptables -I FORWARD -p tcp -m multiport --dports 80,443 -j DROP
Автор: denis1100
Дата сообщения: 28.10.2015 11:56
Доброго времени суток.
Задача такая:
VPN server 10.10.10.1
есть инженеры 10.10.10.2 - 10.10.10.20
есть клиенты 10.10.10.21 - 10.10.10.254
Нужно настроить iptables дабы клиенты не видели никого, а инженеры могли ходить по ip к клиентам.
спасибо!
ОС UBUNTU 14 LTS

Страницы: 123456789101112131415

Предыдущая тема: Как подключиться по RDP к 2000 серверу - к локальной сессии?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.