Решено: iptables + nat (snat в iptables)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

RedOctober
Сообщения: 17

Решено: iptables + nat

Сообщение RedOctober »

Задача: есть 2 группы пользователей.
1) возможность ограниченного числа сервисов (портов)
2) порты у этой группы пользователей неизвестны.
Имеем
eth0 смотрит в интернет 192.168.31.21
eth1 смотрит в локалку 10.0.0.1
для первой группы пользователей существует ряд правил:
iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE
#=========www====
iptables -A FORWARD -p tcp --sport 80 -j ACCEPT
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
#=========mail====
iptables -A FORWARD -p tcp --sport 25 -j ACCEPT
iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -p tcp --sport 110 -j ACCEPT
iptables -A FORWARD -p tcp --dport 110 -j ACCEPT
#=========icq=====
iptables -A FORWARD -p tcp --sport 5190 -j ACCEPT
iptables -A FORWARD -p tcp --dport 5190 -j ACCEPT
и тд.
у второй группы пользователей порты неизвестны и сервисы не должны быть ограниченны (не известно какими программами они будут пользоватся но им нужен выход в интернет)
Вопрос:
каким образом средствами nat дать доступ второй категории пользователей.
Спасибо сказали:
daloman
Сообщения: 47
ОС: Debian GNU/Linux testing amd64

Re: Решено: iptables + nat

Сообщение daloman »

RedOctober писал(а):
04.07.2009 09:23
Задача: есть 2 группы пользователей.
1) возможность ограниченного числа сервисов (портов)
2) порты у этой группы пользователей неизвестны.
Имеем
eth0 смотрит в интернет 192.168.31.21
eth1 смотрит в локалку 10.0.0.1
для первой группы пользователей существует ряд правил:
iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE
#=========www====
iptables -A FORWARD -p tcp --sport 80 -j ACCEPT
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
#=========mail====
iptables -A FORWARD -p tcp --sport 25 -j ACCEPT
iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -p tcp --sport 110 -j ACCEPT
iptables -A FORWARD -p tcp --dport 110 -j ACCEPT
#=========icq=====
iptables -A FORWARD -p tcp --sport 5190 -j ACCEPT
iptables -A FORWARD -p tcp --dport 5190 -j ACCEPT
и тд.
у второй группы пользователей порты неизвестны и сервисы не должны быть ограниченны (не известно какими программами они будут пользоватся но им нужен выход в интернет)
Вопрос:
каким образом средствами nat дать доступ второй категории пользователей.


Разделить группы пользователей по IP-адресам.
ИМХО для целей контроля, разделения доступа пользователей к сети Internet правильнее использовать прокси.
Спасибо сказали:
RedOctober
Сообщения: 17

Re: Решено: iptables + nat

Сообщение RedOctober »

Разделить- разделеныно задача с NAT при этом не исчезает.
Прошелся по форуму в поисках подобных проблем, многое попробовал.
сопсно :
iptables -t nat -A POSTROUTING -o eth1 -s 10.0.0.250 -j SNAT --to-source 192.168.31.21
такое примерно было в схожих темах, но к сожалению это у меня почему то не работает.
может что то непонимаю. Приходит на eth1 с 10.0.0.250 и натится на 192.168.31.21. в теории должно работать-на практике не работает.
Почему NAT? потому что 1 парвило и всё, если описывать через маскарадинг то будет оч много портов.
нужно решение именно через NAT
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Решено: iptables + nat

Сообщение Ленивая Бестолочь »

RedOctober писал(а):
04.07.2009 11:50
Почему NAT? потому что 1 парвило и всё, если описывать через маскарадинг то будет оч много портов.

эм, это почему?
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
RedOctober
Сообщения: 17

Re: Решено: iptables + nat

Сообщение RedOctober »

ну вот надо нат, раньше все работало, пока не перехал со старой мандривы на Cent есть подозрение что может где то настройка шлюза-интерфейсов неправильная, хотя по идее если бы интерфейсы и шлюз настроил неправильно то маскарадинг тоже недолжен работать.
вобщем правило
iptables -t nat -A POSTROUTING -o eth0 -p ALL -s 10.0.0.0/24 -j SNAT --to source 192.168.31.21 не пашет. хотя должно.
echo 1 > /proc/sys/net/ipv4/ip_forward сделанно, и при загрузке измененно.
route

Код: Выделить всё

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.31.0    *               255.255.255.0   U     0      0        0 eth0
10.0.0.0        *               255.255.255.0   U     0      0        0 eth1
169.254.0.0     *               255.255.0.0     U     0      0        0 eth1
default         192.168.31.1    0.0.0.0         UG    0      0        0 eth0

ifconfig

Код: Выделить всё

eth0      Link encap:Ethernet  HWaddr 00:E0:4C:7E:31:28
          inet addr:192.168.31.21  Bcast:192.168.31.255  Mask:255.255.255.0
          inet6 addr: fe80::2e0:4cff:fe7e:3128/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:13031 errors:0 dropped:0 overruns:0 frame:0
          TX packets:687 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1274812 (1.2 MiB)  TX bytes:269234 (262.9 KiB)
          Interrupt:169 Base address:0xa800

eth1      Link encap:Ethernet  HWaddr 00:80:48:22:D5:AE
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::280:48ff:fe22:d5ae/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2658 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2287 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:430278 (420.1 KiB)  TX bytes:682190 (666.2 KiB)
          Interrupt:193 Base address:0xe400

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)


немогу понять, в чем проблема.....должен NAT работать, ан не работает.
Спасибо сказали:
RedOctober
Сообщения: 17

Re: Решено: iptables + nat

Сообщение RedOctober »

все, тему можно закрыть.
Вышел из положения:
iptables -A FORWARD -i eth1 -s 10.0.0.255 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j SNAT -s 10.0.0.255 --to-source 192.168.31.21
Спасибо сказали: