script minimalista para checkear nginx
#!/bin/bash
# Definir la API Key de PagerDuty
api_key="XSERIALX"
# Definir el puerto a verificar
port=443
# Función para comprobar si el puerto está activo
check_port() {
netstat -tuln | grep -q ":$port "
}
# Verificar si el puerto 443 está activo
if check_port; then
echo "El puerto $port está activo. Nginx está funcionando correctamente."
exit 0
else
echo "El puerto $port no está activo. Intentando reiniciar Nginx..."
# Reiniciar Nginx
systemctl restart nginx
sleep 10 # Esperar unos segundos para que el servicio arranque
# Verificar nuevamente si el puerto 443 está activo
if check_port; then
echo "El puerto $port está activo después del reinicio. Nginx se ha reiniciado correctamente."
exit 0
else
echo "El puerto $port sigue sin estar activo después del reinicio. Enviando alerta a PagerDuty..."
# Enviar evento a PagerDuty
curl -X POST "https://events.pagerduty.com/v2/enqueue" \
-H "Content-Type: application/json" \
-d '{
"routing_key": "'"${api_key}"'",
"event_action": "trigger",
"payload": {
"summary": "El puerto 443 no está activo y Nginx no responde",
"severity": "critical",
"source": "servidor-web",
"component": "nginx",
"group": "web",
"class": "webserver",
"custom_details": {
"description": "El servicio Nginx no está funcionando y el puerto 443 sigue inactivo después del reinicio. Se requiere intervención manual."
}
}
}'
exit 1
fi
fi
#!/bin/bash
# Definir la API Key de PagerDuty
api_key="XSERIALX"
# Definir el puerto a verificar
port=443
# Función para comprobar si el puerto está activo
check_port() {
netstat -tuln | grep -q ":$port "
}
# Verificar si el puerto 443 está activo
if check_port; then
echo "El puerto $port está activo. Nginx está funcionando correctamente."
exit 0
else
echo "El puerto $port no está activo. Intentando reiniciar Nginx..."
# Reiniciar Nginx
systemctl restart nginx
sleep 10 # Esperar unos segundos para que el servicio arranque
# Verificar nuevamente si el puerto 443 está activo
if check_port; then
echo "El puerto $port está activo después del reinicio. Nginx se ha reiniciado correctamente."
exit 0
else
echo "El puerto $port sigue sin estar activo después del reinicio. Enviando alerta a PagerDuty..."
# Enviar evento a PagerDuty
curl -X POST "https://events.pagerduty.com/v2/enqueue" \
-H "Content-Type: application/json" \
-d '{
"routing_key": "'"${api_key}"'",
"event_action": "trigger",
"payload": {
"summary": "El puerto 443 no está activo y Nginx no responde",
"severity": "critical",
"source": "servidor-web",
"component": "nginx",
"group": "web",
"class": "webserver",
"custom_details": {
"description": "El servicio Nginx no está funcionando y el puerto 443 sigue inactivo después del reinicio. Se requiere intervención manual."
}
}
}'
exit 1
fi
fi
Blog de ArmandoF
https://www.linkedin.com/posts/franciscoarencibia_devops-devsecops-aws-activity-7294062779500535810-FvHC?utm_source=share&utm_medium=member_ios
Desengrasado dar charlas de nuevo, enseñando uno de los tantos caminos de cómo superarse y obtener un mejor empleo adentrándose en el mundo Devops sobre AWS
👍8
Exportar registros route53 -> bind9
aws route53 list-resource-record-sets --hosted-zone-id ZONE_ID > records.json
despues usas este script de python para parsearlo
import json
def route53_to_bind9(json_file, output_file):
with open(json_file, 'r') as f:
data = json.load(f)
records = data.get("ResourceRecordSets", [])
bind_lines = []
for record in records:
name = record["Name"].rstrip('.') # Elimina el punto final
record_type = record["Type"]
ttl = record.get("TTL", 300)
if "ResourceRecords" in record:
values = [r["Value"] for r in record["ResourceRecords"]]
for value in values:
bind_lines.append(f"{name} {ttl} IN {record_type} {value}")
elif "AliasTarget" in record:
alias = record["AliasTarget"]["DNSName"].rstrip('.')
bind_lines.append(f"{name} {ttl} IN CNAME {alias}")
with open(output_file, 'w') as f:
f.write('\n'.join(bind_lines) + '\n')
print(f"Archivo BIND generado: {output_file}")
# Uso
test_json = "records.json" # Archivo exportado de AWS
output_bind = "zonefile_bind9.txt" # Archivo en formato BIND
route53_to_bind9(test_json, output_bind)
aws route53 list-resource-record-sets --hosted-zone-id ZONE_ID > records.json
despues usas este script de python para parsearlo
import json
def route53_to_bind9(json_file, output_file):
with open(json_file, 'r') as f:
data = json.load(f)
records = data.get("ResourceRecordSets", [])
bind_lines = []
for record in records:
name = record["Name"].rstrip('.') # Elimina el punto final
record_type = record["Type"]
ttl = record.get("TTL", 300)
if "ResourceRecords" in record:
values = [r["Value"] for r in record["ResourceRecords"]]
for value in values:
bind_lines.append(f"{name} {ttl} IN {record_type} {value}")
elif "AliasTarget" in record:
alias = record["AliasTarget"]["DNSName"].rstrip('.')
bind_lines.append(f"{name} {ttl} IN CNAME {alias}")
with open(output_file, 'w') as f:
f.write('\n'.join(bind_lines) + '\n')
print(f"Archivo BIND generado: {output_file}")
# Uso
test_json = "records.json" # Archivo exportado de AWS
output_bind = "zonefile_bind9.txt" # Archivo en formato BIND
route53_to_bind9(test_json, output_bind)
🦺 Caído: Una potente herramienta para auditoría web
✍️ Si trabajas en ciberseguridad, Caido es una alternativa moderna a Burp Suite para analizar aplicaciones web.
➡️https://docs.caido.io/
Su instalación es sencilla en cualquier sistema:
🖥️ Linux: Descarga el AppImage, asígnale permisos (chmod +x) y ejecútalo.
💻 Windows: Instala con el ejecutable .exe en pocos pasos.
🍏 macOS: Descarga el .dmg y arrástralo a "Aplicaciones".
⚙️ Requiere al menos 4GB de RAM y una CPU.
Herramienta ideal para pentesters y analistas que buscan eficiencia en su flujo de trabajo.
✍️ Si trabajas en ciberseguridad, Caido es una alternativa moderna a Burp Suite para analizar aplicaciones web.
➡️https://docs.caido.io/
Su instalación es sencilla en cualquier sistema:
🖥️ Linux: Descarga el AppImage, asígnale permisos (chmod +x) y ejecútalo.
💻 Windows: Instala con el ejecutable .exe en pocos pasos.
🍏 macOS: Descarga el .dmg y arrástralo a "Aplicaciones".
⚙️ Requiere al menos 4GB de RAM y una CPU.
Herramienta ideal para pentesters y analistas que buscan eficiencia en su flujo de trabajo.
👍3
aca os comparto un manual que ha hecho un colega para todo el que quiera iniciarse en aws pero quiero probar todo en su local
https://blog.justme.ovh/posts/run-aws-locally/
https://blog.justme.ovh/posts/run-aws-locally/
blog.justme.ovh
Run AWS Locally | JustMe
👍5
una pagina que me ha hecho muy feliz este fin de semana
https://serverlessland.com/patterns
https://serverlessland.com/patterns
Serverlessland
Serverless Land
Your resource for learning serverless technology.
MIs tecnologias del dia a dia cambio un 200%
Me paso a la familia HashiCorp
https://www.consul.io/
https://www.nomadproject.io/
https://www.vaultproject.io/
https://www.terraform.io/
Me paso a la familia HashiCorp
https://www.consul.io/
https://www.nomadproject.io/
https://www.vaultproject.io/
https://www.terraform.io/
Consul | HashiCorp Developer
Explore Consul product documentation, tutorials, and examples.
👍2