LinuxForum.Fans
Тема

Как разрешить проход через NAT определенным диапазонам адресов

Автор: kerogaz 46 сообщений 2830 просмотров
#311739

Я заметил неприятную особенность, при маске 255.255.0.0 и локальной сети 10. через нат проходят наружу абсолютно все адреса у которых первая 10. А мне нужно чтобы проходили адреса только из диапазонов 10.44.1.0-254, 10.44.2..0-254, 10.44.3.0-254 и 10.44.4-254 а остальные типа 10.1.1.128 и т.д отсеивались

#311743

А покажыте но правило которое у вас отвечает за НАТ

#311747
text
Table: nat
Chain PREROUTING (policy ACCEPT)

Chain POSTROUTING (policy ACCEPT) num target prot opt source destination 1 MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT) num target prot opt source destination

#311751

А если так прописать, задав сеть для которой делать маскарад

text
iptables -t nat -A POSTROUTING -s 10.44.1.0/24 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.44.2.0/24 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.44.3.0/24 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.44.4.0/24 -o ppp0 -j MASQUERADE

Ну или запретить форвард пакетов для всех и разрешыит тока тем подсетям что вам нужно

text
iptables -P FORWARD DROP
iptables -A FORWARD -s 10.44.1.0/24  -o ppp0 -j ACCEPT
iptables -A FORWARD -s 10.44.2.0/24  -o ppp0 -j ACCEPT
iptables -A FORWARD -s 10.44.3.0/24  -o ppp0 -j ACCEPT
iptables -A FORWARD -s 10.44.4.0/24  -o ppp0 -j ACCEPT
#311752

А как без ppp0 который я никогда не упоминал в настройках ?

#311756
text
iptables -A FORWARD -s 10.44.1.0.0/24  -o ppp0 -j ACCEPT
iptables v1.4.7: host/network `10.44.1.0.0' not found
Try `iptables -h' or 'iptables --help' for more information.
#311757

Это пример. параметр -о означает output interface, тоисть интерфейс что смотрит в интернет. Так укажыте свой.

#311758
kisil написал:
Это пример. параметр -о означает output interface, тоисть интерфейс что смотрит в интернет. Так укажыте свой.

Посмотрите пост выше Правила в DROP устанавливаются а подсетка для которой надо сделать ACCEPT не может быть найдена

#311760

Кстати с маскарадом то же самое

text
iptables -t nat -A POSTROUTING -s 10.44.1.0.0/24 -o ppp0 -j MASQUERADE
iptables v1.4.7: host/network `10.44.1.0.0' not found
Try `iptables -h' or 'iptables --help' for more information.

Теоретически вроде бы всё просто должно быть, а практически никак не получается, то ли из-за синтаксиса то ли ещё из-за каких-то дополнительных настроек

#311762

Ошыбся поправил свои посты. Один 0 лишний.

#311764

Так нормально и следовательно строку

text
 MASQUERADE  all  --  anywhere             anywhere  

надо убрать как я понял

#311765

Ну да. Поправте правила что у вас еть. И перезапустите скрипт который настраивает фаервол.

#311766

Но она у меня чего-то не убирается

text
Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    MASQUERADE  all  --  anywhere             anywhere            
2    MASQUERADE  all  --  10.44.1.0/24         anywhere            
3    MASQUERADE  all  --  10.44.2.0/24         anywhere            
4    MASQUERADE  all  --  10.44.3.0/24         anywhere            
5    MASQUERADE  all  --  10.44.4.0/24         anywhere            

Chain OUTPUT (policy ACCEPT) num target prot opt source destination [root@celebris nat]# iptables -D POSTROUTING 1 iptables: No chain/target/match by that name.

#311768

Выложыте весь скрипт в котором прописаны все правила.

text
iptables -X
iptables -F

Эти команды сбрасывают все правила

#311773
kisil написал:
Выложыте весь скрипт в котором прописаны все правила.
text
iptables -X
iptables -F

Эти команды сбрасывают все правила

Я знаю эти команды. Неохота по новому всё перестраивать. Я ими пользовался перед формированием правил. Но строки цепочки POSTROUTING у меня почему то не удалялись изначално, а в цепочках PREROUTING и FORWARD удаляются с помощью D по номеру элементарно Я убираю адрес 10.1.1.128

text
iptables -D FORWARD 22

Никаких проблем

text
service iptables status
Table: mangle
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         

Chain INPUT (policy ACCEPT) num target prot opt source destination

Chain FORWARD (policy ACCEPT) num target prot opt source destination

Chain OUTPUT (policy ACCEPT) num target prot opt source destination

Chain POSTROUTING (policy ACCEPT) num target prot opt source destination

Table: nat Chain PREROUTING (policy ACCEPT) num target prot opt source destination 1 DNAT tcp -- 0.0.0.0/0 x.x.x.x tcp dpt:80 to:y.y.y.y:80 2 DNAT tcp -- 0.0.0.0/0 x.x.x.x tcp dpt:2200 to:y.y.y.y:22

Chain POSTROUTING (policy ACCEPT) num target prot opt source destination 1 MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0 2 MASQUERADE all -- 10.44.1.0/24 0.0.0.0/0 3 MASQUERADE all -- 10.44.2.0/24 0.0.0.0/0 4 MASQUERADE all -- 10.44.3.0/24 0.0.0.0/0 5 MASQUERADE all -- 10.44.4.0/24 0.0.0.0/0

Chain OUTPUT (policy ACCEPT) num target prot opt source destination

Table: filter Chain INPUT (policy ACCEPT) num target prot opt source destination

Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:80:48:EA:66:44 3 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:30:67:DD:3E:0D 4 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:1F:C6:A8:91:FA 5 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:01:80:5E:93:9F 6 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:E0:4C:86:24:92 7 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 24:B6:FD:18:E6:A5 8 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 20:CF:30:E8:75:DE 9 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:18:F3:E6:DB:D0 10 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 5C:D9:98:F7:D7:BC 11 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:27:19:B5:83:5D 12 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 5C:D9:98:F7:D7:BC 13 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:0D:87:D9:42:EB 14 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:27:19:B5:B8:4A 15 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:E0:4D:6C:F6:BC 16 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 30:85:A9:9E:2D:AA 17 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:04:61:74:72:33 18 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC F4:6D:04:01:41:13 19 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 50:46:5D:A1:0D:BB 20 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:02:44:89:5F:C1 21 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:07:E9:0A:10:F7 22 DROP all -- 10.1.1.128 0.0.0.0/0 23 DROP all -- 10.101.3.217 0.0.0.0/0 24 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:1F:C6:A8:97:5F 25 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:E0:4C:86:24:92 26 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:30:67:DD:3E:0D 27 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:0D:87:D9:42:EB

Chain OUTPUT (policy ACCEPT) num target prot opt source destination

#311782

Попробуй удалить это правило

text
1    MASQUERADE  all  --  0.0.0.0/0            0.0.0.0/0

Вот так.

text
iptables -D POSTROUTING 1
#311790
kisil написал:
Попробуй удалить это правило
text
1    MASQUERADE  all  --  0.0.0.0/0            0.0.0.0/0

Вот так.

text
iptables -D POSTROUTING 1

Я же вам в выше показал что это не работает почему-то. Напишу ещё раз

text
iptables -D POSTROUTING 1
iptables: No chain/target/match by that name.

а вцепочке FORWARD эта команда работает

text
iptables -D FORWARD 22
#311793

Не работает и это

text
iptables -F POSTROUTING 
iptables: No chain/target/match by that name.
text
iptables -X POSTROUTING 
iptables: No chain/target/match by that name.

Попробую перегрузиться Но как гворил Шарик, есть такая хижина Фигвам называется Так что не знаю что и делать

#311795

Интересная ситуацыя. А что говорит когда вы пробуете удалить это правило

text
iptables -D POSTROUTING 1
#311796
kerogaz написал:
Не работает и это
text
iptables -F POSTROUTING 
iptables: No chain/target/match by that name.
text
iptables -X POSTROUTING 
iptables: No chain/target/match by that name.

Попробую перегрузиться

Не так а так

text
iptables -t nat -F 
Войдите или зарегистрируйтесь, чтобы ответить.