LINUX.ORG.RU

Беда с d'link dir-300 (не перенаправляет HTTP запросы на компьютер)


0

0

Организовал маленькую домашнюю беспроводную сеть. Попытался запустить свой сайт, размещенный на ноутбуке, через Apache. Я это делал раньше, когда был статический IP, теперь IP динамический. При попытке доступа к моему сайту (akt1.no-ip.org), генерируется сообщение: Error 403 Forbidden You don't have permission to access / on this server. Apache Server at akt1.no-ip.org Port 80

Если поменять в ADVANCED PORT FORWARDING RULES порт на 8080 и сделать запрос http://akt1.no-ip.org:8080 вылезает сообщение: CGIProxy Error Couldn't connect to akt1.no-ip.org:8080: Connection refused

Это сообщение генерируется даже, если Apache остановлен, все логи всегда чистые (роутер не передает ноутбуку запрос).Я так понял, что эти сообщения от Apache, зашитого в роутере. Настройки думаю ввел верные, есть опыт работы по аналогичной схеме со статическим IP, с Apache тоже дружу. 5 день из гугла не вылезаю, испробовал, кажется, все. На 90 % уверен, что роутер принимает HTTP запрос на себя в свой внутренний Apache и не передает запрос, куда надо. Проброс портов настроен верно.

Целый день сегодня пытался прослушать приходящие запросы на роутер и комп из интернета с помощью TCPDUMP и Wireshark, но как-то не сильно продвинулся. Хочу всеже убедится на 100% что роутер не пропускает запрос. Не подскажете наиболее простой способ прослушать порты (нодоело разбираться с мануалами)?

Еще попробовал обозначить компьютер с Apache как DMZ HOST, ничего не не изменилось, генерируется та же ошибка Apache. Это меня вообще убило.

С тех пор, как сайт работал нормально, изменилось следующее: поменял провайдера, IP стал динамическим (был статический), изменил прошивку (сейчас стоит 1.05beta, стояла прошивка полуторалетней давности), сменил операционную систему с OpenSuSE 11.1 на Ubuntu 9.10. Тестировал также на компе с OpenSuse 11.2 с отключенным Firewall. Логи Apache при попытке доступа через интернет всегда пустые. Тестирую через anonymouse.org(.ru).

Подскажите, пожалуйста, как заставить роутер передавать запрос на ноутбук??? Или посоветуйте, как можно послушать все входящие и исходящие HTTP запросы роутера???

dd-wrt.com в помощь, ЕМНИП твой роутер вполне себе поддерживается.
У тебя проблемы с dynamic dns - роутер не обновляет его.

pekmop1024 ★★★★★
()

прошивку обновляли? там фабричные ужасные и глючные, либо нужно брать последнюю с ftp://ftp.dlink.ru/ , или (с потерей гарантии) шить что-то альтернативное

Sylvia ★★★★★
()

А если вместо akt1.no-ip.org ввести актуальный на момент проверки IP, заходит?

Если нет то может пров режет а не рутер, и что в iptables на рутере прописано?

anonymous
()
Ответ на: комментарий от anonymous

актуальный IP ситуации не меняет, мой IP 2 месяца не менялся, да и тестирую я всегда через актуальный IP.

прошивку обновил сегодня (даже появилась непрятная опция ввода кода с картинки при авторизации), завтра попробую сторонюю прошивку. Посоветуйте источник хорошей прошивки, пожалуйста

iptables: не оченнь понимаю, что конкретно имеется в виду. Но на роутере включен DHCP сервер: настольному компу с OpenSuse дается адрес 192.168.0.100, ноутбуку с Ubuntu- 192.168.0.101 (IP выделяются с 100 по 199). У роутера адрес 192.168.0.1. Соответственно в правилах перенаправления портов указано перенаправить порт 80 на адрес 192.168.0.101.

особенно мне не нравится то, что не работает включение хоста DMZ как 192.168.0.101. Я был уверен, что это сработает. Завтра попробую подключится напрямую без роутера, может и правда провайдет что-то делает. Сегодня сходу на убунту напрямую не удалось сделать VPN соединение, что-то не то ввел

Как на счет мониторинга HTTP роутера, не подскажете какое нибудь конкретное решения? У TCPDUMP столько ключей, голова пухнет

/*--- спасибо, не ожидал такой активности, первый раз на этом форуме, на DLINKRU меня почти проигнорировали --*/

alexkarta
() автор топика
Ответ на: комментарий от alexkarta

Ну так подсказал уже прошивку - DD-WRT. Умеет и даже немного больше. Стабильна. Удобна.

pekmop1024 ★★★★★
()
Ответ на: комментарий от alexkarta

У меня dir-300 с прошивкой dd-wrt, работает стабильно.

И я сомневаюсь что в родной прошивке установлен Apache. Может ты все же не туда попадешь?

sdio ★★★★★
()
Ответ на: комментарий от sdio
$ sudo nmap -O -p 80-81 akt1.no-ip.org

Starting Nmap 5.00 ( http://nmap.org ) at 2010-01-16 09:48 IST
Interesting ports on 217.67.187.202:
PORT   STATE  SERVICE
80/tcp open   http
81/tcp closed hosts2-ns
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.15 - 2.6.24
Network Distance: 11 hops
sdio ★★★★★
()
Ответ на: комментарий от sdio

Порт форвардится нормально, апача в длинке, понятно, что нету.
Где-то у него сломан конфиг самого апача. :) Возможно, виртуалхосты не настроены или Directory, да мало ли там чего может быть... мы тут не шаманы...

pekmop1024 ★★★★★
()

А если попробовать родной длинковский ddns?

emaxx ★★
()

Непонятно - первая приведенная вами ошибка означает что вы подключились к своему Апачу! Почему он вам не дает доступ - разбирайтесь с конфигами Апача и правами html-файлов

sigurd ★★★★★
()
Ответ на: комментарий от sigurd

Большое спасибо за массу советов. Голова уже пухнет. Прошивку пока не менял, оставлю напоследок.

Apache вряд ли виноват, т.к. внутри сети сайт работает, права на каталоги и файлы установлены верно. Если бы проблема была в Apache, то при его отключении, я так думаю, вырубалось бы сообщение об ошибне от Apache. Я пробовал с работы зайти по своему IP, все равно вылазит это сообщение (дома все компы выключены, включен только роутер).

По поводу Apache, установленного в роутере. Вы довольно уверенно сказали, что там его быть не должно. Я в этом случае не понимаю, что генерирует WEB страницы при бращении на IP адрес роутера (причем это еще и на PHP все написано), все равно какой-то WEB сервер стоять должен.

Dlink DDNS не помог, думаю, это не удивительно.

Обратил внимание на следующее. Какие бы я порты не открывал через перенапрвление портов, сканер портов показывает, что они закрыты. Делал в перенапрвлении портов Внешний порт 8080, внутренний 80. Запустил FTP сервер, перенаправил порты, но FTP порты все равно закрыты. Отключил перенаправление портов, но 80-й порт все равно открыт (DMZ выключен). Отключаю все перенаправления, включаю DMZ - все также (порт 80 работает всегда, нужные порты не открыты). Мистика.

Свяжусь с провайдером, потом займусь прошивкой.

alexkarta
() автор топика
Ответ на: комментарий от alexkarta

Конфиг апача в студию.

Apache вряд ли виноват


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

все равно какой-то WEB сервер стоять должен.


Стоит, конечно, но не апач, т.к. его бинарники весят больше, чем есть места на флэшке в роутере, причем не в один раз больше. А ошибка генерируется именно апачем.

А вообще похоже на то, что либо DDNS не работает и ведет на какой-то левый сервак, либо кто-то тут тролль...

pekmop1024 ★★★★★
()
Ответ на: комментарий от pekmop1024

Извиняюсь, за задержку.
Я DDNS при проверке не пользуюсь, использую текущий IP - 217.67.187.202 (еще ни разу не менялся).
Выкладываю конфиги:

******************************************************************

sonylinux@sonylinux-laptop:~$ grep ^[^#] /etc/apache2/apache2.conf
ServerRoot «/etc/apache2»
LockFile /var/lock/apache2/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_event_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
AccessFileName .htaccess
<Files ~ «^\.ht»>
Order allow,deny
Deny from all
</Files>
DefaultType text/plain
HostnameLookups Off
ErrorLog /var/log/apache2/error.log
LogLevel warn
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
LogFormat «%v:%p %h %l %u %t \»%r\" %>s %O \«%{Referer}i\» \«%{User-Agent}i\»" vhost_combined
LogFormat «%h %l %u %t \»%r\" %>s %O \«%{Referer}i\» \«%{User-Agent}i\»" combined
LogFormat «%h %l %u %t \»%r\" %>s %O" common
LogFormat «%{Referer}i -> %U» referer
LogFormat «%{User-agent}i» agent
CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined
Include /etc/apache2/conf.d/
Include /etc/apache2/sites-enabled/

*****************************************************************

sonylinux@sonylinux-laptop:~$ grep ^[^#] /etc/apache2/ports.conf
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
</IfModule>

alexkarta
() автор топика
Ответ на: комментарий от alexkarta

sonylinux@sonylinux-laptop:~$ grep ^[^#] /etc/apache2/conf.d/apache2-doc
Alias /manual /usr/share/doc/apache2-doc/manual/
<Directory «/usr/share/doc/apache2-doc/manual/»>
Options Indexes FollowSymlinks
AllowOverride None
Order allow,deny
Allow from all
AddDefaultCharset off
</Directory>

*******************************************************************


sonylinux@sonylinux-laptop:~$ grep ^[^#] /etc/apache2/conf.d/localized-error-pages
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
<IfModule mod_alias.c>
Alias /error/ «/usr/share/apache2/error/»
<Directory «/usr/share/apache2/error»>
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en cs de es fr it nl sv pt-br ro
ForceLanguagePriority Prefer Fallback
</Directory>
ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
ErrorDocument 410 /error/HTTP_GONE.html.var
ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
</IfModule>
</IfModule>
</IfModule>


*******************************************************************

sonylinux@sonylinux-laptop:~$ grep ^[^#] /etc/apache2/conf.d/security
ServerTokens OS
ServerSignature On
TraceEnable Off

********************************************************************

sonylinux@sonylinux-laptop:~$ grep ^[^#] /etc/apache2/sites-available/default
<VirtualHost *:80>
   ServerAdmin webmaster@localhost
   DocumentRoot /var/www
   <Directory />
      Options FollowSymLinks
      AllowOverride None
   </Directory>
   <Directory /var/www/>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride None
      Order allow,deny
      allow from all
   </Directory>
   ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
   <Directory «/usr/lib/cgi-bin»>
      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
      Order allow,deny
      Allow from all
   </Directory>
   ErrorLog /var/log/apache2/error.log
   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn
   CustomLog /var/log/apache2/access.log combined
Alias /doc/ «/usr/share/doc/»
<Directory «/usr/share/doc/»>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>

alexkarta
() автор топика
Ответ на: комментарий от alexkarta

<VirtualHost *:80>
   ServerAdmin webmaster@localhost
   DocumentRoot /var/www
   <Directory />
      Options FollowSymLinks
      AllowOverride None
   </Directory>
   <Directory /var/www/>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride None
      Order allow,deny
      allow from all
   </Directory>
   ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
   <Directory «/usr/lib/cgi-bin»>
      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
      Order allow,deny
      Allow from all
   </Directory>
   ErrorLog /var/log/apache2/error.log
   
crit,
   LogLevel warn
   CustomLog /var/log/apache2/access.log combined
Alias /doc/ «/usr/share/doc/»
<Directory «/usr/share/doc/»>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>

****************************************************************


права доступа к папке и индексу:
var/www:
dr-xr-xr-x 2 sonylinux sonylinux 4096 2010-01-14 03:09 www

/var/www/index.html:
-rwxr-xr-x 1 sonylinux www-data 45 2010-01-14 23:59 index.html

alexkarta
() автор топика
Ответ на: комментарий от pekmop1024

Стал разбираться в установленном Apache, как-то все очень сложно. Слишком много конфигов и т.п. Скачал исходники и скомпилировал заново (понятное дело удалил предыдущий со всеми патрохами), все по инструкции http://httpd.apache.org/docs/2.2/install.html. Сейчас ситуация проще, остался один конфиг /home/sonylinux/apache2/conf/httpd.conf. Привожу его ниже:

#****************************************************************

ServerRoot «/home/sonylinux/apache2»
Listen 80
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
User daemon
Group daemon
</IfModule>
</IfModule>
ServerAdmin you@example.com
ServerName 217.67.187.202:80
DocumentRoot «/home/sonylinux/apache2/htdocs»
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory «/home/sonylinux/apache2/htdocs»>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<FilesMatch «^\.ht»>
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
ErrorLog «logs/error_log»
LogLevel warn
<IfModule log_config_module>
LogFormat «%h %l %u %t \»%r\" %>s %b \«%{Referer}i\» \«%{User-Agent}i\»" combined
LogFormat «%h %l %u %t \»%r\" %>s %b" common
<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat «%h %l %u %t \»%r\" %>s %b \«%{Referer}i\» \«%{User-Agent}i\» %I %O" combinedio
</IfModule>
CustomLog «logs/access_log» common
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ «/home/sonylinux/apache2/cgi-bin/»
</IfModule>
<IfModule cgid_module>
</IfModule>
<Directory «/home/sonylinux/apache2/cgi-bin»>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
DefaultType text/plain
<IfModule mime_module>
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

#*****************************************************************

Как на ваш взгляд, такой пойдет???
pekmop1024, отдельное спасибо тебе за терпеливость


alexkarta
() автор топика
Ответ на: комментарий от alexkarta

в ServerName прописывай не IP, а DynDNS-имя

Что-то вроде:

<Directory «/var/www/virtualhosts/akt1.no-ip.org»>
AllowOverride All
Options -Indexes -FollowSymLinks
Order allow,deny
Allow from all
</Directory>

<VirtualHost *:80>
DocumentRoot /var/www/virtualhosts/akt1.no-ip.org
ServerName akt1.no-ip.org
</VirtualHost>

Конкретное содержимое зависит уже от желаемого результата :)
Ну и да, если используется SELinux, не забудь поправить правила.

pekmop1024 ★★★★★
()
Ответ на: комментарий от pekmop1024

Похоже проблема решена, проблема не в Apache, наконец служба поддержки провайдера заработала, привожу цитату:
**********************************************************************

Добрый день! 217.67.187.202 это не Ваш ip а общий внешний IP для жильцов Вашего дома. Если хотите выделенный IP адрес, эта услуга стоит 150 рублей в месяц. Можете её заказать по телефону.

**********************************************************************

Я не предполагал, что такой вариант возможен, придется платить 150 р в месяц за IP. Подстава. Было 2 провайдера, такого чуда не ожидал, но каждый раз меня подставляли.Судя по всему я плачу за неполноценный выход в интернет, даже не могу открыть доступ к своему компьютеру. Интересно, это вообще законно? Можно как-то это ограничение обойти? У нас тут проблема с провайдерами, поэтому каждые пол года их приходится менять

- зато теперь я раз в 100 знаю больше, чем до открытия этой темы, всем спасибо, такого комичества ответов не ожидал

alexkarta
() автор топика
Ответ на: комментарий от alexkarta

Загадка вечно работающего Apache решена! Я до последнего вам не верил, был уверен, что все таки он стоит на роутере

alexkarta
() автор топика
Ответ на: комментарий от alexkarta

Если сетка полудомашняя, отнеси пива админам и попроси пробросить 2-3 порта левых из верхней зоны, прицепи на них веб, ssh и еще что-нить. Но в крайнем случае хватит и одного - для ssh.

pekmop1024 ★★★★★
()
Ответ на: комментарий от pekmop1024

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

alexkarta
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.