• Solaris

    Bienvenue sur la page consacrée à Solaris 11.4

    Vous trouverez :

    Configurations de base :
    - Script de configuration global Solaris 11.4
    Configuration réseau

    Installation de Solaris 11.4 et boîte à outils :
    - Installer Solaris 11.4 
    Liste du matériel compatible
    Installer l'environnement de Bureau de Solaris 
    - Comment imprimer sous Solaris (cups en lignes de commandes)
    - Installer le dépôt SFE IPS
    - Installer le dépôt openCWS 
    - Créer votre propre dépôt (faire une copie d'un dépôt distant, en local)
    - Installer HTTrack pour aspirer un site web
    - Créer des raccourcis de commandes permanents  
    Exécutez un script au démarrage de Solaris
    - Que faire après un clone intégral d'une VM Solaris ?
    - Se connecter en VNC à un serveur Solaris distant 
    - Se connecter en VNC (dans un tunnel SSH) à un serveur Solaris distant
    Créer un environnement de boot (Snapshot système !) 
    Manipuler ZFS. Créer un pool, créer des partitions ZFS, créer des snapshots
    - Aspirer un site web avec wget
    - Régler la date et l'heure avec NTP
    - Installer LibreOffice sur Solaris
    - Monter un volume SFTP sur Gnome
    - Graver une image ISO (ou .usb) sur une clef USB
    - Faire ouvrir un terminal et exécuter une commande depuis un script sous Solaris Desktop (gnome)

    Virtualisation :
    - Installer VirtualBox 7.0.6 sur Solaris (environnement de bureau) 
    Installer les Guest-Additions pour Solaris dans VirtualBox

    Base SQL : (voir la rubrique MySQL)
    - Installer MySQL 8.0.32 sur Solaris 11.4

    Configuration d'un serveur Web et outils d'administration
    - Configurer un site internet en http sur Nginx
    Configurer un site internet en http avec Apache  
    - Installer Wordpress avec Apache (http)
    - Activer PHP-80 avec Apache
    Configurer un site intranet en https avec Apache (AUTO-SIGNE)
    - Configurer un site intranet en https avec Nginx (AUTO-SIGNE OU INTEGRANT UN VRAI CERTIFICAT)
    Configurer un site intranet/internet en https avec Apache (SIGNE PAR UNE AUTORITE DISTANTE)

    - Installer Concrete-5 (9.1.3) en http sur Apache24
    - SSL - Comment retrouver les informations entrées dans votre demande de signature .csr
    - Rediriger les requêtes HTTP vers HTTPS, avec ou sans changement des ports par défaut d'Apache
    - Rediriger les requêtes HTTP vers HTTPS, avec ou sans changement des ports par défaut d'Nginx
    - ddclient : pour faire un update dynamique de votre IP (sans agent du style noip)

    Sécuriser son serveur 
    - Sécuriser l'accès en SSH
    - Générer des clefs SSH pour se connecter à un serveur distant
    - Configurer le pare-feu PF, règles de base, protections contre les DDoS
    Installer le VPN OVPN

    Serveur FTP :
    - Installer un serveur FTPS (ProFTPd)

    Serveur DNS
    Déployer un serveur DNS local avec BIND9

  • Sur Solaris, la plupart des agents de mise à jour automatique d'IP comme celui de noip (par exemple) n'existent pas.
    Nos box internet ont souvent, par défaut, une IP publique dynamique (i.e. cette IP change régulièrement.).
    Dans le cas où vous voudriez héberger un petit site web/serveur quelconque chez vous, il vous faut un moyen de mettre à jour automatiquement ce changement d'adresse IP, autrement votre site ne serait rapidement plus contactable sur internet.

    Solutions :
    1) récupérer vous-même la nouvelle IP à chaque fois qu'elle change et mettre manuellement à jour votre enregistrement A (ou AAAA) sur le site de votre fournisseur de domaine... Long, et fastidieux !
    2) Installer ddclient sur votre serveur.

    Il s'agît d'un petit programme qui va faire ce travail d'actualisation auprès de votre fournisseur de domaine.
    ddclient a le très avantage d'être compatible avec bon nombre de fournisseurs.

    On va construire ddclient directement à partir des sources.. c'est un peu long et sportif, mais ça marche parfaitement.

    Passez en root, puis :

    1) Installer les paquets nécessaires :

    pkg install autoconf automake-116

    2) Procédez à l'installation des modules Perl nécessaires :

    Si c'est la première fois que vous lancez "cpan", il vous demandera si vous souhaitez le laisser se configurer automatiquement [yes], tappez sur la touche [ENTRER]. ça risque de prendre du temps (c'est long sur Solaris)

    Si vous avez déjà lancé cpan par le passé, passez directement à la commande suivante)

    cpan

    Installer les modules Perl nécessaires pour construire ddclient :

    cpan IO::Socket::SSL IO::Socket::INET6 JSON::PP Test::MockModule Test::TCP Time::HiRes CPAN::DistnameInfo URI HTTP::Message::PSGI Test::MockModule

    Beaucoup de trucs vont foirer, pas d'inquiétudes... laissez faire. ça peut prendre un peu de temps.

    3) Téléchargez ddclient :

    wget https://github.com/ddclient/ddclient/archive/refs/tags/v3.10.0.tar.gz -P /tmp
    cd /tmp
    tar xvzf v3.*
    cd ddclient*

    4) Procédez à l'installation :

    ./autogen
    ./configure --prefix=/usr --sysconfdir=/etc/ddclient --localstatedir=/var
    make
    make install
    chmod 700 /etc/ddclient/ddclient.conf

    5) Configurez ddclient :
    Faîte une copie de sauvegarde du fichier de conf par défaut

    cp /etc/ddclient/ddclient.conf /etc/ddclient/ddclient.conf.BAK
    nano /etc/ddclient/ddclient.conf

    Voici une configuration type pour noip.
    (Supprimez tout le reste du fichier)

    # Configuration NOIP :

    use=web
    web=checkip.dyndns.com
    web-skip='Current IP Address: '

    protocol=dyndns2
    server=dynupdate.no-ip.com
    login=votreadressemail@jesaispasquoi.frcomnetetc
    password='lemotdepassedevotrecomptenoip'
    votre.domaine.frcomtrucetc 

    6) Lancez ddclient :

    ddclient

    (beaucoup de choses vont s'afficher, des réussites, des ratés... mais logiquement, si vous comparez en direct sur votre espace NOIP ou autre, vous verrez que l'update s'est faîte)

     


    votre commentaire
  • Même topic que sur Apache mais avec Nginx.

    On peut faire une redirection générale des requêtes http vers https pour tous les sites.
    (Sans changer les ports http et https dans un premier temps)
    On crée un vhost avec ce qui suit :

    server {
    listen 80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
    }

    Et on relance nginx (je vous rappelle qu'Nginx s'installe à partir du dépôt openCWS

    cd /etc/opt/csw/init.d/
    ./cswnginx restart

     

    ------------------------------------------------------------------------------------------------------------------------------------------------------
    Pour effectuer une redirection spécifique sur un vhost en particulier (classique HTTP vers HTTPS sans changement des ports 80 et 443), il faut soit créer un vhost,soit rajouter l'encart suivant dans le fichier du vhost concerné :

    server {
    listen IP-SERVEUR:PORTHTTP;
    server_name NOM-DU-SITE;
    return 301 https://$host$request_uri;
    }

    Et on relance nginx

    service nginx restart


    Le problème se pose lorsque les ports 80 et 443 ont été changé :
    (imaginons, le port http 80 -> 5501 et le port https 443 -> 5502)

    server {
    listen IP-SERVEUR:5501;
    server_name NOM-DU-SITE;
    return 301 https://NOM-DU-SITE:5502;
    }

    Et on relance nginx

    cd /etc/opt/csw/init.d/
    ./cswnginx restart

     

     

     


    votre commentaire
  • Facile !
    Il y a tellement de façon de faire qu'on s'y perdrait...
    - avec la directive Redirect
    - avec un rewrite module
    - avec une directive .htaccess
    - avec un ProxyPass...

    On va faire au plus simple avec la directive Redirect, (même si savoir faire un proxypass n'est pas superflu) !

    Première chose, vous devez avoir un site en HTTPS fonctionnel ! (évidemment).
    Donc vous devez déjà avoir un vhost SSL pour votre site, avec certificat signé par une autorité distante (ou autosigné si vous faîtes juste une maquette)
    (rappel : le script global vous permet de le faire automatiquement !)


    Pour mettre en place une redirection HTTP vers HTTPS, il faut donc créer un nouveau vhost (ou utiliser le vhost SSL de votre site et rajouter l'encart suivant avant ou après l'encart de votre site SSL).

    <VirtualHost IP:PORTHTTP>
           ServerName NOM-DU-SITE
           Redirect permanent / https://NOM-DU-SITE:PORTHTTPS/
    </VirtualHost>

    A vous de remplacer l'IP:PORTHTTP selon votre configuration
    Si vous joignez votre site sur le socket 192.168.1.200:80 (en http), alors mettez ça !
    Si vous joignez votre site sur le socket 150.0.0.200:8081 (en http), alors mettez ça !
    Ne laissez évidemment pas IP:PORTHTTP !


    Autre point FONDAMENTAL dans la directive Redirect... Vous devez préciser le port HTTPS si vous utilisez un autre que le 443 !
    ET SURTOUT, N'OUBLIEZ PAS LE / A LA FIN DU SOCKET !!! SINON CA NE FONCTIONNERA PAS !!

    Voilà, c'est aussi simple.

    Passons maintenant aux ports d'écoutes d'Apache.
    Si vous avez décidé d'utiliser d'autres ports que les ports 80 (http) et 443 (https), alors les directives indiquées ci-dessus dans les vhosts ne suffiront pas, puisqu'Apache n'écoute que les ports 80 et 443 par défaut.

    A la différence de Debian, sur Solaris il n'existe pas de fichier ports.conf pour tout changer d'un coup (et c'est beaucoup mieux comme ça..).
    Si vous avez modifié le port SSL (443) pour un autre dans votre vhost, pas de soucis, apache en tiendra compte
    C'est pour le port http lors de la redirection que ça va coincer.

    Il vous faut donc vous rendre dans le fichier /etc/apache2/2.4/httpd.conf, repérer la ligne "Listen 80" et changer le numéro du port http pour celui que vous souhaitez. Puis redémarrer apache.

     


    votre commentaire
  • Vous avez créé votre demande de signature de certificat SSL, et vous ne vous souvenez plus des informations que vous avez entrées lors de la création.. Pas de soucis :

    openssl req -in votredemande.csr -noout -text | less

    votre commentaire
  • Ouvrir un terminal :

    gnome-terminal --command="vi /tmp/exemple.txt"

    Le résultat est l'affichage d'une nouvelle fenêtre de terminal avec le contenu du fichier exemple.txt


    votre commentaire
  •  Ouvrir un terminal, vous loguer en root, puis : 

      
      

    1) Insérer une clef USB.
    2) Utilisez la commande format -e supprimer manuellement chaque partition (avec fdisk), puis recréer une partition type 4 (OTHER).

    format -e

    - Choisissez votre clef (entrez le numéro qui s'affiche devant)

    Dans le menu qui s'affiche, choisissez fdisk

    fdisk

    - Supprimez à présent chaque partition (c'est le choix 3).
    Recommencez jusqu'à ce qu'il n'y ait plus aucune partition.

    - Créer une partition (choix 1). Type 4 (OTHER). Entrez 100% (pour que votre partition fassent 100% de la capacité du disque)

    - Quittez fdisk avec le choix 6

    - Quittez format en écrivant :

    quit

    3) repérer le nom de la clef USB (c?t0d0) (si vous ne vous en souvenez déjà plus de l'étape précédente)

    iostat -En

    pour l'exemple, nous allons définir qu'il s'agît de la clef c2t0d0

    3) utiliser dd

    dd if=/chemin/jusqu'à/l'iso.iso of=/dev/dsk/c2t0d0p0 bs=1

    (n'oubliez pas le p0 à la fin de c2t0d0... puisqu'il l'image doit se copier sur la première partition)

    La clef USB est désormais bootable


    votre commentaire
  • Le but est de se connecter depuis un ordinateur "initiateur" à un ordinateur "cible" grâce au protocole VNC, entunnelé dans du SSH.
    Les 2 ordinateurs possèdent un environnement de bureau (ça n'aurait aucun sens sinon).

    Pour plus de sécurité, nous allons  donc encapsuler le traffic dans un tunnel SSH.
    Lorsqu'on travaille depuis Windows, il suffit d'utiliser Putty pour cela (voir l'article consacré à ce sujet).
    Mais lorsqu'on travaille depuis Linux/BSD/Solaris/OI.., on peut tout simplement utiliser un terminal.

    Pré-requis :
    - l'ordinateur cible doit pouvoir être contactable en SSH. Attention aux pare-feux/box !
    - Le pare-feu de l'ordinateur cible doit laisser le port VNC choisi OUVERT ! (ici le 5901).. tout du moins pour son réseau local (seul le port SSH doit être déNATté sur la box/pare-feu pour l'accès à distance)

    - vncserver doit avoir été lancé au moins une fois depuis l'ordinateur cible (pour configurer le mot de passe notamment)
    - Vous devez installer un client VNC sur votre ordinateur initiateur (type tigerVNC)

    Voici comment procéder :

    Ouvrez un terminal sur l'ordinateur initiateur et tappez :

    ssh USER-SUR-CIBLE@IP-CIBLE -L 5902:localhost:5901 "vncserver"

    explication : vous ouvrez le port 5902, en local, sur votre ordinateur initiateur, puis vous ouvrez le port 5901 sur l'ordinateur cible.
    Le traffic sera ainsi encapsulé en SSH.

    Lancez à présent votre client VNC, et tappez l'adresse "localhost:5902".

    C'est aussi simple.
    Si on avait eu un serveur OI à la place de solaris, la commande aurait été plus complexe (voir l'article avec x11vnc pour OI) mais le principe reste exactement le même.

     

    Et si vous ne vous en sortez pas, utilisez Putty ! Il est disponible sur pratiquemment tous les OS

     


    votre commentaire
  • Exemple de configuration d'une imprimante Ricoh SP330DN, branchée sur le réseau, au moyen d'un câble ethernet.
    L'imprimante a pour adresse IP : 192.168.1.90

    Sur Solaris (avec environnement de bureau), cups est normalement déjà installé par défaut.
    Ne reste plus qu'à utiliser la commande "lpadmin" pour créer et configurer l'imprimante.
    On passe par la ligne de commande... mais vous allez voir, c'est encore plus rapide qu'avec system-config-printer !


    1) Télécharger le fichier PPD de l'imprimante.
    Cette imprimante peut être configurée via son fichier PPD, et tant mieux, ça va aller encore plus vite !
    Il suffit de le télécharger sur internet :
    (https://www.openprinting.org/printer/Ricoh/Ricoh-SP_330DN)


    2) Ouvrez un terminal, passez en root (su), puis tappez :  

    lpadmin -p RICOH -E -v ipp://192.168.1.90 -i '/export/home/USER/Downloads/Ricoh-SP_330DN-Postscript-Ricoh.ppd'

    Voilà, votre imprimante est configurée, et vous pouvez désormais imprimer n'importe quel document depuis votre navigateur/éditeur de texte etc..

    Personnellement, je veille à choisir des imprimantes dont les fichiers PPD existent ! ça simplifie beaucoup le travail sous les Linux/BSD/Solaris !

     


    votre commentaire
  • Dans l'explorateur de fichiers de GNOME, vous pouvez monter un volume SFTP directement.

    Pour cela, vous devez respecter la syntaxe suivante.
    Ouvrez une fenêtre de l'exporateur, cliquez sur "+ Other Locations" dans le menu de gauche.
    Puis inscrivez tout en bas l'adresse de votre serveur.

    Attention, contrairement à ce qui est indiqué sur plusieurs tutos sur le net, ftp n'est pas sftp !!
    Pour vous connecter à un serveur SFTP, vous devez bien indiquer sftp:// !

    sftp://domaine.ou.ip:port


    Egalement, contrairement à XFCE, on écrit pas l'adresse en entier (en incluant le nom de l'utilisateur sur le serveur SFTP.. du genre : sftp://marcel.util@super-serveur-sftp.org:54236.
    Cette information sera rentrée après !)

     


    votre commentaire
  • Bon, je vous le concède, la version 5.2 de LibreOffice date un peu.. mais elle est toujours installable grâce au dépôt SFE.
    On trouve des versions 7.xx plus récentes sur les OpenIndiana Hipster (OpenSolaris)


    Pour installer le dépôt pour Solaris 11.4 :

    1) Changer votre DNS (celui des box pose parfois problème)

    echo "nameserver 1.1.1.1" > /etc/resolv.conf 

    2) Installer le dépôt :

    pfexec pkg set-publisher -G '*' -g https://sfe.opencsw.org/localhosts12 localhosts12

    -------------------------------------------------------------------

    Pour installer LibreOffice

    pkg install libreoffice52 libreoffice52-desktop-int

    votre commentaire
  • Configurer NTP afin qu'il aille récupérer l'heure et la date automatiquement sur un serveur de temps en France.

    Ouvrez un terminal, puis

    1) Endossez le rôle de root :

    su

    2) Copier le fichier exemple

    cp /etc/inet/ntp.client /etc/inet/ntp.conf

    3) Ajoutez un serveur français
    Ouvrez le fichier avec l'éditeur de votre choix (moi j'utilise vi) et ajoutez votre serveur
    (vous trouverez votre serveur sur la page suivante : https://www.pool.ntp.org/zone/fr).
    Ici je fais un remplacement directement dans le fichier :

    sed "s/# server server_name1 iburst/server 0.fr.pool.ntp.org iburst/" /etc/inet/ntp.conf > /tmp/ntp-temp && mv /tmp/ntp-temp /etc/inet/ntp.conf

    4) Activez ntp

    svcadm enable ntp

    5) Pour afficher l'heure

    ntptime

     


    votre commentaire
  • Une fois votre VM Solaris montée dans VirtualBox et l'environnement de Bureau installé, vous pouvez installer les Guest-Additions.

    Pour cela, 


    1) Ajouter un lecteur de CD à votre VM dans les paramètres. (Vous devez d'abord avoir éteint la VM)
    2) Lancer la VM, identifiez-vous, puis une fois sur le bureau, cliquez sur "Périphériques", "Insérez l'image CD des additions invité". Ensuite,
    3) Ouvrez l'explorateur de fichiers, cliquez sur le CD des guest-additions monté, puis 

    4) Clic-droit, ouvrir un terminal.
    5) Loguez-vous en root (su)
    6) Installez les guest-additions :

    pkgadd -d VBoxSolarisAdditions.pkg

    Répondez all et y à tout le reste.
    Redémarrez votre VM.

     


    votre commentaire
  • Pour installer VirtualBox 7.0.6

    1) Télécharger le paquet sur le site de VirtualBox (cliquez sur le lien pour le télécharger directement)
    2) Vous rendre dans le dossier Downloads, Télécharger la version "Solaris hosts"
    3) Double-cliquez sur le paquet téléchargé et le décompresser directement dans Downloads
    4) Ouvrir un invite de commande dans le dossier Downloads et passer en root
    5) Installer python-27 :

    pkg install python-27

    6) Installez VirtualBox :

    pkgadd -d VirtualBox-7.0.6-SunOS-amd64-r156879.pkg

    Répondez "all" puis "y" lors des questions posées par l'installeur


    Je vous suggère de redémarrer à la fin de l'installation avant de lancer VirtualBox pour la première fois

     


    votre commentaire
  • PROCEDURE FONCTIONNELLE AU 28/03/2023

    Procédure d'installation complète :

    Installation de Concrete-5 9.1.3 sur Solaris 11.4, depuis le début (avec la pile SAMP).
    Dans cette procédure, je crée un vhost (www.monentreprise.com).
    J'accèderai donc à Concrete-5 via http://www.monentreprise.com (après une enregistrement DNS, bien entendu)


    Une fois votre installation de Solaris 11.4 terminée, loguez-vous en root :

    1) Installer Apache et le lancer

    pkg install apache-24

    2) Installation et Configuration de MySQL 8.0

    Suivre l'article concernant l'installation de MySQL 8.0.32

    Veuillez créer la base et l'utilisateur privilégié pour Concrete-5 :

    mysqladmin -uroot -p create concretedb
    mysql -uroot -p -e"CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password'"
    mysql -uroot -p -e"GRANT ALL ON concretedb.* TO 'admin'@'localhost'"

    3) Installation et configuration de Concrete-5 ainsi que des extensions php nécessaires

    pkg install php-80

    A présent il faut activer les extensions nécessaires au fonctionnement de Concrete-5 :

    cp /etc/php/8.0/conf.d/extensions.ini /etc/php/8.0/conf.d/extensions.ini.BAK
    nano /etc/php/8.0/conf.d/extensions.ini
    # pour ne rien vous cacher, je ne me souviens plus de la liste exacte.. Allez rechercher sur le net..
    # cependant la liste suivante fonctionne :
    # (il vous suffit d'enlever le ; devant chaque ligne pour activer l'extension)
    extension=bz2.so
    extension=curl.so
    extension=gd.so
    extension=gettext.so
    extension=mbstring.so
    extension=mysqli.so
    extension=pdo_mysql.so
    zend_extension=opcache.so

    Télécharger Concrete-5 à présent et placez-le sur le serveur : concretecms.org
    Je vous ai préparé un tinyurl pour aller plus vite et télécharger directement concrete-5 sur le serveur, car leur URL est trop longue pour être copiée-collée.

    wget https://tinyurl.com/concrete5-maj -P /tmp
    cd /tmp
    unzip concrete5-maj
    mkdir -p /usr/apache2/2.4/docs/www.monentreprise.com/logs
    mv concrete-cms-9.1.3/* /usr/apache2/2.4/docs/www.monentreprise.com

     

    4) Activation de php sur apache

    cp /etc/apache2/2.4/samples-conf.d/php8.0.conf /etc/apache2/2.4/conf.d/

    5) Configuration du vhost Apache24.

    vi /etc/apache2/2.4/conf.d/www.monentreprise.com.conf
    # a minima, la config suivante :
    <VirtualHost *:80>       ServerName www.monentreprise.com       DocumentRoot /usr/apache2/2.4/docs/www.monentreprise.com       ErrorLog
    /usr/apache2/2.4/docs/www.monentreprise.com/logs/error_log       CustomLog /usr/apache2/2.4/docs/www.monentreprise.com/logs/access_log combined       <Directory /usr/apache2/2.4/docs> AllowOverride Options FileInfo Limit           Options Indexes FollowSymLinks           Require all granted       </Directory> </VirtualHost>
    # enregistrer et quitter

    6) Autoriser l'accès à webservd:webservd au dossier racine

    chown webservd:webservd /usr/apache2/2.4/docs/www.monentreprise.com

    Et on applique les droits d'accès nécessaires préconisés :

    chown -R webservd:webservd /usr/apache2/2.4/docs/www.monentreprise.com/application/files
    chown -R webservd:webservd /usr/apache2/2.4/docs/www.monentreprise.com/application/config
    chown -R webservd:webservd /usr/apache2/2.4/docs/www.monentreprise.com/application/languages
    chown -R webservd:webservd /usr/apache2/2.4/docs/www.monentreprise.com/packages
    chown -R webservd:webservd /usr/apache2/2.4/docs/www.monentreprise.com/updates
    chmod -R 755 /usr/apache2/2.4/docs/www.monentreprise.com/application/files
    chmod -R 755 /usr/apache2/2.4/docs/www.monentreprise.com/application/config
    chmod -R 755 /usr/apache2/2.4/docs/www.monentreprise.com/application/languages
    chmod -R 755 /usr/apache2/2.4/docs/www.monentreprise.com/packages
    chmod -R 755 /usr/apache2/2.4/docs/www.monentreprise.com/updates

     

    7) Démarrer Apache24

    svcadm enable apache24

    Après un enregistrement DNS sur votre hôte, vous pourrez accéder à l'interface sur http://www.monentreprise.com

    Pour l'initialisation, veuillez rentrer les informations entrées ci-dessus (utilisateur de base SQL, mot de passe, nom de la base..).
    L'adresse du serveur est : 127.0.0.1 (et pas localhost !).
    N'oubliez pas de spécifier le fuseau horaire de Paris dans les paramètres avancés, avant de lancer l'installation.

     


    votre commentaire
  • https://www.oracle.com/webfolder/technetwork/hcl/data/s11ga/index.html

    Des quelques tests que j'ai réalisé avec le matériel dont je disposais,
    Solaris 11.4 ne s'installe que sur très peu de matériel, et sur aucun équipement moderne (hormis les rares serveurs sun, fuji, hp etc... listés sur le lien ci-dessus). Et sur aucun portable depuis près de 10 ans.

    Mais contre toute attente, il s'installe très bien sur les Fujitsu Esprimo Q920 avec i5-4590T. Et tout fonctionne ! (serveur ET environnement de Bureau !!)
    Ces petits Fujitsu son très peu chers (130€) et on en trouve à la tonne sur les sites de matériel reconditionné.
    (Amazon, backmarket,refurbed,ebay...).
    Très chouette pour tester l'OS en conditions réelles.
    Leur capacité maximale en RAM est de 16Go.. (on aurait peut-être aimé un peu plus parfois !).


    Le mode de préparation habituel du matériel étant le suivant :
    1) Détruire toutes les partitions avec gparted
    2) Créer une table SunOS (toujours avec gparted)
    3) Installer Solaris grâce à un ISO gravé sur un DVD.

    Les Versions AI et TEXT fonctionnent toutes 2 très bien.
    Perso, j'utilise l'AI... comme ça, pas besoin de faire les update !



    votre commentaire
  • Quoi de neuf avec ZFS sur Solaris 11 ? (par rapport à Solaris 10)
    - possibilité d'utiliser ZFS sur le disque de boot et de booter sur un système de fichiers ZFS
    - les jeux de données ZFS encryptés !
    - la capacité de ZFS à détecter et supprimer les données redondantes de l'arborescence

    -----------------------------------------------------------------

    Une fois avec ajouté plusieurs disques à votre serveur Solaris, nous allons les manipuler avec ZFS.

    d'abord, rafraîchir la liste des périphériques

    devfsadm

    Puis afficher les disques 

    echo | format

    Vous devriez voir vos diques durs apparaître.

    Pour l'exemple nous allons dire que vous avez rajouté les disques c2t2d0, c2t3d0 et c2t4d0

    Regardons la liste des zpool actuelle :

    zpool list

    Nous allons à présent créer un nouveau pool que l'on nommera "stockage", et qui sera composé de c2t2d0 et c2t3d0 :

    zpool create stockage c2t2d0 c2t3d0

    à présent, regardons notre zpool :

    zpool list

    Vous devriez voir apparaître votre "stockage".
    Son point de montage est /stockage sur le système.

    Nous avons oublié d'ajouter c2t4d0... ajoutons-le à notre pool stockage !

    zpool add stockage c2t4d0

    Si nous regardons à présent le détail de notre pool stockage, nous verrons qu'il comprend bien les 2 disques durs que nous avons ajouté :

    zpool status stockage

    Si vous souhaitez supprimer du pool stockage, le disque que vous venez d'ajouter :

    zpool remove stockage c2t4d0

    -----------------------------------------------------------------
    Nous changeons d'avis et décidons de supprimer le disque c2t4d0 du pool stockage :

    zpool remove c2t4d0

    ----------------------------------------------------
    A présent, nous voulons créer des partitions ZFS sur notre pool stockage.
    2 partitions : /stockage/compta et /stockage/RH

    zfs create stockage/compta
    zfs create stockage/RH

    Voilà, les 2 partitions sont créées.
    -----------------------------------------------------
    A présent, nous voulons définir un quota (taille limite) sur la partition RH.
    Nous voulons qu'elle ne dépasse pas les 10G :

    zfs set quota=10G stockage/RH

    Comment retirer un quota :

    zfs set quota=none stockage/RH

    Comment connaître la taille du quota :

    zfs get quota stockage/RH

    Nous voulons aussi créer une réservation d'espace de 30Go sur la partition /stockage/compta

    zfs set reservation=30G stockage/compta

    Voilà qui est fait !
    Vous pouvez contrôler que les tailles ont bien été prises en compte avec 

    df -h | grep stockage

    Dernier cas pratique. Vous souhaitez faire une copie, sur un second serveur, de pool1/data qui se trouve sur le premier serveur. Vous avez donc créé le pool pool1 sur le second serveur, ne reste plus qu'à créer la partition /data sur pool1.
    pool1/data fait 1Go sur le premier serveur : Nous voulons qu'il en soit de même sur le second serveur :

    zfs create -o mountpoint=/data -o refquota=1g pool1/data

    ------------------------------------------------------
    Enfin, pour visualiser l'arborescence ZFS :

    zfs list

    ------------------------------------------------------
    Comment supprimer les copies-doublons sur le pool stockage/compta :

    zfs create -o dedup=on stockage/compta

    Vous pouvez également appliquer un ratio dedup :

    zfs create -o dedupratio=1.5 stockage/compta

     ------------------------------------------------------

    Créer un snapshot :
    Nous voulons créer un snapshot du pool stockage/compta

    zfs snapshot stockage/compta@now

    Nous voulons lister les snapshots pris sur le pool stockage/compta :

    zfs list - snapshot stockage/compta

    Enfin, pour supprimer le snapshot pris :

    zfs destroy stockage/compta@now

    -----------------------------------------------------
    Concernant L'encryption ZFS :
    - l'encryption est compatible au niveau du pool ou du système de fichiers
    - le système de fichiers encrypté doit avoir été créé dans Solaris 11
    Pour encrypter un système de fichiers ZFS issu d'une version précédente de Solaris, il faut mettre à jour le zpool et créer un nouveau système de fichiers encrypté dans le système de fichiers encryptés ZFS.
    - L'encryption ZFS est directement intégrée dans la commande ZFS. Il n'y a aucun autre module à installer.
    - Si on veut créer un système de fichiers encrypté dans un pool existant, le zpool doit être mis à jour vers la version 30 de ZFS.

    Admettons que vous ayez déjà généré une clef AES 256-bit (nommée /maclef), vous souhaitez à présent créer un système de fichiers encrypté.
    Vous voulez encrypter stockage/RH avec votre clef /maclef :

    zfs create -o encryption=256-ccm -o keysource=raw,file:///maclef stockage/RH

    -----------------------------------------------------
    Cas classique : un disque du pool pool1 lâche !


    Que faire ?
    Eteignez le système, remplacez le disque dur défectueux (c3t3d0) par un neuf, rallumez et exécutez la commande :
    zpool replace pool1 c3t3d0

    -----------------------------------------------------


    votre commentaire
  • Solaris & OI permettent de créer des environnements de boot (snapshot) afin de revenir en arrière si jamais l'installation/mise à jour d'un paquet, ou une erreur de configuration a causé un problème !

    C'est le même principe que faire un snapshot dans l'hyperviseur !

    Il existe une commande qui permet de tout gérer : beadm.

    Nous allons créer un snapshot ici, afin de montrer comment faire.
    -d'abord, créer un nouveau boot environnment : nous l'appelerons be_version-1 pour l'exemple

    beadm create be_version-1

    - vous pouvez voir qu'il a bien été créé avec :

    beadm list

    Regardez les FLAGS : N et R. N = New. R = after reboot (c'est à dire qu'on a booté dessus !)

    - Nous allons à présent activer ce nouvel environnement de boot :

    beadm activate be_version-1

    A présent, lorsque nous redémarrerons notre serveur, nous aurons le choix de l'environnement de boot.
    Soit Oracle Solaris 11.4 (qui est le premier be), soit notre be be_version-1 !

    - Nous pouvons ensuite créer des snapshots sur ce nouvel environnement de boot :
    Nous allons créer le snapshot snap1

    beadm create be_version-1@snap1

    - Nous pouvons ensuite l'activer, tout comme nous l'avons fait pour le be !

    Pour revenir en arrière sur un snapshot créé lorsque l'on rencontre un problème, nous l'activons et redémarrons !
    C'est aussi simple !

    Pour détruire un snapshot ou un be :

    beadm destroy be_version-1

    -----------------------------------------------------
    Exemple de snapshot appliqué à l'installation d'un paquet à tester :
    Vous souhaitez déployer le paquet openldap, mais souhaitez le tester avant de le déployer sur l'environnement de production.
    La procédure est la suivante :
    1) Créer un nouvel environnement de boot (appelons-le "newBEbeadm" pour l'occasion)
    2) Activer le nouvel environnement de boot
    2) Installer openldap uniquement sur ce nouvel environnement de boot :

    beadm create newBEbeadm 
    beadm activate newBEadm 
    pkg install openldap

     -----------------------------------------------------
    Revenir en arrière en cas d'installation d'un paquet foireux :
    Il est possible de paramétrer le fait que l'installation de chaque nouveau paquet ne puisse se faire que dans un nouvel environnement de boot.. Et ce afin de pouvoir revenir en arrière en cas de problème avec le paquet .
    D'abord, commencez par regarder les propriétés de votre gestionnaire paquet :

    pkg property

    Vous devriez voir une ligne be-policy
    En changeant cette valeur à "always-new", votre serveur devra créer et redémarrer sur un nouvel environnement de boot à chaque fois que vous installerez un paquet. Vous permettant de revenir en arrière en cas de problème.
    Pour appliquer la nouvelle police :

    pkg set-property be-policy always-new

    Installez à présent un paquet pour faire un essai :

    pkg install nginx

    Vous pouvez constater qu'une ligne : Create boot environnement: Yes apparaît.

    A présent, affichez la liste de vos environnements de boots :

    beadm list

    Tout en bas, une ligne du genre
    opendiana-2023:02:07-1 R     -     9.72G static 2023-02-07 16:09
    apparaît.
    Elle vous indique que le nouvel environnement de boot créé ne sera actif QU'APRES redémarrage (le "R")


    Vous ne pourrez pas utiliser votre paquet nginx tant que vous n'aurez pas redémarré.
    Redémarrez et vous trouverez le dossier /etc/nginx !


    votre commentaire
  • C'est le truc le plus rapide que j'ai jamais eu à configurer...
    Si vous avez installé solaris-desktop (solaris avec l'environnement de bureau GNOME - au passage, je ne sais pas trop pourquoi vous auriez fait ça.. mais vu que je l'ai moi-même fait pour tester...), alors xvnc (qui est le module VNC de Xorg) s'est également installé.

    1) Activer XVNC sur Solaris
    Ouvrez un terminal, ne vous loguez pas en root (car vous aurez des problèmes une fois en VNC), tappez :

    sudo /usr/bin/vncserver

    Un invite de commande vous demande de créer votre mot de passe de connexion
    Une fois fait, le serveur est automatiquement lancé.

    Se connecter en VNC à un serveur Solaris distant



    Votre adresse VNC se compose de votre nom d'hôte:numéro d'instance.
    Admettons que votre hostname soit SOLARIS-UTF8 (comme dans l'exemple ci-dessus), vous aurez SOLARIS-UTF8:numéro (ici SOLARIS-UTF8:4)

    Sur votre client, vous devez faire un enregistrement DNS dans le fichier hosts pour faire correspondre l'adresse IP de votre serveur Solaris avec son hostname (SOLARIS-UTF8).

    Puis, lorsque vous lancez, toujours depuis votre client, votre logiciel client VNC (genre vnctiger), il vous suffit de rentrer le hostname:numéro d'instance pour vous connecter à votre serveur Solaris.
    Dans notre cas de figure, SOLARIS-UTF8:4 (parce que j'ai créé 4 instances durant mes tests - lors de votre première connexion, vous aurez la première instance).

    Voilà, c'est hyper simple, et ça fonctionne très bien.
    Rappelez-vous simplement que VNC n'est vraiment pas un protocole sécurisant... et que Solaris Desktop est une vieille bouse...

     

     


    votre commentaire
  • Le script solaris vous permet de déployer ProFTPd automatiquement

    -------------------------------------------------------------------------
    Procédure sans le script :

    Le dépôt Oracle ne comprend pas de serveur FTP, malgré le fait qu'on lise ci et là que ProFTPd est le serveur FTP par défaut... Moi, je ne le vois pas !
    Il faut aller le chercher sur get.opencsw.org, qui lui, en contient plusieurs (vsftpd - mais pas ssl ; pureftpd - de 2013 !!! ; proftpd)


    Voici comment procéder :
    1) Changer votre DNS

    echo "nameserver 1.1.1.1" > /etc/resolv.conf

    2) Ajoutez le dépôt :

    pkgadd -d http://get.opencsw.org/now

    Répondez oui aux 2 questions (tappez [ENTRER] pour la première puis [y] et [ENTRER] pour la seconde)

    3) Créez le raccourci pour la commande du gestionnaire de paquets :
    (remplacez marcel par l'utilisateur duquel vous devenez root)

    echo 'alias pkgutil=/opt/csw/bin/pkgutil' >> /export/home/marcel/.bashrc
    echo 'alias pkgutil=/opt/csw/bin/pkgutil' >> /etc/profile
    alias pkgutil=/opt/csw/bin/pkgutil

    4) Téléchargez le catalogue du dépôt :

    pkgutil -U

    5) Installez ProFTPd

    pkgutil -iy proftpd

    ----------------------------------------------------------

    ProFTPd est à présent installé.
    son fichier de configuration se trouve ici : /etc/opt/csw/proftpd.conf

    ----------------------------------------------------------

    A présent il faut configurer ProFTPd pour passer par SSL...
    et c'est pas vraiment intuitif, accrochez-vous !

    Voici comment créer votre clef privée et votre certifcat SSL :
    - d'abord, créer le fichier de log pour nous dépanner si jamais :

    touch /var/run/proftpd-tls.log

    - Créer ensuite le dossier qui contiendra la clef et le certificat SSL :

    mkdir -p /usr/proftpd/ssl

    - Rendez-vous dedans, puis générez le tout !

    cd /usr/proftpd/ssl
    openssl req -new -x509 -days 365 -nodes -out /usr/proftpd/ssl/proftpd.cert.pem -keyout /usr/proftpd/ssl/proftpd.key.pem

    ----------------------------------------------------------------------------------

    Voici un fichier de configuration proftpd.conf fonctionnel.
    Je vous laisse le soin d'apporter les modifications que vous souhaiteriez.

    #### CONFIGURATION DE PROFTPD AVEC SSL ####
    ServerName "ProFTPD Default Installation"
    ServerType standalone
    ScoreboardFile /var/run/proftpd/proftpd.scoreboard

    # Je souhaite que ProFTPd ne réponde QUE SUR UNE INTERFACE DE MON SERVEUR EN PARTICULIER
    DefaultAddress 192.168.0.200
    SocketBindTight on

    # Port sur lequel ProFTPd est en écoute :
    Port 21

    # ne pas se mettre en écoute sur IPv6
    UseIPv6 off

    Umask 022

    # Voici la configuration SSL :
    <IfModule mod_dso.c>
    LoadModule mod_tls.c
    </IfModule>

    <IfModule mod_tls.c>
    TLSEngine on

    TLSLog /var/run/proftpd-tls.log

    TLSProtocol SSLv3 TLSv1
    TLSRequired off

    TLSECCertificateFile /usr/proftpd/ssl/proftpd.cert.pem
    TLSECCertificateKeyFile /usr/proftpd/ssl/proftpd.key.pem

    TLSVerifyClient off
    TLSRenegotiate none
    </IfModule>

    # Ceci limite le nombre de connections simultannées au serveur"
    MaxInstances 30
    CommandBufferSize 512

    # nobody est l'utilisateur non-privilégié de ProFTPd (le laisser)
    User nobody
    Group nogroup

    # Ceci permet d'enfermer les utilisateurs dans leur dossier de base (vivement conseillé !)"
    DefaultRoot ~

    # Ceci donne aux utilisateurs le droit d'écrire dans leur espace"
    AllowOverwrite on

    <Limit SITE_CHMOD>
    DenyAll
    </Limit>

     

    Pour créer un espace public, je vous déconseille d'utiliser la fonctionnalité de ProFTPd,
    je vous suggère plutôt de créer un utilisateur "public" sur votre serveur, et de lui attribuer un mot de passe du style "123public,"
     

    Enfin, je vous rappelle une dernière chose : FTPS n'est pas SFTP !!
    Ce n'est pas parce que vous empêchez un utilisateur de sortir de son espace en FTPS qu'il ne peut pas se connecter en SFTP et faire n'importe quoi sur le serveur !!
    ProFTPd NE PEUT PAS BLOQUER UN UTILISATEUR DANS SON ESPACE S'IL SE CONNECTE EN SFTP.

    Vous devez donc empêcher l'utilisateur de se connecter en SFTP via openSSH !!
    Pour cela, voir l'article sur SSH, afin d'ajouter une directive dans le fichier /etc/ssh/sshd_config afin de n'autoriser QUE l'administrateur à se connecter en SSH !

    Il est enfin temps d'activer notre serveur !

    svcadm enable svc:/network/cswproftpd:default

     


    votre commentaire
  • Je vous renvoie au script solaris
    ainsi qu'à l'article sur
    Configurer un site intranet en https avec Apache pour les explications sur la partie SSL


    votre commentaire
  • PROCEDURE ET SCRIPT FONCTIONNELS AU 27/03/2023

    Le script de Solaris comporte l'installation de wordpress

    ------------------------------------------------------------------------------------------------

    Procédure d'installation complète (SANS le script) :

    Installation de Wordpress sur Solaris 11.4, depuis le début (avec la pile SAMP).
    Dans cette procédure, je crée un vhost (www.monentreprise.com).
    J'accèderai donc à Wordpress via http://www.monentreprise.com (après une enregistrement DNS, bien entendu)


    Une fois votre installation de Solaris 11.4 terminée, loguez-vous en root :

    1) Installer Apache et le lancer

    pkg install apache-24

    2) Installation et Configuration de MySQL 8.0

    Suivre l'article concernant l'installation de MySQL 8.0.32

    Veuillez créer la base et l'utilisateur privilégié pour wordpress :

    mysqladmin -uroot -p create wordpressdb
    mysql -uroot -p -e"CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password'"
    mysql -uroot -p -e"GRANT ALL ON wordpressdb.* TO 'admin'@'localhost'"

    3) Installation et configuration de Wordpress et des modules php nécessaires à Wordpress

    pkg install php-80

    A présent il faut activer les extensions nécessaires au fonctionnement de wordpress :

    cp /etc/php/8.0/conf.d/extensions.ini /etc/php/8.0/conf.d/extensions.ini.BAK
    nano /etc/php/8.0/conf.d/extensions.ini
    # pour ne rien vous cacher, je ne me souviens plus de la liste exacte.. Allez rechercher sur le net..
    # cependant la liste suivante fonctionne :
    # (il vous suffit d'enlever le ; devant chaque ligne pour activer l'extension)
    extension=bz2.so
    extension=curl.so
    extension=enchant.so
    extension=exif.so
    extension=gd.so
    extension=gettext.so
    extension=intl.so
    extension=ldap.so
    extension=mbstring.so
    extension=mysqli.so
    extension=pdo_mysql.so
    extension=soap.so
    extension=tidy.so
    extension=xsl.so
    zend_extension=opcache.so

    Télécharger Wordpress à présent, et l'installer dans le dossier racine du site :

    wget http://wordpress.org/latest.tar.gz -P /tmp
    cd /tmp
    tar -xvzf latest.tar.gz
    mkdir -p /usr/apache2/2.4/docs/www.monentreprise.com/logs
    mv wordpress/* /usr/apache2/2.4/docs/www.monentreprise.com
    cd /usr/apache2/2.4/docs/www.monentreprise.com
    cp wp-config-sample.php wp-config.php
    sed "s/database_name_here/wordpressdb/" wp-config.php > /tmp/wtmp && mv /tmp/wtmp /usr/apache2/2.4/docs/www.monentreprise.com/wp-config.php
    sed "s/username_here/admin/" wp-config.php > /tmp/wtmp && mv /tmp/wtmp /usr/apache2/2.4/docs/www.monentreprise.com/wp-config.php
    sed "s/password_here/password/" wp-config.php > /tmp/wtmp && mv /tmp/wtmp /usr/apache2/2.4/docs/www.monentreprise.com/wp-config.php
    sed "s/localhost/127.0.0.1/" wp-config.php > /tmp/wtmp && mv /tmp/wtmp /usr/apache2/2.4/docs/www.monentreprise.com/wp-config.php

    Un petit conseil, à la différence des distris Linux, vous pouvez constatez dans cette dernière ligne que je remplace localhost par 127.0.0.1.
    Si vous ne remplacez pas localhost par 127.0.0.1 dans le fichier wp-config.php, vous aurez une erreur de connexion à la base de donnée lorsque vous tenterez de vous connecter via le navigateur.

    4) Activation de php sur apache

    cp /etc/apache2/2.4/samples-conf.d/php8.0.conf /etc/apache2/2.4/conf.d/

    5) Configuration du vhost Apache24.

    vi /etc/apache2/2.4/conf.d/www.monentreprise.com.conf
    # a minima, la config suivante :
    <VirtualHost *:80>       ServerName www.monentreprise.com       DocumentRoot /usr/apache2/2.4/docs/www.monentreprise.com       ErrorLog
    /usr/apache2/2.4/docs/www.monentreprise.com/logs/error_log       CustomLog /usr/apache2/2.4/docs/www.monentreprise.com/logs/access_log combined       <Directory /usr/apache2/2.4/docs> AllowOverride Options FileInfo Limit           Options Indexes FollowSymLinks           Require all granted       </Directory> </VirtualHost>
    # enregistrer et quitter

    6) Autoriser l'accès à webservd:webservd au dossier racine

    chown -R webservd:webservd /usr/apache2/2.4/docs/www.monentreprise.com

    7) Démarrer Apache24

    svcadm enable apache24

    Après un enregistrement DNS sur votre hôte, vous pourrez accéder à l'interface sur http://www.monentreprise.com


    votre commentaire
  • Le but : On génère une paire de clefs (clef publique et clef privée) depuis le poste sur lequel on est, et on envoie la clef publique (jamais la privée) vers le poste sur lequel on veut se connecter.

    VERSION COURTE POUR LES PRESSES
    Je suis sur A (utilisateur CLIENT), je veux pouvoir me connecter à B (utilisateur ADMIN), sans avoir à entrer de mot de passe.


    Sur A :

    ssh-keygen -t ed25519

                      NE PAS CREER DE PASSPHRASE

    Pour envoyer la clef à B, le mécanisme est un peu casse-pied puisqu'il n'existe pas de ssh-copy-id.
    Faire comme ci-dessous :

    cp /home/CLIENT/.ssh/id_ed25519.pub /tmp/idA
    scp /tmp/idA ADMIN@IP-B:/home/ADMIN/.ssh/
    ssh ADMIN@IP-B "cat /home/ADMIN/.ssh/idA >> /home/ADMIN/.ssh/authorized_keys" 

    -------------------------------------------------------------------------------------------------------------

    VERSION LONGUE :

    La gestion d'une clef privée se fait sur les postes clients.

    On considère ici un poste client (sous Windows ou Linux/BSD)
    On est l'utilisateur USER-CLIENT sur ce poste, (ATTENTION, PAS EN ROOT SUR LINUX/BSD)

    On considère un serveur distant (sous Linux/BSD)

    On a créé l'utilisateur USER-SERVEUR sur ce serveur


    Depuis le poste client, générer une clef SSH avec ed25519 (plus sécure que RSA)

    ssh-keygen -t ed25519

       choisir le chemin de stockage du fichier de clef (ne pas laisser par défaut.. c'est l'archi linux)
          (/usr/home/USER-CLIENT/.ssh/id_ed25519)

       choisir le mot de passe (passphrase) pour sécuriser la clef

    2 fichiers sont alors créés :
    id_ed25519        = c'est la clef privée
    id_ed25519.pub = c'est la clef publique

    Depuis le poste client, on peut vérifier l'empreinte du serveur distant (s'il n'y a jamais eu de connexion avant)

    ssh-keyscan -H IP-SERVEUR-DISTANT

     

    Depuis le poste client, on va à présent envoyer la clef publique générée
    --- Si le poste client est un Linux/BSD
    Pour envoyer la clef à B, le mécanisme est un peu casse-pied puisqu'il n'existe pas de ssh-copy-id.
    Faire comme ci-dessous :

    cp /home/CLIENT/.ssh/id_ed25519.pub /tmp/idA
    scp /tmp/idA ADMIN@IP-B:/home/ADMIN/.ssh/
    ssh ADMIN@IP-B "cat /home/ADMIN/.ssh/idA >> /home/ADMIN/.ssh/authorized_keys" 

    --- Si le poste client est un windows
    Se connecter au serveur Debian en SSH (avec putty par exemple), puis copier/coller le fichier de clef publique dans le fichier. La commande ssh-copy-id -i ne fonctionne pas sur windows.

    /home/USER-SERVEUR/.ssh/authorized_keys

    Activer la clef publique sur le serveur distant, afin de ne plus se connecter qu'avec la passphrase de la clef.
    Une fois la clef publique envoyée sur le serveur, la connexion en ssh demande désormais (par défaut) la passphrase SSH, au lieu du mot de passe de l'utilisateur sur le serveur.

    Si ce n'est pas le cas (ou que /etc/ssh/sshd-config a été précédemment modifié sur le serveur)

    ssh -l USER-SERVEUR IP-SERVEUR-DISTANT
    vi /etc/ssh/sshd_config
    # chercher la ligne "#PubkeyAuthentication yes", et la décommenter comme ci-dessous :
    PubkeyAuthentication yes
    PasswordAuthentication no
    KbdInteractiveAuthentication no

    # enregistrer et quitter ESC :wq 

     


    votre commentaire
  • Pour sécuriser l'accès en SSH

    (entre autres, depuis le fichier /etc/ssh/sshd_config)

    vi /etc/ssh/sshd_config

    - changer le port (exemple 52333)

    Port 52333

    - Interdire de se connecter directement en mode root (PermitRootLogin=NO)

    PermitRootLogin no

    - Interdire les connexions par mot de passe (vous devez avoir préalablement envoyé votre clef publique)

    PubKeyAuthentication yes
    PasswordAuthentication no
    KbdInteractiveAuthentication no

    - Interdire de connexion ssh les utilisateurs pierre et roger

    DenyUsers pierre roger

    - N'autoriser QUE les utilisateurs maxime et george (Attention, plus aucun autre ne pourra se connecter)

    AllowUsers maxime george

    - Paramétrer le nombre de tentatives d'accès (ce qui n'empêche en rien de recommencer)

    MaxAuthTries 2

    - Paramétrer les IP ayant le droit de se connecter en ssh (Attention à cette commande là encore)

    AddressFamily IP1 IP2 IP3

    - Voir l'article sur le pare-feu pour les attaques DDoS

     

    Dans le cas où vous souhaitez vous connecter par clef publique SSH, voici le rappel des lignes indispensables :
    (Tout d'abord, il est inutile de décommenter la ligne PubKeyAuthentication, ça fonctionne quand même !).
    Inutile d'indiquer ~/.ssh/authorized_keys (ça, c'était la vieille syntaxe, elle s'est simplifiée)

    #PubKeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys

    Et dans le cas où le répertoire utilisateur ne se trouverait pas dans l'emplacement système par défaut (à savoir /usr/home/TARTEMPION), mais ailleurs, il faut ajouter :

    StrictModes no

    Petit rappel également concernant la sécurité :
    le dossier .ssh doit être en chmod 700 et le fichier .ssh/authorized_keys en chmod 600

     

    NE PAS OUBLIER DE RELANCER LE SERVICE SSHD UNE FOIS VOS MODIFICATIONS FAITES !

    svcadm restart ssh

     


    votre commentaire
  • On considère que votre configuration vhost est faîte.
    Votre site, comportant du php, ne s'affiche donc pas correctement.
    Pas de panique !

    Il faut installer php-80

    pkg install php-80

    Une fois installé, un fichier de configuration pour apache est apparu : /etc/apache2/2.4/samples-conf.d/php8.0.conf

    Copiez ce fichier comme ci-dessous :

    cp /etc/apache2/2.4/samples-conf.d/php8.0.conf /etc/apache2/2.4/conf.d/

    Allez à présent activer les extensions PHP voulues :

    nano /etc/php/8.0/conf.d/extensions.ini
    # Ceci n'est qu'un exemple. Vous n'activez QUE ce dont votre site a besoin !
    # Pour activer une extension, retirez simplement le ; devant la ligne !

    extension=bz2.so
    extension=curl.so
    extension=exif.so
    extension=gd.so
    extension=intl.so
    extension=ldap.so
    extension=mbstring.so
    extension=mysqli.so
    extension=openssl.so
    extension=pdo_mysql.so
    zend_extension=opcache.so
     

    Relancez Apache :

    /usr/apache2/2.4/bin/apachectl graceful

    (ou apachectl graceful tout court pour ceux qui ont créé les alias permanents).

    Voilà, c'est terminé

     

     


    votre commentaire
  • Lorsque l'on fait un clone intégral (surtout pas lié) avec Solaris :

    LORS DU CLONE : REMPLACEMENT DES ADRESSES MAC !


    Se loguer en root !

    1) Changer le hostname :

    hostname NOUVEAU-HOSTNAME

    2) modifier le fichier /etc/hosts

    nano /etc/hosts
    ::1 NOUVEAU-HOSTNAME localhost
    127.0.0.1 NOUVEAU-HOSTNAME NOUVEAU-HOSTNAME.localhost loghos

    3) Modifier la configuration réseau :
    - regarder ce qui est configuré actuellement

    ipadm

    - détruisez la configuration de votre carte réseau (ici net0)

    ipadm delete-ip net0

    - refaîte une configuration :
    Je prends l'exemple d'une configuration IP statique car il est bon de rappeler la syntaxe ainsi que le fait qu'il faille ajouter une passerelle par défaut ainsi qu'éventuellement changer le DNS

    ipadm create-ip net0
    ipadm create-addr -T static -a local=10.0.0.10/24 net0/v4

    - ajoutez la passerelle par défaut :

    route -p add default 10.0.0.254

    - Changez le DNS :

    echo "nameserver 1.1.1.1" > /etc/resolv.conf

    4) Redémarrer :

    reboot

     

     

     


    votre commentaire
  • Le script de solaris permet de déployer le pare-feu PF et d'ajouter vos propres règles, ainsi que de configurer les protections contre les DDoS
    ----------------------------------------------------------
    Procédure sans le script :

    Les fichiers de configuration de PF sont dans /etc/firewall

    Sa syntaxe est relativement facile à comprendre, mais ses possibilités sont assez étendues, je me cantonnerai donc ici à montrer les règles les plus simples.
    Vous devrez approfondir par vous-même, Solaris offre de possibilités impressionnantes pour contrer les DDoS (fail2ban est relativment inutile sur cet OS)

    La documentation est accessible sur le site d'OpenBSD ainsi que sur le site d'Oracle pour Solaris

    Dans le dossier /etc/firewall, vous remarquerez plusieurs fichiers :
    - maintenance.conf : vous donne un exemple de règles de pare-feu
    - pf_ssh_only.con : vous donne un exemple de configuration pour conserver votre port SSH ouvert.
    Ci-tôt que vous aurez commencé à bloquer tout trafic dans pf.conf, cette règle ne fonctionnera plus.
    Il faudra donc la définir dans pf.conf
    - pf.conf : C'est là que vous placerez vos règles de pare-feu

    Attachons-nous au fichier pf.conf donc :
    Généralement, on ne bloque pas le trafic sur l'interface de bouclage, d'où leur première règle par défaut :

    set skip on lo0

    La seconde règle permet de normaliser les paquets entrants :

    match in all scrub (no-df)

    La troisième règle par est NECESSAIREMENT UNE REGLE DE BLOCAGE GENERAL :
    (PF, par défaut, laisse tout passer sur Solaris)

    block all

    A partir de là, vous pouvez ajouter vos exceptions !
    Voici quelques exemples (complètement bidons, c'est juste pour la syntaxe)
    (inet -> ipv4, inet6 -> ipv6)
    net0 et net1 sont 2 interfaces réseaux... je n'ai pas besoin d'expliquer d'avantage, vous comprendrez !
    Je ne le montre pas ici, mais sachez que vous pouvez également définir des variables au début de vos règles, contenant les noms de vos interfaces réseaux, ou de vos ports, et uniquement pointer les variables dans vos règles !
    Lorsqu'il est question d'autoriser plusieurs ports, c'est plus qu'agréable !

    # AUTORISER LES FLUX SSH ET HTTP A RENTRER VIA L'INTERFACE net0 (et uniquement elle)
    pass in inet proto tcp from any to net0 port 22
    pass in inet proto tcp from any to net0 port 80

    # AUTORISER LE FLUX HTTPS A RENTRER SUR TOUTES LES INTERFACES
    pass in inet proto tcp from any to { net0, net1 } port 443

    # AUTORISER LES CONFIGURATIONS VIA DHCP (uniquement sur net0 en IPv4) et sur toutes en IPv6
    pass in inet proto udp from port 67 to net0 port 68
    pass in inet6 proto udp from port 547 to port 546

    # REGLE D'ANTISPOOFING SUR net0
    # (attention, à n'activer QUE SUR UNE INTERFACE AVEC UNE ADRESSE IP ASSIGNEE)
    antispoof log for net0 inet

    # AUTORISER TOUS LES FLUX SORTANTS VIA LES PROTOCOLES INDIQUES (stateful)
    pass out on net0 proto { tcp, udp, icmp } from any to any modulate state (if-bound)

    # PROTEGER VOTRE SERVEUR CONTRE LES DDoS :
    # les instructions suivantes bannissent les IPs qui adresseraient soit :
    # - plus de 15 requêtes en moins de 5 secondes
    # - plus de 100 requêtes par IP
    # Il peut être utile de mettre en place une tâche cron pour vider la table <abusive_hosts> de temps en temps.
    # la commande permettant de vider la table est : [pfctl -t abusive_hosts -T flush]
    table <abusive_hosts> persist
    block in quick from <abusive_hosts>
    pass in proto tcp from any to net0 port 80 flags S/SA keep state \
    (max-src-conn 100, max-src-conn-rate 15/5, \
    overload <abusive_hosts> flush)

    Enfin, activez votre pare-feu :

    svcadm enable svc:/network/firewall:default

    Enfin, pour activer les configurations DDoS, il est parfois nécessaire de redémarrer le serveur
    (les commandes de rechargement des config ne produisent aucun résultat... et je ne sais pas pourquoi).

    reboot

    Pour tester votre pare-feu, n'oubliez d'effecter un scan de ports sur une machine distante :

    nmap -A -T4 IP-DU-SERVEUR-PAREFEU

    -----------------------------------------------------------------------------

    Commandes utiles

    - Pour voir qui a été banni :

    pfctl -t abusive_hosts -T show

    - Pour débannir toutes les IPs bannies :

    pfctl -t abusive_hosts -T flush

    - Pour débannir une IP en particulier :

    pfctl -t abusive_hosts -T delete 8.8.8.8

    - Pour bannir une IP manuellement :

    pfctl -t abusive_hosts -T add 8.8.8.8

    votre commentaire
  • Script inséré dans le script global Solaris

    ------------------------------------------------------------------------------------------
    Procédure sans le script :

    Sur le serveur Solaris, logué en root :

    1) Installer Bind (mais normalement, il est installé par défaut)

    pkg install bind

    2) générer la clef de sécurité

    rndc-confgen -a

    Elle va s'écrire ici : /etc/rndc.key
     
    3) Recréer l'architecture du dossier de configuration !
    Je n'ai pas trouvé d'architecture de Bind sur Solaris..
    Seulement des pages dans man et des pages html.
    Alors j'ai adapté celle de FreeBSD !
    Vous devez télécharger le dossier suivant directement dans /usr

    wget http://ekladata.com/3pcUwexMx_sSS4SBx6xwl8TL-VA/namedb.zip -P /usr

    Dézippez le contenu du dossier sur place

    cd /usr
    unzip namedb.zip

    Supprimez le fichier zip, puisqu'il est dézippé !

    rm namedb.zip

    Entrez dans le dossier /usr/namedb et déplacez le fichier named.conf vers /etc, pour qu'il puisse y être interprété lors de l'exécution de named

    cd /usr/namedb
    mv named.conf /etc/

    4) Lancer Bind au démarrage du serveur :

    svcadm enable bind

    5) Changer le DNS local :

    echo 'nameserver 127.0.0.1' > /etc/resolv.conf


    On va pouvoir commencer la configuration.
    Prenons le scénario suivant :
    Supposons que vos machines du LAN sont sur le réseau 10.0.0.0/24
    On y trouve :
    - un premier serveur web dont l'IP est 10.0.0.20, avec un site web configuré dessus : www.assistance.lan
    - un second serveur web dont l'IP est 10.0.0.22, avec un site web en développement : devel.assistance.lan
    - un second serveur web dont l'IP est 10.0.0.50, avec un site web configuré dessus : www.compta.lan
    - le serveur DNS sur lequel vous venez d'installer Bind a pour IP : 10.0.0.40
    - un poste client (au moins un), dont l'IP est 10.0.0.30

    Tout au long de la configuration, vous pourrez tester la bonne syntaxe de ce que vous écrivez grâce à la commande :

    named-checkconf

    Je vous suggère d'être TRES attentif à la syntaxe employée ci-dessous... le moindre point a son importance !

    1) Configurer le réseau sur lequel le serveur Bind va se mettre en écoute.

    nano /etc/named.conf
    // chercher la ligne suivante et la modifier comme tel :
    listen-on { 127.0.0.1; 10.0.0.0/24; };

    2) Configurer le renvoi des requêtes DNS le cas échéant.
    Vous décidez que si le serveur DNS ne contient pas l'enregistrement d'un site, il doit rediriger la requête du client vers un DNS sur le net.. On va prendre 1.1.1.1
    Il est essentiel de laisser 127.0.0.1 en premier, puisque la recherche se fait par ordre d'inscription : d'abord sur le DNS local, puis sur le distant si jamais il n'y a pas en local.

    nano /etc/named.conf
    // chercher la ligne suivante et la modifier comme tel :
    forwarders { 127.0.0.1; 1.1.1.1; };

    3) Configuration d'une ACL pour le réseau local
    L'idée est de cloisonner la provenance des requêtes DNS à notre réseau local 10.0.0.0

    nano /etc/named.conf
    // Descendez tout en bas du fichier et ajoutez :

    // Déclaration d'une ACL :
    acl réseau-local { 127.0.0.1; 10.0.0.0/24; };

    4) Déclaration d'une zone de recherche pour un domaine.
    Lorsqu'un poste client émet une requête DNS pour se rendre sur une page web, c'est la zone de recherche du domaine qui permet au serveur DNS de faire la correspondance entre le nom d'hôte du site visé et son IP.
    Dans notre scénario, nous avons 2 domaines : assistance.lan et compta.lan
    Il nous faudra donc déclarer 2 zones de recherche.

    nano /etc/named.conf
    // Allez tout en bas du fichier et ajoutez :

    // Déclaration d'une zone de recherche pour le domaine assistance.lan
    zone "assistance.lan" {
    type master;
    allow-update { none; };
    allow-query { réseau-local; };
    file "/usr/namedb/primary/assistance.lan-forward.db";
    };

    // Déclaration d'une zone de recherche pour le domaine compta.lan
    zone "compta.lan" {
    type master;
    allow-update { none; };
    allow-query { réseau-local; };
    file "/usr/namedb/primary/compta.lan-forward.db";
    };

    5) Définission des zones de recherche
    Nous venons de déclarer 2 zones, il faut maintenant les définir.

    nano /usr/namedb/primary/assistance.lan-forward.db
    $TTL 3h
    assistance.lan. SOA assistance.lan. root.assistance.lan. 42 1s 12h 1w 3h
    ; Serial, Refresh, Retry, Expire, Neg. Cache TTL

    ; Correspondance entre les sites de assistance.lan et leurs IPs
    @ IN NS dns.assistance.lan.
    dns IN A 10.0.0.40
    www IN A 10.0.0.20
    devel IN A 10.0.0.22
    nano /usr/namedb/primary/compta.lan-forward.db
    $TTL 3h
    compta.lan. SOA compta.lan. root.compta.lan. 42 1s 12h 1w 3h
    ; Serial, Refresh, Retry, Expire, Neg. Cache TTL

    ; Correspondance entre les sites de assistance.lan et leurs IPs
    @ IN NS dns.compta.lan.
    dns IN A 10.0.0.40
    www IN A 10.0.0.50

    6) Déclaration d'une zone de recherche inverse.
    Lorsqu'un poste client émet une requête DNS à partir d'une adresse IP, pour obtenir le nom d'hôte associé, c'est la zone de recherche inverse qui permet au serveur DNS de faire la correspondance entre l'IP et le nom de l'hôte associé.

    nano /etc/named.conf
    // Aller tout en bas du fichier et ajouter :

    // Déclaration d'une zone de recherche inverse pour le réseau 10.0.0.0
    // Vous remarquerez que l'IP est inversée et qu'il manque le dernier octet
    zone "0.0.10.in-addr.arpa" {
    type primary;
    allow-update { none; };
    allow-query { réseau-local; };
    file "/usr/local/etc/namedb/primary/0.0.10.in-addr.arpa";
    };

    7) Déclaration de la zone de recherche inverse.

    nano /usr/namedb/primary/0.0.10.in-addr.arpa
    $TTL 3h
    @ SOA localhost. nobody.localhost. 42 1s 12h 1w 3h
    ; Serial, Refresh, Retry, Expire, Neg. Cache TTL

    ; domaine assistance.lan (le dernier octet de l'IP est ici !)
    @ IN NS dns.assistance.lan.
    40 IN PTR dns.assistance.lan.
    20 IN PTR www.assistance.lan.
    22 IN PTR devel.assistance.lan.

    ; domaine compta.lan
    @ IN NS dns.compta.lan.
    40 IN PTR dns.compta.lan.
    50 IN PTR www.compta.lan.

    8) Redémarrer le service

    pkill named && named

    A présent, vous devez remplacer le DNS par défaut sur les postes clients, afin qu'ils adressent leurs requêtes DNS à ce serveur DNS (10.0.0.40).

    Depuis un poste client (ou directement depuis le serveur), vous pouvez vérifier le bon fonctionnement du serveur en testant une requête :
    pour tester la zone de recherche :

    nslookup www.assistance.lan

    pour tester la zone de recherche inversée :

    nslookup 10.0.0.22

    votre commentaire
  • Le script solaris vous permet de déployer un site en https auto-signé ou simplement pour faire une demande de certification et/ou intégrer un certificat signé 

    -----------------------------------------------------------------------------------------------------

    L'objectif est de configurer un site intranet (avec un vhost propre, www.beaubois-entreprise.com) sur apache, en utilisant ssl.

    SSL exige qu'un certificat soit délivré par une autorité de certification.
    Dans cet article, nous n'allons plus nous certifier nous-même via la création de notre propre autorité, mais faire certifier notre serveur web par un serveur Windows sur le même réseau avec AD CS installé. 

    Dans le cas d'un site internet il conviendrait de faire certifier notre serveur web par une autorité compétente sur internet bien sûr !


    1) Installation d’apache et lancement au démarrage

    Apache est normalement déjà installé... mais vous pouvez vérifier.

    pkg install apache-24
    svcadm enable apache24

    Par défaut, les raccourcis d'appel de commande d'apache ne sont pas créés sur Solaris, nous devons donc les créer nous-mêmes !

    echo 'alias apachectl="/usr/apache2/2.4/bin/apachectl"' >> /export/home/marcel/.bashrc
    echo 'alias apachectl="/usr/apache2/2.4/bin/apachectl"' >> /etc/profile 
    alias apachectl="/usr/apache2/2.4/bin/apachectl

    Désormais, vous avez accès à la commande "apachectl", ce qui va bien nous faciliter la tâche.

    2) Création du dossier racine de votre vhost SSL 

    mkdir -p /usr/apache2/2.4/docs/www.beaubois-entreprise.com
    echo "Bienvenue sur la page de la boutique Beaubois" >> /usr/apache2/2.4/docs/www.beaubois-entreprise.com/index.html

    2bis) Cas de l'IPv6

    Si vous souhaitez passer par l'IPv6 plutôt que par l'IPv4, et que votre serveur a une adresse IPv6 unicast global,
    ouvrez le fichier de conf d'apache (/usr/local/etc/apache24/httpd.conf) et ajoutez :

    Listen [VOTRE-IP-V6]:80 

    3) Configuration SSL, Clé privée, demande de signature, certification
    OpenSSL est normalement déjà installé... mais vous pouvez vérifier.

    pkg install openssh

    - Créer la clé privée pour apache :

    mkdir /etc/apache2/2.4/ssl
    cd /etc/apache2/2.4/ssl
    openssl genrsa 4096 > cleprivapache.key

     

    - Créer un certificat normal, qui servira de fichier de demande de signature à notre autorité distante :

    openssl req -new -key cleprivapache.key > demandesignature.csr

    Pays  : FR

    Région : Aquitaine

    Ville : Bayonne

    Compagnie : GRETA

    Département de la compagnie : TSSR

    Common name : beaubois-entreprise.com

    Challenge Password : certifiez-moi, svp

    Nom de compagnie optionnel : GRETA

    Nous allons à présent envoyer notre demandesignature.csr au serveur windows (autorité sur internet) afin d'obtenir un certificat signé !
    Ici, je montre l'exemple d'un serveur windows qui va se charger de certifier.

    Par exemple, depuis notre serveur Windows, nous allons récupérer la demandesignature.csr sur le serveur web :
    dans un invité de commandes :
    Bon évidemment, ici je donne la mécanique.. mais il est évident que vous ne laissez pas l'utilisateur root de votre serveur être contacté à distance !!!

    scp root@IP-SERVEUR-WEB:/etc/apache2/2.4/ssl/demandesignature.csr C:\chemin\ou\télécharger\votre\clef

    Ensuite, sur le serveur windows,
    Ouvrir PowerShell :
    positionnez-vous dans l'emplacement de demandesignature.csr (il était dans E:\ chez nous)

    cd E:\
    certreq -attrib "CertificateTemplate:WebServer"

    Une fenêtre s'ouvre, choisir demandesignature.csr (il est nécessaire de choisir "Tous les fichiers" en bas à droite pour voir le fichier s'afficher).
    Puis, choisir un emplacement pour enregistrer le certificat (le nommer certifapache.crt).
    Ensuite, renvoyez votre certifapache.crt sur votre serveur web :

    scp E:\certifapache.crt root@IP-SERVEUR:/etc/apache2/2.4/ssl

    Nous aurons besoin des 2 fichiers suivants pour notre vhost : 
    - certifapache.crt (le certificat autosigné)
    - cleprivapache.key (clé privée pour apache)

    Dernière étape très importante, modifier les permissions de vos clefs et certificats :
    (à n'effectuer qu'après avoir tout généré !)

    chmod -R 600 /etc/apache2/2.4/ssl 

    4) Intégration de la clef et du certificat dans le vhost ssl par défaut d’apache :

    vi /etc/apache2/2.4/conf.d/www.beaubois-entreprise.com.conf

    # Voici la configuration du fichier : SSLRandomSeed startup file:/dev/urandom 512 SSLRandomSeed connect file:/dev/urandom 512 Listen 443 SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES SSLHonorCipherOrder on SSLProtocol all -SSLv3 SSLProxyProtocol all -SSLv3 SSLPassPhraseDialog builtin ## ## SSL Virtual Host Context ## <VirtualHost www.beaubois-entreprise.com:443> DocumentRoot "/usr/apache2/2.4/docs/www.beaubois-entreprise.com" ServerName www.beaubois-entreprise.com ServerAdmin admin@www.beaubois-entreprise.com ErrorLog "/var/apache2/2.4/logs/www.beaubois-entreprise.com-error_log.log" TransferLog "/var/apache2/2.4/logs/www.beaubois-entreprise.com-access_log.log" SSLEngine on SSLCertificateFile "/etc/apache2/2.4/ssl/certifapache.crt" SSLCertificateKeyFile "/etc/apache2/2.4/ssl/cleprivapache.key" <Directory "/usr/apache2/2.4/docs/www.beaubois-entreprise.com"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory "/var/apache2/2.4/cgi-bin"> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/var/log/httpd-ssl_request.log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost>

    9) Activation d’SSL dans apache :

    sed "s/#LoadModule ssl_module libexec\/mod_ssl.so/LoadModule ssl_module libexec\/mod_ssl.so/" /etc/apache2/2.4/httpd.conf > /tmp/httptemp && mv /tmp/httptemp /etc/apache2/2.4/httpd.confecho "Include etc/apache24/extra/httpd-ssl.conf" >> /usr/local/etc/apache24/httpd.conf

    10) Relancer Apache

    apachectl graceful

    Après un enregistrement DNS sur votre hôte (ou sur internet), vous pourrez accéder à votre site via https://www.beaubois-entreprise.com


    votre commentaire
  • Le script solaris vous permet de déployer un site en https auto-signé ou simplement pour faire une demande de certification et/ou intégrer un certificat signé

    -----------------------------------------------------------------------------------------------------
    Procédure sans le script :

    Dans cette procédure, nous allons créer le site intranet.jurabois.lan
    Nous allons créer notre propre autorité de certification et nous certifier nous-mêmes.

    Une fois votre installation de Solaris 11.4 terminée, loguez-vous avec votre utilisateur administrateur ("marcel" pour les intimes du blog) et élevez-vous en root.

    1) Installation d’apache, lancement au démarrage et création des raccourcis de commande
    Apache est normalement déjà installé... mais vous pouvez vérifier.

    pkg install apache-24

    Par défaut, les raccourcis d'appel de commande d'apache ne sont pas créés sur Solaris, nous devons donc les créer nous-mêmes ! (ça peut toujours vous servir)

    echo 'alias apachectl="/usr/apache2/2.4/bin/apachectl"' >> /export/home/marcel/.bashrc
    echo 'alias apachectl="/usr/apache2/2.4/bin/apachectl"' >> /etc/profile 
    alias apachectl="/usr/apache2/2.4/bin/apachectl

    Désormais, vous avez accès à la commande "apachectl", ce qui va bien nous faciliter la tâche.

    2) Création du dossier racine de votre vhost SSL 

    mkdir -p /usr/apache2/2.4/docs/intranet.jurabois.lan
    echo "Bienvenue sur la page de l'intranet" >> /usr/apache2/2.4/docs/intranet.jurabois.lan/index.html

    2bis) Cas de l'IPv6

    Si vous souhaitez passer par l'IPv6 plutôt que par l'IPv4, et que votre serveur a une adresse IPv6 unicast global,
    ouvrez le fichier de conf d'apache (/etc/apache2/2.4/httpd.conf) et ajoutez :

    Listen [VOTRE-IP-V6]:80 

    3) Configuration SSL
    openssl est normalement déjà installé, mais vous pouvez vérifier

    pkg install openssl

    - Créer notre propre Autorité de Certification

    mkdir /etc/apache2/2.4/ssl
    cd /etc/apache2/2.4/ssl
    openssl genrsa 4096 > ca.key
    openssl req -new -x509 -days 365 -nodes -key ca.key > ca.crt

    Pays : FR

    Région : Aquitaine

    Ville : Bayonne

    Compagnie : GRETA

    Département de la compagnie : TSSR

    Common name : ADRESSE-IP-DU-SERVEUR

    - Créer le certificat auto-signé

    openssl genrsa 4096 > cleprivapache.key
    openssl req -new -key cleprivapache.key > demandesignature.csr

    Pays  : FR

    Région : Aquitaine

    Ville : Bayonne

    Compagnie : GRETA

    Département de la compagnie : TSSR

    Common name : ADRESSE-IP-DU-SERVEUR
    Challenge Password : certifiez-moi, svp

    Nom de compagnie optionnel : GRETA

    openssl x509 -req -in demandesignature.csr -out certifapache.crt -CA ca.crt -CAkey ca.key -CAcreateserial -days 365

    4) Création de votre vhost SSL et intégration de vos clefs et certificats auto-signés.
    - Faire la configuration SSL sur Apache :
    (d'ordinaire il suffit d'aller chercher le fichier d'example dans le dossier samples-conf.d, mais nous allons le simplifier ici)

    vi /etc/apache2/2.4/conf.d/ssl.conf
    ### CONFIGURATION SSL ###

    SSLRandomSeed startup file:/dev/urandom 512

    SSLRandomSeed connect file:/dev/urandom 512
    Listen 443
    SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
    SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
    SSLHonorCipherOrder on
    SSLProtocol all -SSLv3
    SSLProxyProtocol all -SSLv3
    SSLPassPhraseDialog  builtin

    - Configurer votre vhost :

    vi /etc/apache2/2.4/conf.d/intranet.jurabois.lan.conf 

    <VirtualHost intranet.jurabois.lan:443>
    DocumentRoot "/usr/apache2/2.4/docs/intranet.jurabois.lan"
    ServerName intranet.jurabois.lan
    ServerAdmin admin@intranet.jurabois.lan
    ErrorLog "/var/apache2/2.4/logs/intranet.jurabois.lan-error_log.log"
    TransferLog "/var/apache2/2.4/logs/intranet.jurabois.lan-access_log.log"
    SSLEngine on
    SSLCertificateFile "/etc/apache2/2.4/ssl/certifapache.crt"
    SSLCertificateKeyFile "/etc/apache2/2.4/ssl/cleprivapache.key"
    <Directory "/usr/apache2/2.4/docs/intranet.jurabois.lan">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
    </Directory>

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory "/var/apache2/2.4/cgi-bin">
        SSLOptions +StdEnvVars
    </Directory>
    BrowserMatch "MSIE [2-5]" \
            nokeepalive ssl-unclean-shutdown \
            downgrade-1.0 force-response-1.0
    CustomLog "/var/log/httpd-ssl_request.log" \
             "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    </VirtualHost>

    9) Activation d’SSL dans apache :

    sed "s/#LoadModule ssl_module libexec\/mod_ssl.so/LoadModule ssl_module libexec\/mod_ssl.so/" /etc/apache2/2.4/httpd.conf > /tmp/httptemp && mv /tmp/httptemp /etc/apache2/2.4/httpd.conf

    10) Régler un soucis d'accès d'Apache à ses propres logs (ça, c'est un peu aberrant...)

    chown -R webservd:webservd /var/apache2/2.4/logs

    11) Relancer Apache

    svcadm enable apache24

    Après un enregistrement DNS sur votre hôte, vous pourrez accéder à votre site via https://intranet.jurabois.lan


    votre commentaire
  • Impossible d'utiliser une tâche Cron pour faire ce travail sur Solaris, il faut utiliser rc.d

    Voici comment faire :
    1) Loguez-vous en root
    2) Rédigez votre script et copiez le dans

    /etc/init.d

    Autorisez root à l'exécuter ! Sinon, ça ne fonctionnera pas.
    (On va supposer que votre script s'appelle SCRIPT.SH)

    chmod 740 /etc/init.d/SCRIPT.SH

    3) Créez un lien symbolique vers le dossier rc3.d (c'est à ce niveau que les configurations réseau se font, notamment)

    ln -s /etc/init.d/SCRIPT.SH /etc/rc3.d/S80SCRIPT.SH

    le préfixe S80 est primordial, car il indique l'ordre dans lequel les scripts vont être exécutés.
    Vous devez mettre la lettre [S] puis un numéro compris entre 01 et 99, en fonction de l'ordre dans lequel vous souhaitez que les scripts soient exécutés.

    Redémarrez le serveur, votre SCRIPT.SH a été exécuté.


    votre commentaire


    Suivre le flux RSS des articles de cette rubrique
    Suivre le flux RSS des commentaires de cette rubrique