Назад | Перейти на главную страницу

Конфигурация Centos iptables для Wordpress и Gmail smtp

Позвольте мне начать с того, что я новичок в Centos, поэтому вся информация, ссылки и предложения приветствуются!

Недавно я установил размещенный сервер с Centos 6 и настроил его как веб-сервер. Веб-сайты, работающие на нем, не представляют собой ничего особенного, просто некоторые проекты с низким трафиком. Я попытался настроить сервер по умолчанию, насколько это возможно, но мне также нравится, чтобы он был безопасным (нет ftp, настраиваемый порт ssh).

Когда мой Wordpress работает должным образом, у меня возникают проблемы с подключением. 2 вещи не работают:

У меня такое ощущение, что оба они связаны с конфигурацией iptables, потому что я пробовал все остальное (я думаю). Я попытался открыть брандмауэр для приема трафика для портов 465 (gmail smtp) и порта ssh (допустим, это порт 8000), но обе проблемы остались. Однако ssh-соединения с терминала работают нормально. После каждого изменения, которое я пытался реализовать, я перезапускал службу iptables.

Это моя конфигурация iptables (с использованием vim):

# Generated by iptables-save v1.4.7 on Sun Jun  1 13:20:20 2014
*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 tcp --dport 8000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 8000 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 465 -j ACCEPT
COMMIT
# Completed on Sun Jun  1 13:20:20 2014

Есть ли какие-либо (очевидные) проблемы с моей настройкой iptables, учитывая вышеупомянутые проблемы? Сказать, что брандмауэр в этом состоянии ровно ничего не делает, тоже ответ ...

И снова, если у вас есть какие-либо другие предложения для меня по повышению безопасности (с учетом основных вещей, которые я делаю с этим ящиком), я хотел бы услышать их, в том числе очевидные!

Спасибо!

Я заметил, что ваша политика по умолчанию для цепочки OUTPUT - ACCEPT. Таким образом, в отсутствие каких-либо правил DROP или REJECT в нижней части цепочки OUTPUT, ваш Wordpress iptables правила разрешают весь трафик выходить на любой порт.

Итак, чтобы уточнить ... в вашей конфигурации выше, все трафик разрешен через цепочку OUTPUT.

Проверьте наличие отказов selinux AVC в /var/log/audit/audit.log, поскольку отказ в разрешении может указывать на то, что httpd не может подключиться к сетевому порту SMTP для отправки электронной почты.

В любом случае вы также должны проверить / var / log / maillog, чтобы узнать, не было ли вам отказано в разрешении, и, конечно же, убедиться, что postfix / sendmail действительно запущены и доступны локально.

В случае, если вы не можете устанавливать плагины и т. Д., Это почти наверняка будет права доступа к файлу wordpress вопрос, с которым вы можете ознакомиться по ссылке ниже.

Надеюсь, это поможет, хотя я понимаю, что ваш вопрос несколько устарел, он действительно регистрируется в Google по этому вопросу, поэтому, возможно, это может помочь кому-то другому.

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

Но если вы можете протестировать, я бы порекомендовал вам сохранить это локально на машине (корневая папка - хорошее место IMO, поскольку root должен быть единственным, кто может видеть файлы, а затем установить для него разрешения 700 (chmod 700 filename. sh - я называю свои firewall.sh и firewallopen.sh)):

#!/bin/bash
#
# iptables config script
#
# Flush all current rules from iptables
#
 iptables -F
#
 iptables -P INPUT ACCEPT
 iptables -P FORWARD ACCEPT
 iptables -P OUTPUT ACCEPT
#
# Set access for localhost
#
 iptables -A INPUT -i lo -j ACCEPT
#
# Accept packets belonging to established and related connections
#
 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# Save settings
#
 /sbin/service iptables save
#
# List rules
#
 iptables -L -v

Затем создайте аналогичный файл, чтобы заблокировать ваш сервер (я отбрасываю все правила в начале скрипта, чтобы не было неожиданных результатов - обратите внимание, я принимаю все исходящие соединения с моего сервера):

#!/bin/bash
#
# iptables config script
#
# Flush all current rules from iptables
#
echo "Clearing old rules"
 iptables -F
#
echo "Adding new rules"
# Example rules
# Allow SSH connections on tcp port 22
 iptables -A INPUT -p tcp --dport 22 -j ACCEPT -m comment --comment "SSH"

# Set default policies for INPUT, FORWARD and OUTPUT chains
#
 iptables -P INPUT DROP
 iptables -P FORWARD DROP
 iptables -P OUTPUT ACCEPT
#
# Set access for localhost
#
 iptables -A INPUT -i lo -j ACCEPT
#
# Accept packets belonging to established and related connections
#
 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# Save settings
#
 /sbin/service iptables save
#
# List rules
#
 iptables -L -v

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

Когда у вас есть оба сценария, вы можете легко и быстро включить и выключить брандмауэр, а затем проверить, сохраняется ли проблема после того, как вы отключили брандмауэр. После этого вы можете легко снова включить его.

Одна очень важная вещь, которую следует учитывать в CentOS, - это Security Enhanced (SE) Linux, это мощный инструмент при правильном использовании, но он может нанести вред вам при настройке системы в первый раз, если отключение вашего брандмауэра не решит проблему. Я бы попытался отключить selinux также для тестирования (если это решит вашу проблему, вы можете либо оставить SE Linux отключенным, что будет менее безопасно, либо вы можете подумать о создании своей собственной политики SE linux с помощью audit2allow)

Чтобы отключить SE Linux:

setenforce 0

Вам, вероятно, потребуется одновременно перезапустить службу веб-хостинга (при условии, что вы используете httpd / apache):

service httpd restart

Затем вы можете повторить тест, чтобы снова включить его, просто:

setenforce 1

Надеюсь, это поможет :)