Diario

Análisis de errores en envío de correo Postfix en Linux

1 Mins read

Repetir incesantemente

# Corregir configuración
vi /etc/postfix/main.cf


# Reiniciar proceso
systemctl restart postfix

# Enviar correo de prueba a root
echo testtaro | mail root

# Enviar correo de prueba a dirección externa
echo "テストメール" | mail -s "test mail from hoge.jp server." <dirección de destino>

# Analizar registros
systemctl status postfix -l
Read more
Diario

AWS EC2 Amazon Linux 2 AMI 2.0 instancia PHP.ini Configuración inicial Japonés Mail etc. para WordPress

1 Mins read

Amazon Linux 2 AMI 2.0.20181008 x86_64 HVM gp2
Apache 2.4.39
PHP 7.3.6

Si solo necesitas enviar correos, esta configuración debería ser suficiente. Como no se contempla retransmisión ni recepción de correos, no es necesario abrir puertos 25 y 587 en los grupos de seguridad de AWS.

Si planeas enviar/recibir grandes volúmenes de correos desde dentro de VPC de AWS, tendrás que solicitar a AWS la eliminación de restricciones de envío de correos, lo que requiere bastante esfuerzo. Con la información actual, no hay límites mientras se mantenga por debajo de 200 correos en 24 horas o 1 correo por segundo, así que para usos como correos administrativos no debería haber problema.

Verificar mtx

# Comando para verificar mtx instalado
alternatives --display mta

mta - estado es automático.
El enlace apunta actualmente a /usr/sbin/sendmail.postfix

Probablemente tengas sendmail.postfix instalado, pero si no es el caso, instálalo con yum u otra herramienta.

PHP.ini

; Puerto configurado a 587
smtp_port=587

; Configuración de ruta y comando de mtx
sendmail_path = /usr/sbin/sendmail.postfix -t -i

; Código de caracteres estándar
default_charset = UTF-8

; Valores por defecto de mbstring
mbstring.language = Japanese
; No convertir automáticamente la codificación de entrada HTTP a la codificación de caracteres interna

mbstring.encoding_translation = Off

; Orden de prioridad para detección automática de código de caracteres
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII

; Configurar zona horaria a hora estándar de Japón
date.timezone = Asia/Tokyo

; Mejorar seguridad, ocultar información de versión de PHP
expose_php = Off
Read more
Diario

Obtener IP del cliente del balanceador de carga AWS ELB y registrarlo en registros

1 Mins read

AWS
ELB
EC2
Apache 2.4.39

Cuando se utiliza un balanceador de carga, los registros del servidor web como Apache solo muestran la IP del ELB, y no aparece la dirección IP del cliente original.

En el caso de AWS ELB, la IP del cliente se encuentra en el encabezado «X-Forwarded-For», por lo que es necesario configurar el servidor web para registrar este valor.

Ejemplo de adición a Apache conf

LogFormat &quot;%{X-Forwarded-For}i %h %l %u %t \&quot;%r\&quot; %&gt;s %b \&quot;%{Referer}i\&quot; \&quot;%{User-Agent}i\&quot;&quot; combined
LogFormat &quot;%h %l %u %t \&quot;%r\&quot; %&gt;s %b&quot; common
Read more
Diario

AWS ELB WordPress SSL https Configuración con Load Balancer

3 Mins read

AWS
ELB (Load Balancer)
SSL
Apache 2.4.39
Wordpress 5.1

■Entorno de comunicación
PC Cliente

(port:443)

ELB[Configuración de certificado SSL][Regla ELB redirige acceso externo 80 a 443]

(port:80)

EC2(Solo necesita configuración port 80 dentro de EC2)

■Problema
・Acceso desde navegador a https principal (443)
・Dentro de EC2 está configurado como entorno 80, así que WordPress genera URLs en header (css, etc) como http (80)
・Cuando el navegador encuentra http (80) diferente de la URL principal en header, lo detiene como error de seguridad
・El html no se muestra correctamente en el navegador

■Patrón solo con rewrite en .htaccess

# BEGIN K.Miyakoshi

# AWS ELBからのアクセスをHTTPSへ変更する
SetEnvIf X-Forwarded-Proto ^https$ HTTPS=on

# httpアクセスをhttpsへリダイレクトする
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

# END K.Miyakoshi

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

■Patrón con configuración completa en vhost.conf como «conf.d»

#============================================
# ELB Registro común K.Miyakoshi
#============================================
# AWS ELB compatible [%{X-Forwarded-For}i] añadido para obtener IP del cliente
LogFormat &quot;%{X-Forwarded-For}i:%{X-Forwarded-Port}i %h %l %u %t \&quot;%r\&quot; %&gt;s %b \&quot;%{Referer}i\&quot; \&quot;%{User-Agent}i\&quot;&quot; elb-accesslog
ErrorLogFormat &quot;[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %{X-Forwarded-For}i:%{X-Forwarded-Port}i %a] %M% ,\ referer\ %{Referer}i&quot;

# AWS ELB compatible Excluir acceso de health check del registro normal
SetEnvIf User-Agent &quot;ELB-HealthChecker.*&quot; nolog
# AWS ELB compatible Configuración para generar acceso de health check en archivo de registro separado
SetEnvIf User-Agent &quot;ELB-HealthChecker.*&quot; elb-log
# Excluir img, js, etc del registro
SetEnvIf Request_URI &quot;\.(gif|jpg|png|ico|jpeg|js|css)$&quot; nolog

# Configuración de registro normal
CustomLog logs/access_log elb-accesslog env=!nolog
ErrorLog logs/error_log

#============================================
# ELB WordPress Solución redireccionamiento https(443)→http(80)
#============================================
# Si AWS ELB está recibiendo en https, habilitar HTTPS
SetEnvIf X-Forwarded-Proto ^https$ HTTPS=on

# Redireccionamiento de acceso http a https
&lt;IfModule mod_rewrite.c&gt;
	RewriteEngine On
	RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
	RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
&lt;/IfModule&gt;

#============================================
# default
# Se utiliza para health check de ELB (Alias también es válido)
#============================================
&lt;VirtualHost _default_:80&gt;
	ServerName _default_:80
	ServerAdmin admin@hoge.com

	DocumentRoot &quot;/opt/lampp/htdocs&quot;
	&lt;Directory &quot;/opt/lampp/htdocs&quot;&gt;
		AllowOverride All
		Options FollowSymLinks
		Require all granted

		Options +IncludesNoExec
		AddOutputFilter INCLUDES html
	&lt;/Directory&gt;

	CustomLog &quot;| /opt/lampp/bin/rotatelogs /opt/lampp/logs/htdocs/access_%Y%m%d.log 86400 540&quot; elb-accesslog env=!nolog
	CustomLog &quot;| /opt/lampp/bin/rotatelogs /opt/lampp/logs/htdocs/elb_%Y%m%d.log 86400 540&quot; elb-accesslog env=elb-log
	ErrorLog &quot;| /opt/lampp/bin/rotatelogs /opt/lampp/logs/htdocs/error_%Y%m%d.log 86400 540&quot;

&lt;/VirtualHost&gt;

#============================================
# taro.hoge.com
#============================================
&lt;VirtualHost *:80&gt;
	ServerName taro.hoge.com
	ServerAdmin admin@hoge.com

	DocumentRoot &quot;/opt/lampp/taro&quot;
	&lt;Directory &quot;/opt/lampp/taro&quot;&gt;
		AllowOverride All
		Options FollowSymLinks
		Require all granted
	&lt;/Directory&gt;

	CustomLog &quot;| /opt/lampp/bin/rotatelogs /opt/lampp/logs/taro/access_%Y%m%d.log 86400 540&quot; elb-accesslog env=!nolog
	# Si está configurado en AWS ELB vinculado al DNS [taro.hoge.com] se genera el registro
	CustomLog &quot;| /opt/lampp/bin/rotatelogs /opt/lampp/logs/taro/elb_%Y%m%d.log 86400 540&quot; elb-accesslog env=elb-log
	ErrorLog &quot;| /opt/lampp/bin/rotatelogs /opt/lampp/logs/taro/error_%Y%m%d.log 86400 540&quot;

&lt;/VirtualHost&gt;

#============================================
# jiro.hoge.com
#============================================
&lt;VirtualHost *:80&gt;
	ServerName jiro.hoge.com
	ServerAdmin admin@hoge.com

	DocumentRoot &quot;/opt/lampp/jiro&quot;
	&lt;Directory &quot;/opt/lampp/jiro&quot;&gt;
		AllowOverride All
		Options FollowSymLinks
		Require all granted
	&lt;/Directory&gt;

	CustomLog &quot;| /opt/lampp/bin/rotatelogs /opt/lampp/logs/jiro/access_%Y%m%d.log 86400 540&quot; elb-accesslog env=!nolog
	# Si está configurado en AWS ELB vinculado al DNS [jiro.hoge.com] se genera el registro
	CustomLog &quot;| /opt/lampp/bin/rotatelogs /opt/lampp/logs/jiro/elb_%Y%m%d.log 86400 540&quot; elb-accesslog env=elb-log
	ErrorLog &quot;| /opt/lampp/bin/rotatelogs /opt/lampp/logs/jiro/error_%Y%m%d.log 86400 540&quot;

&lt;/VirtualHost&gt;

#============================================
Read more