LINUX.ORG.RU
решено ФорумAdmin

Доступ к серверу Apache из локальной сети

 , ,


0

2

Доброго времени суток, уважаемые форумчане. Собственно САБЖ: стоит CentOS 7, установлен и минимально настроен Apache и всё что к нему прилагается (пых, мускл и т.д.). С компа захожу через браузер на localhost, или же через статический IP-адрес (192.168.1.101), присваиваемый DHCP-сервером роутера - всё работает на сайт заходит.

Теперь начинается самое интересное. Пытаюсь расшарить его по локалке. Захожу в настройки роутера (TL-WR741N, ip:192.168.1.1) и делаю проброс портов. При входе на порт 80, он должен перебрасывать на 192.168.1.101:80 Всё сохранил, ушёл из панели роутера. Беру свой смарт, подключённый к сети по Wi-Fi, ввожу в браузер 192.168.1.101 - страница недоступна. Пытался в конфигах апача прописывать VirtualHost - эффекта ноль. Синтаксис верный. Listen устанавливаю как *:80 так и 192.168.1.101:80 - те же яйца, только в профиль. ServerName установлен как 192.168.1.101.

Итог моего словесного поноса: как настроить апач так, чтоб он был доступен в локальной сети? Может фаервол где? Не знаю, правда, где он в CentOS находится, если есть. Ткните, пожалуйста, носом, куда копать? Вопросы типа «чё ты дурью маешься?» прошу не задавать. Спасибо.

Буду заранее благодарен за любую помощь. С уважением, Юрий.


Пытаюсь расшарить его по локалке. Захожу в настройки роутера (TL-WR741N, ip:192.168.1.1) и делаю проброс портов.

Маловероятно, что это нужно делать, роутер и так должен объединять Ethernet и Wifi сети.

А так, скорее всего ваша проблема в:

intro

Может фаервол где?

А точнее в правилах iptables, по умолчанию в CentOS закрыто вообще всё, кроме 22 порта ssh.

Так что открывайте 80 и возможно 443 порт.

kostik87 ★★★★★ ()

На сервере с апачем:

iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
Зачем ты на роутере что-то пробрасывал не понял.

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

О, спасибо. За полную команду отдельное спасибо! Завтра проверю - уже комп отключил.

Проброс портов делал, так как после того как добьюсь запуска на локалке будуть расшаривать в интернет.

intro ()

Можно ли добыть графическое или текстово представление правил iptables? К примеру файлик конфигурацинный?

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

А зачем?

Делай iptables-restore «имя файла», iptables-save

# Generated by iptables-save v1.4.21 on Mon Aug 18 22:23:40 2014
*filter
:INPUT ACCEPT [5:952]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1192099:595387635]

# accept all from localhost
-A INPUT -s 127.0.0.1 -j ACCEPT

# accept all previously established connections
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# permit people to ssh into this computer
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

# permit ftp and web hosting services
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

# permit windows file sharing
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 137:139 -j ACCEPT
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 426 -j ACCEPT
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT

# permit five ports for bitorrent
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 6881:6886 -j ACCEPT

# reject all other packets coming into the computer, even from other computers in the local area network
-A INPUT -j REJECT --reject-with icmp-port-unreachable

COMMIT
# Completed on Mon Aug 18 22:23:40 2014

PS: на локальной машине проверь открытые порты, nmap -sS 192.168.1.101

soomrack ★★★ ()
Последнее исправление: soomrack (всего исправлений: 1)
Ответ на: комментарий от intro

Напиши скрипт в котором пропиши все нужные тебе правила посредством вызова «iptables правило».

Ну или сохрани текущие правила:

iptables-save > файл
и правь там, но пока ты не знаешь iptables лучше сразу туда не лезь. Почитай так же документацию по настройке Iptables в CentOS и сохранению правил в частности, а то без сохранения все введённые тобой команды по изменению правил после перезагрузки придётся вводить заново.

kostik87 ★★★★★ ()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от soomrack

Понял, спасибо. Завтра гляну по всем советам и отпишу.

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

Делай iptables-restore «имя файла», iptables-save

Тащемта у него центось, например. А там это /etc/sysconfig/iptables . А действия делаются скриптом /etc/init.d/iptables , что человека плохому учишь.

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

Тащемта у него центось, например.

Тащемта у него не просто центось, например, а центос 7. А это firewalld по-умолчанию…

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

Опаньки, они же туда уже системд впилили... Тогда надо направить, где там теперь всё лежит. Хотя думаю от /etc/sysconfig/ они вряд ли отказались

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

Конфиги iptables были найдены по адресу /etc/sysconfig/.

Файл iptables содержит такую информацию:

# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

По адресу /etc/init.d/iptables нет такого файла. А точнее нет пути /etc/init.d/ при открытии он перекидывает меня в /etc/rc.d/init.d, ну а там файла iptables нет. Что делать-то? Какую команду выполнять? Или можно вручную добавить строчку -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT и сохранить в /etc/sysconfig/iptables?

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

Вручную добавить строчку в конфиг можно. Но как это применить нужно смотреть документацию по systemd и firewalld, которые в 7 центос уже появились, как верно подсказали выше. Самый простой способ — перезагрузить, но лучше конечно найти какой командой переинициализируются правила iptables.

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

команда iptables --line-numbers -n -L прекрасно сработала и выдала мне кучу всяких записей. По идее те команды что дали мне выше (iptables-restore и iptables-save) должны сработать? Также я вычитал, что можно перезапустить фаервол с помощью service iptables restart. Видимо, можно изменить конфигурационный файл, ребутнуть фаервол и всё?

intro ()

Упс. Всем спасибо. Терминал понадобился только для того, чтоб запустить firewall-config. Немного полазил в графическом представлении конфигов, потратил 5 минут на то, чтоб понять как оно работает, и открыл порты нужные. Всё чудесно. :) Ещё раз всем огромное спасибо. :)

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

Всё правильно.

Непосредственно фаервол это пакетный фильтр в ядре. Он работает всегда, просто у него есть или нет правила.

Для того, что бы дать ядру правила фильтрации пакетов, существует утилита iptables. Она уже является фронтендом.

А для того, что бы инициализировать набор правил при старте системы, существует обвязка в виде инит скрипта. Вернее существовала, потому что теперь там системд.

Сам набор правил при этом хранится на ФС в виде файла. Но последний необязателен, например тебе могут быть не нужны постоянные правила но динамически изменяющиеся, в таком случае конфиг с правилами теряет смысл.

Ну и для всего этого может существовать ещё и гуи, который ты и нашёл.

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

Огромное спасибо за объяснения. Помогло, всё работает. Правда на этом моё изучение CentOS не заканчивается. Другая проблема возникла с установкой пакетов. Но это отдельная тема, которую я, кстати, уже создал. Так что если будет время и желание, то буду рад выслушать и по ней ваше мнение. :)

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