LinuxForum.Fans
Тема

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

Автор: kerogaz 46 сообщений 2828 просмотров
#311798
kisil написал:
[quote=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 

[/quote]
Те же яйца только в профиль :)

Показать
# iptables -t nat -F
[root@celebris ~]# service iptables status
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.101.3.217 0.0.0.0/0
23 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:1F:C6:A8:97:5F
24 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:E0:4C:86:24:92
25 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 00:30:67:DD:3E:0D
26 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

Table: nat
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination

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

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

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
#311799
kisil написал:
Интересная сbтуацыя. А что говорит когда вы пробуете удалить это правило
text
iptables -D POSTROUTING 1

В третий раз привожу вам это сообщение
i

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

Ну а какое правило вы хотите удалить???
В вас тока в FОRWARD правила.

#311805
kisil написал:
Ну а какое правило вы хотите удалить???
В вас тока в FОRWARD правила.

Короче у меня нат начинает работать только тогда, когда я пропишу

text
iptables --table nat --append POSTROUTING --out-interface  eth0 -j MASQUERADE

после

text
/sbin/iptables -t nat -A POSTROUTING -o etho -j MASQUERADE

хотя это по идее одно и то же но одно без другого почему-то не работает :)
Поэтому у меня получается две строки маскарада априори. Если я одну строку удаляю, то получается что уже больше командой -D оттуда ничего нельзя удалить

Если же я его убираю c помощью. iptables -t nat -F и оставляю только маскарад подсеток, то интеренета нет вообще, а если эти строки маскарада оставить, которые позволяют всем всё, то нет смысла в маскараде подсеток. Попробую заватра поэкспериментировать с другим вашим предложением

#311810

Ну тогда пропишыте НАТ так

text
iptables --table nat --append POSTROUTING --out-interface  eth0 -j MASQUERADE

А в FORWARD пускайте те сети что нужно.

#311815
kisil написал:
Ну тогда пропишыте НАТ так
text
iptables --table nat --append POSTROUTING --out-interface  eth0 -j MASQUERADE

А в FORWARD пускайте те сети что нужно.

Когда я прописываю НАТ так то имеем

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

и нет смысла в маскараде сеток так что завтра попробую с форвадом поэкспериментировать

#311816

Правильно. А теперь так

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

Тоисть ставите политику на пересылку пакетов в DROP. И разрешаете тока тем сетям что нужно.

#311817

Теперь я понял почему строки таблицы нат не удалялись
Я удалял их по номеру строки как

text
iptables -D POSTROUTING 1

а надо

text
iptables -t nat -D POSTROUTING 1

*CRAZY*

#311819

Ага да тоже верно.

#311822
kisil написал:
Ага да тоже верно.

Остаётся только гадать, почему строки POSTROUTING можно удалять только вторым способом, а строки PREROUTING и FORWARD можно также удалять и первым сособом? *CRAZY*

#311823

Потомучто если удалять так

text
iptables -t nat -D POSTROUTING 1

то удаляютса правила из таблицы nat
А если так

text
iptables  -D POSTROUTING 1

то с таблицы filter

#311963

Я хотел бы знать наверняка , при ваших правилах

text
iptables -P FORWARD DROP
iptables -A FORWARD -s 10.44.1.0/24  -o ppp0 -j ACCEPT

cохранится ли дроп макадреса моих правил

text
Chain FORWARD (policy ACCEPT)
1  DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:80:48:EA:66:44
#311964

Проверил что назывется по живому. С подсетками всё нормально ... НО при политике DROP .маки перестали блокироваться ( правда я проверил только последний, который стоит за разрешением подсеток а остальные проверить не могу, так как ихз местоположение мне точно не известно) . Как теперь маки заблокировать?

text
Chain FORWARD (policy DROP)
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:02:44:89:5F:C1 
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:E0:4C:86:24:92 
6    DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 24:B6:FD:18:E6:A5 
7    DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 20:CF:30:E8:75:DE 
8    DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:18:F3:E6:DB:D0 
9    DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 5C:D9:98:F7:D7:BC 
10   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:27:19:B5:83:5D 
11   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:0D:87:D9:42:EB 
12   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:27:19:B5:B8:4A 
13   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:E0:4D:6C:F6:BC 
14   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 30:85:A9:9E:2D:AA 
15   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:04:61:74:72:33 
16   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC F4:6D:04:01:41:13 
17   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 50:46:5D:A1:0D:BB 
18   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:02:44:89:5F:C1 
19   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:07:E9:0A:10:F7 
20   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:1F:C6:A8:97:5F 
21   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:E0:4C:86:24:92 
22   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:30:67:DD:3E:0D 
23   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:0D:87:D9:42:EB 
24   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:0E:2E:0C:4A:65 
25   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:80:48:EA:66:44 
26   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:0E:2E:0C:4A:65 
27   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 60:A4:4C:2C:F5:35 
28   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:0B:6A:6D:A7:E4 
29   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:13:8F:6F:3E:81 
30   ACCEPT     all  --  10.44.1.0/24         0.0.0.0/0           
31   ACCEPT     all  --  10.44.2.0/24         0.0.0.0/0           
32   ACCEPT     all  --  10.44.3.0/24         0.0.0.0/0           
33   ACCEPT     all  --  10.44.4.0/24         0.0.0.0/0           
34   DROP       all  --  0.0.0.0/0            0.0.0.0/0           MAC 00:1C:C0:F1:CB:C8 

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

#311968

Поставил мак адрес в самый верх таблицы, теперь он блокируется нормально :) То есть забаненые макадреса надо ставить перед строками с ACCEPT. Спасибо всем :)

text
iptables -I FORWARD -m mac --mac-source  00:1C:C0:F1:CB:C8  -j DROP
#311976

Вот и хорошо что всё заработало. Удачи. *THUMBSUP*

#312385

Но появился некоторый неприяnтный момент. При таком раскладе

text
 iptables -P FORWARD DROP

перестаёт работать проброс порта чере NAT снаружи в локальную сеть

text

Table: nat
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination  
1    DNAT       tcp  --  0.0.0.0/0           ip_ wan        tcp dpt:80 to: ip_lan:80 

Как такую проблему решить?

#312453

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

text
iptables -A FORWARD -p tcp -i internet_interface --dport 80 -j ACCEPT 

Попробуйте, но я не уверен что верно.

#312666
kisil написал:
Нужно в цепочке FORWARD разрешыть прохождение етого трафика. Я не уверен что правильно понял с адресами но как то так
text
iptables -A FORWARD -p tcp -i internet_interface --dport 80 -j ACCEPT 

Попробуйте, но я не уверен что верно.

Не работает.

text
1    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http

Приходится откатывать

text
iptables -P FORWARD ACCEPT
#312691

Может в цепочке FORWARD нужно ещё и указывать адрес получателя типа -dst
Может так.

text
iptables -A FORWARD -p tcp -i internet_interface -o lan_interface -dst ip_lan  -j ACCEPT 
#312698
text
iptables -A FORWARD -p tcp -i eth0 -o eth1 -dst 10.44.2.58  -j ACCEPT 
Bad argument `10.44.2.58'
Войдите или зарегистрируйтесь, чтобы ответить.