Задача: есть 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 дать доступ второй категории пользователей.
Решено: iptables + nat (snat в iptables)
Модераторы: SLEDopit, Модераторы разделов
-
daloman
- Сообщения: 47
- ОС: Debian GNU/Linux testing amd64
Re: Решено: iptables + nat
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
Разделить- разделеныно задача с 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
Прошелся по форуму в поисках подобных проблем, многое попробовал.
сопсно :
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
ну вот надо нат, раньше все работало, пока не перехал со старой мандривы на 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
ifconfig
немогу понять, в чем проблема.....должен NAT работать, ан не работает.
вобщем правило
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 eth0ifconfig
Код: Выделить всё
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
все, тему можно закрыть.
Вышел из положения:
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
Вышел из положения:
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