Недоступен "вэб" с некоторых комп.

Автор Alchazar, 14 августа 2014, 13:17:31

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Alchazar

Добрый день,

столкнулся с такой проблемой:
Нету доступа к "вэбу" на моём сервере со всех компьютеров из подсетей отличной от моей, да и с моей подсети не всем грузится.

Есть "вэб" сервер сети. На нём крутится Apache, PHP, MySQL, ProFtpd, Snort, Fail2Ban и настроены IPtables. Есть 4 подсети (х.х.40.0/24, х.х.41.0/24, х.х.42.0/24, х.х.43.0/24) которые должны иметь доступ только к интернет страничке, которая крутится через 443 порт, и одна подсеть с которой сервер администрируется - х.х.32.0/24.
В IPtables вроде всё настроено правильно, Snort работает как IDS, он не должен ничего блокировать, в логах Fail2Ban никаких записей о блокировке нету. В логах Apache, да и в других не нахожу никаких упоминаний о том, что кто-то подключался, или был блокирован. Вчера установил IPtraf но то, что я там вижу ничем мне не помогло (картинка в приложении).
Пинг проходит со всех компьтеров, я пробовал удалять все правила IPtables, пробовал останавливать Snort, пробовал запустить страничку на 80 порте (без SSL) - вроде заработало, но после пару обновлений старнички орять перестало работать. Ничего не помогло. Создаётся впечатление, что я пропускаю какую-то мелочь...

Уже две недели ломаю голову, и ничего не выходит. Нужна помощь со стороны.

IPtables
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
REJECT     all  --  anywhere             loopback/8           reject-with icmp-port-unreachable
DROP       all  --  anywhere             anywhere             state INVALID
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level crit prefix "!!! Iptables Denied: "
ACCEPT     tcp  --  10.10.32.0/24       anywhere             tcp dpt:2122
ACCEPT     tcp  --  10.10.32.0/24       anywhere             tcp dpt:iprop
ACCEPT     tcp  --  10.10.43.0/24       anywhere             tcp dpt:https
ACCEPT     tcp  --  10.10.40.0/24       anywhere             tcp dpt:https
ACCEPT     tcp  --  10.10.41.0/24       anywhere             tcp dpt:https
ACCEPT     tcp  --  10.10.42.0/24       anywhere             tcp dpt:https
ACCEPT     tcp  --  10.10.32.0/24       anywhere             tcp dpt:https
ACCEPT     tcp  --  10.10.32.0/24       anywhere             tcp dpt:smtp
ACCEPT     tcp  --  10.10.32.0/24       anywhere             tcp dpt:imap2
ACCEPT     tcp  --  10.10.32.0/24       anywhere             tcp dpt:pop3
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
DROP       all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere




[вложение удалено администратором]

endru

если в сети используете частные IP адреса - нет нужды их скрывать  ;)
для начала покажите настройки apache для этого сайта, и посмотрите в логах ошибки:
grep -i error /var/log/apache2/error.log
показывайте вывод команды:
route
сделайте трассировку из другой сети до проблемного сервера, и тоже выкладывайте результат сюда:
traceroute apache_ip

Alchazar

Цитата: endru от 14 августа 2014, 13:35:30
если в сети используете частные IP адреса - нет нужды их скрывать 
Привычка... или паранойя.... :)

В процессе копирования сюда логов и конфига, мне попалась на глаза строчка с настройками SSL и TLS. У меня был разрешён только TLS 1.1 и TLS 1.2. Разрешив TLS 1 всё заработало. Немного погуглив оказалось, что Internet Explorer до 8 версии поддерживает только TLS 1 и SSL 3.
Добавил SSL 3 в настройки Apache и проблема решилась.

Не там искал где надо как оказалось.
Спасибо за помощь :)


Alchazar

Похоже поторопился я с выводами. Ещё проверяю, но складывается впечатление, что с моей подсети доступ к страничке есть, а с других нету. Сразу после изменения конфигурации всё заработало, но только на 5-10 минут.

Apache настройки:

<IfModule mod_ssl.c>
<VirtualHost 10.190.32.30:443>
ServerName intranet.dr.lt:443
ServerAdmin it@dr.lt
ServerAlias https://intranet.dr.lt
DocumentRoot /home/web/drupal

<Directory /home/web/drupal>
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/intran_ssl_error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/intran_ssl_access.log combined

SSLEngine on

SSLProtocol TLSv1.1 TLSv1.2 TLSv1 SSLv3

SSLCertificateFile    /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>

BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>
</IfModule>


В логе ошибок Apache IP адреса другой подсети не присутствуют


route:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         isa-lt.dr.l 0.0.0.0         UG    0      0        0 eth0
10.190.32.0     *               255.255.255.0   U     0      0        0 eth0


tracert до сервера:

Tracing route to https://intranet.dr.lt [10.190.32.30]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  10.190.40.1
  2    25 ms    26 ms    26 ms  172.19.11.57
  3    25 ms    25 ms    26 ms  172.18.102.59
  4    26 ms    25 ms    26 ms  https://intranet.dr.lt [10.190.32.30]

Trace complete.

endru

#4
Цитата: Alchazar от 14 августа 2014, 16:04:042    25 ms    26 ms    26 ms  172.19.11.57
  3    25 ms    25 ms    26 ms  172.18.102.59
может проблема в этих двух роутерах? хотя если пинги проходят, это конечно очень странно...

покажите файлы
cat /etc/hosts
cat /etc/apache2/ports.conf

а пока на время замените <VirtualHost 10.190.32.30:443> на <VirtualHost *:443>

sandaksatru

Цитата: Alchazar от 14 августа 2014, 16:04:04
  1    <1 ms    <1 ms    <1 ms  10.190.40.1
  2    25 ms    26 ms    26 ms  172.19.11.57
  3    25 ms    25 ms    26 ms  172.18.102.59
Смотрите правила iptables на всех шлюзах. Форвардинг везде разрешён?
И меня смутило, если у вас
ЦитироватьChain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
То зачем правила для отдельных портов? Смотрите также правила для других таблиц, а не только filter, т.к. если у вас в таблице nat настроен прероутинг, то пакет до цепочки INPUT не дойдёт.

Alchazar

Цитата: endru от 15 августа 2014, 06:32:27может проблема в этих двух роутерах?
Эти роутеры не должны ничего блокировать, наружу выход тоже черех них, и там всё работает (HTTPS доступен)


Цитата: endru от 15 августа 2014, 06:32:27а пока на время замените <VirtualHost 10.190.32.30:443> на <VirtualHost *:443>
Заменил, доступ не появился.

/etc/hosts

127.0.0.1       localhost
127.0.1.1       web.web.DR.lt       web

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters


/etc/apache2/ports.conf

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz

#NameVirtualHost *:443
Listen 80

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>





endru

Alchazar, apache перезапускали после этого?


Alchazar

Apache перезагружаю после каждого изменения.

Изменил ServerAlias на intranet.dr.lt, ServerName на web.web.DR.lt:443
Вроде правильно, или я тут что-то не понимаю....

Я подозреваю, что дело может быть не в Апаче, а в самих компьютерах или в домене. Два компьютера, с IP 10.190.40.5 и 10.190.40.37 доступ имеют. А например 10.190.40.146 уже нет. Разница между ними только в том, что последний в домене, а первые оба нет. Хотя компьютеры с подсети 10.190.32.0/24 все в домене и все имеют доступ.

Есть какой нибуть способ проследить где всё обрывается? В IPTRAF я вижу что все компьютеры до сервера добираются. Но ни в каких в логах они не появляются.

endru

тогда проверяй работу DNS на проблемных машинах
nslookup intranet.dr.lt
попробуй еще в файл hosts добавить intranet.dr.lt (потребуется перезагрузка сервера, или /etc/init.d/networking restart, последнее не рекомендуется при подключении по ssh)
127.0.1.1       web.web.DR.lt       web intranet.dr.lt

Alchazar

nslookup работает, IP адресс находит.

В hosts файл добавил запись, но ничего не изменилось.

endru

у меня больше нет идей.
кроме варианта sandaksatru,
Цитата: sandaksatru от 17 августа 2014, 20:25:49Смотрите правила iptables на всех шлюзах. Форвардинг везде разрешён?

Alchazar

Шлюзы к сожалению не мои. Я не имею доступа к ним.

А как нащёт iptables конфигурации на моём сервере?
Я вчера в iptables добавил строчку
-A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
И закоментировал
# -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
но сервер всё равно пингуется.

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