Configuração do Centos iptables para Wordpress e Gmail smtp

1

Deixe-me começar dizendo que sou um novato do Centos, então todas as informações, links e sugestões são muito bem-vindos!

Recentemente, configurei um servidor hospedado com o Centos 6 e configurei-o como um servidor da web. Os sites que funcionam nele não são nada especiais, apenas alguns projetos de baixo tráfego. Eu tentei configurar o servidor como padrão quanto possível, mas eu gosto que ele seja seguro também (sem ftp, porta ssh personalizada).

Conseguir que o meu Wordpress seja executado como desejado, estou correndo em alguns problemas de conexão. 2 coisas não estão funcionando:

  • instalando plugins e atualizações por meio do ssh2 (falha ao conectar-se localhost: sshportnumber)
  • enviando e-mails do meu site usando o Gmail smtp (Falha ao conectar ao servidor: Permissão negada (13))

Eu tenho a sensação de que ambos são relacionados à configuração do iptables, porque eu tentei de tudo (eu acho). Eu tentei abrir o firewall para aceitar o tráfego para as portas 465 (gmail smtp) e porta ssh (digamos que essa porta é 8000), mas ambos os problemas permanecem. As conexões Ssh do terminal estão funcionando bem. Depois de cada alteração que tentei implementar, reiniciei o serviço iptables.

Esta é a minha configuração do iptables (usando o 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

Existe algum problema (óbvio) na configuração do iptables considerando os problemas mencionados acima? Dizer que o firewall está fazendo exatamente nada nesse estado também é uma resposta ...

E, novamente, se você tiver outras sugestões para eu aumentar a segurança (considerando as coisas básicas que eu faço com essa caixa), eu adoraria ouvi-la, e também as mais óbvias!

Obrigado!

    
por Fabrizio 01.06.2014 / 12:47

2 respostas

1

Percebi que sua política padrão para a cadeia OUTPUT é ACCEPT. Como tal, na ausência de qualquer regra DROP ou REJECT na parte inferior da cadeia OUTPUT, seus wordpress iptables regras permitem que todo o tráfego saia em qualquer porta.

Então, para esclarecer ... na sua configuração acima, o tráfego all é permitido através da cadeia OUTPUT.

Verifique se há negações do selinux AVC em /var/log/audit/audit.log, pois a permissão negada pode indicar que o httpd não pode se conectar à porta da rede SMTP para enviar e-mails.

Em qualquer caso, você deve também verificar / var / log / maillog para ver se você está sendo negado permissão lá, e claro, assegurar que o postfix / sendmail esteja realmente rodando e disponível localmente.

No caso de você não poder instalar plugins, etc. Isso certamente será um wordpress file permissions , que você pode ver no link abaixo.

Espero que isso ajude, enquanto eu aprecio que sua pergunta é um pouco antiga, ela se registra muito no google para o assunto, então talvez isso possa ajudar outra pessoa.

    
por 20.09.2015 / 18:11
0

pessoalmente eu tenho um shell script na minha pasta raiz que eu posso rodar para adicionar minhas regras iptables, eu apenas atualizo como e quando eu preciso de novas regras adicionando então rodando o script, eu também tenho um para abrir todas as portas para ver se há um problema de firewall me causando problemas (este é o meu servidor pessoal com nada crítico para o negócio, eu não recomendo que você abra todas as suas portas por qualquer período de tempo se houver algo que valha a pena roubar).

Mas se você puder testar, eu recomendo que você salve isso localmente na máquina (pasta raiz é um bom lugar IMO como root deve ser o único que pode ver os arquivos e, em seguida, definir suas permissões para 700 700 filename.sh - eu chamo o meu firewall.sh e 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

Em seguida, crie um arquivo semelhante para bloquear seu servidor (descartar todas as regras no início do script para garantir que não haja resultados inesperados - observe que aceito todas as conexões de saída do meu servidor):

#!/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

Qualquer regra semelhante que você queira configurar, você pode adicionar neste arquivo, eu costumo comentar tudo para garantir que eu não tenha um peido no cérebro quando eu retornar a ele mais tarde.

Quando tiver os dois scripts, você poderá ligar e desligar o firewall de maneira fácil e rápida e, em seguida, testar se o problema continua depois que você desabilitou o firewall. Você pode então ligá-lo novamente depois.

Uma coisa muito importante a considerar no CentOS é o Security Enhanced (SE) Linux, é uma ferramenta poderosa quando usada corretamente, mas pode prejudicá-lo ao configurar um sistema pela primeira vez, se desabilitar o seu firewall não corrija o problema Eu tentaria desabilitar o selinux também para testar (se isso resolver seu problema, você pode deixar o SE Linux desativado, o que seria menos seguro, ou você pode procurar construir sua própria política de SE linux com audit2allow)

Para desativar o SE Linux:

setenforce 0

Provavelmente, você precisará reiniciar o serviço de hospedagem da Web ao mesmo tempo (supondo que esteja usando o httpd / apache):

service httpd restart

Em seguida, você pode testar novamente e simplesmente ativar:

setenforce 1

Espero que isso ajude:)

    
por 03.06.2014 / 18:44