ESTUDIO
ComTIA A+
windows
LINUX
Linux
Boot process
Boot proccess BIOS (basic input outpur)es SO independientela principal funcion es buscar y ejecutar el Boot loadercontiene una lista de dispositivo booteableBoot loaderlilo, grubinicia el SOinitrd (initial ram disk)es un fs temporal que contiene driver y modulos necesarios para cargar el SO permanente/bootcontiene los archivos de booteo como initrd, vmlinuz(kernel) Run levels (7)init 0 => apaga el sistema init 1 => monoUsuario (mantenomiento del sist)init 2 => multiusuario (sin red)init 3 => multiusuario (con red)init 4 => modo personalizadoinit 5 => con GUIinit 6 => reiniciovim /etc/inittabid:3:initdefault (se configura como inicia el sistema)CMDwho -r (ver run level)
lab-BP
*** boot process1- que significa BIOS, que es y su principal funcion2- que hace y cuales son los princiáles boot loaders3- que es el initrd4- en que carpeta se encuentran los archivos de booteo5- cuantos run levels existen
respuesta - BP
*** respuestas boot process 1- basic input output, el un SO independiente que contiene dispositivos booteables, buscar y ejecutar el boot loader2- inicia el SO, lilo y grub3- initial ram disk que contiene los drivers necesario para para cargar el SO permanentemente4- /boot5- 7 init 0 => apagado init 6 => reinicio
Instalacion de programas
Aruitectura de 32 y 64 bitscpu procesa 32 bits a la vezcpu procesa 64 bits a la vezsistemas de 64 bits pueden correr programas de 32 bits intalando las librerias necesarias pero sistemas de 32 no puedes correr programas de 64 Librerias necesarias para correr programas de 32 bits en uno de 64sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
Repositorios
RepositoriosEs un servidor web que comparte una lista de paquetes para installar o actualizar porque realiza un control de versionesse utiliza repositorios oficiales para descargas segurasbuscar programa a instalar con PPA ejemplo telegram ppaapt install telegramlos repositorios de guardan en Synaptic en tu SO de manera graficatradicionalescomparten librerias entre programasun programa a instalar no trae por defecto las librerias que necesita esto para ahorrar espacio en el disco PROBLEMA es que si una libreria al instalarla afecta a otras o tu distribucion no la soporta afecta a otras aplicacionedse necesita conexion a internet para utilizarlas snapslos paquetes snaps traen todas las librerias que necesita un programa para que funcione No necesita conexion a internet porque pueden copiarse en un usb e instalarse en otro dispositivoDESVENTAJA pueden repetir librerias o dependencias por lo tanto ocupan mas espacio en el disco al descargarlas se necesita mas ancho de banda Notasantes de eliminar un repositorio es mejor eliminar primero los paquetes instalados desde allipara mayor rapidez de actualizaciones y descargas se deben configurar los repositorios mas cercanos a tu zona geografica
Repos Debian
REPOSITORIOS DEBIANEstructura de un repositoriodeb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable mainUbicacion etc/apt/source.list ó source.list.d.d indica que es un directorioTIPOS - UBUNTU1 Main contiene solo software libre y de código abierto o «FOSS»2 Universeno es Ubuntu quien garantiza actualizaciones de seguridad regulares, sino que es la comunidad ejemplo vlc3 MultiverseEs con licencia y Ubuntu no realiza las actualizaciones4 RestrictedSoftware relacionado con hardware ejemplo drivers de red, tarjetas de video 5 PartnerSofware propiedad de socios coimpilado por ubuntu6 Repositorios de Ubuntu de tercerossoftware de terceros que tiene sus propios repositoriosTIPOS - debianmaincountrynonfree
aGestor de repos
Añadir repositoriosudo add-apt-repository universe multiverse Agrega repo por cmdsudo nano /etc/apt/sources.listAgregando el repositorio al archivo source.list wget -q -O - https://dl.google.compub | sudo apt-key add -sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'Agregar Repos oficiales de terceros Obtener la llave agregar el repositorioListar buscar repositoriossudo grep -rhE ^deb /etc/apt/sources.list*los repos estan el archivo source.list y source.list.dsudo apt-cache policycmd para buscar los repossudo apt search nombreReposudo apt search Actualizar Repositoriossudo apt updatelista las actualizaciones disponibles de los paquetes o sofware de los repositoriossudo apt upgradedescarga las actualizaciones disponiblessudo apt dist-upgradedescarga actualizaciones de maner mas inteligentepuede borrar cosas no necesariassudo do-release-upgradeactualiza SO 18:04 a 20.04antes se debe actualizar todo con apt update, upgradeElimina repositoriosnano /etc/source.listborrar o colocar # para comentarlosudo add-apt-repository -r ppa:repo/reposudo apt-key del (8 ultimos caracteres de la llave)Elimina una repo PPA con llave o clave
agestor paquetes
Gestor de paqutes DebianAgregando Paquetes dpkg -i paquete.debinstala un paquete con ext .deb descargadoapt-get install nombrePaqueteapt installsnap install nombrePaquetesudo snap enable operaListar buscar paquetesgrep " install " /var/log/dpkg.loggrep " install " /var/log/apt/history.logapt list --installedapt search nombreProgramaapt-cache search nombrePrograma-snap list snap find nombreProgramaActualizar paquetesapt updateapt upgradeapt dist-upgradeapt-get updateapt-get upgradesnap refresh nombreProgramaEliminando paquetesdpkg -r nombrePaqueteelimina paquete pero no archivos de confdpkg -r -P elimina todo incluido archivos de confapt-get removeapt-get remove -purge (-P)sudo snap remove nombreProgramasudo snap disable operadesabilita el programa opera
Repos centos
Repos centosLos repositorios mas utilizados en centos son EPEL y Remi (contiene versiones actualizadas de php y myssql)Formato de un repositorio[mariadb]name = MariaDBbaseurl = http://yum.mariadb.org/10.4/centos73-amd64/gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1Ubicacion/etc/yum.repos.d
aGestor de repos
Gestor de repositorios CentosAñadir repositoriosyum install epel-releaseagrega el repo EPELrpm -ivh http://rpms.famillecollet.com/enterprise/remi-leaserem-7.rpagrega el repo REMI/etc/yum.repos.ddentro de este directorio crear un archivo.repopegar la configuracion del repo ejemplo [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/CentOS/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key Lista busca repositariosyum repolistyum list installedActualiza repositorioElimina repositorioyum -y install yum-utilsinstala herramientas de gestionyum-config-manager --disable remidesabilita remiyum update —disablerepo=epeldesabilita el repo EPEL[mariadb]name = MariaDBenabled=0agregar la linea enabled=0 para desabilitarloyum clean allyum makecache
aGestor de paquetes
Gestor de paquetes CentosAgregar paquetesrpm -i nombrePaquete.rpminstala un paquete.rpm ya descargadorpm -ivh https://example.com/fedora/32/packagename.rpminstala un paquete.rpm desde la webyum install nombre_paqueteListar - buscar Paquetesrpm -qa | grep -i nombrePaqueteyum listyum list | grep [package_name]Actualiza Paquetesyum check- updatelista actualizaciones disponiblesyum updateactualiza los paquetesEliminar paquetesrpm -e nombrePaqueteyum remove nombrePaquetee yum autoremove npElimina tambien las dependencias innecesarias
aQue aprendiste
Que aprendisteCRUD DEBIAN REPO PAQUETES*******C*********+add-apt-repository nr/etc/apt/source.listdpkg -i np.debapt-get install npapt install npsnap install np********R*********apt policyapt-cache policyapt list || apt list --installesd || apt search np || apt-cache search npsnap list || snap find np*********U*******p***apt update || apt-get update apt upgrade || apt-get upgradeapt dist-upgrade do-release upgradeapt-get updateapt-get upgradesnap refresh nombrePrograma************D***********nano etc/apt/source.listadd-apt-repository -r nrdpkg -r nombrePaquetedpkg -r -P npapt-get removeapt-get remove -purge (-P)sudo snap remove nombreProgramasudo snap disable operaCRUD CENTOS REPO- PAQUETES*****+C*************yum install epel-releaserpm -ivh http://rpms.famillecollet.com/enterprise/remi-leaserem-7.rpnano /etc/yum.repo.d/nuevo.repo rpm -i np.rpmrpm -ivh descargaDirectaWeb.rpmyum install np********R***********yum repolistyum list installedyum listyum list | grep np**********U***********yum check- updateyum update*********D**********nanp/etc/yum.repo.d/eliminasArchivo.repoenabled=0yum clean allyum makecacherpm -e nombrePaqueteyum remove nombrePaqueteyum autoremove np
alab-instalacion de programas
*** Lab instalacion de programas1- que implica la arquitectura de 32 bits2- que implica la arquitectura de 64 bits3- que es un repositorio4- como funciona un repositorio tradicional5- repositorios snap6- cual es el archivo y la ubicacion de los repos debian7- actualiza repo - upgrade programas - de manera mas inteligente acualiza SO8- lista -busca debian repos 9- crud gestores de paquetes de debian10- cual es el archivo y ubicacion de suse repos11- crud gestor de paquetes suse
respuesta instalacion de programas
*** respuestas instalacion de programas1- procesa hasta 32bits a la vez, 2- procesa hasta 64bits a la vez, puede correr programas de 32 bits instalando sus librerias3- es un servidor web que comparte, actualiza y lleva un control de versiones de los programas 4- al instalar un paquete no descarga todos las librerias xq comparte las que ya estan en el sistema5- descarga todas las librerias necesarias del paquete no necesita internet se puede copiar a un usb6- source.list /etc/apt/source.list7- apt update - apt upgrade - apt dist-upgrade - apt do-release-upgrade8- sudo apt-cache policy - sudo apt search nr9- dpkg -i /apt install /apt-get/snap || apt remove np10- yum.repos.d /etc/yum.repos.d11- rpm -i /yum install/yum update/ yum remove
servicios
Process "Es una instancia de un programa en ejecucion que utiliza recursos del Sistema"tiene un identificador unico PID (process ID)a cada proceso el kernel le asigna recursos del sistema como CPU, memoria y dispositivos de entrade y salida se puede utilizar killBackground processprocesos ejecutamdose en 2do Plano[1] running cmdcmd + & (pasa procesos al bg o 2do plano)jobs lista los procesos en 2do planokill [jobNumber || PID]Foreground processfg %[jobNumber] => trae process a 1er planoctrl + c elimina processctrl + z suspende un proceso y lo lista como stoped en el bgServiciosson programas que se ejecutan en 2do plano y dan una funcionalidad especifica.por lo general se inician con el sistema y estan a la espera de solicitudes para responderse administran con systemctl CMDskill -9 pidPSps -efps auxpgrep ps -p PIDpstreetophtopbgfgkilljobsLista procesos especificando campos y por memoriaps -eo pid,ppid,cmd,%mem,%cpu --sort=-%memps -eo user,tty,start,etime,pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -11Kill -9 || systemctl stoputilizar el kill es apagar abrutamente un proceso sin dejar que cierre correctamente en caso de servicios en mejor utilizar systemctl
redes
NetworkConfigurat IPs mediante Archivos de configuracionvim /etc/netplan/01-network-manager-all.yaml (actual)netplan apply (aplicar cambios)vim /etc/network/interfacesauto eth0iface eth0 inet dhcp---------------------------------auto eth0 iface eth0 inet staticaddress 10.220.220.2netmask 255.255.255.0gateway 10.10.10.1configurar IPS mediante CMDip address add 10.12.13.4/255.255.255.0 dev eth0ifconfig eth0 10.23.25.8 netmask 255.255.255.0configurar mediante guinmtuiabrir y cerrar interfacesifconfig eth0 up || ifup eth0 ||ifdown eth0ip link set eth0 up || ifup eth0 ||ifdown eth0White listvim /etc/host.allow (lista blanca)Niega esa IPALL:192.23.12.4:DENYALL:ALL:ALL------------------------------Acepta esas IPsALL:192.98.23.3:ALLOWALL:194.122.34.5:ALLOWALL:ALL:DENYCMD utilesifconfigping ip 0 dns [-c 12]traceroute -n dnstracepath -n dns || ipnetstat -ntlp [u]netstat -i netstat -r (routing table)tcpdumptelnet (para ver puertos abiertos)who => ver usuarios conectados y desde que ippkill -9 pts/0 saca al usuario conectado
Hardware
hardDisk
CMD
Notasal ejecutar un programa desde el terminal la ventaja es que podras ver los logs del programase ejecutan desde el programa solo colocando el nombre del programa y enter.
estructura
ESTRUCTURA - SINTAXISCMD -option parametros/argumentos opciones (con dash - , -- ) ncal -u || ncal --universalopciones combinadas ncal -h3j paramentro - argumento (sin dash - , dato obligatorio) ncal july 1969HERRAMIENTAS man = man cpcp [SHORT-OPTION]... [STRING]... SOURCE DESTtodo entre [opcional] es opcionalfuera de [ ] obligatorio... indica que se puede colocar mas opciones o stringhelp = help cd para cmd del shell que no se describen con mantype = type cp /bin/comando = ejecutableshell = no ejecutablealieased = aliaswhich = which ncalubicacion del cmd (/usr/bin/ncal)NAVEGACIONtecla F => forward una paginatecla B => backward una pagina/-s => dentro de man busca -s"q" => salr man
cmd - sistema
sistema: hostnamectlsistema: lsb_release -aram : free -hDisco : df -hpuertos: sudo lsof -i -P -n | grep LISTEN CPUgrep "model name" /proc/cpuinfo | wc -l
users
useradd -m nupasswd nuuserdel -r nusudo usermod -aG nombre_del_grupo nombre_del_usuariocat /etc/groupgroupadd nggpasswd -a nu ng (agrega usario al grupo)groups nugroupdel nggroupmod ng -n nombreNuevoGrupo
file - dir
FILES - DIRtouchtouch file1.txt file2.txtmkdirmkdir -p Padre/Hijo ( crea folder anidado)Deleterm archivorm -d emptyDirrm -r fullDirrm -ri (i te pregunta si quieres borrar)Updatemvmv file ~ (al homeDir)mv file1 file2 file3 destinationDir/mv sourceDir/ destinationDir/ mv fl1|| mv f2 ~/Desktopmv - cambiarNombre (file Dir)mv file1 file2mv Dir1 Dir2cp (no borra solo copia si no existe el destino lo crea)cp file1 file2 cp -r dir /DirDestination (r copia contenido)
crud
Permision
Permision USERsusers => muestra los usuarios en el sistemaLeer todo junto incluido los guines guionesdrwxr-xr-x 2 luis luis 20480 mar 7 17:46 DescargasU G Orwxr-xr-xUser => dueño del fileGrupo => users con ciertos permiso para un fileOthers => ni dueño ni en el grupor => read permisionW => write actualizar permiso en dir la x debe estar activax => ejecutar cmd cd, Gruposcuando se agragan user a grupos hay que log out y volver a ingresar para que tome cambiosgroups => muestra los gruposgroups nUseraddgroup
sudos
sudos (cat etc/sudoers)sudo -l => muestra que puede hacer usersu otrouser (se queda en el home de otro usuario)su - otroUser => home User
chmod
chmodUGOA (+ | - |=) (U=User G=Group O=Otrher A=all)chmod g+wx file.txt | dirchmod u-x file.txtchmod a=r file.txt (todos solo read)Octagonalr = 4 w=2 x=1 0=no permisoschmod 760 file.txt (u=7 g=6 o=0)
chown
chownsudo chown otroUser file.txt sudo chown :Grupo file.txtsudo chown :user :Grupo file.txtno es muy recomendable cambiar de dueño en el home de otra cuenta
que aprendiste file
###########file###########createpwdtouchmkdir###readcatcat txt | tr a A | tr a-z A-Z | tr -d Scat compras.txt &> mercado.txt cat compras.txt > mercado.txt 2> errores.logtaclesshead -20 file.txttail -20 file.txt tail -f syslog--------------------- ls -lah file.txtls- lcls -lmls -luls --sort=size || timels -lh /usr/bin | sort -k5h | tail -5 > txtls -lh /usr/bin > lista.tx -------------------locate -iel dir || fileupdatedb------------------find -type -f -dfind -empty -type f || dfind -iname "*.htmlfind -name "*.html"find -name "*.css" -exec rm '{}' ';'find -name "*.css" -ok rm '{}' ';' find -name "*.txt" -exec cp '{}' '{}_copias' ';'find -size +10Mfind -user ftpuserfind -mmin -20find -mtime -3 find -name "*.html" "*.css"find -name "*.html" -or "*.css"find -name "*.html" ! "*.css"grep -igrep -wgrep -rgrep -lgrep -A1 -B1ps -aux | grep "nombreProceso" -i###updatemvcp file1 file2###deletermrm -d emptyDirrm -ri fullDir######permisos######sudo -lsu - otrouserchmod g+wx file.txt | dirchmod u-x file.txtchmod a=r file.txt chmod 760 file.txtchown otroUser file.txt chown :Grupo file.txtchown :user :Grupo file.txt############env#########printenvecho rm -d emptyDir $USERwhich cmd type cmdbashbash ~/primerScriptmiVariable=valorVariableexport nombre=julietaalias miListado = 'ls -ahl'source ~ .bashrc###repositorios########---debianadd-apt-repository nr || /etc/apt/source.listdpkg -i np.debapt install np || apt-get install np snap install np apt policyapt-cache policyapt listapt search npapt-cache search npsnap listsnap find npapt update || apt-get update apt upgrade || apt-get upgradeapt dist-upgrade do-release upgradeapt-get updateapt-get upgradesnap refresh nombreProgramanano etc/apt/source.listadd-apt-repository -r nrdpkg -r nombrePaquetedpkg -r -P npapt-get removeapt-get remove -purge (-P)sudo snap remove nombreProgramasudo snap disable opera--centosyum install epel-releaserpm -ivh http://rpms.famillecollet.com/enterprise/remi-leaserem-7.rpnano /etc/yum.repo.d/nuevo.repo rpm -i np.rpmrpm -ivh descargaDirectaWeb.rpmyum install npyum repolistyum list installedyum listyum list | grep npyum check- updateyum updatenano/etc/yum.repo.d/eliminasArchivo.repoenabled=0yum clean allyum makecacherpm -e nombrePaqueteyum remove nombrePaqueteyum autoremove np#####usefull#############################################tar -cvzf comprimir.tar.gz file.txttar -xvzf extraer.tar.gzcrontab -e####hardware##############################################3hostnamectllsb_release -afree -h (RAM)lsof -i -P -n | grep LISTEN (PUERTOS)lshw -C disk-memory-cpu###discodf -f (DISCO) du -h => disk use df -h | grep "/dev/sd"cat /etc/fstabfsck -N /sda1 => (repara disco)cfdisk /dev/sdb (nombre del disco detectado)mkfs -t ext4 /dev/sb1mount -a (vim /etc/fstab => /de/sb1 /data ext4 defaults 0 2)chown -R luis.luis data####shortcut############################################xdg-openctl + a => inicio del queryctl + e => fin del queryctrl + w => borra una palabra hacia atrazctrl + y => recupera query borradoctl + r => busca query por palabra###caracteres#############################################*?[] rangos$(()) operadores matematicos" " string respeta $*' ' strin literalmente$ llama funcion{} mkdir -p dias/dia{1-31}
ausefull-tools
Miselanialsusb => muestra dispositivos conectados lspci => dispositivos conectados a las ranuras de la placaNotabus: es el cable o lineas que transmiten informacionusb: univesal serial buspci: componenre periferico interconectado
SSH
SSH SSH se utiliza principalmente para proporcionar acceso remoto a un sistema y realizar tareas de administración de sistemas.
USB-booteable
Bootear un usblsblksudo umount /dev/sdb1sudo dd if=ruta_de_la_imagen.iso of=/dev/sdX bs=4M status=progress
TLS/SSL
TLS/SSL (Transport layer security layer / secure socket layer)En resumen, TLS/SSL es un protocolo de seguridad importante que utiliza criptografía de clave pública para asegurar la comunicación en internet. Los certificados SSL/TLS se utilizan para autenticar los sitios web y las diferentes versiones de TLS/SSL ofrecen diferentes niveles de seguridad. El proceso de handshake de TLS/SSL es importante para establecer una conexión segura, y el protocolo utiliza tanto cifrado simétrico como asimétrico para asegurar la comunicación.NotaGenerar el certificado que tiene la llave publica que se guarda en el cliente /etc/ssl/certsse pueden generar llaves pagadas y autofirmadas
tar
Tartar -cvzf backup.tar.gz (comprime) tar -xvzf backup.tar.gz (extrae)
syntaxix de un cron
cronagenda un tiempo para ejecutar un programasyntax a b c d e cmda (minutos 0-59) b (hours 0 -23) c (day 1 - 31) d (month 1 - 12) e (day of week 0 -6 lunes, martes)(*) any value or all5,6 list of values 5 y 61-4 rango de valores del 1 al 4*/5 step value ejemplo cada 5 minutos nota:si hay un error no lo indicara a menos que le especifiquemos con un redireccionamiento 2>&1 crontab -eUtilswww.crontab guru
aShortCuts
sudo !! ejecuta el ultimo cmd utilizadoapt-get install sublimesudo !! => ejecuta apt-get install sublimexdg-open*** shortcuts*****ctl + l => clear (ele)ctl + a => inicio del queryctl + e => fin del queryctrl + t => intercambia la ultima letra x anteriorctrl + k => borra query hacia adelantectrl + u => borra query hacia atrazctrl + w => borra una palabra hacia atrazctrl + y => recupera query borradoalt + f => avanza una palabraalt + b => retrocede una palabraalt + t => intercambia una palabra x anterioralt + d => borra solo una palabra hacia adelante******history -Ver queries cmdhistory | lessctl + r => busca query por palabraUbicaciones archivos importantessudoers => cat etc/sudoershistory =>vim home/.bash_history
Caracteres especiales
Caracteres especiales( ) *.html => cualquier que termine en htmlblue* => cualquier palabra que empiece en blue(?)indica un solo caracter ?? = 2 caracteresecho htm? =>solo 4 caracteres que start htm([ ]) ([^12] )busca por rangosls pic[123] [A-D] [1-9][^123] negacion que no busque 123$(( ))operaciones aritmeticas resultado solo enterosecho ((1+2)) ((2-1)) ((2*3)) ((4/2)) ((2**3)) ((10%3))(" ")echo " hi alumno $(whiami)" = hi alumno luistrabaja con cadenas muestra espacios simbolos solo no aplica para "$" - "\" - "`" (' ') todo texto entre comillas simples es tratado literalmente asi como una cadena´hi alumno $(whoami)´ = hi alumno $(whoami)($) ó (` `)ejecuta o llama a un comando echo $(date) $(whoami)echo ` date`
Enviroment
Enviromentson configuraciones de variables en pares de "KEY : VALUE"Llamar a una variable se usa $shell o local enviromentmiVariable=valorVariablesolo accesible desde la sesion de un teminalnombre=julietabash=> borra sesionvarible environmentes permanete export nombre=julietaVariablesPS1 => promt (luis@mylaptop) PATHes una cadena de directorios donde el sistema busca un programa a ejecutar (ls, cd, etc)/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/binprimero busca en /usr/local/sbin si no encuentra el cmd alli lo busca en /usr/local/bin y asi sucesivamente : => separados de directoriosusr/bin => dir usuario regularusr/sbin => sudo bin dir usuario rootStartup filesetc/bash.baschc => global config all user~/.bashrc => settings specificas de un usuarioAqui se cambian los valores de las variablesALIAS (crear alias para cmd existentes) type cmd => indica tipo bin o aliesalias miListado = 'ls -ahl'solo funciona en mi sesion si quieres que sea permanente modificas ~ .bashrc ( alias du='du -h') se puede crear un file llamado .bash_aliases y se colocan los alias personalizados para mayor organizacionprintenv => lista variables y valorprintenv | grep "USER"echo $USER => luisnombre=julieta solo crea una variable en l ashellexport nombre=julieta (crea una variable en enviroment)source ~ .bashrc => ejecuta el para que tome los cambios which cmd => donde esta ubicado el cmdNota: click derecho preferencias del terminal o personalizarlo con una herramienta web https://ezprompt.net/Bash scriptNombre file = primerScript#!/bin/bash => asi se debe iniciar un script bashecho ejemplo >> primerBash.log***Ejecuta scriptbash ~/primerScriptAgregando un PATH y ejecutar el cmd creado por nosotros sin necesidad de ejecutar el cmd bash1 crear un directorio por convencion llamado bin en el home del user y agregar el nuevo scriptmkdir bin/primerScript2 indicarle o crearle el PATH de nuestro script home/luis/binmodificar (locate .bash) .bashrc (etc|| etc/skel) agreagando el PATH="$home/bin:$PATH"source bash.bashrcsi es ubuntu en el .profile existe una linea de comandos que si hay un directorio llamado "bin" en el home lo agrega automaticamente al PATH3 darle permisos de execution chmod 777 primerScript ||chmod +x primerScriptIndica que tipo script esta corriendo bash || python || perlestos por defecto estan instalados en ubuntu shebang! => es la primera linea del script#!/bin/bash#!/usr/bin/python3#!/usr/bin/perlPATH files importantes en ubuntu source .profile si creas anteriormente un dir bin en home en otras distribuciones source .bash (locate).profile.bashrc
aQA
Que aprendiste - ENVIRONMENT1 mkdir home/bin - crear carpeta bin en el home del usuario2 touch home/bin/miscript - crea un txt => #!/bin/bash3 PATH=$HOME/bin:$PATH - agregar lineas en algunos de esos archivos.bashrcprofileenvironment4 chmod +x miScript
LOGS - /var/log/
LOGSUbicacion /var/logLOGS - prioridades ( .primeras vocales)0 emergency (.emerg)1 alert ( .alert)2 critical ( .crit)3 error (.error)4 warning ( .warn)5 notice ( .notice)6 informational (.info)7 debug ( .debug)logger -p local0.inf0 "informacion"NOTAlocal.error => se muestran en los logs desde la prioridad 3 hasta abajo ,5,6,7 pero local.error No se mostrara en los de prioridades hacia arriba 0,1,2LEERcat /var/log/syslog cat /var/log/syslog | head | tail -20tail -f /var/log/syslog journalctl -xejournalctl -u NetworkManagerlast rebootNotasyslogsyslog.1 (se lleno syslog)
que debes saber
Un administrador de sistemas Linux debe tener conocimientos en áreas como:Instalación y configuración de servidores y aplicaciones Linux.Administración de usuarios y permisos.Configuración de redes y protocolos de comunicación.Administración de almacenamiento y gestión de discos.Gestión de paquetes y actualizaciones de software.Automatización de tareas a través de scripting y programación en Bash y Python.Configuración de seguridad y gestión de permisos.Conocimientos en troubleshooting y resolución de problemas.Monitoreo y registro de actividad del sistema.Conocimientos en virtualización y contenedores.Es importante tener una comprensión profunda de los comandos y herramientas de línea de comandos de Linux, así como también tener habilidades de solución de problemas y resolución de problemas.Hay varias certificaciones que pueden ayudarlo a demostrar sus habilidades como administrador de sistemas Linux, como la CompTIA Linux+, Red Hat Certified System Administrator (RHCSA) y la Linux Professional Institute Certification (LPIC).
lab-all-linux
*** boot process1- que significa BIOS, que es y su principal funcion2- que hace y cuales son los princiáles boot loaders3- que es el initrd4- en que carpeta se encuentran los archivos de booteo5- cuantos run levels existen *** Lab instalacion de programas1- que implica la arquitectura de 32 bits2- que implica la arquitectura de 64 bits3- que es un repositorio4- como funciona un repositorio tradicional5- repositorios snap6- cual es el archivo y la ubicacion de los repos debian7- actualiza repo - upgrade programas - de manera mas inteligente acualiza SO8- lista -busca debian repos 9- crud gestores de paquetes de debian10- cual es el archivo y ubicacion de suse repos11- crud gestor de paquetes suse
respuesta all linux
*** respuestas boot process 1- basic input output, el un SO independiente que contiene dispositivos booteables, buscar y ejecutar el boot loader2- inicia el SO, lilo y grub3- initial ram disk que contiene los drivers necesario para para cargar el SO permanentemente4- /boot5- 7 init 0 => apagado init 6 => reinicio*** respuestas instalacion de programas1- procesa hasta 32bits a la vez, 2- procesa hasta 64bits a la vez, puede correr programas de 32 bits instalando sus librerias3- es un servidor web que comparte, actualiza y lleva un control de versiones de los programas 4- al instalar un paquete no descarga todos las librerias xq comparte las que ya estan en el sistema5- descarga todas las librerias necesarias del paquete no necesita internet se puede copiar a un usb6- source.list /etc/apt/source.list7- apt update - apt upgrade - apt dist-upgrade - apt do-release-upgrade8- sudo apt-cache policy - sudo apt search nr9- dpkg -i /apt install /apt-get/snap || apt remove np10- yum.repos.d /etc/yum.repos.d11- rpm -i /yum install/yum update/ yum remove
DataBases
MYSQL
[mysqld]datadir=/var/lib/mysqlsocket=/var/run/mysqld/mysqld.sock# Configuración de memoriakey_buffer_size = 256Mmax_allowed_packet = 64Minnodb_buffer_pool_size = 512M# Configuración de seguridadbind-address = 127.0.0.1 => solo escuche conexiones desde la interfaz de red local (localhost).skip-networking# Configuración de registros (logs)log_error = /var/log/mysql/error.logslow_query_log = 1slow_query_log_file = /var/log/mysql/slow-query.log# Configuración de caracteres y collationcharacter-set-server = utf8mb4collation-server = utf8mb4_general_ci[mysql]default-character-set = utf8mb4[client]default-character-set = utf8mb4
English
A (ei - ea - a - )wait hate (a+i || a+cons+e ) => eidark saw (a+L,r,u,w) => acat, hat (a+cons) => a sonriendoabout, banana (no acentuada) =>
DEVOPS
Relaciones entre tablas one to manycomandos dockerpuertos en contenedores
NODE
Expresses un framework de node.js
DOCKER
Componentes Docker
Dockerfile
Dockerfile (imagen personalizada)FROM <imagen>[:<etiqueta>]LABEL <clave>=<valor> <clave>=<valor> ...MAINTAINER <nombre> <correo electrónico>RUN <comando>COPY <origen>... <destino>ADD <origen>... <destino>ENV <nombre>=<valor>WORKDIR <directorio>EXPOSE => indica un puerto abierto para comunicacion entre contenedoresUSER => indica que el usuario que ejecutara los cmds inferiores o siguientesENTRYPOINT <comando>ARG <nombre>[=<valor>]ONBUILD <instrucción>STOPSIGNAL <señal>VOLUME <ruta>HEALTHCHECK [opciones] CMD <comando>CMD <comando>Notas.dockerignore es un archivo oculto para ignorar carpetas o archivos del contexto donde se crea la imagentouch .dockerignorecontesto del Dockerfile => ls -l (todas las carpetas y archivos es el contexto)Contextoes el directorio actual donde se encuentra el dockerfife es mejor que no haya muchos archivos para que el contexto no tome mucho pesoEXPOSEno es el puerto del contenedor expuesto para internet, es un puerto abierto para comunicacion entre contenedores docker run -p 80:80 es el puerto asignado al contenedor para responder solicitudes o desde donde escucha
Buenas practicas
1 un contenedor por servicio no apache y mysql en uno solo2 utilizar backslash para indicar una sola linea ENV dir www/html/test.txtRUN \ echo "1" > > $dir && \ echo "2" >> $dir &&3 pocas capas, entendemos por capas a una instruccion 4 utilizar multi stage para reducir el peso de las imagenesun stage es un conjunto de instrucciones en una capas separada por un FROMel ultimo from es que que considera la imagen los anteriores FROMs los toma como un proceso temporal el cuyo resultado es utilizado en otra capaejemploFROM centos as testRUN fallocate -l 10M /opt/file FROM alpinecopy --from=test /opt/file /opt/miFileel ultimo FROM es el que cuenta ya no se considera centos
lab-dockerfile
***Dockerfile1- que es?2- que es el contexto?3- que es el .dockerignore?4- para que sirve el .dockerignore5- como se utiliza
respuestas-lab-dockerfile
Dockerfile1- es un documento que sirve para crear o persolizar images2- es el directorio donde se encuentra el Dockerfile3- es un archivo oculto ubicado en el mismo contexto del Dockerfile 4- para que al momento de crear la imagen no se consideren archivos o carpetas en el contexto5- touch .dockerignore => vim .dockerignore => nombreCarpetas del contexro a ignorar
Imagenes
IMAGENESImagenes oficiales - https://hub.docker.com/docker pull mongo (tag por defecto latest)docker pull mongo:3.1.2 (tag especificadadocker images (listado)docker rmi niImagenes personalizadasdocker build -t (tag) ni . docker build -t ni -f ndf (nombre dockerfile)docker history -H ni:tag (detalla de como se creo la imagen)Dangling imagenesimagenes huerfanas sin tag <none> o reemplazadas por actuales se pueden generar cuando se modifica una imagen con el mismo nombre entonces secre otra imagen nueva y la otra se queda como danglingdocker images -f dangling=truedocker images -f dangling=true -q | xargs dorcker rmi
lab-imagenes
lab-imagenes***Imagenes1- descarga una imagen oficial 2- descarga una imagen oficial con tag3- lista todas las imagenes4- crea una imagen con dockerfile5- crea una imagen de un dockerfileNombreDistinto6- ver historial de como se creo una imagen7- que es una dangling images8- listado de imagenes dangling 9- eliminar imagenes dangling 10- copiar una imagen con otro nombre
respuestas-lab-imagenes
Imagenes1- docker pull mongo2- docker pull myslq:5.73- docker images4- docker build -t ni .5- docker build -t ni -f dockerfileNombreDistinto6- docker history -H ni7- son imagenes huerfanas que no se utilizan8- docker images -f dangling=true9- docker images -f dangling=true -q | xargs docker rmi 10- docker tag ni otroNi
contenedores
CONTENEDOR (es la instancia de una imagen)docker ps -adocker inspect ncdocker logs -f ncdocker run -d --name nc NIdocker rename nameNew oldNamedocker run -dti -e "entorno=12345" --name nc ni docker run -d -p 8080:8080 ni docker [start restart stop] ncdocker exec -ti nc /bin/bashdocker exec -ti -u root nc /bin/bashdocker rm -fv ncdocker rm -fv $(docker ps -aq) => borra tododocker ps -q | xargs docker rm -fv => borra todoNotasd = detach corre en segundo planocualquier cosa que se modifique en el contenendor es temporal si lo eliminas se pedera toda la info
Document root
Document rootdocker info | grep -i root/var/lib/docker Cambiar de ubicacion el document rootubicacion por defecto del document root/var/lib/docker ubicacion del archivo de configuracion de dockervim /lib/systemd/system/docker.serviceindicar nueva rutaExecStart=/usr/bin/dockerd -H fd:// --data-root /opt/dockersystemct daemon-reloadmv /var/lib/docker /opt/dockersystemctl daemond-reload Notason un conjunto de carpetas que docker crea para gestionar su funcionamiento ejemplo volumenes, contenedores, imagenes etc
lab-dr
****document root1- que es?2- como se busca informacion como ubicacion?3- como cambias ubicacion del document root
respuesta
Respuesta document root1- es un sistema de archivos que se crea al instalar docker2- docker info | grep -i root3- a) asignarle un ubicacion en el host => opt/docker b) mover el documento hacia su nueva ubicacion => mv var/lib/docker opt/docker c) modificar la configuracion en el docker.service => vim /lib/systemd/system/docker => ExecStart=/usr/bin/dockerd -H fd:// --data-root /opt/docker d) aplicar los cambios => systemct daemon-reload
Volumenes
Volumenes1 puedes indicar la ruta de una carpeta especifica en el host que servira de backup al crear un contenedor opt/mysql2 si no especificas una ruta, docker le asignara por defecto la carpeta de volumenes del document rootPara persistir data en los contenedores se tiene que saber en que carpeta el servicio guarda su informacion para indicar la ruta de donde esta el vol ejemplo mysql lo guarda en /var/lib/mysql -v /opt/mysql/:/var/lib/mysql:5.7 /opt/mysql = carpeta en el host /var/lib/mysql:5.7 = lugar donde guarda la info mysql dentro del contenedor
Vol. anonimos
Volumenes anonimosno se le da un nombre y solo se menciona la carpeta dentro del contenedor donde se almacena la info docker creara un volumen y lo guardara en la carpeta del document root /var/lib/dockercuando se ejecuta docker rm -fv (v) borra los volumenes anonimos docker run -d –name nc -p 80:80 -v /var/lib/mysql mysql
Vol. nombrados
Volumenes nombradosconsiste en darle un nombre al volumen docker rm -fv NO borra volumenes nombradosdocker volume create nVdocker run -d –name nc -p 80:80 -v nV:/var/lib/mysql mysql******ls -l /var/lib/dockernVCMDSdocker volume lsdocker volume ls -f dangling=truedocker volume create nVdocker volume rm nV
vol. dangling
Volume dangling volumenes cuyos contenedores fueron eliminados o no estan referenciados
lab-vol
***lab-volumen1- que es y para que sirven los volumenes2- cuantos tipos de volumenes hay 3- donde se guardan los volumenes si no se especifican la ruta4- que pasa si ejecutas docker rmi -fv5- crud volumenes6- asignar un vol a un contenedor
respuestas-vol
respuestas volumenes1- son carpetas fuera del contenedor que sirven para persistir la data si se elimina un contenedor tambien se elimina la data2- anonimos- nombrados - dangling3- en la carpeta volumen de document root4- se eliminas las imagenes y los volumenes anonimos5- docker volume [create rm ls] nv6- docker run -d --name nc -v nv:ruta/dentroContenedor ni
redes
RedesBridge es la red por defectodocker0 interface por defecto (ip add | grep docker)gateway = docker0CMDsdocker network lsdocker network create nrdocker network create -d bridge --subnet 172.16.23.0/24 --gateway 172.16.0.1 nr (red con subnet y gateway)docker network inspect nrdocker run -d --network nr ni (el contenedor pertenece a esa red) docker run -d --network nr --ip 172.17.0.50 ni (asigna ip)docker network connect nr nc (conecta el cont a otra red)docker network disconnect nr nc (desconecta el cont de nr)docker network rm nr (elimina contenedor)
bridge
bridge Bridge es la red por defecto
host
Hostal contenedor se le asigna la misma IP y red del hostdocker run -d --network host --name nc ni
none
nonecrea un contenedor sin reddocker run -d --network none --name nc ni
lab-redes
*** lab - redes1- cuantos tipos de redes hay 2- cual es la red, inteface y gateway por defecto de un contenedor3- crud network 4- cmd para crearsubnet, ip manual y gateway5- conectar o desconectar un contenedor a una red distinta
respuesta redes
*** respuestas - redes1- bridge - host - none2- red=bridge int=docker0 gateway=docker03- docker network [create rm ls inspect ] nr 4- docker run -d --network -d bridge nr --subnet 172.16.0.0 --ip 172.16.0.50 --gateway 172.16.0.1 ni5- docker network connect nr nc [disconnect]
recursos
Recursosdocker stats nc Memoriadocker run --help | grep memorydocker run -d -m "500mb" --name nc ni (limita ram a 500mb)cpudocker run --help | grep cpudocker run -d --cpuset-cpus 0-1 --name nc nidocker run -it --cpus=".1" ubuntu /bin/bash (limitar al 10%)discodocker ps -s => tamaño del disco docker images => tamaño de las imagenesdocker run --storage-opt size=10G nombre_de_la_imagenNotalos contenedores toman por defecto los recursos del host si tiene 12 de RAM utilizara los 12 de RAM lo mismo con el CPUcpu (0-3) isgnifica que tienes 4 nucleos
lab - recursos
*** lab - recursos1- lista recursos que utiliza un contenedor2- limita memoria a 500mb de un contenedor3- limita cpu de un contenedor a 2 nucleos4- limita el cpu al 10%5- ver tamaño del uso del disco6- asignar tamaño del disco al contenedor7- que pasa si no limitas los recursos de los contenedores
respuesta-recursos
*** respuestas recursos 1- docker stats nc2- docker run -d -m "500mb" --name nc ni3- docker run -d --cpuset-cpus 0-1 --name nc ni4- docker run -d --cpus="0.1" ni5- docker ps -s6- docker run -d --storage-opt size=10G ni7- utiliza el total de los recursos del host
utils
Utilscopiar archivosdocker cp ruta/origen nc:/ruta/destino (del host al contenedor)docker cp nc:/ruta/origen ruta/destino (del contenedor al host)docker cp release/. nc:ruta (/. copia todo el contenido de release )convertir un contenedor a una imagen (*)docker commit ncExistente niResultantesobre escribir el cmd de un contenedor (**)docker run -d -p 80:8080 centos python -m SimpleHTTPServer 8080Autodestruir contenedores (***)docker run --rm -ti centosNota(*)al crear una imagen con el commit si puede perder el CMD para que corra se coloca el cmd al final docker run -d ni bin/bash(*)cuando se realiza un commit lo que este en volumenes no se guradara en la imagen resultante pero si todo lo que este fuera de la carpeta de volumen(**) despues que se indica cual es la imagen que se utilizara para crear el contenedor se especifica el cmd(***) el contenedor se eliminara despues de salir de el
lab - utils
*** lab - utils 1- copia archivos del host al contenedor2- copia archivos del contenedor al host3- copia el contenido total de un archivo al contenedor4- convertir un contenedor a una imagen5- sobre escribir el CMD de un contenedort6- auto destruir contenedores7- ver logs de los contenedores8- lista todos los contenedores9- lista el ultimo contenedor creado10- ve detalles del un contenedor11- elimina todas las imagenes dangling12- acceder a un contenedor 13- acceder a un contenedor como root
respuestas-utils
*** respuestas utils1- docker cp archivo/host nc:/ruta/contenedor2- docker cp nc:archivo/contenedor ruta/host3- docker cp archivo/. nc:/ruta/contenedor4- docker commit nc ni (el cmd del primer plano puede perderse)5- docker run -d --name nc ni CMDnuevo6- docker run -rm --name nc ni7- docker logs -f nc8- docker ps -a9- docker ps -l10- docker inspect nc11- docker images -f dangling=true -q | xargs docker rmi 12- docker exec -ti nc /bin/bash13- docker exec -ti -u root nc /bin/bash
servicios
MYSQLdocker run -d --name mysql -p 3306:3306 -e "MYSQL_ROOT_PASSWORD=server" mysql:5.7mysql -u root -h IPcontenedor -pserver mysql -u root -pserver -h 127.0.0.1--port 3333 Notaip del contenedor = docker inspect-p 3333:3306 puerto del host hacia el contenedor-e "MYSQL_ROOT_PASSWORD=server" password root-e "MYSQL_DATABASE=ndb" = crea esa base de datos-e "MYSQL_USER=nu"-e "MYSQL_PASSWORD=pu"
Docker-compose
Docker-composeEs un archivo Yamltouch docker-compose.ymlEstructuraversion: "3"services:volumes:networks:*************************************************version: '3.8'services: servicio1: build: context: ./ruta_contexto dockerfile: Dockerfile container_name: nombre_contenedor1 image: nombre_imagen1:tag ports: - puerto_host1:puerto_contenedor1 volumes: - volumen_host1:volumen_contenedor1 networks: - red1 env_file: - archivo_variables1.env environment: - VARIABLE1=valor1 - VARIABLE2=valor2 restart: always depends_on: - servicio2 deploy: resources: limits: cpus: '0.5' memory: 512M reservations: cpus: '0.2' memory: 256M servicio2: container_name: nombre_contenedor2 image: nombre_imagen2:tag ports: - puerto_host2:puerto_contenedor2 volumes: - volumen_host2:volumen_contenedor2 networks: - red1 env_file: - archivo_variables2.env environment: - VARIABLE3=valor3 - VARIABLE4=valor4 restart: unless-stopped deploy: resources: limits: cpus: '1.0' memory: 1G reservations: cpus: '0.5' memory: 512Mvolumes: volumen_host1: driver: nombre_driver1 volumen_host2: driver: nombre_driver2networks: red1: driver: bridge**************************+Nota volumen_host2: driver: local, nfs,s3,azure_file,gcsel driver indica si el vlumen sera local, en red o nube deploy: resources:se utiliza deploy solo en docker-swarm si no solo resourcesrestart: alwaysno(default), on-failure[:max-retries],unless-stopped
compose-cmd
Docker compose cmdDocker-compose up -ddocker-compose -f doc.yaml up -d Docker-compose startDocker-compose restartDocker-compose buildDocker-compose logs -fDocker-compose topDocker-compose downDocker-compose stopNotadc build primero recrea las imagenes requeridas en en yml
Instalacion
desinstalacion de dockersudo docker stop $(sudo docker ps -a -q)sudo docker rm $(sudo docker ps -a -q)sudo apt-get remove docker docker-engine docker.io containerd runc*********************Centos*********************************sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine************************************************************sudo rm -rf /var/lib/dockersudo groupdel docker
Que debes saber
Si deseas aprender a trabajar con Docker, lo ideal es que comiences por los siguientes temas:1 Conceptos básicos de Docker: Esto incluye conocer qué es Docker, cómo funciona y cómo se relacionan los diferentes componentes (imágenes, contenedores, registros, Dockerfiles, etc.).2 Instalación y configuración de Docker: Debes saber cómo instalar y configurar Docker en tu sistema operativo local o en un servidor remoto.3 Creación de imágenes de Docker: Debes aprender cómo crear tus propias imágenes de Docker utilizando Dockerfiles y cómo construir y publicar imágenes en un registro.4 Gestión de contenedores: Debes conocer cómo iniciar, detener, eliminar y monitorear contenedores de Docker, así como cómo configurar la comunicación entre contenedores y con el exterior.5 Orquestación de contenedores: Debes saber cómo utilizar herramientas como Docker Compose y Kubernetes para orquestar y gestionar múltiples contenedores de Docker en un entorno de producción.6 Integración con otras herramientas: Debes aprender cómo integrar Docker con otras herramientas populares, como Jenkins, Git, Ansible y Elasticsearch.7 Seguridad y monitoreo: Debes conocer las mejores prácticas para garantizar la seguridad de los contenedores y cómo monitorear su rendimiento y estado.
all-labs
****lab - document root1- que es?2- como se busca informacion como ubicacion?3- como cambias ubicacion del document root *** lab - Dockerfile1- que es?2- que es el contexto?3- que es el .dockerignore?4- para que sirve el .dockerignore5- como se utiliza*** lab - Imagenes1- descarga una imagen oficial 2- descraga una imagen oficial con tag3- lista todas las imagenes4- crea una imagen con dockerfile5- crea una imagen de un dockerfileNombreDistinto6- ver historial de como se creo una imagen7- que es una dangling images8- listado de imagenes dangling 9- eliminar imagenes dangling***lab-volumen1- que es y para que sirven los volumenes2- cuantos tipos de volumenes hay 3- donde se guardan los volumenes si no se especifican la ruta4- que pasa si ejecutas docker rmi -fv5- crud volumenes6- asignar un vol a un contenedor*** lab - redes1- cuantos tipos de redes hay 2- cual es la red, inteface y gateway por defecto de un contenedor3- crud network 4- cmd para crearsubnet, ip manual y gateway5- conectar o desconectar un contenedor a una red distinta*** lab - recursos1- lista recursos que utiliza un contenedor2- limita memoria a 500mb de un contenedor3- limita cpu de un contenedor a 2 nucleos4- limita el cpu al 10%5- ver tamaño del uso del disco6- asignar tamaño del disco al contenedor7- que pasa si no limitas los recursos de los contenedores*** lab - utils 1- copia archivos del host al contenedor2- copia archivos del contenedor al host3- copia el contenido total de un archivo al contenedor4- convertir un contenedor a una imagen5- sobre escribir el CMD de un contenedort6- auto destruir contenedores7- ver logs de los contenedores8- lista todos los contenedores9- lista el ultimo contenedor creado10- ve detalles del un contenedor11- elimina todas las imagenes dangling12- acceder a un contenedor 13- acceder a un contenedor como root
respuestas-all
document root1- es un sistema de archivos que se crea al instalar docker2- docker info | grep -i root3- a) asignarle un ubicacion en el host => opt/docker b) mover el documento hacia su nueva ubicacion => mv var/lib/docker opt/docker c) modificar la configuracion en el docker.service => vim /lib/systemd/system/docker => ExecStart=/usr/bin/dockerd -H fd:// --data-root /opt/docker d) aplicar los cambios => systemct daemon-reload Dockerfile1- es un documento que sirve para crear o persolizar images2- es el directorio donde se encuentra el Dockerfile3- es un archivo oculto ubicado en el mismo contexto del Dockerfile 4- para que al momento de crear la imagen no se consideren archivos o carpetas en el contexto5- touch .dockerignore => vim .dockerignore => nombreCarpetas del contexro a ignorar ***Repuesta-Imagenes1- docker pull mongo2- docker pull myslq:5.73- docker images4- docker build -t ni .5- docker build -t ni -f dockerfileNombreDistinto6- docker history -H ni7- son imagenes huerfanas que no se utilizan8- docker images -f dangling=true9- docker images -f dangling=true -q | xargs docker rmi ***respuestas volumenes1- son carpetas fuera del contenedor que sirevn para persistir la data2- anonimos- nombrados - dangling3- en la carpeta volumen de document root4- se eliminas las imagenes y los volumenes anonimos5- docker volume [create rm ls] nv6- docker run -d --name nc -v nv:ruta/dentroContenedor nirespuestas - redes1- bridge - host - none2- red=bridge int=docker0 gateway=docker03- docker network [create rm ls inspect ] nr 4- docker run -d --network -d bridge nr --subnet 172.16.0.0 --ip 172.16.0.50 --gateway 172.16.0.1 ni5- docker network connect nr nc [disconnect]*** respuestas recursos 1- docker stats nc2- docker run -d -m "500mb" --name nc ni3- docker run -d --cpuset-cpus 0-1 --name nc ni4- docker run -d --cpus="0.1" ni5- docker ps -s6- docker run -d --storage-opt size=10G ni7- utiliza el total de los recursos del host*** respuestas utils1- docker cp archivo/host nc:/ruta/contenedor2- docker cp nc:archivo/contenedor ruta/host3- docker cp archivo/. nc:/ruta/contenedor4- docker commit nc ni (el cmd del primer plano puede perderse)5- docker run -d --name nc ni CMDnuevo6- docker run -rm --name nc ni7- docker logs -f nc8- docker ps -a9- docker ps -l10- docker inspect nc11- docker images -f dangling=true -q | xargs docker rmi 12- docker exec -ti nc /bin/bash13- docker exec -ti -u root nc /bin/bash
CCNA
Teoria
conceptos
The Security Threat LandscapeThreat: amenaza potencialVulnerability: debiidad del sistemaExploit: es el uso de esa vulnerabilidad para dañar Risk: es una probablilidad de ataque exitosoMitigation: tecnicas para reducir los dañosMalwarees un sofware malicioso como:Viruses: Requires human action to spread de una PC a otraWorms: virus que se propagan en un sitema por si mismosTrojan horses: parecen buenos pero instalan programasRansomware: encrypta data y pagas por una llave para vertipos de hackersScript Kiddies: low skilled attackers que compran sofwares de hackers Targeted Attacks: Skilled attackers que apuntan a objetivos especificos
Ataques comunes
Ataques comunesReconnaissance : colectar info de la victimaSocial Engineering: manipular pretender ser alguien mas para colocar info personal Phishing: pretendiendo ser una empresa reputable get individuals to reveal personalData Exfiltration: sacar info de una ORG sin autorizacionDoS Denial of Service: hacer caer es sitema puede ser bloqueado cuando el ataque viene de una solo pcDDoS Distributed Denial of Service: cuando el hacker utiliza diferentes pc que infecto como fuerza de ataque DoS dificil bloquear todoas las IPs de ataqueSpoofing: fakes their identity,IP,MAC, etcMan In The Middle Attacks: attackers se mete entre host legitimos y puede leer y modificar dataPassword Attacks:Guessing,Brute Force,Dictionary attacksPacket Sniffers: WireShark read the sent and received packets
firewalls
firewallspermite o niega el trafico de acuerdo a reglasSTATE FULL firewall significa que tiene una tabla de conexion entre los dispositivosreturn traffic o respuesta esta permitida por default debido a que es un statefull firewall esto no ocurre con ACL que se tien que especificar que los retornos a una peticion sean permitidosNext generation firewalls usan aplicaciones se puede configurar un router como statefull firewalltanto los ACL y FW son complementarios por lo general los FW son utilizados para amenazas exteriores mas peligrosas y los ACLs para seguridad interna de la redPacket fiterslos ACL son packet filters y solo permiten comubicacion de una direccion y no son statefull si solo aplicas ACL a una salida y no a una entrada la respuesta sera permitida, pero si aplicas ACL tanto a la salida como entrada se tiene que especifiicar que esta permitido
Criptografia
Criptografiatransforma mensajes legibles en no legeibles que sirve para mandar data sensible en una red insegura
SSL, TLS and HTTPS
SSL, TLS and HTTPSSSL secure socket layer es deprecatedTLS Transport layer security sucesor de SSLsirven para navegar seguros en internetHTTPScomo funciona amazon.com genera una llave publica y privada le manda un certificado request con a llave publica a una autoridad certificadora ACla autoridad constata que eres amazon realmente quien manda de ser correcto te regresa tu certificado firmado por ellos cuando abres amazon.com este le manda al browser su certificado publico firmado por AC y el browser en tu PC valida esa firma de AC (puede ser visto en security del browser)Luego tu PC le manda a mazon un mensaje ramdom para que desemcripte con su llave privada para autenticar que es el verdadero amazon.com y te devuelve el mensaje que se desemcripta en tu PC se autentica tu PC generara un shared key y se la mandara con la llave publica de amazon.com este lo desencriptara con la su privada y tendra tambien una shared key ahora ambos tiene una misma shared key apartir de ahora info como tarjetas de credito se encriptaran utilizando encriptao asimetrico
VPN
Site-to-Site VPNs
Site-to-Site VPNsutiliza encriptacion simetrica con los algoritmos de DES, DES y AES (mas usado)se configuran en ambos lados en el router o firewall
Client - site VPN
Client - site VPNse configura en el firewallSplit Tunneling es cuando en el tunel hay una via para conexion directa a la red interna y otro via para conexionbes al internetfull tunneling necesarimente pasas por el firewall de la empresa para conectarte a internet y a la red interna esto se usa para mayor seguridad
Defensas
network architecture
TIPOS DE NETWORKS
LATE -BROADCAST - COLLISION DOMAIN
BROADCAST DOMAINesta limitado solo por los routers todo lo que haya ente routers es un dominio de broadcastCOLLISION DOMAINesta limitado entre routers y switches no hubs en cada puerto utilizado enun SW se le denomina dominio de collisionhub es un dispositivo capa 1LATE COLLISIONes colision que ocurre despues de 512 bits de frame que fue transmitido tambien por que el cabel ethernet es my largo mas de 91 metros
OSI MODEL
capas del hostapplicationpresentationsessiontransportcapas de rednetworkdata linkphysica
TCP/IP MODEL
TCP/IPfue implementado en la vida real y es el mas usadoLayer 4 application => application, presentacion, sessionLayer 3 transporte => transporte(4 - osi)Layer 2 internet => network (3 osi)Layer 1 network => fisica, data link
TOPOLOGIAS
FISICAS
cableadas - tiposbus - nose usaring - no se usastart - la mas utilizada y economica todas a un router o switchmesh todos los equipos conectados unos a otros existen 2 tipos full y partial meshwireless networksincluye todas las tipologias cableadas (el mesh es el mas recomendable en wireless)ad hoc - sin WAP ejemplo smart watch to celularinfraestructure - tiene un WAP
LOGICAS
Es la manera de como la data se transmite por la redejemplo los sgtes protocolos802.3 ethernet csma/CD (cableado)802.11 wireless CSMA/CA (wireless)
DISPOSITIVOS
OTROS DISPOSITIVOS.NICHUBSWAPWIRELESS RANGER EXTENDEDMODENSOHOMEDIA CONVERTERS
RESUMENES GENERALES
mapear redes
IT
Pfsense
PfsenseInstalacion en virtualboxtype BSDversion FreeBSDBSD es el acrónimo de Berkeley Software Distribution. Se refiere a una familia de sistemas operativos derivados del sistema operativo Unix desarrollados en la Universidad de California, en Berkeley.Recomendacioneshabilitar ssh => /system/advane
virtualbox
Virtualboxpara que la pantalla sea completa se instala en la maquina virtual sudo apt install virtualbox-guest-x11 -y