Le 21 avril 2022, Apple a annoncé en mettant à jour sa page d'assistance que macOS Server est abandonné. Apple mettant fin à la prise en charge de macOS Server est dans le même ordre que Microsoft a mis fin à la prise en charge de Windows Home Server il y a des années où les services et les fonctionnalités ont été migrés. À la fin de 2010, Apple a annoncé qu'elle interromprait la ligne Xserve en 2011, mais sa ligne de serveurs n'a pas été complètement abandonnée. Au lieu de cela, Apple avait un plan de transition selon lequel ceux qui utilisaient Xserve pouvaient passer au Mac Pro de l'ère Intel Nehalem avec des performances similaires. L'autre option était de passer au Mac Mini pour les petits environnements de serveur. Apple a même suggéré des Mac Mini montés en rack pour ceux qui n'avaient pas besoin d'un Mac Pro mais qui avaient besoin de plus d'un serveur. Malheureusement, les services fournis par macOS Server ont pour la plupart été absorbés dans macOS principal ou sont passés par le Cloud.
Dans cet article, je vous communique les principales instructions à mettre en oeuvre afin de concevoir un serveur DHCP fonctionnel.
Alternatives aux services Apple macOS
SERVICES | STATUTS | ALTERNATIVES |
---|---|---|
Gestionnaire de profil | Disponible dans le serveur 5.12.2 | En savoir plus sur le choix d'une solution MDM |
Xsan | Supprimé dans le serveur 5.12 | Quantum, outils de ligne de commande intégrés à macOS |
FTP | Supprimé dans Server 5.4 | SFTP/SSH |
Documents du serveur | Supprimé dans Server 5.4 | Documents iCloud, Apache/WebDAV |
DHCP | Outils d'interface utilisateur supprimés dans le serveur 5.7.1 | bootpd, intégré à macOS |
DNS | Supprimé dans le serveur 5.7.1 | BIND, Unbound, KnotDNS |
VPN | Supprimé dans le serveur 5.7.1 | OpenVPN, SoftEther VPN, WireGuard |
Pare-feu | Outils d'interface utilisateur supprimés dans le serveur 5.7.1 | Pare-feu pf (intégré dans macOS) |
Serveur de messagerie | Supprimé dans le serveur 5.7.1 | Dovecot/Postfix - Courrier, KerioConnect |
Calendrier | Supprimé dans le serveur 5.7.1 | CalendarServer, DavMail, Radicale, Kerio Connect |
Wiki | Supprimé dans le serveur 5.7.1 | Fichiers MediaWiki, PmWiki, XWiki, Confluence, WordPress WMX |
WebSites | Outils d'interface utilisateur supprimés dans le serveur 5.7.1 | Serveur HTTP Apache (intégré à macOS), Nginx, Lighttpd |
Contacts | Supprimé dans le serveur 5.7.1 | CalendarServer, DavMail, Citadel, Kerio Connect |
NetBoot/NetInstall | Outils d'interface utilisateur supprimés dans le serveur 5.7.1 | BOOTP, TFTP, HTTP, NFS (tous intégrés à macOS), NetSUS, BSDPy |
Messages | Supprimé dans le serveur 5.7.1 | ejabberd, Openfire, Prosody |
Radius | Supprimé dans le serveur 5.7.1 | Radio libre |
Gestion AirPort | Supprimé dans le serveur 5.7.1 | Utilitaire AirPort |
Les options DHCP
1: Subnet Mask
3: Router
6: Domain Name Server
15: Domain Name
31: Perform Router Discovery
33: Static Route
43: Vendor Specific Information
44: NetBIOS over TCP/IP Name Server
46: NetBIOS over TCP/IP Node Type
47: NetBIOS over TCP/IP Scope
119: Domain Search
121: Classless Static Route
249: Private/Classless Static Route Microsoft
252: Private/Proxy autodiscovery
Savoir si le serveur fonctionne
sudo /usr/bin/sudo launchctl list com.apple.bootpd
Documentation BOOTPD
man bootpd
MISE EN PLACE D'UN SERVEUR DHCP
Créer un fichier bootpd.plist dans le dossier etc
sudo nano /etc/bootpd.plist
Contenu du fichier
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>bootp_enabled</key>
<false/>
<key>detect_other_dhcp_server</key>
<integer>1</integer>
<key>dhcp_enabled</key>
<array>
<string>en0</string>
</array>
<key>reply_threshold_seconds</key>
<integer>0</integer>
<key>Subnets</key>
<array>
<dict>
<key>allocate</key>
<true/>
<key>lease_max</key>
<integer>432000</integer>
<key>lease_min</key>
<integer>432000</integer>
<key>name</key>
<string>192.168.1</string>
<key>net_address</key>
<string>192.168.1.0</string>
<key>net_mask</key>
<string>255.255.255.0</string>
<key>dhcp_router</key>
<string>192.168.1.1</string>
<key>dhcp_domain_name</key>
<string>bsalado.fr</string>
<key>dhcp_domain_name_server</key>
<array>
<string>192.168.1.15</string>
</array>
<key>net_range</key>
<array>
<string>192.168.1.151</string>
<string>192.168.1.201</string>
</array>
</dict>
</array>
</dict>
</plist>
Autre exemple de fichier
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>allow</key>
<array>
<string>••:••:••:64:5d:5e</string>
<string>••:••:••:0b:61:a8</string>
<string>••:••:••:76:31:48</string>
<string>••:••:••:9f:20:79</string>
<string>••:••:••:ed:7c:fd</string>
<!...>
</array>
<key>Subnets</key>
<array>
<dict>
<key>_creator</key>
<string>com.apple.NetworkSharing</string>
<key>allocate</key>
<true/>
<key>dhcp_domain_name_server</key>
<array>
<string>10.0.2.1</string>
</array>
<key>dhcp_router</key>
<string>10.0.2.1</string>
<key>interface</key>
<string>en1</string>
<key>lease_max</key>
<integer>86400</integer>
<key>lease_min</key>
<integer>86400</integer>
<key>name</key>
<string>10.0.2/24</string>
<key>net_address</key>
<string>10.0.2.0</string>
<key>net_mask</key>
<string>255.255.255.0</string>
<key>net_range</key>
<array>
<string>10.0.2.2</string>
<string>10.0.2.31</string>
</array>
</dict>
</array>
<key>bootp_enabled</key>
<false/>
<key>detect_other_dhcp_server</key>
<array>
<string>en1</string>
</array>
<key>dhcp_enabled</key>
<array>
<string>en1</string>
</array>
<key>dhcp_ignore_client_identifier</key>
<true/>
<key>use_server_config_for_dhcp_options</key>
<false/>
</dict>
</plist>
Autre exemple de fichier
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>allow</key>
<array>
<string>00:00:00:00:00:00</string>
<string>...
</array>
<key>deny</key>
<array>
<string>...
</array>
<key>Subnets</key>
<array>
<dict>
<key>_creator</key>
<string>dan</string>
<key>allocate</key>
<true/>
<key>dhcp_router</key>
<string>10.0.2.1</string>
<key>lease_max</key>
<integer>86400</integer>
<key>lease_min</key>
<integer>86400</integer>
<key>name</key>
<string>10.0.2/24</string>
<key>net_address</key>
<string>10.0.2.0</string>
<key>net_mask</key>
<string>255.255.255.0</string>
<key>net_range</key>
<array>
<string>10.0.2.2</string>
<string>10.0.2.31</string>
</array>
</dict>
</array>
<key>detect_other_dhcp_server</key>
<true/>
<key>dhcp_enabled</key>
<array>
<string>en1</string>
</array>
<key>use_server_config_for_dhcp_options</key>
<false/>
</dict>
</plist>
Démarrage du serveur DHCP
sudo /bin/launchctl load -w /System/Library/LaunchDaemons/bootps.plist
Arrêt du serveur DHCP
sudo /bin/launchctl unload -w /System/Library/LaunchDaemons/bootps.plist
Pour que le service démarre automatiquement
ouvrir le fichier /System/Library/LaunchDaemons/bootps.plist puis changer (ligne 6)
<key>Enabled</key> --> <key>Enabled</key>
<true/> --> <false/>
RÉSERVATION D'ADRESSES IP
Créer un fichier bootptab dans le dossier etc
Contenu du fichier
%%
# hostname hwtype hwaddr ipaddr bootfile
client1 1 00:0c:29:1f:ed:54 10.0.0.128
client2 6 00:0c:29:1e:fd:57 10.0.0.129
Number Hardware Type (hwtype) References
1 Ethernet (10Mb) [JBP]
2 Experimental Ethernet (3Mb) [JBP]
3 Amateur Radio AX.25 [PXK]
4 Proteon ProNET Token Ring [JBP]
5 Chaos [GXP]
6 IEEE 802 Networks [JBP]
7 ARCNET [JBP]
8 Hyperchannel [JBP]
9 Lanstar [TU]
PRINCIPALES INSTRUCTIONS
bootpd n'écrit que dans /var/db/dhcp_leases
man bootpd
man bootptab
sudo nano /etc/bootptab
sudo nano /etc/bootpd.plist
sudo /bin/launchctl load -w /System/Library/LaunchDaemons/bootps.plist
sudo /bin/launchctl unload -w /System/Library/LaunchDaemons/bootps.plist