diff --git a/docs/gemstones/markdown-demo-v2.pl.md b/docs/gemstones/markdown-demo-v2.pl.md new file mode 100644 index 0000000000..1d5e2c7bc7 --- /dev/null +++ b/docs/gemstones/markdown-demo-v2.pl.md @@ -0,0 +1,58 @@ +--- +title: Proste Demo Markdown 2 +author: Einstein +contributors: Dr Ben Dover, Słodka Gypsy +tested with: 8.5 +tags: + - próbka + - korona +--- + +# Przegląd + +Jak można powiedzieć poprzez czytanie, jest to całkiem głupie przykład przeznaczony do testowania pewnych problemów z tłumaczeniami, które mamy do czynienia. To przyjemne pisać! + +Ten przewodnik demos popularnych tagów Markdown używanych na [https://docs.rockylinux.org](https://docs.rockylinux.org) + +## Demo + +> Jest to przykład cytatu. Niepoprawnie sformatowane. + +Czasami zobaczysz takie rzeczy jak _to_.. + +A może trochę **pogrubionej twarzy** + +W większości przypadków jest to prosty tekst. + +Czasami musisz wyświetlić polecenie `` + +Lub wiele poleceń: + +``` +dnf install my_stapler +dnf update my_pencil +systemctl enable my_stapler +``` + +W innych przypadkach potrzebujesz list pociskowych lub ponumerowanych: + +- Wierzę, że masz mój zszywacz +- Jeśli nie, proszę przynajmniej zwrócić mój ołówek + +1. Oto twój zepsuty ołówek +2. Ostrożność jest bezużyteczna + +I może być potrzebny admonit: + +!!! TIP + + Ołówki i zszywki są naprawdę starością. + +Więcej razy niż nie, gdy komenda ma wiele opcji, lub musisz wyświetlić specyfikacje, możesz użyć tabeli do identyfikacji rzeczy: + +| Narzędzie | Użycie | Informacje dodatkowe | +| --------- | --------------------------------------------------- | -------------------------------------------------------------- | +| ołówek | pisanie lub drukowanie | często zastępowane długopisem | +| Długopis | pisanie lub drukowanie | często zastępowany rysikiem | +| stylus | pisanie lub drukowanie na urządzeniu elektronicznym | czasami zastąpione klawiaturą | +| keyboard | pisanie lub drukowanie na urządzeniu elektronicznym | nigdy nie zamieniano - używane do czasu wyczerpania pożywienia | diff --git a/docs/guides/contribute/rockydocs_web_dev.es.md b/docs/guides/contribute/rockydocs_web_dev.es.md new file mode 100644 index 0000000000..63faea8d69 --- /dev/null +++ b/docs/guides/contribute/rockydocs_web_dev.es.md @@ -0,0 +1,104 @@ +--- +title: Documentación local - Docker +author: Wale Soyinka +contributors: Steven Spencer +update: 27-Feb-2022 +--- + +# Ejecutar una copia local del sitio web docs.rockylinux.org para el desarrollo web o para los creadores de contenido + +Este documento explica cómo recrear y ejecutar una copia local de todo el sitio web docs.rockylinux.org en su máquina local. **Es un trabajo en curso.** + +La ejecución de una copia local del sitio web de documentación puede ser útil en los siguientes casos: + +* Está interesado en conocer y contribuir a los aspectos de desarrollo web del sitio docs.rockylinux.org. +* Es un autor y le gustaría ver cómo se verán sus documentos en el sitio web de docs antes de contribuir con los mismos. +* Es un desarrollador web que quiere contribuir o ayudar a mantener el sitio web docs.rockylinux.org. + + +### Algunos apuntes: + +* Las instrucciones de esta guía **NO** son un requisito previo para los autores/colaboradores de la documentación de Rocky. +* Todo el entorno se ejecuta en un contenedor Docker, por lo que necesitará un motor Docker en su máquina local. +* El contenedor está construido sobre la imagen Docker oficial de RockyLinux disponible aquí https://hub.docker.com/r/rockylinux/rockylinux. +* El contenedor mantiene el contenido de la documentación (guías, libros, imágenes y demás) separado del motor web (mkdocs). +* El contenedor inicia un servidor web local escuchando en el puerto 8000. Y el puerto 8000 será reenviado al host Docker. + + +## Crear el entorno con el contenido + +1. Cambie el directorio de trabajo actual de su sistema por la carpeta en la que pretende escribir la documentación. En el resto de este documento nos referiremos a este directorio como `$ROCKYDOCS`. Para esta demostración, en nuestro sistema, `$ROCKYDOCS` apunta a `~/projects/rockydocs`. + +Cree $ROCKYDOCS si aún no existe y luego escriba: + +``` +cd $ROCKYDOCS +``` + +2. Asegúrese que tiene `git` instalado (`dnf -y install git`). Mientras se encuentre en la carpeta $ROCKYDOCS utilice git para clonar el repo de contenido de la documentación oficial de Rocky. Teclee: + +``` +git clone https://github.com/rocky-linux/documentation.git +``` + +Ahora tendrá una nueva carpeta `$ROCKYDOCS/documentación`. Esta carpeta es un repositorio git y está bajo el control de git. + + +## Crear e iniciar el entorno de desarrollo web RockyDocs + +3. Asegúrese de que tiene Docker funcionando en su máquina local (puede comprobarlo con `systemctl`) + +4. Desde un terminal teclee: + +``` +docker pull wsoyinka/rockydocs:latest +``` + +5. Compruebe que la imagen se ha descargado correctamente. Teclee: + +``` +docker image ls +``` + +## Iniciar el contenedor RockyDocs + +1. Inicie un contenedor desde la imagen de rockydocs. Teclee: + +``` +docker run -it --name rockydoc --rm \ + -p 8000:8000 \ + --mount type=bind,source="$(pwd)"/documentation,target=/documentation \ + wsoyinka/rockydocs:latest + +``` + + +Alternativamente si lo prefiere y si tiene `docker-compose` instalado, puede crear un archivo llamado `docker-compose.yml` con el siguiente contenido: + +``` +version: "3.9" +services: + rockydocs: + image: wsoyinka/rockydocs:latest + volumes: + - type: bind + source: ./documentation + target: /documentation + container_name: rocky + ports: + - "8000:8000" + +``` + +Guarde el archivo con el nombre `docker-compose.yml` en su directorio de trabajo $ROCKYDOCS. Y arranque el servicio/contenedor ejecutando: + +``` +docker-compose up +``` + + +## Ver el sitio web local docs.rockylinux.org + +Con el contenedor en funcionamiento, ahora debería poder dirigir su navegador web a la siguiente URL para ver su copia local del sitio: + +http://localhost:8000 diff --git a/docs/guides/desktop/mate_installation.es.md b/docs/guides/desktop/mate_installation.es.md new file mode 100644 index 0000000000..224bba0c9e --- /dev/null +++ b/docs/guides/desktop/mate_installation.es.md @@ -0,0 +1,94 @@ +--- +title: Entorno de escritorio MATE +author: lillollo +contributors: Steven Spencer +tested with: 8.5 +tags: + - mate + - escritorio +--- + +# Entorno de escritorio MATE + +El entorno de escritorio MATE fue creado como una bifurcación para continuar GNOME2 después de las críticas negativas que recibió GNOME3 tras su presentación. MATE tiene un conjunto leal de seguidores, que lo instalan inmediatamente en su sistema operativo favorito. MATE se puede instalar en muchos de los diferentes sabores de Linux, incluyendo Rocky Linux. + +Este procedimiento está diseñado para que usted pueda trabajar con Rocky Linux utilizando MATE. + +!!! Warning + + MATE no proviene de los repositorios de Rocky Linux. No está soportado oficialmente por Rocky Linux. Para la gran mayoría de los usuarios, este procedimiento funcionará tal y como se espera, si tiene problemas, por favor recuerde que los desarrolladores de Rocky Linux y el equipo de pruebas NO trabajarán en ningún error o problema. Sile gusta MATE y lo quiere con todas tus fuerzas, entonces solucione los problemas encontrados y arregle lo que sea necesario. Si encuentra algo que cree que debería incluirse en este procedimiento para ayudar a otros usuarios, suba un cambio a este documento. + +## Requisitos previos + +* Un ordenador con una pantalla y el resto de periféricos necesarios, preferiblemente con Rocky Linux ya instalado. + +## Instalar Rocky Linux Minimal + +Al instalar Rocky Linux, utilizamos los siguientes conjuntos de paquetes: + +* Minimal +* Standard + +## Habilitar los repositorios + +Necesitamos el repositorio no oficial para MATE. Puede encontrar más información sobre ese repositorio aquí: [Stenstorp/MATE](https://copr.fedorainfracloud.org/coprs/stenstorp/MATE/) + +Active este repositorio tecleando el siguiente comando: + +`dnf copr enable stenstorp/MATE` + +!!! Warning + + El sistema de construcción `copr` crea un repositorio que funciona para instalar `mate` y `lightdm`, recuerde que estos repositorios no son mantenidos por la comunidad Rocky Linux. ¡Utilícelos bajo su cuenta y riesgo! + +Se mostrará un mensaje de advertencia acerca del repositorio, pero puede continuar adelante y activarlo presionando la tecla `Y` para permitir su activación. + +Tal y como se indica en el enlace anterior, también necesita los repositorios Powertools y EPEL. Continue y activelos mediante el comando: + +`sudo dnf config-manager --set-enabled powertools` + +`sudo dnf install epel-release` + +Y responda 'Y' para instalar EPEL. + +También necesitamos habilitar el repositorio de Stenstorp Lightdm, así que procedemos a habilitarlo. Puede encontrar más información sobre este repositorio haciendo clic en el siguiente enlace: [Stenstorp/Lighdm](https://copr.fedorainfracloud.org/coprs/stenstorp/lightdm/) + +Para habilitar ese repositorio, escriba el siguiente comando: + +`sudo dnf copr enable stenstorp/lightdm` + +De nuevo, se le mostrará un mensaje de advertencia sobre el repositorio. Puede continuar y responder `Y` a la petición. + +Continue y ejecute el comando `dnf update` para asegurarse de que todos los repositorios habilitados se pueden leer en el sistema. + +## Instalar paquetes + +Lo siguiente que necesitamos son muchos paquetes. Puede instalarlos copiando y pegando el siguiente texto en la línea de comandos de su máquina: + +`sudo dnf install NetworkManager-adsl NetworkManager-bluetooth NetworkManager-libreswan-gnome NetworkManager-openvpn-gnome NetworkManager-ovs NetworkManager-ppp NetworkManager-team NetworkManager-wifi NetworkManager-wwan abrt-desktop abrt-java-connector adwaita-gtk2-theme alsa-plugins-pulseaudio atril atril-caja atril-thumbnailer caja caja-actions caja-image-converter caja-open-terminal caja-sendto caja-wallpaper caja-xattr-tags dconf-editor engrampa eom firewall-config gnome-disk-utility gnome-epub-thumbnailer gstreamer1-plugins-ugly-free gtk2-engines gucharmap gvfs-afc gvfs-afp gvfs-archive gvfs-fuse gvfs-gphoto2 gvfs-mtp gvfs-smb initial-setup-gui libmatekbd libmatemixer libmateweather libsecret lm_sensors marco mate-applets mate-backgrounds mate-calc mate-control-center mate-desktop mate-dictionary mate-disk-usage-analyzer mate-icon-theme mate-media mate-menus mate-menus-preferences-category-menu mate-notification-daemon mate-panel mate-polkit mate-power-manager mate-screensaver mate-screenshot mate-search-tool mate-session-manager mate-settings-daemon mate-system-log mate-system-monitor mate-terminal mate-themes mate-user-admin mate-user-guide mozo network-manager-applet nm-connection-editor p7zip p7zip-plugins pluma seahorse seahorse-caja xdg-user-dirs-gtk brisk-menu` + +Esto instalará los paquetes necesarios además de todas las dependencias requeridas. + +Seguimos adelante y procedemos a instalar también el paquete lightdm-gtk: + +`sudo dnf install lightdm-gtk` + +## Últimos pasos + +Ahora que tenemos todo lo que necesitamos instalado, lo siguiente que necesitamos hacer es establecer la instalación mínima para poder ejecutar la interfaz de usuario gráfica (GUI). Podemos hacer esto tecleando el siguiente comando: + +`sudo systemctl set-default graphical.target` + +Ahora cruce los dedos cruzados y reinicie: + +`sudo reboot` + +A continuación, haga clic en la pantalla sobre su nombre de usuario, pero antes de introducir su contraseña e iniciar la sesión, haga clic sobre el icono con forma de engranaje situado a la izquierda de la opción "Iniciar sesión". Seleccione "MATE" entre las opciones de escritorio disponibles y luego introduzca su contraseña e inicie sesión. Los siguientes inicios de sesión recordarán la elección realizada. + +## Conclusión + +Algunas personas no están satisfechas con las nuevas implementaciones de GNOME o simplemente prefieren el aspecto antiguo de GNOME 2. Para esas personas, instalar MATE en Rocky Linux proporcionará una alternativa agradable y estable. + +!!! attention + + Después de más pruebas, la selección de escritorio **NOT** permanece, aunque MATE permanezca seleccionado. Los intentos de inicio de sesión producen un retorno a la pantalla de inicio de sesión. Para iniciar sesión en MATE, debe seleccionar MATE de nuevo, aunque ya se mostrará como seleccionado. Por eso la advertencia está al principio de este procedimiento. Por favor, utilice esta guía bajo su propio riesgo. Si descubre una solución que pueda ayudar a otros usuarios a seguir utilizando MATE con Rocky Linux, por favor de a conocer dicha solución. diff --git a/docs/guides/desktop/xfce_installation.es.md b/docs/guides/desktop/xfce_installation.es.md new file mode 100644 index 0000000000..e531c97fa2 --- /dev/null +++ b/docs/guides/desktop/xfce_installation.es.md @@ -0,0 +1,107 @@ +# Entorno de escritorio XFCE + +El entorno de escritorio XFCE fue creado como una bifurcación de Common Desktop Environmentn (CDE). Xfce encarna la filosofía tradicional de Unix en relación a la modularidad y usabilidad. XFCE se puede instalar en casi cualquier versión de Linux, incluyendo Rocky Linux. + +Este procedimiento está diseñado para que pueda trabajar con Rocky Linux utilizando XFCE. + +## Requisitos previos + +* Una estación de trabajo o un servidor, preferiblemente con Rocky Linux ya instalado. +* Debe utilizar el usuario root o escribir `sudo` delante de todos los comandos que introduzca en el terminal. + +## Instalar Rocky Linux Minimal + +Al instalar Rocky Linux, utilizamos los siguientes conjuntos de paquetes: + +* Minimal +* Standard + +## Actualización del sistema + +Primero, ejecute el comando de actualización del servidor para permitir que el sistema reconstruya la caché de los repositorios, de forma que pueda reconocer los paquetes que hay disponibles. Para ello teclee el comando que se muestra a continuación: + +`dnf update` + +## Habilitar los repositorios + +Necesitamos el repositorio no oficial para XFCE en el EPEL, para ejecutarlo en las versiones 8.x. de Rocky Linux. + +Active este repositorio tecleando el siguiente comando: + +`dnf install epel-release` + +Y responda 'Y' para instalar EPEL. + +También necesitará los repositorios Powertools y lightdm. Continue y activelos mediante el comando: + +`sudo dnf config-manager --set-enabled powertools` + +`sudo dnf copr enable stenstorp/lightdm` + +!!! Warning + + El sistema de construcción `copr` crea un repositorio que funciona para instalar `lightdm`, recuerde que estos repositorios no son mantenidos por la comunidad Rocky Linux. ¡Utilícelos bajo su cuenta y riesgo! + +De nuevo, se le mostrará un mensaje de advertencia sobre el repositorio. Puede continuar y responder `Y` a la petición. + +## Compruebe los entornos y herramientas disponibles en el grupo + +Ahora que los repositorios están habilitados, ejecute los siguientes comandos para comprobar todo. + +Primero, compruebe el listado de sus repositorios, para ello ejecute el siguiente comando: + +`dnf repolist` + +Debería poder ver la siguiente información que muestra todos los repositorios habilitados en el sistema: + +``` +appstream Rocky Linux 8 - AppStream +baseos Rocky Linux 8 - BaseOS +copr:copr.fedorainfracloud.org:stenstorp:lightdm Copr repo for lightdm owned by stenstorp +epel Extra Packages for Enterprise Linux 8 - x86_64 +epel-modular Extra Packages for Enterprise Linux Modular 8 - x86_64 +extras Rocky Linux 8 - Extras +powertools Rocky Linux 8 - PowerTools +``` + +Ejecute el siguiente comando para comprobar XFCE: + +`dnf grouplist` + +Debería ver "Xfce" en la parte inferior de la lista. + +Continue y ejecute el comando `dnf update` una vez más para asegurarse de que todos los repositorios habilitados se pueden leer en el sistema. + +## Instalar paquetes + +Para instalar XFCE, ejecute: + +`dnf groupinstall "xfce"` + +Instale también lightdm: + +`dnf install lightdm` + +## Últimos pasos + +Necesitamos desactivar `gdm`, el cúal se añade y activa durante la ejecución de *dnf groupinstall "xfce"*: + +`systemctl disable gdm` + +Ahora podemos habilitar *lightdm*: + +`systemctl enable lightdm` + +Necesitamos indicarle al sistema después de arrancar que utilice solo la interfaz gráfica de usuario, así que para que se establezca como predeterminado a la interfaz GUI, ejecutamos el siguiente comando: + +`systemctl set-default graphical.target` + +Después, reiniciamos el sistema: + +`reboot` + +Debería terminar con un aviso de inicio de sesión en la GUI de XFCE, y cuando inicie sesión, tendrá todo el entorno de XFCE. + +## Conclusión + +XFCE es un entorno ligero con una interfaz sencilla para aquellos a los que no les gustan los entornos con muchos adornos y que estén demasiado sobrecargados. Este tutorial se actualizará con muy pronto con imágenes, incluyendo capturas de pantalla para dar un ejemplo más visual del proceso de instalación. diff --git a/docs/guides/proxies/pound.pl.md b/docs/guides/proxies/pound.pl.md new file mode 100644 index 0000000000..ecb3a09404 --- /dev/null +++ b/docs/guides/proxies/pound.pl.md @@ -0,0 +1,467 @@ +--- +title: Funt +author: Steven Spencer, markooff +contributors: +tested with: 8.5, 8.6 +tags: + - proxy + - proxy +--- + +# Serwer proxy funtów + +!!! ważny "Funt brakujący w EPEL-9" + + Od tego pisania, Rocky Linux 9.0 nie może być zainstalowany z repozytorium EPEL. Chociaż istnieją źródła dla pakietów SRPM, nie możemy zweryfikować integralności tych źródeł. Z tego powodu nie zalecamy instalacji serwera proxy Pound na Rocky Linux 9.0 w tym momencie. Może to ulec zmianie, jeśli EPEL ponownie zabierze funt. Należy użyć tej procedury specjalnie dla Rocky Linux 8.5 lub 8.6. + +## Wstęp + +Funt jest serwerem sieciowym agnostycznym odwróconym proxy i ładuje balancer, który jest bardzo łatwy w konfiguracji i zarządzaniu. Nie korzysta z samej usługi internetowej, ale słucha w portach serwisów internetowych (http, http). + +Teraz jest wiele opcji serwera proxy, niektóre z nich odnoszą się do tych stron dokumentacji. Istnieje dokument dotyczący użycia [HAProxy tutaj](haproxy_apache_lxd.md) i w innych dokumentach pojawiły się odniesienia do używania Nginx dla odwrotnego proxy. + +Usługi równoważenia obciążenia są całkiem użyteczne dla zajętego środowiska serwera internetowego. Wiele serwerów proxy, w tym wspomniany wcześniej HAProxy, może być używanych dla wielu typów usług. + +W przypadku funtu można go użyć tylko do usług sieciowych, ale jest to dobre w tym, co robi. + +## Wymagania i założenia + +Do stosowania tej procedury stosuje się następujące minimalne wymogi: + +* Pragnienie wczytywania równowagi pomiędzy kilkoma stronami internetowymi lub chęć poznania nowego narzędzia robią to samo. +* Możliwość wykonywania poleceń jako główny użytkownik lub użycie `sudo` , aby tam dotrzeć. +* Znajomość edytora wiersza poleceń. Używamy tutaj `vi` lub `vim` , ale możesz zastąpić go w twoim ulubionym edytorze. +* Komfort ze zmianą portów nasłuchiwanych na kilku typach serwerów internetowych. +* Zakładamy, że zarówno serwery Nginx, jak i Apache są już zainstalowane. +* Zakładamy, że używasz serwerów Rocky Linux lub kontenerów dla wszystkich tutaj. +* Podczas gdy tworzymy wszystkie rodzaje instrukcji dotyczących `https` poniżej, ten przewodnik dotyczy tylko usługi `http`. Aby poprawnie wykonać `https`, musisz skonfigurować swój serwer funtowy z prawdziwym certyfikatem autoryzacji certyfikatów. + +!!! Wskazówka + + Jeśli nie masz zainstalowanego żadnego z tych serwerów, możesz to zrobić w środowisku kontenerowskim (LXD lub Docker) lub na nagim metalu, i wciągnąć je i uruchomić. Do celów tej procedury wystarczy zainstalować je wraz z odpowiednimi pakietami oraz włączyć i uruchomić usługi. Nie będziemy w żaden sposób modyfikować ich w znaczący sposób. + + ``` + dnf -y install nginx && system włącz --now nginx + ``` + + + lub + + ``` + dnf -y install httpd && system włącz --now httpd + ``` + +## Konwencje + +Do tej procedury będziemy używać dwóch serwerów internetowych (znanych jako serwery back-end), z których jeden uruchamia Nginx (192. 68.1.111) i jeden biegły Apache (192.168.1.108). + +Nasz serwer funtów (192.168.1.103) będzie uważany za bramę. + +We will be switching our listen ports on both of the back end servers to 8080 for the Nginx server and 8081 for the Apache server. Wszystko zostanie szczegółowo omówione poniżej, więc na chwilę obecną nie trzeba się o nie martwić. + +!!! notatka + + Pamiętaj, aby zmienić powiązane IP na wszystkie istniejące w Państwa otoczeniu i w stosownych przypadkach zastąpić je w trakcie tej procedury. + +## Instalacja serwera funtów + +Aby zainstalować Funt, musimy najpierw zainstalować EPEL (Extra Packages for Enterprise Linux) i uruchomić aktualizacje na wypadek pojawienia się czegoś nowego z EPEL: + +``` +dnf -y install epel-release && dnf -y aktualizacja +``` + +Następnie po prostu zainstaluj Funt. (Tak, to jest kapitał "P"): + +``` +dnf -y instalacja funta +``` + +## Konfigurowanie funta + +Teraz, gdy pakiety są zainstalowane, musimy skonfigurować Funt. Będziemy używać `vi` aby to zaktualizować, ale jeśli wolisz `nano` lub coś innego, idź dalej i zastąp to w: + +```bash +vi /etc/funt.cfg +``` + +Plik jest skonfigurowany z domyślnymi informacjami, co sprawia, że łatwiej jest zobaczyć większość domyślnych składników Funtu: + +```bash +Użytkownik "funt" +Grupa "funt" +Kontrola "/var/lib/pound/pound.cfg" + +ListenHTTP + Adres 0.0.0. + Port 80 +End + +ListenHTTPS + Adres 0. .0.0 + Port 443 + Cert "/etc/pki/tls/certs/funt. em" +End + +Service + BackEnd + Adres 127.0.0. + Port 8000 + Koniec + + BackEnd + Adres 127. .0.1 + Port 8001 + Koniec +Koniec +``` + +### Zdobycie ściślejszego wyglądu + +* "Użytkownik" i "Grupa" zostały zachowane podczas instalacji +* Plik "Kontrola" nie wydaje się nigdzie używany. +* Sekcja "ListenHTTP" reprezentuje usługę `http` (Port 80) i "Adres", na której serwer proxy będzie słuchał. Zmienimy to na rzeczywisty adres IP naszego serwera funtów. +* Sekcja "ListenHTTPS" reprezentuje usługę `https` (Port 443) i "Adres", na której serwer proxy będzie słuchał. Tak jak w przypadku powyższego, zmienimy to na adres IP serwera funtów. Opcją "Certyfikat" jest samopodpisany certyfikat dostarczony przez proces instalacji funtów. Chcesz zastąpić to w środowisku produkcyjnym prawdziwym certyfikatem za pomocą jednej z następujących procedur: [Generowanie kluczy SSL](../security/ssl_keys_https.md) lub [kluczy SSL za pomocą Let's Encrypt](../security/generating_ssl_keys_lets_encrypt.md). +* Sekcja "Usługa" to miejsce, w którym serwery "BackEnd" są skonfigurowane wraz z portami nasłuchiwania. Możesz mieć tyle serwerów "BackEnd" ile potrzebujesz. + +### Zmiana konfiguracji + +* zmień adres IP w obu opcjach nasłuchiwania na adres IP naszego serwera funtów, 192.168.1.103 +* zmień adresy IP i porty w sekcji "BackEnd" w celu dopasowania naszej konfiguracji znajdującej się w "Konwencjach" powyżej (IPs i ports) + +Gdy wszystko skończysz modyfikować konfigurację, powinieneś mieć zmieniony plik, który wygląda tak: + +```bash +Użytkownik "funt" +Grupa "funt" +Kontrola "/var/lib/pound/pound.cfg" + +ListenHTTP + Adres 192.168.1. 03 + Port 80 +End + +ListenHTTPS + Adres 192. 68.1.103 + Port 443 + Cert "/etc/pki/tls/certs/funt. em" +End + +Service + BackEnd + Adres 192.168.1. 11 + Port 8080 + End + + BackEnd + Adres 192. 68.1.108 + Port 8081 + End +End +``` + +## Konfigurowanie Nginx do słuchania na 8080 + +Ponieważ ustawiliśmy port nasłuchiwania Nginx w naszej konfiguracji funta na 8080, musimy również wprowadzić tę zmianę na naszym uruchomionym serwerze Nginx. Robimy to modyfikując `nginx.conf`: + +```bash +vi /etc/nginx/nginx.conf +``` + +Po prostu chcesz zmienić linię "nasłuchuj" na nowy numer portu: + +```bash +nasłuchuj 8080 default_server; +``` + +Zapisz zmiany, a następnie uruchom ponownie usługę nginx: + +``` +systemowy restart nginx +``` + +## Konfigurowanie Apache do nasłuchiwania na 8081 + +Ponieważ ustawiliśmy port nasłuchiwania Apache w naszej konfiguracji do 8081, musimy również wprowadzić tę zmianę na naszym uruchomionym serwerze Apache. Zrobimy to, modyfikując `httpd.conf`: + +```bash +vi /etc/httpd/conf/httpd.conf +``` + +Chcesz zmienić linię "Słuchaj" na nowy numer portu: + +```bash +Słuchaj 8081 +``` + +Zapisz zmiany i uruchom ponownie usługę httpd: + +``` +uruchom ponownie system httpd +``` + +## Testuj i wyłącz + +Gdy masz swoje usługi internetowe, działasz i słuchaj właściwych portów na każdym z naszych serwerów, następnym krokiem jest uruchomienie usługi funta na serwerze funta: + +``` +Systemctl enable --now funt +``` + +!!! uwaga + + Używanie Nginx i Apache, tak jak robimy tutaj w celu demonstracji, będzie oznaczać, że serwer Nginx prawie zawsze będzie odpowiadał najpierw. Z tego względu należy skutecznie przetestować, musisz przypisać niski priorytet do serwera Nginx, abyś mógł zobaczyć oba ekrany. To mówi o szybkości Nginx nad Apache. Aby zmienić priorytet serwera Nginx, wystarczy dodać priorytet (1-9, z 9 najniższym priorytetem) w sekcji "BackEnd" dla serwera Nginx jak ten: + + ``` + BackEnd + Adres 192.168.1.111 + Port 8080 + Priorytet 9 + koniec + ``` + +Kiedy otworzysz IP serwera proxy w przeglądarce internetowej, powinieneś się zmierzyć z jednym z tych dwóch ekranów: + +![Funt Nginx](images/pound_nginx.jpg) + +Lub + +![Aache funtów](images/pound_apache.jpg) + +## Używanie alarmu + +Jedno co trzeba zrobić podczas używania balansu obciążenia, takie jak funt, ma odbierać serwery produkcji w trybie offline w celu konserwacji lub mieć zapasowy "BackEnd" dla całkowitego przerwania. Wykonuje się to z deklaracją "Emergency" w pliku `pound.conf`. Możesz mieć tylko jedną deklarację "Emergency" na jedną usługę. W naszym przypadku pojawiłoby się to na końcu sekcji "Usługi" w naszym pliku konfiguracyjnym: + +``` +... +Usługa + BackEnd + Adres 192.168.1. 17 + Port 8080 + Priorytet 9 + Koniec + + BackEnd + Adres 192. 68.1.108 + Port 8081 + Koniec + Awaria + Adres 192. 68.1.104 + Port 8000 + Koniec +Koniec +``` + +Ten serwer może wyświetlać tylko wiadomość, która mówi, "Down For Maintenance". + +## Kwestie bezpieczeństwa + +Problemy bezpieczeństwa nie będą rozwiązywać większości dokumentów dotyczących równoważenia obciążenia serwerów proxy. Na przykład, jeśli jest to publiczny serwer internetowy, musisz mieć otwarte usługi `http` i `https` na świecie na serwerze proxy równoważenia obciążenia. Ale co z serwerami „BackEnd”? + +Dostęp do nich powinien być zapewniony wyłącznie przez ich porty z samego serwera funtów, ale ponieważ serwer Pound przekierowuje do 8080 lub 8081 na serwerach BackEnd, i ponieważ serwery BackEnd mają `http` słuchając tych kolejnych portów, możesz po prostu użyć nazw usług dla poleceń zapory na tych serwerach BackEnd. + +W tej sekcji zajmiemy się tymi obawami i poleceniami `firewalld` potrzebnymi do zablokowania wszystkiego. + +!!! ostrzeżenie + + Zakładamy, że masz bezpośredni dostęp do danych serwerów i nie jesteś do nich zdalny. Jeśli jesteś zdalny, zachowaj szczególną ostrożność podczas usuwania usług ze strefy `firewalld`! + + Możesz zablokować się z serwera przez przypadek. + +### Zapora - Serwer Funtów + +Dla serwera funtów, jak zauważono powyżej, chcemy zezwolić na `http` i `https` ze świata. Musisz się zastanowić, czy `ssh` musi być dozwolony ze świata, czy nie. Jeśli jesteś lokalny na serwerze, to prawdopodobnie **NIE** przypadek. Zakładamy, że serwer jest dostępny przez Twoją sieć lokalną i że masz bezpośredni dostęp do niej, więc zamkniemy `ssh` na nasze adresy IP LAN. + +Aby osiągnąć powyższe, użyjemy wbudowanej zapory dla Rocky Linux, `firewalld` i `firewall-cmd` struktury poleceń. Dla uproszczenia wykorzystamy również dwie strefy zabudowane – „publiczne” i „zaufane”. + +Zacznijmy od dodania naszych źródłowych adresów IP do strefy „zaufanej”. Jest to nasz łańcuch wartości (przykład: 192.168.1.0/24): + +``` +firewall-cmd --zone=zaufane --add-source=192.168.1.0/24 --permanent +``` + +Następnie dodajmy usługę `ssh` do strefy: + +``` +zapora-cmd --zone=zaufane --add-service=ssh --permanent +``` + +Po zakończeniu tego wszystkiego odświeżyć zaporę poprzez: + +``` +firewall-cmd --reload +``` + +A następnie wylistuj strefę tak, aby zobaczyć wszystko z `zaporą cmd --zone=trusted --list-all` , co powinno dać Ci coś takiego: + +```bash +zaufany (aktywny) cel + ACCEPT + icmp-block-inversion: no + interfejsy: + źródła: 192.168.1. /24 + usługi: ssh + porty: + protokołów: + forward: no + masquerade: no + forward-ports: + source-ports: + icmp-blocks: + bogate reguły: + +``` + +Następnie musimy wprowadzić zmiany w strefie "publicznych", która domyślnie ma włączoną usługę `ssh`. To musi zostać ostrożnie usunięte (ponownie, zakładamy, że jesteś **NIE** zdalny na serwer tutaj!) z następującymi powodami: + +``` +zapora-cmd --zone=publiczna --remove-service=ssh --permanent +``` +Musimy również dodać usługi `http` i `https`: + +``` +zapora-cmd --zone=publiczna --add-service=http --add-service=https --permanent +``` + +Następnie musimy przeładować zaporę zanim zobaczysz zmiany: + +``` +firewall-cmd --reload +``` + +A następnie wylistuj strefę publiczną z `firewall-cmd --zone=public --list-all` , która powinna pokazać Ci coś takiego: + +```bash +cel publiczny + : domyślny + icmp-block-inversion: no + interfejsów: + źródła: + usługi: cockpit dhcpv6-client http + ports: + protokoły: + forward: no + masquerade: no + forward-ports: + source-ports: + icmp-blocks: + bogate reguły: +``` + +W naszym środowisku laboratorium są to jedyne zmiany, które musimy wprowadzić w naszym funcie równowagi obciążenia serwera. + +### Zapora - Serwery z tyłu + +Dla serwerów "BackEnd", nie musimy zezwalać na dostęp ze świata dla wszystkich, a na pewno nie dla naszych nasłuchanych portów, z których będzie korzystał bilans ładunku. Będziemy musieli zezwolić na `ssh` z adresów IP LAN oraz `http` i `https` z naszego balancera obciążenia funtów. + +To całkiem to wszystko. + +Ponownie dodamy usługę `ssh` do naszej strefy "zaufane", z zasadniczo tymi samymi poleceniami, które użyliśmy dla naszego serwera funtów. Następnie dodamy strefę o nazwie "saldo", którą będziemy używać dla pozostałych `http` i `https`, i ustaw źródłowe adresy IP na adresy docelowe balancera. Jesteś już zabawny? + +Aby być szybkim, użyjmy wszystkich tych poleceń, które użyliśmy w strefie "zaufane" w jednym zestawie poleceń: + +``` +zapora-cmd --zone=zaufana --add-source=192.168.1.0/24 --permanent +zapora zapora-cmd --zone=zaufana --add-service=ssh --permanent +zapora cmd --reload +zapora-cmd --zone=zaufana --list-all +``` + +Następnie strefa „zaufana” powinna wyglądać tak: + +```bash +zaufany (aktywny) cel + ACCEPT + icmp-block-inversion: no + interfejsy: + źródła: 192.168.1. /24 + usługi: ssh + porty: + protokołów: + forward: no + masquerade: no + forward-ports: + source-ports: + icmp-blocks: + bogate reguły: +``` + +Ponownie, przetestuj regułę `ssh` z adresu IP w LAN, a następnie usuń usługę `ssh` ze strefy "publiczną". **Zapamiętaj nasze ostrzeżenie z góry i zrób to tylko wtedy, gdy masz lokalny dostęp do serwera!** + +``` +zapora cmd --zone=publiczna --remove-service=ssh --permanent +zapora cmd --reload +zapora cmd --zone=publiczna --list-all +``` + +Strefa publiczna powinna teraz wyglądać tak: + +```bash +cel publiczny + : domyślny + icmp-block-inversion: no + interfejsów: + źródła: + usługi: cockpit dhcpv6-client + porty: + protokoły: + forward: no + masquerade: no + forward-ports: + source-ports: + icmp-blocks: + bogatych reguł: +``` + +Now let's add that new zone to deal with `http` and `https`. Pamiętaj, że tutaj źródłowy IP musi być tylko naszym bilansem obciążenia (w naszym przykładzie: 192.168.1.103): + +!!! notatka + + Nowa strefa musi być dodana z opcją `--permanent` i nie może być używana, dopóki zapora nie zostanie ponownie załadowana. Nie zapomnij również o `--set-target=ACCEPT` dla tej strefy! + +``` +firewall-cmd --new-zone=balance --permanent +firewall-cmd --reload +firewall-cmd --zone=balance --set-target=ACCEPT +firewall-cmd --zone=balance --add-source=192. 68.1.103 --permanent +zapora zapora-cmd --zone=balance --add-service=http --add-service=https --permanent +zapora-cmd --reload +zapora-cmd --zone=balance --list-all +``` + +Wynik: + +```bash +saldo (aktywne) + cel: ACCEPT + icmp-block-inversion: no + interfejsów: + źródła: 192.168.1. Usługi 03 + : http https + porty: + protokołów: + forward: no + masquerade: no + forward-ports: + source-ports: + icmp-blocks: + bogate reguły: +``` + +Teraz powtórz te kroki na drugim serwerze WWW. + +Po dodaniu reguł zapory do wszystkiego, przetestuj serwer funtów ponownie z przeglądarki stacji roboczej. + +## Inne informacje + +Istnieje *LOT* opcji, które mogą być zawarte w Twoim `funcie. onf` plik, w tym dyrektywy w sprawie komunikatów o błędach, opcje logowania, wartości czasu i czasu itp. Więcej informacji na temat tego, co jest dostępne [można znaleźć tutaj.](https://linux.die.net/man/8/pound) + +Wygodnie, funt automatycznie zapisuje, jeśli jeden z serwerów "BackEnd" jest wyłączony i wyłącza go, aby usługi sieciowe mogły być kontynuowane bezzwłocznie. Automatycznie widzi je również ponownie, gdy są one z powrotem w internecie. + +## Konkluzja + +Funt oferuje inną opcję dla tych, którzy nie chcą używać HAProxy lub Nginx jako ładowania. + +Funt jako serwer równoważenia obciążenia jest bardzo łatwy w instalacji, konfiguracji i użytkowaniu. Jak zauważono tutaj, Funt może być również używany jako zastępczy wskaźnik zastępczy i jest wiele dostępnych opcji bilansowania obciążenia. + +I zawsze powinieneś pamiętać o bezpieczeństwie podczas ustawiania dowolnej usługi, w tym serwera proxy równoważącego ładunek. diff --git a/docs/guides/security/firewalld-beginners.pl.md b/docs/guides/security/firewalld-beginners.pl.md new file mode 100644 index 0000000000..ddb20cf00a --- /dev/null +++ b/docs/guides/security/firewalld-beginners.pl.md @@ -0,0 +1,431 @@ +--- +title: firewalld dla początkujących +author: Ezequiel Bruni +contributors: Steven Spencer, markooff +update: 26-Jul-2022 +--- + +# `firewalld` dla Początkujących + +## Wstęp + +Dawno temu, kiedy sam byłem początkującym użytkownikiem komputera usłyszałem że posiadanie firewalla jest czymś naprawdę super. Hmm, to da mi możliwość decydowania co wchodzi do mojego komputera i co z niego wychodzi, no nie? - pomyślałem. Ale, jak się później okazło, tak naprawdę główną 'zaletą' mojego firewalla było przeszkadzanie moim grom w dostępie do internetu. Co wcale nie czyniło mnie "szczęślitym kamperem". + +Skoro trafiłeś tutaj, to pewnie masz znacznie lepsze pojęcie ode mnie sprzed lat, czym jest firewall, do czego służy i jak działa. Ale jeśli Twoje jedyne doświadczenia z firewallami sprowadzały się dotąd do mówienia Windows Deffenderowi "Tak, wiem co robię, no, daj spokój i wpuść moją wspaniałą nową aplikację do internetu!!" nie przejmuj się :) Napisałem "dla początkujących" i wiem co mówię :) Napisałem "dla początkujących" i wiem co mówię :) + +Innymi słowy, moi drodzy komputerowi nerdzi, przygotujcie się na sporą dawkę wiedzy. + +A więc zacznijmy od tego po co tu jesteśmy. `firewalld` jest domyślnym narzędziem w systemie pakietów Rocky Linux, i został zaprojektowany aby być maksymalnie prostym w użyciu. Jedyną wiedzą jaką potrzebujesz na starcie - to wiedzieć jak w ogólnym zarysie działają firewalle. + +Z poniższego tutoriala nauczysz się: + +* podstaw działania `firewalld` +* Jak używać `firewalld` do blokowania lub przepuszczania przychodzących/wychodzących połączeń +* Jak zezwolić użytkownikom z konkretnych adresów IP lub miejsc logować się do Twojego komputera zdalnie +* Jak zarządzać niektórymi właściwościami `firewalld` jak np. Zonami. + +Tym niemniej, poniższy materiał *nie ma* ambicji być kompletnym i wyczerpującym temat opracowaniem. + +### Informacje n/t zarządzania firewallem za pomocą konsoli (z linii poleceń) + +OK... *są* wprawdzie narzędzia graficzne służące do konfiguracji firewalla. Na desktopach (stacjach roboczych) jest narzędzie `firewall-config` które można zainstalowac bezpośrednio z repozytorium podczas gdy na serwerach możesz po prostu \[zainstalować Cockpit\] (https://linoxide.com/install-cockpit-on-almalinux-or-rocky-linux/) który jest narzędziem pomagającym w zarzadzaniu tak firewallem jak i szeregiem innych spraw. Mimo to, w tym tutorialu chciałbym Cię nauczyć metody zarządzania z poziomu konsoli, a to z kilku powodów: + +1. Jeśli pracujesz na serwerze, to i tak w większości wypadków będziesz używał konsoli. Wiele tutoriali i samouczków napisanych dla serwera na platformie Rocky Linux będzie i tak operowało z użyciem konsoli przy zarządzaniu firewallem, więc lepiej żebyś zrozumiał te komendy i ich składnię zamiast potem być zmuszonym do jedynie mechanicznego kopiowania i wklejania kawałków kodu którego nie rozumiesz. +2. Poznanie jak działają polecenia `firewalld` pozwoli Ci również lepiej zrozumieć samą mechanikę działania oprogramowania typu firewall. Te same zasady, które poznasz tutaj, bedziesz mógł odnieśc i zastosować później także i w używaniu graficznych narzędzi do zarzadzania firewallami w przyszłości. + +## Wymagania i założenia +Będziesz potrzebować: + +* Komputera z systemem Rocky Linux, obojętnie czy będzie to maszyna fizyczna czy virtualna z dostepem zdalnym, bądź lokalnym. +* Dostępu do terminala i chęci używania go. +* Dostepu do konta root'a a w wersji minimalnej do polecenia `sudo` z poziomu Twojego konta uzytkownika. Dla ułatwienia w materiale zakładam że wszystkie komendy będą wykonywane bezpośrednio z konta root'a. +* Podstawowa wiedza na temat działania SSH będzie pomocna przy zarządzaniu zdalną maszyną. + +## Podstawy używania + +### Komendy do zarzadzania `firewalld` w ramach uslug systemowych (system services) + +`firewalld` działa jako usługa w Twoim systemie. Zostaje uruchomiony wraz ze startem systemu, a w każdym razie powinien. Jeśli z jakiegoś powodu na Twoim systemie `firewalld` nie został aktywowany (enabled) możesz teraz zrobić to ręcznie za pomocą komendy: + +```bash +systemctl enable --now firewalld +``` + +Flaga `--now` dodatkowo uruchamia usługę zaraz po jej zaaktywowaniu, co pozwala ominąć kolejny krok - i polecenie `systemctl start firewalld` + +Tak jak w przypadku każdej innej usługi w systemie Rocky Linux, możesz zawsze sprawdzić czy firewall jest uruchomiony poleceniem: + +```bash +systemctl status firewalld +``` + +Aby zatrzymać usługę wpisujesz: + +```bash +systemctl stop firewalld +``` + +Oraz, aby wykonac tzw. twardy (czytaj: całkowity) restart: + +```bash +systemctl restart firewalld +``` + +### Podstawowe komendy do konfiguracji i zarządzania `firewalld` + +Zachowanie `firewalld` jest konfigurowane i kontrolowane poleceniem `firewall-cmd`. Np. możesz sprawdzić status `firewalld` komendą: + +```bash +firewall-cmd --state +``` + +Po każdej *trwałej* modyfikacji (permanent change) konfiguracji Twojego firewalla musisz go przeładować żeby zobaczyć zmiany. Robisz to za pomocą tzw. "miękkiego restartu" wydając polecenie: + +```bash +firewall-cmd --reload +``` + +!!! Note + + Jesli wykonałeś przeładowanie (reload) konfiguracji firewalla bez wcześniejszego zapisania na trwałe dokonanych zmian - po takim ponownym załadowaniu konfiguracji nie będa one widoczne. + +Aby wyświetlić na raz wszystkie ustawienia i całą konfigurację firewalla użyj komendy: + +```bash +firewall-cmd --list-all +``` + +Polecenie to powinno wyświetlić wynik zbliżony do poniższego: + +```bash +public (active) + target: default + icmp-block-inversion: no + interfaces: enp9s0 + sources: + services: ssh + ports: + protocols: + forward: no + masquerade: no + forward-ports: + source-ports: + icmp-blocks: + rich rules: +``` + +### Zapisywanie zmian + +!!! Warning "Uwaga, naprawdę przeczytaj te kilka linijek!" + + Domyślnie wszystkie zmiany w konfiguracji `firewalld` są tymczasowe. Dlatego jeśli zrestartujesz usługę `firewalld` albo cały komputer, dokonane przez Ciebie zmiany nie będą zapisane - o ile nie wykonasz wcześniej jednego z dwóch poniższych kroków. + +Najlepsza praktyką jest testowanie zmian w konfiguracji firewalla polecenie po poleceniu oraz wykonując przeładowanie konfiguracji firewalla (reload) po każdym udanym teście. W ten sposób jeśli w wyniku którejś z wprowadzanych zmian np. odetniesz sobie całkowicie dostęp do maszyny, wystarczy że zrestarujesz usługę albo raczej cały komputer i ta zła zmiana pójdzie po prostu w niebyt. + +A kiedy będziesz już miał poporawną i sprawdzoną konfigurację, możesz zapisac ją na stałe poleceniem : + +```bash +firewall-cmd --runtime-to-permanent +``` + +Jeśli jednak jesteś przekonany że dokładnie wiesz co robisz :) i chcesz tylko dodać jedną (sprawdzoną) regułę na stałe by móc pracować dalej, możesz zrobić to dodając flagę `--permanent` do każdej komendy konfiguracyjnej. + +```bash +firewall-cmd --permanent [the rest of your command] +``` + +## Zarządzanie Zonami (strefami) + +Zanim zaczniemy, chciałbym wyjaśnić samo pojęcie Zony (Strefy). Zony to rozwiązanie pozwalające Ci w praktyce zastosowac odmienne zestawy reguł do różnych sytuacji. Mechanizm Zon (Stref) stanowi znaczną część funkcjonalności firewalla a więc wypada poświecić mu odpowiednio dużo czasu. + +Jeśli Twój komputer posiada kilka połączeń sieciowych łączących go z różnymi sieciami (np. Ethernet po kablu oraz Wifi), możesz zdecydować że jedna z nich jest siecią bardziej zaufaną i bezpieczną. Możesz np. umieścić połączenie kablowe z siecią Ethernet w strefie "zaufanej" ("Trusted" Zone) jeśli jest to sieć wyłacznie lokalna, którą sam tworzyłeś i kontrolujesz, a z drugiej strony, umiescić połączenie Wifi (które może być np. Twoim połączeniem z internetem) w strefie "publicznej" (Public Zone), w której będą obowiązywać znacznie ostrzejsze zasady kontroli ruchu. + +!!! NOTE + + Strefa (Zona) może być aktywną (w stanie aktywna) *jedynie* po spełnieniu jednego z dwu poniższych warunków: + 1. + + 1. Strefa jest przypisana do interfejsu sieciowego + 2. Strefa jest ma przypisany adres źródłowy IP lub zakres adresów sieciowych. (Więcej o tym w dalszej części materiału) + +Domyślne Strefy (Zony) zawierają (wyjasnienie zaczerpnąłem z [ Samouczek DigitalOcean do `firewalld`](https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-8), do przeczytania którego także gorąco namawiam): + +> **drop:** To najniższy poziom zaufania. Wszystkie połaczenia przychodzące są ubijane bez jakiejkolwiek odpowiedzi (dropped) a dozwolone są wyłącznie połączenia wychodzące + +> **block:** Podobnie jak powyżej, z tą różnicą, że połączenia przychodzące są ubijane odrzucane (rejected) z jednoczesnym komunikatem icmp icmp-host-prohibited lub icmp6-adm-prohibited w odpowiedzi. + +> **public:** Ta strefa reprezentuje sieci publiczne, niezaufane. Nie mamy zaufania do innych komputerów w tych sieciach ale możemy pozwolić na wybrane połączenia przychodzące, zdefiniowane poszczególnymi regułami w naszym firewallu. zewnętrzne (external): będą to sieci zewnętrzne w sytuacji gdy używasz firewalla na Twoim routerze łączącym z siecią zewnątrzną. Zostało to przygotowane dla maskarady NAT (NAT masquerading) żeby sieci wewnętrzne (internal) mogły pozostać prywatne ale jednak w pewnym sensie dostępne z zewnątrz. (poprzez reguły NAT - przyp. markooff) + +> **internal:** Druga strona strefy external, używana do obsługi ruchu wewnętrznego (internal networks). Komputery w tej sieci i tej strefie traktujemy jako niemalże godne zaufania więc udostępniamy im pewne dodatkowe usługi. + +> **dmz:** Strefa (Zona) używana do obsługi ruchu dla komputerów będących w tzw. DMZ (De-Militarized Zone - przyp. markooff) Jest to izolowana sieć wewnętrzna w której komputery nie mają, z definicji, połączenia z innymi strefami naszej sieci. Wyjątkiem będą specjalnie, osobno zdefiniowane połączenia. + +> Strefa używana dla normalnego ruchu komputerów w sieci roboczej (wewnątrz firmy/biura - przyp. markooff). W większości mamy zaufanie do komputerów w tej sieci, więc pewne dodatkowe usługi będą dostępne. + +> **work:** Strefa używana dla normalnego ruchu komputerów w sieci roboczej (wewnątrz firmy/biura - przyp. markooff). W większości mamy zaufanie do komputerów w tej sieci, więc pewne dodatkowe usługi będą dostępne. + +> **trusted:** Strefa najwyższego zaufania. Ponieważ ufamy tu z założenia wszystkim komputerom więc będzie to najbardziej "nieskrępowana" ze stref, gdzie działa najwięcej usług. Nalezy stosować tą strefę bardzo ostrożnie i oszczędnie. + +OK, niektóre z tych wyjaśnień mogą brzmieć bardzo skomplikowanie, ale szczerze ? Przeciętny początkujący użytkownik - powinien poradzić sobie zapamiętując i rozumiejąc tylko działanie stref "trusted", "home" oraz "public", oraz wiedząc kiedy zastosować którą z nich. + +### Komendy do zarządzania Strefami (Zonami) + +Aby wyświetlić domyślną strefę w Twoim firewallu uruchom polecenie: + +```bash +firewall-cmd --get-default-zone +``` + +Aby wyświetlić wszystkie strefy, które są aktywne i pracują uzyj polecenia: + +```bash +firewall-cmd --get-active-zones +``` + +!!! NOTE "Uwaga: Niektóre z ustawień dla Twojego systemu mogły zostać predefiniowane" + + Jeśli używasz Rocky Linuxa na serwerze klasy VPS jest prawdopodobnym, że na strcie podczas instalacji Twój system otrzymał z góry predefiniowane ustawienia firewalla. Np. prekonfigurowany dostęp do zarządzania przez SSH więc interfejs sieciowy musiał zostać dodany do strefy (zony) "public". + +Aby zmienić strefę domyślną wykonaj: + +```bash +firewall-cmd --set-default-zone [your-zone] +``` + +Aby dodać interfejs sieciowy do strefy (zony): + +```bash +firewall-cmd --zone=[your-zone] --add-interface=[your-network-device] +``` + +Aby zmienić strefę dla interfejsu sieciowego: + +```bash +firewall-cmd --zone=[your-zone] --change-interface=[your-network-device] +``` + +Aby całkowicie usunąć interfejs sieciowy ze strefy: + +```bash +firewall-cmd --zone=[your-zone] --remove-interface=[your-network-device] +``` + +Aby utworzyc zupełnie nową strefę (zonę) z własnym zestawem reguł oraz sprawdzić że została ona utworzona poprawnie: + +```bash +firewall-cmd --new-zone=[your-new-zone] +firewall-cmd --get-zones +``` + +## Zarządzanie portami + +Dla niewtajemniczonych, porty (w tym kontekście) są wirtualnymi bramami przez które komputery łączą się ze sobą, to znaczy że mogą przez nie wysyłać i odbierać informacje. Możemy myśleć o nich trochę jak o fizycznych portach Ethernetowych czy USB w komputerze, z tą różnicą, że są niewidoczne no i że masz ich naraz aż 65.535 i możesz korzystać z nich wszystkich jednocześnie. + +To znaczy Ty mógłbyś jeśli chcesz, bo ja nie zamierzam :) + +Każdy port jest definiowany poprzez swój numer. Niektóre porty są zarezerwowane dla konkretnych usług i rodzaju przesyłanych nimi informacji. (Jednak to tylko pewna, mająca długą brodę :) konwencja i tradycyjne podejście do problemu - bo w zasadzie możemy przesyłać dowolne dane z wykorzystaniem dowolnego portu, nie ma tu żadnych ograniczeń stricte technologicznych to czysta konwencja i standaryzacja - przyp. markooff). Np. jeśli kiedykolwiek pracowałeś z Webserwerem i umieszczałeś na nim strony webowe będziesz pewnie dobrze kojarzył porty 80 i 443 które odpowiadają za przesył danych dla stron www. + +Konkretnie port 80 odpowiada za transmisję danych z wykorzystaniem protokołu Hypertext Transfer Protocol (HTTP), natomiast port 443 jest zarezerwowany dla wymiany danych z użyciem protokołu Hypertext Transfer Protocol Secure (HTTPS). * + +Z kolei port 22 jest przeznaczony dla Secure Shell protocol (SSH) który to pozwala na zdalne logowanie się do maszyny i zarządzanie nią z wykorzystaniem konsoli (zobacz też [nasz ktrótki samouczek](ssh_public_private_keys.md) w tym temacie). Świeżo postawiony zdalny serwer może zezwalać tylko na połączenia na porcie 22 dla SSH i nie ponadto. + +Innymi przykładami są np. usługa FTP (standardowe porty 20 i 21), juz wspomniany tu SSH (port 22) i wiele wiele innych. Możesz także zdefiniować własne numery portów dla używania swojej aplikacji, którą zainstalujesz, a która nie ma standardowo przypisanych swoich 'własnych' numerów portów. + +!!! NOTE "Uwaga: nie powinieneś zawsze bezpośrednio zarzadzać portami" + + Dla usług takich jak SSH, HTTP/S, FTP oraz tym podobnych, rekomenduje się dodawanie ich do strefy w Twoim firewallu za pomocą *usług*, a nie numerów portów. Pokaże Ci jak to zrobić w dalszej części materiału. Tym niemniej musisz wiedzieć jak zarządzać (otwierać i zamykać) porty ręcznie. + +\* Dla absolutnych nowicjuszy - protokół HTTPS działa mniej więcej tak samo jak HTTP z dokładnością do szyfrowania zawartości. + +### Komendy służące do zarządzania portami + +Na potrzeby tej sekcji, będziemy używać `--zone=public`... i portu o numerze 9001 jako przykładowy, ponieważ to port powyżej numeru 9000 . + +Aby wyświetlić listę wszystkich otwartych portów uruchamiamy: + +```bash +firewall-cmd --list-ports +``` + +Aby dodać port do strefy `public` w firewallu używamy komendy: + +```bash +firewall-cmd --zone=public --add-port=9001/tcp +``` + +!!! NOTE + + Troche o tym `/tcp` na końcu: + + Dopisek `/tcp` na końcu mówi firewallowi że połaczenie będzie nawiązywane za pomocą protokołu Transfer Control Protocol (TCP), który jest najczęściej używanym w połączeniach transmitujących istotne dane pomiędzy komputerami i serwerem. + + Alternatywy takie jak UDP (User Datagram Protocol - przyp. markooff) służą do celów testowych oraz przesyłu innych typów danych, co już wykracza poza zakres tematyki tego dokumentu. (Tak naprawdę protokół UDP wykorzystywany jest głównie do transmisji strumieniowych np. głosowych albo w zastosowaniach takich jak gry sieciowe w których niewielki koszt transmisji i związane z tym opóźnienie ma o wiele większe znaczenie niż weryfikacja i konsystencja danych - przyp. markooff) + Aby zorientować się którego protokołu do transmisji danych będzie wymagać aplikacja którą właśnie chcesz dodać zapoznaj się z jej dokumentacją. Zapoznaj się z dokumentacją dowolnej aplikacji lub usługi, dla której chcesz otworzyć port. + +Aby usunąć port, po prostu użyjemy poprzedniej komendy, z jedną zmianą: + +```bash +firewall-cmd --zone=public --remove-port=9001/tcp +``` + +## Zarządzanie usługami (services) + +Usługi, jak można sobie wyobrazić, to dość mocno ustandaryzowane programy które są uruchamiane na Twoim komputerze. `firewalld` jest skonfigurowany tak aby był w stanie obłużyć większość standardowych usług kiedy będzie to potrzebne. + +Zarządzanie poprzez dodawanie usług to najlepsza z dróg otwierania portów dla takich typowych usług a także o wiele więcej. + +* HTTP oraz HTTPS: dla serwerów webowych +* FTP: do przenoszenia plików (tradycyjną drogą) +* SSH: do zdalnego zarządzania maszynami a także przenoszenia plików (w nowoczesny, bezpieczny sposób) +* Samba: do udostępniania plików w sieciach Windows (opartych o protokół SMB - przyp. markooff) + +!!! WARNING + + ** Nigdy nie usuwaj ani nie wyłączaj usługi SSH z konfiguracji firewalla zdalnego serwera !** + + Pamietaj że to SSH jest tym co pozwala Ci łączyć się zdalnie ze swoim serwerem. Dopóki nie zapewnisz sobie innej metody fizycznego dostępu do niego albo do jego powłoki (shella) (np. poprzez panel kontrolny zarządzania jaki oferuje często firma hostingowa) usuwanie dostępu via SSH odetnie Cię od serwera na dobre. panelu sterowania dostarczonego przez hosta), usunięcie usługi SSH spowoduje zablokowanie Cię na stałe. + + Jedyne co Ci wtedy pozostanie to skontaktować się z działem wsparcia firmy w której wynajmujesz serwer, (i albo odtworzenie poprzedniego jego stanu z backupu, o ile go posiadasz/posiadają - przyp. markooff) albo reinstalacja systemu operacyjnego. + +## Komendy do zarządzania usługami + +Aby wyświetlić listę wszystkich dostępnych usług, które mógłbyś chcieć potencjalnie dodać do konfiguracji Twojego firewalla uruchom: + +```bash +firewall-cmd --get-services +``` + +Aby zobaczyc listę usług, które zostały już dodane wykonaj: + +```bash +firewall-cmd --list-services +``` + +Aby dodac usługe i otworzyć dla niej port (np. HTTP w strefie `public`) uruchom: + +```bash +firewall-cmd --zone=public --add-service=http +``` + +Aby usunąć usługę i zamknąć port którego używała, zmień jedno słowo: + +```bash +firewall-cmd --zone=public --remove-service=http +``` + +!!! NOTE "Uwaga: Możesz dodawać własne, zdefiniowane przez siebie usługi" + + Oraz skonfigurować zachowanie się firewalla dla nich. Ale jest to już dość skomplikowana sprawa. Na początek trzeba poznać dobrze `firewalld`. + +## Oraniczanie dostępu + +Powiedzmy że posiadamy serwer i że nie chcemy wystawiać go na świat dostępnym dla wszystkich. Chcemy określić kto dokładnie ma mieć dostęp do niego przez SSH a komu pokażemy nasze prywatne strony czy udostępnimy aplikacje. Możemy śmiało to zrobić. + +W zasadzie, jest caly szereg sposobów żeby tego dokonać. Możemy po wziąć którąś z bardziej restruykcyjnych stref (zon), przypisać do niej interfejs sieciowy, potem dodać do niej usługę SSH tak, jak to pokazałem powyżej, a na koniec whitelistować nasz publiczny adres IP (z którego będziemy się łączyć do serwera), tak jak w przykładzie poniżej: + +```bash +firewall-cmd --permanent --zone=trusted --add-source=192.168.1.0/24 [< tu wprowadź swój zakres adresacji IP] +``` + +Możemy, zamiast podawać pojedynczy adres, wprowadzić od razu cały zakres: + +```bash +firewall-cmd --permanent --zone=trusted --add-source=192.168.1.0 [< tu wprowadź swój adres IP] +``` + +Aby odwrócić działanie komendy po prostu w poleceniu zamieniamy `--add-source` na `--remove-source` . + +W innym przypadku, kiedy zarządzamy serwerem z usługą WWW która jest dostępna publicznie, a tylko chcemy otworzyć dostęp dla SSH dla jednego konkretnego adresu IP lub niewielkiego zakresu adresów IP, również będziemy mieli parę rozwiązań. W każdym przypadku podstawowy interfejs sieciowy jest już przypisany do strefy (zony) `public` . + +Jako pierwsze, możemy użyć koncepcji tzw. "rich rule" w naszej publicznej strefie. Będzie to wygladać tak: + +```bash +# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept' +``` + +Kiedy już utworzyliśmy naszą "rich rule" *nie twórzmy* dalszych wpisów z opcją `--permanent` ale najpierw sprawdźmy czy wszystko działa poprawnie. (chodzi tu o dokonywanie dalszych modyfikacji tymczasowo, bo wtedy w przypadku błędu będziemy łatwo mogli cofnąć błędne wpisy i przywrócić poprawną konfigurację - przyp. markooff). Usuńmy teraz tymczasowo usługę SSH z konfiguracji strefy `public` i sprawdźmy czy mimo to możemy się nadal połączyć z do naszego serwera przez SSH (otwierając nowe połączenie bez zamyhkania aktualnie działającego! - przyp. markooff). + +Na tą chwilę nasza konfiguracja powinna wyglądać tak: + +```bash +your@server ~# firewall-cmd --list-all +public (active) + target: default + icmp-block-inversion: no + interfaces: wlp3s0 + sources: + services: cockpit dhcpv6-client + ports: 80/tcp 443/tcp + protocols: + forward: no + masquerade: no + forward-ports: + source-ports: + icmp-blocks: + rich rules: + rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept +``` + + +Następnie, użyjmy kolejnej strefy (zony) (możemy mieć ich aktywnych więcej niż jedną naraz). Ponieważ posiadamy interfejs sieciowy przypięty do strefy `public` , aktywujemy kolejną strefę (np. `trusted`) i dodajemy jej źródłowy adres sieciowy (lub zakres adresów) tak jak to było pokazane powyżej. Następnie dodajemy usługę SSH do strefy `trusted` i jednocześnie usuwamy ją ze strefy `public` . + +Po tych zmianach nasza konfiguracja bedzie wygladać mniej więcej tak: + +```bash +your@server ~# firewall-cmd --list-all +public (active) + target: default + icmp-block-inversion: no + interfaces: wlp3s0 + sources: + services: cockpit dhcpv6-client + ports: 80/tcp 443/tcp + protocols: + forward: no + masquerade: no + forward-ports: + source-ports: + icmp-blocks: + rich rules: +your@server ~# firewall-cmd --list-all --zone=trusted +trusted (active) + target: default + icmp-block-inversion: no + interfaces: + sources: 192.168.0.0/24 + services: ssh + ports: + protocols: + forward: no + masquerade: no + forward-ports: + source-ports: + icmp-blocks: + rich rules: +``` + +Jeżeli po tych zmianach straciliśmy możliwość połaczenia się z naszym serwerem, wykonajmy jego zdalny restart (korzystając z panelu zarządzania VPSem - większość firm hostingowych udostępnia tego typu narzędzie) i próbujmy ponownie poprawić naszą konfigurację. + +!!! WARNING + + Powyższa metoda zadziała TYLKO w sytuacji kiedy dysponujemy stałym adresem IP! + + Jeżeli nasz ISP nie udostępnia swoim klientom STATYCZNYCH ZEWNĘTRZNYCH adresów IP, a zamiast tego korzysta z tzw. dynamicznej rotacji adresacji IP (np. podczas kazdego restartu modemu), nie używaj tej metody, a przynajmniej (nie dla usługi SSH) dopóki nie pozbędziesz się tego problemu (np. nie wynegocjujesz, za dopłatą, zewnętrznego STATYCZNEGO adresu IP dla siebie - znaczna ilość ISP oferuje takie możliwości - przyp. markooff). Inaczej na trwałe odetniesz się od swojego serwera. Inaczej na trwałe odetniesz się od swojego serwera. + + Inną możliwością jest łączenie się z internetem za pośrednictwem usługi VPN, która będzie oferować na wyjściu statyczny publiczny adres IP i nigdy go nie zmieni. + + W międzyczasie [zainstaluj i skonfiguruj fail2ban](https://wiki.crowncloud.net/?How_to_Install_Fail2Ban_on_RockyLinux_8), który pomoże Ci poradzić sobie z atakami typu brute-force. + + Oczywiście w sieci lokalnej którą kontrolujesz (i gdzie możesz nadawać każdej maszynie osobny adres IP ręcznie)(albo gdzie masz uruchomiony przez siebie serwer DHCP który kontrolujesz - przyp. markooff ), możesz używac tych reguł do woli. + +## Uwagi końcowe + +I to w zasadzie byłoby już wszystko jeśli chodzi o podstawy konfiguracji `firewalld` jeśli chcesz pogłębić swoją wiedzę w kwestii filtrowania ruchu polecam Ci [oficjalną dokumentację do `firewalld`](https://firewalld.org/documentation/). Możesz również znaleźć w internecie szeroką gamę manuali do poszczególnych aplikacji które pomogą Ci skonfigurować Twój firewall z pomocą tych aplikacji. + +A dla Was, fanów `iptables` (jeśli już dotarliście tak daleko...), \[mamy również samouczek\] (firewalld.md) prezentujący różnice w podejściu i działaniu `firewalld` oraz `iptables`. Ten materiał może pomóc Wam zorientować się czy chcecie pozostać przy uzywaniu `firewalld` czy, może, cofnąć się wstecz i podążać według Starej Szkoły(TM) (czyli operować komendami bardziej niskopoziomowymi ale i znacznie potężniejszymi, typu `iptables`, `eftables` czy `nftables` - przyp. markooff). W takim wypadku będzie jeszcze wiele do powiedzenia . + +## Konkluzja + +I to by już było wszystko jeśli chodzi o `firewalld` i podstawy jego konfiguracji. Ostatnia rada: działajcie z przemyśleniem, experymentujcie ale z ostrożnością, ale - najwazniejsze - nigdy nie tworzcie żadnych reguł z parametrem `--permanent` dopóki naprawdę nie będziecie w 100% pewni jak one zadziałają! + +I bawcie się przy tym dobrze. Kiedy już opanujecie dobrze podstawy tak naprawdę konfiguracja każdego przeciętnego firewalla nie powinna Wam zająć więcej niż 5-10 minut. diff --git a/docs/guides/security/ssh_public_private_keys.es.md b/docs/guides/security/ssh_public_private_keys.es.md index 9424000321..3220b13e2c 100644 --- a/docs/guides/security/ssh_public_private_keys.es.md +++ b/docs/guides/security/ssh_public_private_keys.es.md @@ -1,25 +1,38 @@ +--- +title: Claves SSH Públicas y Privadas +author: Steven Spencer +contributors: Ezequiel Bruni +tested with: 8.5 +tags: + - seguridad + - ssh + - keygen +--- + # Claves SSH Públicas y Privadas -## Requisitos +## Requisitos previos -* Un cierto nivel de comodidad operando desde la línea de comandos +* Comodidad operando desde la línea de comandos * Servidores Linux y/o estaciones de trabajo con *openssh* instalado * De acuerdo, técnicamente, este proceso podría funcionar en cualquier sistema Linux con openssh instalado. -* Opcional: familiaridad con los permisos de archivos y directorios de linux +* Opcional: familiaridad con los permisos de archivos y directorios de Linux # Introducción -SSH es un protocolo utilizado para acceder a una máquina desde otra, normalmente a través de la línea de comandos. Con SSH, puedes ejecutar comandos en ordenadores y servidores remotos, enviar archivos y, en general, gestionar todo lo que haces desde un solo lugar. +SSH es un protocolo utilizado para acceder a una máquina desde otra, normalmente a través de la línea de comandos. Mediante SSH, puede ejecutar comandos en ordenadores y servidores remotos, enviar archivos y, en general, gestionar todo lo que hace desde un solo lugar. -Cuando estás trabajando con múltiples servidores Rocky Linux en múltiples ubicaciones, o si simplemente estás tratando de ahorrar algo de tiempo accediendo a estos servidores, querrás usar un par de claves públicas y privadas SSH. Los pares de claves básicamente facilitan el acceso a máquinas remotas y la ejecución de comandos. +Cuando está trabajando con múltiples servidores Rocky Linux en múltiples ubicaciones, o si simplemente está tratando de ahorrar algo de tiempo accediendo a estos servidores, querrá utilizar un par de claves públicas y privadas SSH. Básicamente, los pares de claves facilitan el acceso a las máquinas remotas y la ejecución de comandos en ellas. -Este documento le guiará a través del proceso de creación de las claves y la configuración de sus servidores para un fácil acceso, con dichas claves. +Este documento le guiará a través del proceso de creación de las claves y de la configuración de sus servidores para facilitarle el acceso mediante esas claves. -### Procedimiento para la generación de claves +## Procedimiento para la generación de claves -Los siguientes comandos se ejecutan todos desde la línea de comandos en su estación de trabajo Rocky Linux: +Los siguientes comandos se ejecutan desde la línea de comandos de su estación de trabajo Rocky Linux: -`ssh-keygen -t rsa` +``` +ssh-keygen -t rsa +``` Que mostrará lo siguiente: @@ -28,62 +41,63 @@ Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): ``` -Pulsa Enter para aceptar la ubicación por defecto. A continuación el sistema mostrará: +Pulse Enter para aceptar la ubicación por defecto. A continuación el sistema mostrará: `Enter passphrase (empty for no passphrase):` -Por lo tanto, solo tienes que pulsar Enter aquí. Por último, le pedirá que vuelva a introducir la frase de contraseña: +Por lo tanto, solo tiene que pulsar Enter aquí. Por último, le pedirá que vuelva a introducir la frase de contraseña: `Enter same passphrase again:` -Así que pulsa Enter una última vez. +Así que pulse Enter una última vez. -Ahora deberías tener un par de claves públicas y privadas de tipo RSA en tu directorio .ssh: +Ahora debería tener un par de claves pública y privada de tipo RSA en su directorio .ssh: ``` ls -a .ssh/ . .. id_rsa id_rsa.pub ``` -Ahora tenemos que enviar la clave pública (id_rsa.pub) a cada máquina a la que vayamos a acceder... pero antes de hacerlo, tenemos que asegurarnos de que podemos acceder por SSH a los servidores a los que vamos a enviar la clave. Para nuestro ejemplo, vamos a utilizar solo tres servidores. +Ahora tenemos que enviar la clave pública (id_rsa.pub) a cada máquina a la que vayamos a acceder... pero antes de hacerlo, tenemos que asegurarnos de poder acceder por SSH a los servidores a los que vamos a enviar la clave. Para nuestro ejemplo, vamos a utilizar solo tres servidores. -Puedes acceder a ellos a través de SSH por un nombre DNS o una dirección IP, pero para nuestro ejemplo vamos a utilizar el nombre DNS. Nuestros servidores de ejemplo son web, correo y portal. Para cada servidor, intentaremos entrar por SSH (a los nerds les encanta usar SSH como verbo) y dejaremos una ventana de terminal abierta para cada máquina: +Puede acceder a ellos a través de SSH mediante un nombre DNS o una dirección IP, pero para nuestro ejemplo vamos a utilizar el nombre DNS. Nuestros servidores de ejemplo son web, correo y portal. Para cada servidor, intentaremos conectar mediante SSH (a los nerds les encanta usar SSH como verbo) y dejaremos una ventana de terminal abierta para cada máquina: -`ssh -l root web.ourourdomain.com` +`ssh -l root web.ourourdomain.com` Suponiendo que podemos iniciar sesión sin problemas en las tres máquinas, el siguiente paso es enviar nuestra clave pública a cada servidor: -`scp .ssh/id_rsa.pub root@web.ourourdomain.com:/root/` +`ssh/id_rsa.pub root@web.ourourdomain.com:/root/` + +Repita este paso con cada una de nuestras tres máquinas. -Repita este paso con cada una de nuestras tres máquinas. +En cada una de las ventanas del terminal abiertas, debería poder ver *id_rsa.pub* al introducir el siguiente comando: -En cada una de las ventanas de terminal abiertas, ahora debería poder ver *id_rsa.pub* al introducir el siguiente comando: +`ls -a | grep id_rsa.pub` -`ls -a | grep id_rsa.pub` +Si es así, ahora está listo para crear o añadir el archivo *authorized_keys* en el directorio *.ssh* de cada servidor. En cada uno de los servidores, introduzca este comando: -Si es así, ahora estamos listos para crear o añadir el archivo *authorized_keys* en el directorio *.ssh* de cada servidor. En cada uno de los servidores, introduzca este comando: +`ls -a .ssh` -`ls -a .ssh` +!!! attention "¡Importante!" -**¡Importante! Asegúrese de leer cuidadosamente todo lo que se indica a continuación. Si no estás seguro de romper algo, entonces haz una copia de seguridad de authorized_keys (si existe) en cada una de las máquinas antes de continuar.** + Asegúrese de leer cuidadosamente todo lo que se indica a continuación. Si no está seguro de que no vaya a romper nada, haga una copia de seguridad del archivo authorized_keys (si existe) de cada una de las máquinas antes de continuar. -Si no hay un archivo *authorized_keys* en la lista, entonces lo crearemos introduciendo este comando mientras estamos en nuestro directorio _/root_: +Si no existe el archivo *authorized_keys* en la lista, entonces lo crearemos introduciendo este comando desde el directorio _/root_: `cat id_rsa.pub > .ssh/authorized_keys` -Si _authorized_keys_ existe, entonces simplemente queremos añadir nuestra nueva clave pública a las que ya están allí: +Si el archivo _authorized_keys_ existe, entonces simplemente queremos añadir nuestra clave pública a las ya existentes: `cat id_rsa.pub >> .ssh/authorized_keys` -Una vez que la clave ha sido añadida a _authorized_keys_, o el archivo _authorized_keys_ ha sido creado, intente SSH desde su estación de trabajo Rocky Linux al servidor de nuevo. No debería pedírsele una contraseña. +Una vez añadida al archivo _authorized_keys_, o que el archivo _authorized_keys_ ha sido creado, intente conectar vía SSH desde su estación de trabajo Rocky Linux al servidor de nuevo. No debería pedírsele una contraseña. -Una vez que haya verificado que puede acceder por SSH sin contraseña, elimine el archivo id_rsa.pub del directorio _/root_ de cada máquina. +Una vez que haya verificado que puede acceder vía SSH sin utilizar su contraseña, elimine el archivo id_rsa.pub del directorio _/root_ de cada máquina. `rm id_rsa.pub` -### SSH Directory and authorized_keys Security +## Directorio SSH y seguridad del archivo authorized_keys -En cada uno de sus equipos de destino, asegúrese de que se aplican los siguientes permisos: +En cada uno de los equipos de destino, asegúrese de que se aplican los siguientes permisos: -`chmod 700 .ssh/` -`chmod 600 .ssh/authorized_keys` +`chmod 700 .ssh/` `chmod 600 .ssh/authorized_keys` diff --git a/docs/guides/security/ssh_public_private_keys.pl.md b/docs/guides/security/ssh_public_private_keys.pl.md new file mode 100644 index 0000000000..6b0b350860 --- /dev/null +++ b/docs/guides/security/ssh_public_private_keys.pl.md @@ -0,0 +1,103 @@ +--- +title: Klucz publiczny i prywatny SSH +author: Steven Spencer +contributors: Ezequiel Bruni, markooff +tested with: 8.5 +tags: + - security + - ssh + - keygen +--- + +# Zabezpieczenie kluczy SSH i pliku authorized_keys + +## Wymagania + +* Pewnej znajomości zarządzania systemem z poziomu konsoli +* Serwera oraz maszyny klienckiej z systemem Rocky Linux z zainstalowanym pakietem *openssh* + * OK, z technicznego punktu widzenia, ta metoda powinna działać na każdej dystrybucji Linuxa z zainstalowanym pakietem *openssh* +* Opcjonalnie - znajomość systemu uprawnień w systemie Linux + +# Wstęp + +SSH jest protokołem używanym do zdalnego łączenia się z jednej maszyny do drugiej, zwykle z poziomu konsoli. Z pomocą SSH możesz zdalnie wykonywać polecenia na serwerach, jak również przesyłać pliki, czyli w ogólności zarządzać wszystkimi swoimi zdalnymi maszynami z jednego miejsca. + +Kiedy zarządzasz wieloma serwerami opartymi o Rocky Linux w wielu różnych lokalizacjach i chciałbyś zaoszczędzić trochę czasu przy łączeniu z nimi, SSH daje Ci możliwość użycia par kluczy prywatny-publiczny. Te pary kluczy ułatwiają logowanie się i pozwalają zaoszczędzić czas. + +Ten dokument przeprowadzi Cię przez proces utworzenia pary kluczy oraz skonfigurowania Twoich serwerów do korzystania z nich. + +## Proces generowania kluczy + +Poniższe polecenia będą uruchamiane wprost w konsoli Twojej stacji roboczej: + +``` +ssh-keygen -t rsa +``` + +co wyświetli następujący wynik: + +``` +Generating public/private rsa key pair. +Enter file in which to save the key (/root/.ssh/id_rsa): +``` + +Nacisnij enter aby zaakceptować domyślną lokalizację plików. System zapyta Cię: + +`Enter passphrase (empty for no passphrase):` + +Więc po prostu naciśnij Enter tutaj. Ponownie zostaniemy zapytani o hasło: + +`Enter same passphrase again:` + +A więc naciskamy Enter po raz ostatni. + +Powinieneś teraz już mieć parę kluczy RSA, prywatny oraz publiczny, w Twoim katalogu .ssh . + +``` +ls -a .ssh/ +. .. .. +``` + +Teraz wyślemy nasz klucz publiczny (id_rsa.pub) na każdy z serwerów z którymi będziemy się łączyć. Ale najpierw zanim to zrobimy upewnijmy się że mamy dostęp przez SSH do kazdej z tych maszyn. W naszym przykładzie posłużymy się tylko trzema serwerami. + +Jeśli chodzi o łączenie się z serwerami za pomocą SSH to można to zrobić albo po adresie IP albo przez nazwę (DNS), w naszym przykładzie będziemy używać nazwy DNS. Nasze przykładowe serwry będą obsługiwać usługi www, mail oraz portal. Do każdego z serwerów będziemy się SSH-ować (prawdziwi nerdzi uwielbiają używać terminu SSH jako czasownik) i zostawiać otwarte okna konsol: + +`ssh -l root web.ourourdomain.com` + +Zakłóżmy że możemy się bez problemów zalogować na trzy maszyny, a zatem następny krok to porozsyłanie naszego publicznego klucza po wszystkich serwerach. + +`scp .ssh/id_rsa.pub root@web.ourourdomain.com:/root/` + +Powtarzamy ten krok dla każdego serwera. + +Teraz w kazdym z otwartych okien terminali (konsol) możemy zobaczyć nasze skopiowane pliki za pomocą komendy: + +`ls -a | grep id_rsa.pub` + +Jeśli tak jest (jeśli widzimy te pliki) to teraz możemy dodać nasze klucze do plików *authorized_keys* znajdujących się w katalogu .ssh konta na które się łączymy na każdym serwerze (przypomnę, że dla potrzeb tego materiału jest to konto root'a). Jeśli nie ma tam pliku *authorized_keys* tworzymy go. Na każdym z serwerów wpisz to polecenie: + +`ls -a .ssh` + +!!! attention "Ważne!" + + Upewnij się że zapoznałeś się z poniższymi instrukcjami dokładnie. Jeśli nie jesteś pewien kolejnego kroku, zrób najpierw kopię *authorized_keys* (jeśli istnieje) na kazdym serwerze zanim zrobisz krok dalej. + +Jeśli nie powyższa komenda nie wyświetli pliku *authorized_keys* wtedy tworzymy go poleceniem (wykonanym w katalogu _/root_ ): + +`cat id_rsa.pub > .ssh/authorized_keys` + +A jeśli _authorized_keys_ już istnieje wtedy tylko dodajemy nasz klucz do listy zapisanych w tym pliku poleceniem: + +`cat id_rsa.pub >> .ssh/authorized_keys` + +Kiedy już klucze będą dodane do istniejących plików _authorized_keys_ bądź pliki _authorized_keys_ zostaną przy tej okazji utworzone spróbujmy zalogować się poprzez SSH do naszych serwerów. Jeśli wszystko przebiegło pomyślnie nie zostaniemy poproszeni o podanie hasła. + +Kiedy już zweryfikujemy pomyśłnie nowy sposób logowania się, możemy bezpiecznie usunąć pliki id_rsa.pub z katalogu _/root_ każdego z serwerów poleceniem: + +`rm id_rsa.pub` + +## Proces generowania kluczy + +Upewnijmy isę że na każdym z serwerów zostaną ustawione następujące prawa dostępu: + +`chmod 700 .ssh/` `chmod 600 .ssh/authorized_keys` diff --git a/docs/guides/security/ssl_keys_https.pl.md b/docs/guides/security/ssl_keys_https.pl.md new file mode 100644 index 0000000000..a653e14cc0 --- /dev/null +++ b/docs/guides/security/ssl_keys_https.pl.md @@ -0,0 +1,138 @@ +--- +title: Generowanie Kluczy SSL +author: Steven Spencer +contributors: Ezequiel Bruni, markooff +tested with: 8.5 +tags: + - security + - ssl + - openssl +--- + +# Generowanie Kluczy SSL + +## Wymagania + +* Komputer (stację roboczą) oraz serwer z systemem Rocky Linux (OK, Linux, ale przecież będziesz chciał mieć Rocky Linux, prawda ?) +* Zainstalowany _OpenSSL_ na maszynie, na której będziesz generować prywatny klucz oraz CSR, jak również na serwerze, gdzie będziesz finalnie instalował swój klucz i certyfikaty +* Umiejętności komfortowej pracy w konsoli +* Będą pomocne: wiedza i znajomośc komend SSL i OpenSSL + + +## Wstęp + +Niemal wszystkie współczesne strony webowe _powinny_ mieć podłączony pod siebie certyfikat SSL (secure socket layer). Ta procedura przeprowadzi Cię przez proces generowania klucza prywatnego dla Twojej strony, a później, wygenerowania CSR (certificate signing request), który będzie Ci potrzebny do zakupienia samego certyfikatu. + +## Generowanie klucza prywatnego + +Dla niewtajemniczonych, klucze prywatne SSL mogą mieć różne wielkości, mierzone w bitach, które w zasadzie determinują jak trudne do złamania będą to klucze. + +Od 2021, zalecana długość klucza dla strony webowej wynosi 2048 bitów. Możesz wprawdzie ją zwiększyć, ale podwajając długość klucza z 2048 do 4096 podniesiesz poziom bezpieczeństwa tylko o ok. 16%, natomiast taki klucz zajmuje więcej miejsca oraz spowokuje większe obciążenia CPU podczas jego przetwarzania. + +Taki krok spowolni tylko działanie Twojej strony nie dając Ci żadnej znaczącej poprawy bezpieczeństwa. Dlatego na razie zaleca się pozostanie przy kluczu długości 2048 bitów aczkolwiek dobrze jest śledzić na bierząco wszelkie zmiany w tym zakresie. + +Zaczynając, upewnijmy się że OpenSSL jest zainstalowany na obu maszynach, stacji roboczej oraz serwerze: + +`dnf install openssl` + +Jeśli pakiet OpenSSL nie był dotąd zainstalowany po wydaniu tego polecenia system operacyjny pobierze i zainstaluje go wraz ze wszystkimi zależnościami. + +Naszą przykładową domeną niech będzie ourownwiki.com. Musisz pamiętać że musisz ją wykupić i zarejestrować zanim zaczniesz zabawę z SSL. Możesz zrobić to z pomocą jednej z szeregu firm rejestrującej domeny. + +Jeśli nie posiadasz własnego serwera DNS (Domain Name System), możesz użyć serwerów DNS Twojego providera. DNS tłumaczy nazwę domenową na ciąg cyfr (adres IP w wersji IPv4 lub IPv6) który rozumie Internet. Twoja strona strona jest hostowana na serwerze pod konkretnym adresem IP. + +A więc wygenerujmy klucz używając do tego openssl: + +`openssl genrsa -des3 -out ourownwiki.com.key.pass 2048` + +Zauważcie, nazwaliśmy od razu nasz klucz nadając mu także rozszerszenie .pass . Jak tylko wykonamy tą komendę program poprosi nas o podanie hasła (passphrase). Tutaj sugestia - podajmy krótkie hasło które zapamiętamy, gdyż i tak za chwilę będziemy go usuwać. + +``` +Enter pass phrase for ourownwiki.com.key.pass: +Verifying - Enter pass phrase for ourownwiki.com.key.pass: +``` + +Nastepnie, usuńmy to hasło. Powód takiego działania jest prosty, jeśli tego nie zrobimy to nasz serwer po każdorazowym restarcie podczas ładowania nszego klucza będzie prosił o hasło. + +Możemy nie móc za każdym razem go wprowadzać, albo nawet nie mieć wtedy dostępnej konsoli. Dlatego usuwamy go żeby uniknąć takich sytuacji. + +`openssl rsa -in ourownwiki.com.key.pass -out ourownwiki.com.key` + +Ta komenda bedzie wymagać podania naszego hasła raz jeszcze po czym usunie go z klucza. + +`Enter pass phrase for ourownwiki.com.key.pass:` + +Teraz, po podaniu hasła po raz trzeci, zostanie ono na trwałe usuniete z naszego kluca, a on sam zapisany jako ourownwiki.com.key + +## Generowanie CSR + +Następnym krokiem jest wygenerowanie CSR (certificate signing request) którego użyjemy podczas zakupu naszego certyfikatu. + +Podczas procesu generowania CSR będziemy proszeni o podanie szeregu informacji. Będą to arybuty X.509 dla naszego certyfikatu. + +Jednym z pierwszych informacji będzie podanie "Common Name (np. Twojej nazwy)". To ważne żeby to pole zawierało FQDN (Fully Qualified Domain Name) naszej strony która ma być chroniona protokołem SSL. Jeśli strona którą zamierzamy chronić ma miec adres https://www.ourownwiki.com to w tym polu podajemy ciąg www.ourownwiki.com : + +`openssl req -new -key ourownwiki.com.key -out ourownwiki.com.csr` + +Ta komenda uruchomi szereg pytań: + +`Country Name (2 letter code) [XX]:` wprowadź 2 literowy kod kraju gdzie będzie tTwoja strona, np."US" + +`State or Province Name (full name) []:` wprowadź pełną oficjalną nazwę stanu lub prowincji, np. "Nebraska" + +`Locality Name (eg, city) [Default City]:` wprowadź pełną nazwę miasta, np. "Omaha" + +`Organization Name (eg, company) [Default Company Ltd]:` jeśli chcesz, możesz tu podać nazwę Organizacji które częścią jest Twoja domena, lub po prostu nacisnąc Enter i przejść dalej + +`Organizational Unit Name (eg, section) []:` to pole określa dział w Organizacji gdzie będzie podlegać Twoja domena. Jak wyżej możesz pominąć naciskając Enter + +`Common Name (eg, your name or your server's hostname) []:` tutaj musisz podać nazwę serwisu np. "www.ourownwiki.com" + +`Email Address []:` to pole jest opcjonalne, jeśli nie chcesz go wypełnić po prostu naciśnij Enter + +Nastepnie zostaniesz poproszony o podanie dodatkowych atrybutów (oba można pominąć Enterem) + +``` +Please enter the following 'extra' attributes +to be sent with your certificate request +A challenge password []: +An optional company name []: +``` + +Po zakończeniu podawania wszystkich atrybutów zostanie wygenerowany nasz CSR. + +## Wykupywanie certyfikatu + +Każdy dostawca certyfikatów powinien mieć w zasadzie tą samą procedurę. Kupujesz SSL, określasz zakres czasowy (1 lub 2 lata) na jaki ma obowiązywać a potem wgrywasz swój CSR. Żeby wyświetlić sobie zawartość CSR użyj komendy `more`, po czym skopiuj tą zawartość. + +`more ourownwiki.com.csr` + +Co powinno dać rezultat podobny do poniższego: + +``` +-----BEGIN CERTIFICATE REQUEST----- +MIICrTCCAZUCAQAwaDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5lYnJhc2thMQ4w +DAYDVQQHDAVPbWFoYTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDEYMBYG +A1UEAwwPd3d3Lm91cndpa2kuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAzwN02erkv9JDhpR8NsJ9eNSm/bLW/jNsZxlxOS3BSOOfQDdUkX0rAt4G +nFyBAHRAyxyRvxag13O1rVdKtxUv96E+v76KaEBtXTIZOEZgV1visZoih6U44xGr +wcrNnotMB5F/T92zYsK2+GG8F1p9zA8UxO5VrKRL7RL3DtcUwJ8GSbuudAnBhueT +nLlPk2LB6g6jCaYbSF7RcK9OL304varo6Uk0zSFprrg/Cze8lxNAxbFzfhOBIsTo +PafcA1E8f6y522L9Vaen21XsHyUuZBpooopNqXsG62dcpLy7sOXeBnta4LbHsTLb +hOmLrK8RummygUB8NKErpXz3RCEn6wIDAQABoAAwDQYJKoZIhvcNAQELBQADggEB +ABMLz/omVg8BbbKYNZRevsSZ80leyV8TXpmP+KaSAWhMcGm/bzx8aVAyqOMLR+rC +V7B68BqOdBtkj9g3u8IerKNRwv00pu2O/LOsOznphFrRQUaarQwAvKQKaNEG/UPL +gArmKdlDilXBcUFaC2WxBWgxXI6tsE40v4y1zJNZSWsCbjZj4Xj41SB7FemB4SAR +RhuaGAOwZnzJBjX60OVzDCZHsfokNobHiAZhRWldVNct0jfFmoRXb4EvWVcbLHnS +E5feDUgu+YQ6ThliTrj2VJRLOAv0Qsum5Yl1uF+FZF9x6/nU/SurUhoSYHQ6Co93 +HFOltYOnfvz6tOEP39T/wMo= +-----END CERTIFICATE REQUEST----- +``` + +Powinieneś skopiować wszystko razem z liniami BEGIN CERTIFICATE REQUEST oraz END CERTIFICATE REQUEST. Następnie wklej skopiowaną zawartość w pole CSR w serwisie za pomocą którego kupujesz certyfikat SSL. + +Być może będziesz musiał wykonać inne kroki weryfikacyjne, w zależności od własności domeny, używanego rejestratora itp., zanim Twój certyfikat zostanie wystawiony. Kiedy go otrzymasz, będzie razem z nim wydany certyfikat pośredni od providera (serwisu w którym kupujesz certyfikat SSL), który będziesz potrzebować razem z właściwym certyfikatem do poprawnego skonfigurowania swojego serwisu. + +## Konkluzja + +Podsumowując, zakup certyfikatu SSL dla Twojego serwisu webowego nie jest czymś niewiarygodnie trudnym i może być łatwo zrealizowany za pomocą powyższej procedury przez administratora systemu bądź samego serwisu. diff --git a/docs/release_notes/9_0.zh.md b/docs/release_notes/9_0.zh.md new file mode 100644 index 0000000000..e3c6a17f2d --- /dev/null +++ b/docs/release_notes/9_0.zh.md @@ -0,0 +1,177 @@ +--- +title: 当前版本9.0 +tags: + - 9.0 + - 9.0 release + - Rocky 9.0 +--- + +# Rocky Linux 9.0的发布说明 + +## 重大变化 + +有关主要变化的完整清单,请参阅[此处](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/overview#overview-major-changes)的上游清单。 + +!!! warning "请检查 CPU 兼容性" + + 在Rocky Linux 9.0下,一些旧的 CPU 将无法正常运转,或许根本无法正常运转。 以下架构是系统安装成功的最低硬件要求: + + * 64 位架构的 AMD 和 Intel (x86-64-v2) + * 64 位 ARM 架构 (ARMv8.0-A) + * IBM Power Systems, Little Endian (POWER9) + * 64 位 IBM Z (z14) + + 有关支持的架构和使用不支持的架构带来的风险的更多信息,请参阅 [此处](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/architectures) 有关该主题的上游发布说明。 + +下文将详细介绍此次发布版本的一些亮点。 + +### 新的Build系统 (Peridot) + +Rocky Linux 9是由我们内部开发的、开源的名为 Peridot 的原生云构建系统精心构建的。 Peridot被用于为x86_64、arch64、s390x和ppc64le架构构建的Rocky Linux 9。 + +在其他方面,这个版本代表了我们对社区的长期承诺——即通过让用户从头开始自由的构建、增强或复制Rocky Linux的方式,来确保Rocky Linux项目的长久性。 构建系统的源代码可在 [此处](https://github.com/rocky-linux/peridot) 获得 + +### 安全 + +* 使用 **SHA-1** 对消息摘要进行加密的算法已被弃用, 因为SHA-1生成的加密散列函数不再被认为是安全的。 例外情况请见上面的上游链接。 +* **OpenSSL** 现在是 3.0 版本,此版本有许多的改进,包括诸如提供程序的概念、新版本的计划、改进的 HTTP(S) 客户端、支持新协议、格式和算法等等。 +* **OpenSSH** 现在是 8.7p1 版本,此版本有许多改进,最明显的是用提供更多可预测文件名处理的SFTP协议取代了SCP/RCP协议。 +* **SELinux** 的性能、内存开销、加载时间都得到了显著改进。 上游的版本发布说明中有着许多更详细的变更。 +* Rocky Linux 9支持直接通过Anaconda安装程序自动配置PCI-DSS、HIPAA、DISA以及其他许多安全合规方面的设置,从而节省时间和精力,以满足在快速发展的安全领域的复杂要求。 + +### 网络 + +与网络相关的主要变化如下所示。 有关这些变化以及其他与网络相关变化的详细覆盖面,请访问 [此处](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/new-features#enhancement_networking) 的上游链接。 + +* **mptcpd** 或 MultiPath TCP 守护程序,可以替代 `iproute2` 来配置MultiPath TCP 端点。 +* NetworkManager现在默认使用密钥文件来存储新的连接配置文件,但仍然支持使用 `ifcfg` 。 +* **iptables-nft** 和 **ipset** 现已被弃用,其中包括软件包工具,如 `iptables`、`ip6tables`、`ebtables` 和 `arptables`。 这些都被 `nftables` 框架所取代。 +* **network-scripts** 软件包已被移除, 转而使用的是 NetworkManager 来配置网络连接。 + +### Web和编程 + +接下来列出的几个动态编程语言、版本控制系统以及 web 相关的应用套件已经在Rocky Linux 9.0中更新到了较新的版本。 有关完整的变化清单和描述,请参阅 [这个上游链接](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/New-features#enhancement_dynamic-programming-languages-web-and-database-servers) 。 + + +#### 动态编程语言 + +* **Node.js 16** +* **Perl 5.32** +* **PHP 8.0** +* **Python 3.9** +* **Ruby 3.0** + +#### 版本控制系统 + +* **Git 2.31** +* **Subversion 1.14** + +#### Web 服务器 + +* **Apache HTTP Server 2.4.51** +* **nginx 1.20** + +#### 代理缓存服务器 + +* **Varnish Cache 6.6** +* **Squid 5.2** + +#### 数据库服务器 + +* **MariaDB 10.5** +* **MySQL 8.0** +* **PostgreSQL 13** +* **Redis 6.2** + +### 编译器和开发工具 + +有关完整的详细变化清单,请参阅 [这个上游链接](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/New-features#enhancement_compilers-and-development-tools) 。 重点内容如下: + +#### 系统工具链 + +* **GCC 11.2.1** +* **glibc 2.34** +* **binutils 2.35.2** + +#### 性能和调试工具 + +* **GDB 10.2** +* **Valgrind 3.18.1** +* **SystemTap 4.6** +* **Dyninst 11.0.0** +* **elfutils 0.186** + +#### 性能监测工具 + +* **PCP 5.3.5** +* **Grafana 7.5.11** + +#### 编译器工具集 + +* **LLVM Toolset 13.0.1** +* **Rust Toolset 1.58.1** +* **Go Toolset 1.17.7** + +#### Java 实现 + +提供了以下的 Java 运行环境和 Java 开发套件: + +* `java-17-openjdk` +* `java-11-openjdk` +* `java-1.8.0-openjdk` + +提供了以下 Java 工具: + +* **Maven 3.6** +* **Ant 1.10** + +### 虚拟化 + +关于虚拟化中的变化和增强功能的完整列表,请参阅 [此上游链接](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/New-features#enhancement_virtualization)。 + +主要的亮点是: + +* QEMU现在是使用CLANG编译器构建,该编译器允许 KVM Hypervisor 使用许多高级的安全与调试功能。 +* 现在完全支持 vTPM(Virtual Trusted Platform Module,虚拟可信平台模块)。 +* `virtiofs` 功能已经实现,你可以用它来更有效地在 Rocky Linux 主机和它的虚拟机之间共享文件。 +* `cgroup-v2` 实现了单一的层次结构模型,它现在是9.0中的默认 Linux 控制组。 这将对那些使用基于容器化的系统(Docker、Kubernetes等)产生一些影响。 更多信息请见上面的链接。 + +## 系统升级 + +Rocky Linux团队不建议从一个主要版本升级到另一个主要版本(在这种情况下为8.6至9.0)。 虽然在主要版本之间进行升级在技术上是可行的,但我们建议重新安装所需的最新主要版本。 + +## 安装 + +若要安装 Rocky Linux 9.0,请前往 [下载页面](https://rockylinux.org/download/) 并下载您的架构所需的版本。 Rocky Linux 9.0的完整安装指南可在 [Rocky Linux 文档网站](https://docs.rockylinux.org/guides/installation/) 上找到。 + +虽然这在(上面的)安装指南中有所涉及,但重要的是你要根据该文件的 CHECKSUM 验证你的下载,以确保没有损坏或篡改。 假设你已经在另一台使用Linux的机器上下载了该文件,则可以通过以下步骤完成此操作: + + * 在您下载目标架构的 ISO 镜像的目录中,下载CHECKSUM 文件。 示例: + + ``` + curl https://download.rockylinux.org/pub/rocky/9/isos/x86_64/CHECKSUM -o CHECKSUM + ``` + + * 然后运行命令: + + ``` + sha256sum -c CHECKSUM --ignore-missing + ``` + + * 如果您在命令行上返回以下内容,则表示您的文件已经通过了验证。 请注意,我们假设以下是 minimal ISO,但也可能是DVD ISO: + + ``` + Rocky-9.0-x86_64-minimal.iso: OK + ``` + +另外,你也可以通过到 [这里的github存储库](https://github.com/rocky-linux/checksums) 获得任何 Rocky Linux 发布版本的 checksums。 + +## 已知问题 + +与任何版本一样,存在一些已知的问题。 您可以在 [这里](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/known-issues) 查看来自上游的当前问题清单。 + +* **使用 Minimal ISO 安装的限制**——大多数(不是所有)与安全有关的软件包将无法工作。 如果你在安装时需要与安全相关或SCAP的配置文件以及软件包,请使用DVD ISO。 + +## 报告bug + +请向 [Rocky Linux Bug Tracker](https://bugs.rockylinux.org/) 报告您遇到的任何bug。 我们也欢迎您以任何方式加入我们的社区,可以是 [论坛](https://forums.rockylinux.org)、[Mattermost](https://chat.rockylinux.org)、[IRC on Libera.Chat](irc://irc.liberachat/rockylinux)、[Reddit](https://reddit.com/r/rockylinux)、[Mailing Lists](https://lists.resf.org) 或者其他任何您想参与的方式!