The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
iptables:возможно ли сделать такое?, !*! shas, 30-Янв-10, 21:38  [смотреть все]
Hi!

Сделал попытки реализовать следующее и закрались смутные сомнения:"А возможно ли оно?".

Задача вроде бы банальная.
Есть сервер с внешним (ххх.ххх.ххх.ххх) и внутренним (192.168.0.5) адресами.
На этом сервере запущена некая программа, которая слушает только на внутреннем интерфейсе
порт 2000.
Надо, подключившись с внешнего интерфейса, попасть на внутренний на порт 2000.
Из вне пробросить соединение на компьютер во внутренней сети не составляет проблемы.
Но в описанной выше задаче, такие способы почему-то не срабатывают.
Т.о. вариации на тему
-A PREROUTING -p tcp -d ххх.ххх.ххх.ххх --dport 2000 -j DNAT --to-destination 192.168.0.5:2000
не решили проблему.

Подскажите, плиз, как реализовать желаемое?

  • iptables:возможно ли сделать такое?, !*! shadow_alone, 22:16 , 30-Янв-10 (1)
    • iptables:возможно ли сделать такое?, !*! shas, 22:37 , 30-Янв-10 (2)
      >первое что пришло в голову:
      >А является ли данный сервер шлюзом для данного компьютера?
      >А порт слушает точно tcp?

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

      А порт точно tcp.

      • iptables:возможно ли сделать такое?, !*! shadow_alone, 22:43 , 30-Янв-10 (3)
        • iptables:возможно ли сделать такое?, !*! shas, 23:12 , 30-Янв-10 (4)
          >[оверквотинг удален]
          >
          >открыт ли 2000 порт извне?
          >включен ли форвардинг?
          >
          >дайте вывод
          >iptables -L -n -v
          >
          >
          >и вывод
          >sysctl -a|grep net.ipv4.ip_forward

          Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
          pkts bytes target     prot opt in     out     source               destination
             54  5779 ACCEPT     0    --  lo     *       0.0.0.0/0            0.0.0.0/0
              0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
              0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
              0     0 ACCEPT     0    --  eth1   *       0.0.0.0/0            0.0.0.0/0
              6   384 ACCEPT     0    --  eth0   *       0.0.0.0/0            0.0.0.0/0
              0     0 DROP       0    --  *      *       0.0.0.0/0            0.0.0.0/0

          Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
          pkts bytes target     prot opt in     out     source               destination
              0     0 ACCEPT     0    --  *      *       0.0.0.0/0            192.168.0.5
              0     0 ACCEPT     0    --  *      *       0.0.0.0/0            127.0.0.1
              0     0 ACCEPT     icmp --  *      eth0    192.168.0.0/24       0.0.0.0/0
              0     0 ACCEPT     icmp --  eth0   *       0.0.0.0/0            192.168.0.0/24
              0     0 ACCEPT     udp  --  eth0   *       192.168.0.0/24       0.0.0.0/0           multiport dports 53,1194
              0     0 ACCEPT     udp  --  *      eth0    0.0.0.0/0            192.168.0.0/24      multiport sports 53,1194
              0     0 ACCEPT     tcp  --  eth0   *       192.168.0.0/24       0.0.0.0/0           multiport dports 22,25,53,443,465,80,85,110
              0     0 ACCEPT     tcp  --  *      eth0    0.0.0.0/0            192.168.0.0/24      multiport sports 22,25,53,443,465,80,85,110
              0     0 DROP      !icmp --  eth0   *       192.168.0.0/24       0.0.0.0/0           state INVALID
              0     0 DROP      !icmp --  *      eth0    0.0.0.0/0            192.168.0.0/24      state INVALID

          Chain OUTPUT (policy ACCEPT 221 packets, 28995 bytes)
          pkts bytes target     prot opt in     out     source               destination

          net.ipv4.ip_forward = 1

  • iptables:возможно ли сделать такое?, !*! shas, 09:44 , 31-Янв-10 (10)
    Спасибо за ответы, но не работает.
    Для чистоты эксперимента поступил следующим образом.
    Набросал следующую программу:

    #!/usr/bin/perl -w
    use strict;
    use IO::Socket;
    my $quit=0;
    $SIG{INT}=sub {$quit=1};
    my $listen_socket = IO::Socket::INET->new(LocalPort=>5000,
                                              Listen=>5,
                                              Proto=>'tcp',
                                              Reuse=>1,
                                              Timeout=>3600);
    die "Error 1:$@" unless $listen_socket;
    warn "Waiting for connection...\n";
    my $count=0;
    while(!$quit){
        next unless my $conn=$listen_socket->accept;
        $count++;
        warn "$count\n";
        $conn->close;
    }
    $listen_socket->close;
    warn "Bye!\n"

    Вообщем все просто:открыли сокет и слушаем порт 5000. Если что-то пришло - выводим $count.
    Если в открытии сокета не указывать LocalAddr, то программа слушает все интерфейсы.
    Можно проверить:
    telnet 192.168.0.5 5000
    telnet 127.0.0.1 5000
    telnet xxx.xxx.xxx.xxx 5000
    приводят к реакции программы (xxx.xxx.xxx.xxx-внешний IP-шник).

    Теперь добавим в открытие сокета конкретный интерфейс:
    my $listen_socket = IO::Socket::INET->new(LocalAddr=>'127.0.0.1',
                                              LocalPort=>5000,
                                              Listen=>5,
                                              Proto=>'tcp',
                                              Reuse=>1,
                                              Timeout=>3600);

    Теперь к реакции программы приводит только
    telnet 127.0.0.1 5000

    Так вот вопрос, возможно ли с помощью iptables добиться ответа программы
    теперь подключившись с других сетевых интерфейсов?

  • iptables:возможно ли сделать такое?, !*! po, 22:34 , 05-Фев-10 (17) +1



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру