Jump to content

Iptables и доступ к локальному "реальному" адресу...подскажите


Recommended Posts

Доброго времени суток!
Есть шлюз с Debian. Только настроил...начал вникать в суть iptables. Везде на сайтах с примерами в статьях...есть проброс определенных портов на локальные ресурсы через внешний адрес шлюза.
У меня есть прописанные на локальном интерфейсе eth1 реальные внешние адреса 92.3хх.ххх.0/24, не пойму как дать им доступ в Мир через шлюз, eth0 которого смотрит внешним адресом в инет. 
Делал так:
-A FORWARD -s 92.3хх.ххх.0/24 -j ACCEPT
И разрешал доступ к примеру к веб-серверу на адрес:
-A FORWARD -s 92.3хх.ххх.3/24 -j ACCEPT
Но...что-то не ходит никуда(
Не могли бы Вы подсказать? Заранее спасибо)
 

Link to post
Share on other sites

Доброго времени суток!

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

У меня есть прописанные на локальном интерфейсе eth1 реальные внешние адреса 92.3хх.ххх.0/24, не пойму как дать им доступ в Мир через шлюз, eth0 которого смотрит внешним адресом в инет. 

Делал так:

-A FORWARD -s 92.3хх.ххх.0/24 -j ACCEPT

И разрешал доступ к примеру к веб-серверу на адрес:

-A FORWARD -s 92.3хх.ххх.3/24 -j ACCEPT

Но...что-то не ходит никуда(

Не могли бы Вы подсказать? Заранее спасибо)

 

В вашем случае только костылями, делать nat 1 к 1, либо arp proxy. По взрослому пробрасываются роуты вашей подсети реальников, через /30 сетку.

Link to post
Share on other sites

ПРоброс определенных портов, - это DNAT И ваша сеть /24 тут не при чем.

Если у вас есть блок белых адресов, то вероятно вам ее ктото выделил? Если ее ктото выделил, то она вероятно прописана в райпе? след. можно строить БГП, или пусть ваш аплинк на вас напишет роут, а своим бгп анонсирует ваш префикс.

Для того, чтобы чтото посоветовать конкретно, нужно знать происхождение вашего блока белых адресов.

Link to post
Share on other sites

Весь исходящий, локально сгенерированный траффик проходит через цепочкуOUTPUT, весь входящий траффик, адресованный машине, проходит через цепочкуINPUT, и весь маршрутизируемый траффик цепочку FORWARD.

 

Укажите в команде цепочку OUTPUT

Link to post
Share on other sites

киньте весь iptables

 

если у аплинка роут прописан (через ваш внешний адрес )попробуйте 

 

-A FORWARD -s 92.3хх.ххх.0/24 -j ACCEPT

-A FORWARD -d 92.3хх.ххх.0/24 -j ACCEPT

 

если выделено просто Вам сеткой попробуй включить proxy_arp на внешнем интерфейсе.


покажите tcpdump

Link to post
Share on other sites

В вашем случае только костылями, делать nat 1 к 1, либо arp proxy. По взрослому пробрасываются роуты вашей подсети реальников, через /30 сетку.

Посмотрел на соседнем шлюзе, там сделано так:

адрес шлюза - 64.хх.хх.хх

адрес веб-сервера - 92.3хх.ххх.3

На веб-сервере:

-P INPUT ACCEPT

-P FORWARD DROP

-P OUTPUT ACCEPT

-A FORWARD -d 64.хх.хх.хх/32 -j ACCEPT

-A FORWARD -d 92.3хх.ххх.0/24 -j ACCEPT

На шлюзе:

 

iptables -P INPUT ACCEPT

iptables -P FORWARD DROP

iptables -P OUTPUT ACCEPT

iptables -A FORWARD -s 92.3хх.ххх.3/32 -j ACCEPT

iptables -A FORWARD -s 92.3хх.ххх.0/24 -j ACCEPT

iptables -A FORWARD -d 92.3хх.ххх.0/24 -j ACCEPT

 

Запущено-ли там arp пока не могу посмотреть...

то она вероятно прописана в райпе? след. можно строить БГП, или пусть ваш аплинк на вас напишет роут, а своим бгп анонсирует ваш префикс.

Для того, чтобы чтото посоветовать конкретно, нужно знать происхождение вашего блока белых адресов.

 

 

С bgp еще не ознакамливался, читаю сейчас, что к чему.

Edited by REV
Link to post
Share on other sites

Гденибудь отсюда http://ping.eu/ сделайте трейс на какойнить свой адрес. Если ваша сеть не анонсируется, то трейс умрет гдето во Франкфурте.

Кажись так и есть...

 

post-29850-0-32662400-1398364007_thumb.png

Спасибо, что откликнулись...сейчас читаю, то, что Вы и тов. выше рекомендовали...завтра попробую варианты)

post-29850-0-32662400-1398364007_thumb.png

Link to post
Share on other sites

Доброго времени суток!

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

У меня есть прописанные на локальном интерфейсе eth1 реальные внешние адреса 92.3хх.ххх.0/24, не пойму как дать им доступ в Мир через шлюз, eth0 которого смотрит внешним адресом в инет. 

Делал так:

-A FORWARD -s 92.3хх.ххх.0/24 -j ACCEPT

И разрешал доступ к примеру к веб-серверу на адрес:

-A FORWARD -s 92.3хх.ххх.3/24 -j ACCEPT

Но...что-то не ходит никуда(

Не могли бы Вы подсказать? Заранее спасибо)

 

 

У вас есть сетка ваших реальников вида 1.2.3.0/24 к примеру. В сторону вашего провайдера например смотрит интерфейс eth0, вы не должны вешать на него алиасы реальников, никаких вообще.

 

Должно быть так:

Ваши реальники 1.2.3.0/24.

Провайдер вам выдает совершенно другую /30 сетку, например 10.10.10.10/30, через которую он пробросить ваши реальники. Прописываете на eth0 ip - 10.10.10.10, шлюз 10.10.10.9. С вашей стороны все.

Далее провайдер добавляет маршрут для ваших реальников, через 10.10.10.10/30 сетку.

 

Пользователям выдаете любой 1.2.3.0/24, и на роутере разрешаете FORWARD, все.

 

Сам с этим недавно столкнулся. У меня на интерфейс в сторону провайдера видело куча алиасов, и весь мой пул ip, висел алиасом. это не правильно. Мне выдали /30 сетку, я на внешнем ip прописал только один ip, и убрал все алиасы. После этого все заработало по человечески.

Link to post
Share on other sites

О, тут нашел...
Помогите понять, через "как" оно реализовано.
На работающем шлюзе прописаны след. правила:

iptables -P INPUT ACCEPT
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A FORWARD -s 92.ххх.ххх.3/32 -j ACCEPT
iptables -A FORWARD -o eth0 -p tcp -m tcp --dport 25 -j DROP
iptables -A FORWARD -o eth0 -p udp -m udp --dport 25 -j DROP
iptables -A FORWARD -s 192.168.20.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.20.0/24 -j ACCEPT
iptables -A FORWARD -s 92.ххх.ххх.0/24 -j ACCEPT
iptables -A FORWARD -d 92.ххх.ххх.0/24 -j ACCEPT
iptables -A FORWARD -s 172.16.0.0/16 -j ACCEPT
iptables -A FORWARD -d 172.16.0.0/16 -j ACCEPT
На веб сервере:
-P INPUT ACCEPT
-P FORWARD DROP
-P OUTPUT ACCEPT
-A FORWARD -d 192.168.20.0/24 -j ACCEPT
-A FORWARD -d 64.ххx.ххx.ххx/32 -j ACCEPT
-A FORWARD -d 92.ххх.ххх.0/24 -j ACCEPT
Так все работает, но если я ставлю вместо того шлюза...другой настроенный с такими же таблицами и параметрами - не ходит никуда, а в пределах друг-друга есть пинги, но из инета нет возможности зайти на веб-сервер.(
Проверил arp-proxy не используется...как определить принцип по которому работает...сложно - открыл для себя Мир Дебиана на прошлой неделе. Поэтому такие вопросы, извините...
 
 
Edited by REV
Link to post
Share on other sites

sysctl -a | grep net.ipv4.ip_forward

Если будет "0"

 

 

 

исправьте в файлике 

/etc/sysctl.conf

 

параметр

net.ipv4.ip_forward=1

 

потом выполните команду

sysctl -p

или перезагрузитесь.

Edited by maxcec
Link to post
Share on other sites

Должно быть так:

Ваши реальники 1.2.3.0/24.

Провайдер вам выдает совершенно другую /30 сетку, например 10.10.10.10/30, через которую он пробросить ваши реальники. Прописываете на eth0 ip - 10.10.10.10, шлюз 10.10.10.9. С вашей стороны все.

Далее провайдер добавляет маршрут для ваших реальников, через 10.10.10.10/30 сетку.

 

Пользователям выдаете любой 1.2.3.0/24, и на роутере разрешаете FORWARD, все.

Не все, если эта сетка не анонсится то шо вы там у ся не пишите нифига пахать не будет. А у ТС как раз такая ситуевина, нету роутов на сеть
Link to post
Share on other sites

net.ipv4.ip_forward=1

 

потом выполните команду

sysctl -p

или перезагрузитесь.

 

Это есть уже по любому...он пропускает натом через себя еще 10 компов в инет.

На счет роутов...все есть. Пока нашел, что на старом серваке стоит все-таки quagga.

Пробую с bgp...отпишусь.

Link to post
Share on other sites
  • 3 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By smartlid
      Есть такая проблема, сделал ipip туннель и перенаправляю трафик с внешнего айпи на внутренний, для этого используется nat + prerouting, вообщем обычный фовардинг. И есть synproxy который убирает с контрака syn, поэтому перенаправление трафика ломается. Вот правила:
      iptables -t raw -A PREROUTING -p tcp -m tcp --syn -j CT --notrack iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate INVALID,UNTRACKED -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1460 iptables -A INPUT -m conntrack --ctstate INVALID -j DROP iptables -t nat -D PREROUTING -p tcp -m tcp -d $wan_addr --dport $dest_port_wan -j DNAT --to-destination $dest_addr_lan:$dest_port_lan iptables -D FORWARD -m state -p tcp -d $dest_addr_lan --dport $dest_port_lan --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -t nat -D POSTROUTING -p tcp -m tcp -s $dest_addr_lan --sport $dest_port_lan -j SNAT --to-source $wan_addr Как это заставить вместе работать?
    • By ageNT_666
      Всем привет, подскажите как можно ограничить максимальное количество контраков на абона? делал так
      iptables -I FORWARD -m connlimit --connlimit-above 5000 -j DROP
      проц в полку!(
    • By Archy_k
      Всем привет.
      У меня был серв на фрибсд, который не перенес грозу Теперь приходится все плюшки поднять на Дебиане.
      Подскажите пожалуйста, как в Дебиане сделать такую штуку:
      Есть сеть, которая натится на некую ip, например 1.1.1.1
      Есть абонент, который получает серый ip 172.16.0.100 (но когда денег на счету нет, то 172.22.0.100)
      И вот этот абонент установил ip-камеру. И смотрит он эту камеру софтиной на портах 9998 и 9999 например.
      1.Как в дебиане сделать чтоб фаервол перекидывал запросы на ip 1.1.1.1:9998 и 1.1.1.1:9999 в сторону абонента 172.16.0.100:9998 и 172.16.0.100:9999 ?
      2.Что делать если завтра 2 абонент захочет ip-камеру. Можно ли чтоб запросы на ip 1.1.1.1:788 и 1.1.1.1:789 летели на 172.16.0.100:9998 и 172.16.0.100:9999 ?
      Вопрос именно в написании самих команд этого iptables'а... не получается понять сам принцип работы этого iptables'a.
      Заранее благодарю за помощь!
    • By tkapluk
      Есть линуксовый сервер с iptables.
       
      На интерфейс Eth0 приходит пакет и успешно отсылается на Eth1. В ответ на этот пакет через Eth2 возвращается ответный пакет и умирает на сервере.
      Если ответный пакет возвращается через Eth1 все ок(уходит в Eth0). Новые пакеты с Eth2 в Eth0 тоже идут.
       
      Схематически:

      Eth0->[ ]->Eth1 X <-[ ]<-Eth2 Как заставить сервер отправлять ответные пакеты через Eth0?
    • By REV
      Доброго времени суток!) Дабы ограничить пользователей, решил их скидывать в одну подсеть где нет интернета.

      Скидывать всех в одну подсеть, и показывать им страницу "дай денег", это получилось сделать.
      Но не понятно как так сделать в iptables, чтобы была возможность с этой странички ходить по ссылкам https в сторону 443 порта?
      Думал, добавить filter до prerouting:

      192.168.16.0/24 - подсеть без денег
      2**.*1*.*5.*7 - адрес куда хотелось бы ходить
      *1.*30.2*0.3* - внешний адрес шлюза
       
      iptables -t filter -A INPUT -s 192.168.16.0/24 -d 21*.*1*.*5.*7 -p tcp -m tcp --dport 443 -j ACCEPT iptables -t filter -A OUTPUT -s 192.168.16.0/24 -d 21*.*1*.*5.*7 -p tcp -m tcp --dport 443 -j ACCEPT
       но не выходит.
      Вся секция хождения "в никуда" имеет след. вид:
      iptables -t nat -A POSTROUTING -o eth0 -s 192.168.16.0/24 -j SNAT --to-source *1.*30.2*0.3* iptables -t filter -A INPUT -s 192.168.16.0/24 -d 2**.*1*.*5.*7 -p tcp -m tcp --dport 443 -j ACCEPT iptables -t filter -A OUTPUT -s 192.168.16.0/24 -d 2**.*1*.*5.*7 -p tcp -m tcp --dport 443 -j ACCEPT iptables -t nat -A PREROUTING -s 192.168.16.0/24 -p tcp --dport 80 -j REDIRECT --to-port 8000 iptables -t nat -A PREROUTING -s 192.168.16.0/24 -p tcp --dport 443 -j REDIRECT --to-port 8000 iptables -A FORWARD -s 192.168.16.0/24 -j ACCEPT iptables -A FORWARD -d 192.168.16.0/24 -j ACCEPT
      Может, кто-то делал подобное...или, кто-то может подсказать...
×
×
  • Create New...