push readme

This commit is contained in:
Grégory Lebreton 2023-07-04 12:30:12 +02:00
commit 38c475f5e7
2 changed files with 245 additions and 0 deletions

145
README.md Normal file
View File

@ -0,0 +1,145 @@
# IPXE
Ce projet a pour but de déployer un serveur IPXE proposant des distributions Linux open source
## TABLE DES MATIERES
[INSTALLATION (ON DEBIAN)](#installation-(on-debian))
[CONFIGURATION FILES](#configuration-files)
[STEPS SCRIPT INSTALL](#steps-script-install)
- [Variable](#variables)
- [Dependencies](#dependencies)
- [DHCP Server](#dhco-server)
- [TFTP Server](#tftp-server)
- [NFS Server](#nsf-server)
- [LAMP Server](#lamp-server)
- [Prepare iPXE startup files](#prepare-ipxe-startup-files)
- [SAMBA for win installs](#samba-for-win-installs)
- [Directories for distributions](#directories-for-distributions)
- [TFTPD-HPA Restart](#tftpd-hpa-restart)
- [Install Distributions](#install-distributions)
- [In progress](#in-progress)
- [Good rights](#good-rights)
- [Reboot](#variables)
[MANUAL INSTALLATION OF DISTRIBUTIONS](#manual-installation-of-distributions)
## INSTALLATION (ON DEBIAN)
```bash
sudo ./ipxe-install.sh
```
## CONFIGURATION FILES
**IMPORTANT : THE CONFIGURATION FILES HAVE BEEN EDITED UPSTREAM AND REPLACE THE DEFAULT FILES**
More about : https://gitlab.com/garagenum/greg/pxe/-/blob/ipxe/get-distribs.sh
### [DHCP](#dhcp-server)
- ```./configs/isc-dhcp-server /etc/default/isc-dhcp-server```
- ```./configs/dhcpd.conf /etc/dhcp/```
### [TFTP](#tftp-server)
- ```./configs/tftpd-hpa /etc/default/tftpd-hpa```
### [MENU](#ipxe-menu)
- ```./configs/install.ipxe /var/www/html/install.ipxe```
### [SAMBA](#samba-for-win-installs)
- ```./configs/smb.conf /etc/samba/smb.conf```
## STEPS SCRIPT INSTALL
about : [ipxe-install.sh](https://gitlab.com/garagenum/greg/pxe/-/blob/ipxe/ipxe-install.sh)
### Variables
- Check server ip
- Network interface check
### Dependencies
- Update the system
- Install wget program
- Install : ```wimboot``` ```mkisofs``` ```cabextract```
### DHCP Server
Installation of the DHCP server on the server.
(WARNING : A server must have a fixed ip address ! )
- Install isc-dhcp-server
- Edit dhcp.conf located in ```etc/dhcp/``` >>> adapt to our current network
For our configuration we have chosen as address range between ```.150``` & ```.199```
### TFTP Server
The TFTP server is the one that will provide the necessary files for network startup.
- Install TFTP server
- Edit tftpd-hpa file located in ```/etc/default/```
- Replace the TFTP address with the address of our ixpe server
- Then restart the service : isc-dhcp-server
### NFS Server
The NFS server will be necessary in some cases, it allows to leave files available to the started system.
- Install nfs-kernel-server
### LAMP Server
To work, iPXE needs an HTTP server.
- Install HTTP server
- Create a symbolic link from tftpboot to the LAMP server
### Prepare iPXE startup files
- In this directory : ```/var/lib/tftpboot```
- Downloading files from the Web :
```undionly.kpxe``` and ```ipxe.efi```
### IPXE Menu
- The iPXE menu must be located on the web server, located in ```/var/www/html/```
- Create a symbolic link from ```/var/www/html/install.ipxe``` to ```/var/lib/tftpboot/```
- Allow sharing in the NFS configuration file :
```bash
sudo echo "/var/lib/tftpboot/ *(async,no_root_squash,no_subtree_check,ro) /etc/exports"
```
- Then restart the service nfs-kernel-server
### SAMBA for win installs
- Install Samba
- Enable smbd service
- Then restart smbd service
### Directories for distributions
- In this directory : ```/var/lib/tftpboot```
- Create folders for all used distributions
### TFTPD-HPA Restart
- Restart tftpd-hpa service
### Install Distributions
- Call the script ```get-distribs.sh```
### In progress
- WINDOWS PE -- TODO
- INSTALL DEPENDANCES
- PLACEMENT FICHIERS WINPE + AUTRES WINDOWS
- PRE CONFIG WINPE POUR AUTOBOOT (NETUSE DANS STARTCMD)
### Good rights
- Re-establishing the right rights to root : ```/var/lib/tftpboot```
- Modification of the rights of a directory and its sub-directories : ```/var/lib/tftpboot```
### Reboot
- Reboot and and test the operation
## DONE !
## MANUAL INSTALLATION OF DISTRIBUTIONS
about : [get-distribs.sh](https://gitlab.com/garagenum/greg/pxe/-/blob/ipxe/get-distribs.sh)
### Process
- In this directory ```/tmp```
- We have added a variable url, in which is referenced the url that will serve as a source to download the iso
- Then we mount iso file in this directory ```/mnt```
Explication : The loop option of mount (it's not a type, it's an option) tells mount that this is a "looping" device - a normal file to use as a block device. In the background, mount sets up a loopback device, then mounts it to /mnt in our case.
- We copy everything in ```/mnt``` to a folder in the ```/var/lib/tftpboot/``` directory where our installation images are located
- Then we dismantle everything in ```/mnt```
- Finally we delete the iso present in the /mnt directory

100
distributions-url.md Normal file
View File

@ -0,0 +1,100 @@
# IPXE
ADRESSES DES DISTRIBUTIONS POUR IPXE DU GARAGE
## DEBIAN 12
### 64 BITS
wget https://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux
wget https://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
wget http://debian.proxad.net/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/firmware.cpio.gz
### 32 BITS
wget http://debian.proxad.net/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/initrd.gz
wget https://ftp.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/inux
wget https://ftp.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/firmware.cpio.gz
### LIVE
wget https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-12.0.0-amd64-gnome.iso
## UBUNTU 24
### 64 BITS
wget http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/ubuntu-installer/amd64/linux
wget http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/ubuntu-installer/amd64/initrd.gz
### LIVE
wget http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/xen/vmlinuz
wget http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/xen/initrd.gz
## KALI
wget https://cdimage.kali.org/current/kali-linux-2023.2a-installer-amd64.iso
sudo mount -o loop ./kali-linux-2023.2a-installer-amd64.iso /mnt
sudo cp -r /mnt/. /var/lib/tftpboot/kali-live-64
sudo umount /mnt
sudo rm -rf /tmp/kali-linux-2023.2a-installer-amd64.iso
### 64-bit:
wget https://http.kali.org/kali/dists/kali-rolling/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux
wget https://http.kali.org/kali/dists/kali-rolling/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
### 32-bit:
wget https://http.kali.org/kali/dists/kali-rolling/main/installer-i386/current/images/netboot/debian-installer/i386/linux
wget https://http.kali.org/kali/dists/kali-rolling/main/installer-i386/current/images/netboot/debian-installer/i386/initrd.gz
### LIVE
wget
wget
## SHRED OS
## SHREDOS-64
wget https://github.com/PartialVolume/shredos.x86_64/releases/download/v2021.08.2_21_x86-64_0.32.023/shredos-2021.08.2_21_x86-64_0.32.023_20220126.iso
sudo mount -o loop ./shredos-2021.08.2_21_x86-64_0.32.023_20220126.iso /mnt
sudo cp -r /mnt/. /var/lib/tftpboot/shredos-64
sudo umount /mnt
sudo rm -rf /tmp/shredos-2021.08.2_21_x86-64_0.32.023_20220126.iso
## SHREDOS-32
wget https://github.com/PartialVolume/shredos.x86_64/releases/download/v2021.08.2_21_x86-64_0.32.023/shredos-2021.08.2_21_i586_0.32.023_20220126.iso
sudo mount -o loop ./shredos-2021.08.2_21_i586_0.32.023_20220126.iso /mnt
sudo cp -r /mnt/. /var/lib/tftpboot/shredos-32
sudo umount /mnt
sudo rm -rf /tmp/shredos-2021.08.2_21_i586_0.32.023_20220126.iso
## LMDE
### LMDE-LIVE-64
wget https://ftp.crifo.org/mint-cd/debian/lmde-5-cinnamon-64bit.iso
sudo mount -o loop lmde-5-cinnamon-64bit.iso /mnt
sudo cp -r /mnt/. /var/lib/tftpboot/lmde-live-64
sudo umount /mnt
sudo rm -rf /tmp/lmde-5-cinnamon-64bit.iso
### LMDE-LIVE-32
wget https://ftp.crifo.org/mint-cd/debian/lmde-5-cinnamon-32bit.iso
sudo mount -o loop ./lmde-5-cinnamon-32bit.iso /mnt
sudo cp -r /mnt/. /var/lib/tftpboot/lmde-live-32
sudo umount /mnt
sudo rm -rf /tmp/lmde-5-cinnamon-32bit.iso