Проблема доступа к 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 в его текущем состоянии вообще ничего не делает, так как для политики по умолчанию для всей цепочки установлено значение "ПРИНЯТЬ".
Я могу помочь вам настроить его позже, но сначала вам нужно разобраться с подключением.