Giter Club home page Giter Club logo

asir2-iaw-script's Introduction

¡Hola! 👋

Quién soy

¿Qué somos? ¿Qué hay de cierto en la teoría del Big Bang? ¿Cuántos años tiene Jordi Hurtado? ¿Es realmente paella si tiene morcilla?

Salvo la última, con una respuesta clara (no), son preguntas que se quedarán sin responder. Realmente no importa, ¡disfruta del contenido!

¿Qué encontrarás en mi GitHub?

¡Y creciendo! 💹

asir2-iaw-script's People

Watchers

 avatar

asir2-iaw-script's Issues

Script configuración inicial servidor - No Direct IP access

Ejemplo de configuración:

<VirtualHost *:80>
        ServerName <IP-DEL-SERVIDOR>
        Redirect 403 /
        ErrorDocument 403 “Sorry, direct IP access not allowed.”
        DocumentRoot /dev/null/
        UseCanonicalName Off
</VirtualHost>

Estudiar redirección a página con explicación.

Ante todo, NO se debe mostrar un sitio en el acceso por IP.
Favorable si además todo es tráfico cifrado.

Adición al nombre de carácteres aleatorios

Para evitar que se creen usuarios con mismo nombre, valorar la posibilidad de añadir una cadena aleatoria a los nombres.

Esto también ayudará a aumentar la seguridad en la base de datos, al ser más difícil conocer la mitad del par de autencicación.

Se valora añadir los citados caracteres aleatorios a:

  • El nombre de usuario UNIX
  • El nombre de usuario de la BDD
  • La base de datos creada para el usuario.

Bajo ningún concepto se añadirán estos caracteres a los dominios de la web.

Valorar custom certificate de CF para WP

Habría que cambiar la estructura de dominios para ser:
.blog.villablanca.me
De esta manera, se podría ordenar un certificado para *.blog.villablanca.me
Coste de $10/mes

Add salted values on wp-config

pablo@penguin  ~  curl -s https://api.wordpress.org/secret-key/1.1/salt/ 

define('AUTH_KEY',         'Yz8QA.zS||L!kx3UDdxSWbnuP^jKo_4psGV-G^%I@J}_O|7;4/ZDt;e`akLOo|$G');
define('SECURE_AUTH_KEY',  'q&NS 13wdwu3&}<W|]9a{kUVU$yxAM0!h|(EB=ojWqfqrg+}#1N1b#6qwmB]K@|0');
define('LOGGED_IN_KEY',    'h~Gt0=S;jz+W@dX2+zHv3$b<bKc<ltz>zt9-6<`+mkSg+i9qPpm],z`70e0G]wZ`');
define('NONCE_KEY',        'Jy-:Kk`D#&kl+0:5O1mRb6z]4UIa:hkq<^cIs&oE)_)4,V4;QV&v~yNK o&Qxta4');
define('AUTH_SALT',        '[!]R#S3KttpddW^d,w]ZK~>=#,(Lu)&%f,Pkei- 9V/;Ns0-<uUT$[g_h$%1F2>]');
define('SECURE_AUTH_SALT', 'OrqP+lo <V?LUdpJ>17w<2=7E,QTsTN[&BtI6+cR`b@H:7eZApsa^{@U4Qs3D^X^');
define('LOGGED_IN_SALT',   'dM%kTTp3EK=[=BNmm1?%_.q]^RGaZ^g/KDhdSNg&#Q45BU$)Q++YEc2:7K8`/^w[');
define('NONCE_SALT',       '2p!X#-&M3:%7:^8NM I .oVk-}^@j=dd+TYn-L?Oh3B.z.{*<ciKc46;&e[Hjywj');

Limitar uso de disco

De acuerdo a las limitaciones del servidor.

Por usuario, tanto inodos como capacidad.

Configuración de secretos

Crear una función que permita, al menos, definir variables para:

  • $cf_email
  • $cf_zone
  • $cf_token
  • $base_domain
  • $sib_api_key

Update Cloudflare records - Client subdomain

Utilizando la siguiente llamada a la API:

curl -X POST "https://api.cloudflare.com/client/v4/zones/$cf_zone/dns_records" \
     -H "X-Auth-Email: $cf_email" \
     -H "Authorization: Bearer $cf_token " \
     -H "Content-Type: application/json" \
     --data '{"type":"A","name":"'$record'","content":"127.0.0.1","ttl":3600,"proxied":false}'

Siendo:

  • $cf_zone: el ID de la zona. Se puede conseguir desde la GUI web (abajo derecha)
  • $cf_email: el email de la cuenta en CloudFlare
  • cf_token: el token generado en exclusiva para la zona. Importante: ajustar TTL y rolling
  • $record: el registro a añadir, incluyendo la zona raíz.

Script configuración inicial servidor - SSH/SFTP

No se deberá permitir el inicio SSH a los usuarios estándar (shell --> /bin/false).

Se usará, si es posible el propio subsistema SFTP de SSH; previniendo así problemas con software tercero.

En el archivo /etc/ssh/sshd_config:

Subsystem sftp internal-sftp

Match para los usuarios web:

    ChrootDirectory %h
    ForceCommand internal-sftp -u 0027
    PasswordAuthentication yes

Script configuración inicial servidor - Instalación paquetes

Se deberán instalar los siguientes paquetes:

apt update -y
apt install -i apache2 php7.4 libapache2-mod-php libapache2-mod-php php-mysql php-cli mariadb-server mariadb-client php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip libapache2-mpm-itk

Activar algunos complementos de Apache:

a2enmod rewrite

Eliminar clave API SIB

⚠️ envio_email no puede publicarse.

Acciones previas a hacer público el repositorio:

  • Eliminar la clave API xsmtpsib-ed [...] bOxtk3
  • Generar otra y no publicar en Gitub
  • Almacenar de forma segura y revisar logs

Supervisión métricas y logs con Grafana

Instalar el agente Grafana Cloud para Prometheus y Loki.

Ejemplo de configuración:

    scrape_configs:
      - job_name: varlogs
        static_configs:
          - targets: [localhost]
            labels:
              job: varlogs
              __path__: /var/log/*log
      - job_name: apachelogs
        static_configs:
          - targets: [localhost]
            labels:
              job: apachelogs
              __path__: /var/log/apache2/*log

Importante: designar jobnames distintos para cada sitio. Exclusivos, para facilitar la búsqueda. ¿Esto dará problemas? ¿Uso de labels?

Synthetic Monitoring
¿Cómo supervisar sin cargar el servidor?

Mail regex check

Te comparto mi script para pruebas. Funciona aparentemente como debería.

IMPORTANTE: ojo con los dominios de más de 3 caracteres.

#!/bin/bash

read -p "Dame el mail " mail

if [[ $mail =~ ^[a-zA-Z0-9_]+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$ ]]; then
    echo "mail válido"
else 
    echo "Como clarita, tu mail es inválido"
fi

Originally posted by @gonzaleztroyano in angelocho/script#1 (comment)

Also remove PrestaShop sites

Es necesario:

  • Eliminar tienda_${usuario}-le-ssl.conf
  • Eliminar tienda_${usuario}.conf
  • Quitar permisos mysql tienda_${usuario}.*
  • Add Drop Database PS

chpasswd en vez de rand

printf "$usuario_a_modificar:$password_nueva_1" | chpasswd
Seguramente de menos problemas.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.