GNU/Linux >> Tutoriales Linux >  >> Linux

Gestión avanzada de paquetes en Kali Linux

La herramienta de paquete avanzado (APT) es la forma en que los programas, las bibliotecas, la documentación e incluso el kernel mismo se instalan y administran en Kali y otros derivados basados ​​en Debian. APT a menudo funciona tan bien que muchos usuarios no le prestan ninguna atención en particular, excepto quizás para buscar e instalar programas y (con suerte) actualizar su sistema con regularidad.

Para la mayoría de los usuarios estándar, hacer uso de APT de esta manera es perfectamente normal, pero nos gusta pensar que las personas que usan Kali Linux no son usuarios estándar (en el buen sentido) y, por lo tanto, dedicamos esta publicación a decirle cómo puede obtener un mejor uso. de APT y cómo aprovechar el amplio ecosistema de paquetes que están disponibles, mientras mantiene su sistema Kali estable y feliz.

Muchas personas le dirán que no debe confiar en un administrador de paquetes y, en cambio, debe compilar todo desde cero porque aprenderá más de esa manera. Si bien es cierto que aprenderá mucho, especialmente al comenzar, construir todo a mano se convertirá rápidamente en un tedio cuando podría pasar su tiempo pirateando o aprendiendo algo nuevo, preferiblemente ambos.

En esta publicación, le mostraremos cómo puede agregar de manera segura repositorios de paquetes adicionales a su instalación de Kali, cómo actualizarlos y degradarlos, y cómo garantizar que todos estos repositorios vivan en armonía. APT es muy poderoso y evaluará los paquetes disponibles de todas las fuentes como un todo cuando formule sus soluciones.

Agregar fuentes de paquetes a Kali Linux

Si quiere hacer feliz a su futuro yo, no debe editar directamente /etc/apt/sources.list directamente. Para cada nuevo repositorio de paquetes que agregue a su sistema, cree un nuevo archivo con un nombre descriptivo (como debian-unstable.list ) en /etc/apt/sources.list.d/ . Dejando la sources.list original archivo intacto, si Kali necesita actualizarlo, no lo interrumpirá durante la actualización y le preguntará qué versión del archivo debe conservar.

En esta publicación, agregaremos el repositorio Kali Bleeding-Edge y los repositorios Debian Unstable y Experimental.

El repositorio de kali-bleeding-edge

El repositorio kali-bleeding-edge contiene una serie de herramientas que son muy populares y cambian con mucha frecuencia (incluso a diario). Sería poco práctico y llevaría mucho tiempo crear y probar manualmente los paquetes actualizados para que los paquetes en este repositorio se generen automáticamente cada vez que cambie la fuente ascendente. En el lado positivo, significa que nunca estará más de 24 horas por detrás del proyecto original, pero en el lado negativo, estos paquetes no se prueban, por lo que debe tener en cuenta que los paquetes en este repositorio pueden romperse de vez en cuando.

Puede agregar el repositorio y actualizar la lista de paquetes disponibles de la siguiente manera.

echo "deb http://http.kali.org/kali kali-bleeding-edge main contrib non-free" > /etc/apt/sources.list.d/bleeding-edge.list
apt update

Para instalar un paquete desde kali-bleeding-edge, debe agregar el nombre del repositorio al nombre del paquete:

apt install dnsrecon/kali-bleeding-edge

Afortunadamente, APT facilita volver a la versión de Kali-Rolling de un paquete en particular en cualquier momento, por lo que no hay necesidad de temer a los paquetes en el repositorio de Kali-Bleeding-Edge. Si encuentra que un paquete está roto en kali-bleeding-edge, puede volver a la versión kali-rolling de la misma manera:

apt install dnsrecon/kali-rolling

Los repositorios inestable y experimental de Debian

Kali Linux es un derivado de Debian Testing, que tiene un software más actualizado que Debian Stable. Para software aún más reciente, existe la distribución Debian Unstable, que es una versión de desarrollo continuo de Debian, que contiene los paquetes más recientes. Cuando encuentra un error en un paquete de Debian, puede haber una versión corregida en el repositorio de Debian Unstable, por lo que es una buena idea agregarlo a su sistema Kali. Al igual que con kali-bleeding-edge, los paquetes en Unstable pueden romperse de vez en cuando.

Debian Experimental es otro repositorio que contiene paquetes que están en desarrollo. Los paquetes en este repositorio son muy actuales pero también pueden tener muchos errores, más que kali-bleeding-edge o Debian Unstable. APT solo instalará paquetes de este repositorio si los solicita explícitamente y siempre puede cambiar a una versión anterior si las cosas no funcionan.

echo "deb http://ftp.debian.org/debian unstable main contrib non-free" > /etc/apt/sources.list.d/debian.list
echo "deb http://deb.debian.org/debian experimental main" >> /etc/apt/sources.list.d/debian.list
apt update

Al igual que con los paquetes kali-bleeding-edge, si desea instalar paquetes inestables o experimentales, agregue el nombre del repositorio al final del nombre del paquete como se muestra a continuación.

[email protected]:~# apt install socat/experimental netperf/unstable
Reading package lists... Done
Building dependency tree
Reading state information... Done
Selected version '2.0.0~beta9-1' (Debian:experimental [amd64]) for 'socat'
Selected version '2.6.0-2.1' (kali-rolling, Debian:unstable [amd64]) for 'netperf'
The following NEW packages will be installed:
  netperf
The following packages will be upgraded:
  socat
1 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 909 kB of archives.
After this operation, 1,127 kB of additional disk space will be used.
Get:1 http://kali.mirror.globo.tech/kali kali-rolling/non-free amd64 netperf amd64 2.6.0-2.1 [544 kB]
Get:2 http://deb.debian.org/debian experimental/main amd64 socat amd64 2.0.0~beta9-1 [365 kB]
Fetched 909 kB in 1s (555 kB/s)
Reading changelogs... Done
apt-listchanges: Mailing root: apt-listchanges: news for kali
Selecting previously unselected package netperf.
(Reading database ... 287650 files and directories currently installed.)
Preparing to unpack .../netperf_2.6.0-2.1_amd64.deb ...
Unpacking netperf (2.6.0-2.1) ...
Preparing to unpack .../socat_2.0.0~beta9-1_amd64.deb ...
Unpacking socat (2.0.0~beta9-1) over (1.7.3.2-1) ...
Setting up socat (2.0.0~beta9-1) ...
Processing triggers for systemd (234-3) ...
Processing triggers for man-db (2.7.6.1-2) ...
Setting up netperf (2.6.0-2.1) ...
update-rc.d: We have no instructions for the netperf init script.
update-rc.d: It looks like a network service, we disable it.
Processing triggers for systemd (234-3) ...

Determinación de las prioridades del paquete

Para determinar qué paquetes se instalan, APT tiene prioridades asignado para todas las fuentes de paquetes, teniendo prioridad el número de mayor prioridad. Un paquete con una prioridad de 0 nunca se instalará y un paquete con una prioridad superior a 1000 siempre se instalará, incluso si eso significa degradar el paquete.

Todo esto está muy bien para APT, pero ¿cómo puede usted, el usuario, ver cuál es la prioridad de un paquete determinado? Ingrese el comando poco conocido 'apt-cache' y su opción de 'política', que muestra todos sus repositorios configurados y sus prioridades.

[email protected]:~# apt-cache policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
   1 http://deb.debian.org/debian experimental/main amd64 Packages
     release o=Debian,a=experimental,n=experimental,l=Debian,c=main,b=amd64
     origin deb.debian.org
 500 http://ftp.debian.org/debian unstable/non-free amd64 Packages
     release o=Debian,a=unstable,n=sid,l=Debian,c=non-free,b=amd64
     origin ftp.debian.org
 500 http://ftp.debian.org/debian unstable/contrib amd64 Packages
     release o=Debian,a=unstable,n=sid,l=Debian,c=contrib,b=amd64
     origin ftp.debian.org
 500 http://ftp.debian.org/debian unstable/main amd64 Packages
     release o=Debian,a=unstable,n=sid,l=Debian,c=main,b=amd64
     origin ftp.debian.org
 100 http://http.kali.org/kali kali-bleeding-edge/main amd64 Packages
     release o=Kali,n=kali-bleeding-edge,c=main,b=amd64
     origin http.kali.org
 990 http://http.kali.org/kali kali-rolling/contrib amd64 Packages
     release o=Kali,a=kali-rolling,n=kali-rolling,c=contrib,b=amd64
     origin http.kali.org
 990 http://http.kali.org/kali kali-rolling/non-free amd64 Packages
     release o=Kali,a=kali-rolling,n=kali-rolling,c=non-free,b=amd64
     origin http.kali.org
 990 http://http.kali.org/kali kali-rolling/main amd64 Packages
     release o=Kali,a=kali-rolling,n=kali-rolling,c=main,b=amd64
     origin http.kali.org
Pinned packages:

Notará que kali-rolling, como distribución predeterminada, tiene la prioridad más alta en 990, lo que significa que sus paquetes tienen prioridad sobre todos los demás (que es lo que desea como usuario de Kali), seguido de Debian unstable en 500, kali-bleeding -edge en 100 y, por último, experimental, con una prioridad baja de 1. Para ver cómo se aplican estas prioridades a un paquete determinado, eche un vistazo a sqlmap.

[email protected]:~# apt-cache policy sqlmap
sqlmap:
  Installed: 1.1.9-1
  Candidate: 1.1.9-1
  Version table:
     1.1.9+0~git1505273832.7de63a-1 100
        100 http://http.kali.org/kali kali-bleeding-edge/main amd64 Packages
 *** 1.1.9-1 990
        990 http://http.kali.org/kali kali-rolling/main amd64 Packages
        500 http://ftp.debian.org/debian unstable/main amd64 Packages
        100 /var/lib/dpkg/status

Aunque la versión de sqlmap en kali-bleeding-edge es más nueva, no se instalará porque solo tiene una prioridad de 100, versus la versión instalada, que tiene una prioridad de 990. Es por esta razón que cuando desee para instalar un paquete desde un repositorio de paquetes diferente, debe solicitarse explícitamente.

[email protected]:~# apt install sqlmap/kali-bleeding-edge
Reading package lists... Done
Building dependency tree
Reading state information... Done
Selected version '1.1.9+0~git1505273832.7de63a-1' (http.kali.org [all]) for 'sqlmap'
The following packages will be upgraded:
  sqlmap
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 6,789 kB of archives.
After this operation, 2,048 B of additional disk space will be used.
Get:1 http://kali.mirror.globo.tech/kali kali-bleeding-edge/main amd64 sqlmap all 1.1.9+0~git1505273832.7de63a-1 [6,789 kB]
Fetched 6,789 kB in 5s (1,192 kB/s)
Reading changelogs... Done
(Reading database ... 287587 files and directories currently installed.)
Preparing to unpack .../sqlmap_1.1.9+0~git1505273832.7de63a-1_all.deb ...
Unpacking sqlmap (1.1.9+0~git1505273832.7de63a-1) over (1.1.9-1) ...
Setting up sqlmap (1.1.9+0~git1505273832.7de63a-1) ...
Processing triggers for man-db (2.7.6.1-2) ...

Configuración APT

Configurando la distribución predeterminada

Ahora que ha agregado algunos repositorios adicionales a su sistema, querrá comenzar a explorar e instalar nuevos paquetes, pero antes de hacerlo, es una buena idea decirle a APT cuál es su distribución predeterminada es, que para los usuarios de Kali Linux, es "kali-rolling". De esta forma, su sistema no se actualizará a otra distribución sin su consentimiento. Configure su distribución predeterminada agregando “APT::Default-Release “kali-rolling”;” a /etc/apt/apt.conf.d/local .

[email protected]:~# cat /etc/apt/apt.conf.d/local
APT::Default-Release "kali-rolling";

Con su distribución predeterminada configurada, cada vez que ejecute 'apt full-upgrade', se aplicará la actualización a kali-rolling, lo que ayudará a mantener estable su sistema.

Reducción de las solicitudes de actualización

Si usa cualquier derivado de Debian durante una cantidad significativa de tiempo, se encontrará con un aviso mientras ejecuta 'apt upgrade' que le pregunta sobre un archivo de configuración y si desea mantener la versión local, usar la nueva versión o compararlos. La mayoría de las veces, se encontrará aceptando el valor predeterminado, lo que hará que estas interrupciones sean un desperdicio.

Puede evitar estas indicaciones actualizando su /etc/apt/apt.conf.d/local archivo con ‘DPkg::options { “–force-confdef”; “–force-confold”; }' Como se muestra abajo. Esta línea le dice a APT que intente elegir por sí mismo si los archivos no han cambiado (–force-confdef) y si los archivos son diferentes, mantenga la versión existente (–force-confold).

[email protected]:~# cat /etc/apt/apt.conf.d/local
DPkg::options { "--force-confdef"; "--force-confold"; }
APT::Default-Release "kali-rolling";

Fijación de versiones de paquetes

Ocasionalmente, encontrará alguna aplicación que necesita una versión específica de un paquete en particular y no funcionará con ninguna otra. Otras veces, la actualización de un paquete puede afectar negativamente a otras herramientas. Esto nos sucedió recientemente con una actualización del paquete devscripts, que nos impedía crear paquetes de Kali.

Afortunadamente, APT le permite fijar un paquete a una versión particular estableciendo su prioridad en 1001 en /etc/apt/preferences . Por ejemplo, para decirle a APT que mantenga el paquete devscripts en la versión 2.16.x, agregaría lo siguiente.

Package: devscripts
Pin: version 2.16.*
Pin-Priority: 1001

Recursos Adicionales

En esta publicación, solo hemos podido rascar la superficie de cómo puede extender APT mucho más allá del ecosistema predeterminado de Kali o Debian. Los algoritmos de resolución son muy efectivos y es raro encontrar problemas, por lo que no debe temer explorar otros repositorios. Para obtener más información sobre APT y cómo adaptarlo a su voluntad, le recomendamos que consulte Kali Linux Revealed y el Manual del administrador de Debian, que contienen una gran cantidad de información, consejos y trucos.


Linux
  1. Gestión de paquetes de Linux con apt

  2. Uso de AppImage para la administración de paquetes de Linux

  3. Cómo usar el administrador de paquetes XBPS en Void Linux

  4. Linux – ¿Kali Rolling Vs Repositorio Kali Sana?

  5. Linux – ¿Instalar encabezados en Kali?

Kali Linux contra Parrot

Kali Linux – No se pudo obtener InRelease – Corrección del repositorio

Cómo agregar un repositorio a Debian

Cómo convertir paquetes de Linux con Alien

Gestión de paquetes de Linux con YUM y RPM

Cómo enumerar los paquetes instalados en Linux mediante la administración de paquetes