Проблема доступа к WAN

В последние 4 дня я безуспешно пытался настроить свою систему как внешне доступную машину без удачи. Должен сказать, что это было отличное путешествие, я много узнал о сетевых технологиях Linux, но у меня есть проблема с подключением к моей машине из Интернета. Я стараюсь все детализировать для лучшего понимания.

Системный ландшафт:

  • два старых ноутбука ThinkPad-T60,
  • два 3G USB Wi-Fi ключа (поставщик услуг: Three.co.uk),
  • ОС: Ubuntu Quantal 12.10
  • нет маршрутизатора, модема или любого другого устройства

Я пытаюсь добиться следующего:

Настройка ноутбука как доступного извне веб-сервера под управлением apache2, прослушивающего порт 80 как обычно. Хост-машина подключена к интернету через 3G-ключ. Никакого другого устройства в пути, внешнего маршрутизатора и т. Д.

Я сделал следующее

Начали с чистой установки Ubuntu просто для уверенности. Установлены apache2 и php5. Установлен модуль noip2.

РЕЗЮМЕ

Apache2 запущен и работает просто отлично. Я могу загрузить неформатированный сайт по умолчанию из браузера, ссылаясь на localhost.

Я зарегистрировался на основной учетной записи no-ip.com (служба динамического DNS) и установил ее программное обеспечение, которое поддерживает их сервер в соответствии с моим динамическим IP-адресом. Проверено и перепроверено, работает идеально.

Я почти уверен в том, что мне нужно "поиграть" с iptables, поэтому я пробовал много учебников и документации, чтобы лучше понять. Поскольку машина все еще недоступна из внешней сети, я предполагаю, что я не делаю что-то совершенно правильно.

Некоторые необходимые выводы

$ Ifconfig

eth0      Link encap:Ethernet  HWaddr 00:1a:6b:35:c0:92  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:16 Memory:ee000000-ee020000 

eth1      Link encap:Ethernet  HWaddr 58:2c:80:13:92:63  
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::5a2c:80ff:fe13:9263/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:119918 errors:0 dropped:0 overruns:0 frame:0
          TX packets:103007 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:110091536 (110.0 MB)  TX bytes:13204658 (13.2 MB)

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:27915 errors:0 dropped:0 overruns:0 frame:0
          TX packets:27915 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2253626 (2.2 MB)  TX bytes:2253626 (2.2 MB)

wlan0     Link encap:Ethernet  HWaddr 00:1b:77:03:f0:97  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http state NEW,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http-alt state NEW,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:8888 state NEW,ESTABLISHED

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

IP TABLES CONFIG из сценария bash, который я написал, выполняется как ->./basicfw.sh eth1

#!/bin/bash

# Delete everything
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -Z

iptables -F INPUT
iptables -P INPUT ACCEPT
iptables -F OUTPUT
iptables -P OUTPUT ACCEPT
iptables -F FORWARD
iptables -P FORWARD ACCEPT

iptables -A INPUT -i $1 -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i $1 -p tcp -m tcp --dport 8080 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i $1 -p tcp -m tcp --dport 8888 -m state --state NEW,ESTABLISHED -j ACCEPT

netstat -anl | grep LISTEN

tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN     
tcp6       0      0 ::1:631                 :::*                    LISTEN     
tcp6       0      0 :::8888                 :::*                    LISTEN     

nmap * **.no-ip.org

Starting Nmap 6.01 ( http://nmap.org ) at 2012-11-13 10:57 Central Europe Standard Time
Nmap scan report for 92.41.31.247.threembb.co.uk (92.41.31.247)
Host is up (0.11s latency).
Not shown: 99 filtered ports
PORT STATE SERVICE
113/tcp closed ident
Nmap done: 1 IP address (1 host up) scanned in 3.70 seconds

Как вы можете видеть, установка довольно отстойная, я только вошел во всю эту тему. Я предполагаю, что мне не нужно перенаправлять eth1 на любую другую внутреннюю среду, потому что я думаю, что это та, где трафик поступает по данному адресу.

Я хотел бы услышать любое зрелое мнение о возможном обходном пути для установления соединения WAN с этой машиной.

Интернет-провайдер может заблокировать порт 80, поэтому я попытался изменить настройку на 8080 и переадресовал ее из службы no-ip.com dns. Открыл 8080 на iptables, правильно перенастроил apache2, и он все еще недоступен.

Я не хочу использовать это решение для любого реального случая использования, просто попытайтесь заставить его работать. Это хорошая кривая обучения.

Заранее спасибо, Пит **

1 ответ

Исходя из вашего вывода, похоже, что единственным интерфейсом, который имеет IP-адрес, является eth1 - 192.168.1.100. Это частный (rfc1918) IP-адрес, который вы не сможете получить напрямую из Интернета.

Как NoIP определяет, что ваш публичный динамический IP-адрес - 92.41.31.247? Я не пользовался сервисом three.co.uk, поэтому не уверен, что делает этот ключ. Я предполагаю, что клиент NoIP подключается с вашего компьютера к веб-сайту NoIP и рассматривается как этот общедоступный IP-адрес, но вы еще не показали нам, как вы на самом деле подключаетесь к Интернету:)

Как выглядит ваша таблица маршрутизации? Посмотрите на вывод ip r и список всех интерфейсов, настроенных с IP-адресом с ip a,

Ваш брандмауэр iptables в его текущем состоянии вообще ничего не делает, так как для политики по умолчанию для всей цепочки установлено значение "ПРИНЯТЬ".

Я могу помочь вам настроить его позже, но сначала вам нужно разобраться с подключением.

Другие вопросы по тегам