Я новичок в серверах и iptables. У меня есть веб-приложение (оказывается, bugzilla), работающее на моем сервере Centos 6.7 apache / httpd, и оно пытается подключиться к Интернету (updates.bugzilla.org) через порт 80. Оно также пытается подключиться (к smtp .gmail.com) через порт 465. Однако это невозможно. Это несмотря на наличие политики вывода по умолчанию ACCEPT и открытие соответствующих портов для ввода.
Я не уверен, что делать дальше. Где мне искать, чтобы начать устранение неполадок? Каковы вероятные виновники?
Некоторый вывод:
$ service iptables status
Таблица: фильтр
Цепочка INPUT (политика ACCEPT)
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 (policy DROP) num target prot opt source destination
Цепочка OUTPUT (policy ACCEPT) num target prot opt source destination
И:
iptables -L -v Цепочка INPUT (политика ACCEPT 881 пакетов, 106 Кбайт)
pkts bytes target prot opt in source назначение
0 0 ПРИНЯТЬ все - все где угодно и где угодно
436 183K ПРИНЯТЬ все - любое в любом месте в любом месте ГОСУДАРСТВО СВЯЗАННО, СОЗДАНО
0 0 ПРИНЯТЬ tcp - любой, где угодно, где угодно tcp dpt: ssh
1 60 ACCEPT 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 байтов) пакетов байтов target prot opt in out source destination
ЦЕПНЫЙ ВЫХОД (политика ПРИНЯТЬ 348 пакетов, 56741 байт)
pkts bytes target prot opt in source назначение
Я надеюсь, что это не специфическая для bugzilla или centos вещь, так как я успешно установил bugzilla на рабочий стол ubuntu, хотя это было при использовании ufw ubuntu (думаю, я также пробовал это с iptables, но мне нужно попробовать еще раз проверить).
Для тех, кто ищет в Интернете и видит это позже, оказывается, что это проблема SELinux! Требуется для включения логического "httpd_can_network_connect" (для других используйте "getsebool -a").
Попробуй это:
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
Может быть что-то еще блокирует порты? Межсетевой экран, роутер, провайдер?