Я новичок в серверах и iptables. У меня есть веб-приложение (кажется, bugzilla), работающее на моем сервере Centos 6.7 apache/httpd, и оно пытается подключиться к вебу (updates.bugzilla.org) через порт 80. Оно также пытается подключиться (к smtp.gmail.com) через порт 465. Однако не может. И это несмотря на то, что у него есть политика вывода по умолчанию ACCEPT и он открыл соответствующие порты для ввода.
Я не уверен, куда идти дальше. Куда мне обратиться, чтобы начать устранение неполадок? Каковы вероятные виновники?
Некоторые выводы:
$ статус службы iptables
Таблица: фильтр
Цепочка ВХОД (политика ПРИНЯТЬ)
num target prot opt источник назначение
1 ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
2 ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0 состояние СВЯЗАННОЕ, УСТАНОВЛЕНО
3 ПРИНЯТЬ tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
4 ПРИНЯТЬ tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
5 ПРИНЯТЬ tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
6 ПРИНЯТЬ tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
7 ПРИНЯТЬ tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
Цепь FORWARD (политика DROP) число цель защита опция источник назначение
Цепочка ВЫХОД (политика ПРИНЯТЬ) число цель защита опция источник назначение
И:
iptables -L -v Chain INPUT (политика ACCEPT 881 пакет, 106 Кбайт)
pkts байт цель prot opt in out источник назначение
0 0 ПРИНЯТЬ все -- lo любой где угодно где угодно
436 183K ПРИНЯТЬ все -- любой любой где угодно где угодно состояние СВЯЗАННЫЙ, УСТАНОВЛЕННЫЙ
0 0 ПРИНЯТЬ tcp -- любой любой где угодно где угодно tcp dpt:ssh
1 60 ПРИНЯТЬ tcp -- любой любой где угодно где угодно tcp dpt:http
0 0 ПРИНЯТЬ tcp -- любой любой где угодно где угодно tcp dpt:https
0 0 ПРИНЯТЬ tcp -- любой любой где угодно где угодно tcp dpt:smtp
0 0 ПРИНЯТЬ tcp -- любой любой где угодно где угодно tcp dpt:submission
Цепь FORWARD (политика DROP 0 пакетов, 0 байт) pkts байт цель prot opt in out источник назначение
Цепочка ВЫХОД (политика ПРИНИМАЕТ 348 пакетов, 56741 байт)
pkts байт цель prot opt in out источник назначение
Надеюсь, что это не проблема bugzilla или centos, так как мне удалось успешно установить bugzilla на настольном компьютере Ubuntu, хотя это было при использовании UFW Ubuntu (кажется, я также пробовал это с iptables, но мне нужно будет попробовать еще раз, чтобы проверить).
ОБНОВЛЯТЬ:
Для тех, кто ищет в Интернете и видит это позже, оказывается, что это была проблема SELinux! Нужно было включить булеву переменную 'httpd_can_network_connect' (для других используйте 'getsebool -a').
решение1
Попробуй это:
service iptables save
service iptables stop
chkconfig iptables off
Бум, нет брандмауэра. Тест еще раз.
Попробуйте использовать telnet для проверки этого порта:
telnet updates.bugzilla.org 80
Подключившись через telnet, введите «get» и посмотрите, будет ли ответ.
Example:
# telnet updates.bugzilla.org 80
Trying 63.245.223.29...
Connected to updates.bugzilla.org.
Escape character is '^]'
get
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.0.15</center>
</body>
</html>
Connection closed by foreign host.
Не сработало?
Попробуйте tcptraceroute, чтобы увидеть, где он блокируется:
tcptraceroute updates.bugzilla.org 80
Может ли быть что-то еще, блокирующее порты? Брандмауэр, маршрутизатор, интернет-провайдер?