Skip to content

Commit 48f1924

Browse files
authored
Update Network.py
1 parent f7c2716 commit 48f1924

File tree

1 file changed

+170
-138
lines changed

1 file changed

+170
-138
lines changed

Network.py

+170-138
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,14 @@
11
#!/usr/bin/python3
22
# -*- coding: utf8 -*-
3-
4-
5-
# Python Network script :
6-
#
7-
# Change DB creds before launch :
3+
#
4+
# Python Script Install Differents Packages :
5+
# Made in France by Mazzilli Baptiste ([email protected])
6+
# Created and Tested in Python3.9 on Ubuntu Server v.20.04.2 LTS
87
#
98
# Import Plugins for Bash commands, Apt Package, MYSQL Query:
109
import subprocess
11-
import apt
1210
import mysql.connector
13-
14-
# Cache from APT Package
15-
cache = apt.Cache()
16-
17-
# Print Instructions at launch :
11+
# Print Instructions at launch (Main Menu) :
1812
print()
1913
print("Lancement Programme Installation Réseau en cours ...")
2014
print()
@@ -26,15 +20,18 @@
2620
print()
2721
print("4 - Installer un Routeur (DHCP - DNS - NTP - Network Forwarding)")
2822
print()
29-
print("5 - Installer un Serveur VPN (OpenVPN)")
23+
print("5 - Installer un Serveur LDAP (OpenLDAP)")
3024
print()
3125
print("6 - Quitter le Script")
3226
print()
33-
34-
# Asking user what he wants to do (Main Menu):
35-
user_answer = input("Que voulez-vous faire ? (1, 2, 3, 4, 5, 6) : ")
36-
27+
# String User Answer :
28+
user_answer = ("Que voulez-vous faire ? (1, 2, 3, 4, 5, 6) : ")
29+
# While user doesn't choose answer 1 or 2 or 3 or 4 or 5 or 6, display input "user_answer" :
30+
while user_answer != "1" and user_answer != "2" and user_answer != "3" and user_answer != "4" and user_answer != "5" and user_answer != "6":
31+
# Asking user what he wants to do (Main Menu) :
32+
user_answer = input("Que voulez-vous faire ? (1, 2, 3, 4, 5, 6) : ")
3733
# If Statements for Menu Options :
34+
# Choice N°1 : Install Web Server (Apache or NginX Package) :
3835
if user_answer == "1":
3936
print()
4037
user_answer_web = input("Quel serveur Web voulez-vous installer ? (1 = Apache / 2 = NginX) : ")
@@ -51,7 +48,7 @@
5148
subprocess.call(["clear"])
5249
subprocess.call(["sudo", "apt-get", "install", "apache2", "-y"])
5350
print()
54-
print("Apache installé avec succès !")
51+
print("Serveur Apache installé avec succès !")
5552
print()
5653
elif user_answer_web =="2":
5754
print()
@@ -66,86 +63,74 @@
6663
subprocess.call(["clear"])
6764
subprocess.call(["sudo", "apt-get", "install", "nginx", "-y"])
6865
print()
69-
print("NginX installé avec succès !")
66+
print("Serveur NginX installé avec succès !")
7067
print()
7168
else:
7269
print()
7370
print("Choisissez une option d'installation valide . Fermeture du script ...")
7471
print()
72+
# Choice N°2 : Install Wordpress Server (LAMP : Apache - MariaDB - PHP) :
7573
elif user_answer == "2":
7674
print()
77-
user_answer_web = input("Voulez-vous installer un serveur Wordpress sur une base LAMP ? (1 = Oui / 2 = Non) : ")
78-
if user_answer_web =="1":
79-
print()
80-
print("Installation du serveur Wordpress en cours ... ")
81-
print()
82-
print("Mises à Jour en cours ... ")
83-
print()
84-
subprocess.call(["sudo", "apt-get", "update"])
85-
subprocess.call(["sudo", "apt-get", "upgrade", "-y"])
86-
subprocess.call(["sudo", "apt-get", "dist-upgrade", "-y"])
87-
subprocess.call(["sudo", "apt-get", "autoremove", "-y"])
88-
subprocess.call(["clear"])
89-
subprocess.call(["sudo", "apt-get", "install", "apache2", "php7.4-fpm", "php7.4-mysql", "mariadb-server", "-y"])
90-
subprocess.call(["sudo", "a2enmod", "proxy_fcgi", "setenvif"])
91-
subprocess.call(["sudo", "a2enconf", "php7.4-fpm"])
92-
subprocess.call(["sudo", "systemctl", "restart", "apache2"])
93-
print()
94-
print("Packets Wordpress installé avec succès !")
95-
print()
96-
print("Configuration des services Web ... ")
97-
print()
98-
print("Création et configuration de la base de données ...")
99-
# Database Connection and Queriess :
100-
db_connection = mysql.connector.connect(
101-
host= "localhost",
102-
user= "wordpressuser",
103-
passwd= "wordpresspassword"
104-
)
105-
db_cursor = db_connection.cursor()
106-
print()
107-
db_cursor.execute("CREATE DATABASE wordpressdb")
108-
db_cursor.execute("CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'wordpresspassword'")
109-
db_cursor.execute("GRANT ALL PRIVILEGES ON * . * TO 'wordpressuser'@'localhost'")
110-
db_cursor.execute("FLUSH PRIVILEGES")
111-
print("Base de données & Utilisateur crées avec succès !")
112-
print()
113-
print("Identifiants créers par défault, à changer immédiatement :")
114-
print()
115-
print()
116-
print("Nom de la Base de Données : wordpressdb")
117-
print()
118-
print("Utilisateur de la Base de Données : wordpressuser")
119-
print()
120-
print("Mot de passe de la Base de Données : wordpresspassword")
121-
print()
122-
print()
123-
print("Suppression du fichier de configuration Apache par défaut ...")
124-
subprocess.call(["sudo", "rm", "-rif", "/var/www/html/index.html"])
125-
print()
126-
print("Téléchargement de l'archive Wordpress en cours ...")
127-
print()
128-
subprocess.call(["wget", "-q", "-c", "http://wordpress.org/latest.tar.gz"])
129-
print("Extraction et déplacement de l'archive en cours ...")
130-
subprocess.call(["tar", "-xzvf", "/home/user1/latest.tar.gz", ">>", "/dev/null"])
131-
subprocess.call(["tar", "-xzf", "latest.tar.gz"])
132-
subprocess.call(["sudo", "mv", "wordpress/*", "/var/www/html/"])
133-
print()
134-
print("Extraction et Déplacement des fichiers Wordpress terminés !")
135-
print()
136-
print("Vous pouvez maintenant configurer votre Site Wordpress depuis votre navigateur Internet !")
137-
print()
138-
elif user_answer_web =="2":
139-
print()
140-
print("Annulation de l'installation du site Wordpress. Retour au menu ... ")
141-
print()
142-
else:
143-
print()
144-
print("Choisissez une option d'installation valide . Fermeture du script ...")
145-
print()
75+
print("Installation du serveur Wordpress en cours ... ")
76+
print()
77+
print("Mises à Jour en cours ... ")
78+
print()
79+
subprocess.call(["sudo", "apt-get", "update"])
80+
subprocess.call(["sudo", "apt-get", "upgrade", "-y"])
81+
subprocess.call(["sudo", "apt-get", "dist-upgrade", "-y"])
82+
subprocess.call(["sudo", "apt-get", "autoremove", "-y"])
83+
subprocess.call(["clear"])
84+
subprocess.call(["sudo", "apt-get", "install", "apache2", "php7.4-fpm", "php7.4-mysql", "mariadb-server", "-y"])
85+
subprocess.call(["sudo", "a2enmod", "proxy_fcgi", "setenvif"])
86+
subprocess.call(["sudo", "a2enconf", "php7.4-fpm"])
87+
subprocess.call(["sudo", "systemctl", "restart", "apache2"])
88+
subprocess.call(["clear"])
89+
print()
90+
print("Packets Web installés avec succès !")
91+
print()
92+
print("Configuration des services Web ... ")
93+
print()
94+
print("Création et configuration de la base de données ...")
95+
print()
96+
user_answer_db_name = input ("Quel nom pour la base de données Wordpress ? : ")
97+
print()
98+
user_answer_db_user = input ("Quel nom d'utilisateur pour la base de données Wordpress ? : ")
99+
print()
100+
user_answer_db_password = input ("Quel mot de passe de l'utilisateur pour la base de données Wordpress ? : ")
101+
print()
102+
# Database Queries :
103+
db_connection = mysql.connector.connect(
104+
host= "localhost",
105+
user= "user1",
106+
passwd= "password1"
107+
)
108+
db_cursor = db_connection.cursor()
109+
db_cursor.execute("CREATE DATABASE {}".format(user_answer_db_name))
110+
db_cursor.execute("CREATE USER '{}'@localhost".format(user_answer_db_user))
111+
db_cursor.execute("GRANT ALL ON wordpressdb.* TO'{}'".format(user_answer_db_user))
112+
print("Base de données & Utilisateur crées avec succès !")
113+
print()
114+
print("Suppression du fichier de configuration Apache par défaut ...")
115+
subprocess.call(["sudo", "rm", "-rif", "/var/www/html/index.html"])
116+
print()
117+
print("Téléchargement de l'archive Wordpress en cours ...")
118+
print()
119+
subprocess.call(["wget", "-q", "-c", "http://wordpress.org/latest.tar.gz"])
120+
print("Extraction et déplacement de l'archive en cours ...")
121+
subprocess.call(["tar", "-xzf", "latest.tar.gz"])
122+
subprocess.call(["sudo", "mv", "wordpress/*", "/var/www/html/"])
123+
print()
124+
print("Extraction et Déplacement des fichiers Wordpress terminés.")
125+
print()
126+
print("Serveur Wordpress installé avec succès !")
127+
print()
128+
print("Vous pouvez maintenant configurer votre Site Wordpress depuis votre navigateur Internet !")
129+
print()
130+
# Choice N°3 : Install Files Server (NFS - SFTP Protocols) :
146131
elif user_answer == "3":
147132
print()
148-
user_answer_files = input("Voulez-vous installer un Serveur de fichiers ? (1 = NFS / 2 = SFTP / 3 = Retour au menu) : ")
133+
user_answer_files = input("Voulez-vous installer un Serveur de fichiers ? (1 = NFS / 2 = SFTP) : ")
149134
if user_answer_files =="1":
150135
print()
151136
print("Installation d'un serveur de fichiers NFS en cours ... ")
@@ -176,68 +161,115 @@
176161
print()
177162
print("Serveur de fichiers SFTP installé avec succès !")
178163
print()
179-
elif user_answer_files =="3":
180-
print()
181-
print("Annulation de l'installation du Serveur de fichiers. Retour au menu ... ")
182-
print()
183164
else:
184165
print()
185166
print("Choisissez une option d'installation valide . Fermeture du script ...")
186167
print()
168+
# Choice N°4 : Install "Router" Services (DHCP - DNS - NTP - Configuration of Network Cards) :
187169
elif user_answer == "4":
188170
print()
189-
user_answer_routeur = input("Voulez-vous installer un Pack Routeur ? (1 = Oui / 2 = Non) : ")
190-
if user_answer_routeur =="1":
191-
print()
192-
print("Installation d'un pack Routeur en cours ... ")
193-
print()
194-
print("Mises à Jour en cours ... ")
195-
print()
196-
subprocess.call(["sudo", "apt-get", "update"])
197-
subprocess.call(["sudo", "apt-get", "upgrade", "-y"])
198-
subprocess.call(["sudo", "apt-get", "dist-upgrade", "-y"])
199-
subprocess.call(["sudo", "apt-get", "autoremove", "-y"])
200-
subprocess.call(["clear"])
201-
subprocess.call(["sudo", "apt-get", "install", "isc-dhcp-server", "-y"])
202-
print()
203-
print("Serveur DHCP installé avec succès !")
204-
print()
205-
subprocess.call(["sudo", "apt-get", "install", "bind9", "-y"])
206-
subprocess.call(["clear"])
207-
print()
208-
print("Serveur DNS installé avec succès !")
209-
print()
210-
subprocess.call(["sudo", "apt-get", "install", "chrony", "-y"])
211-
print()
212-
print("Serveur NTP installé avec succès !")
213-
print()
214-
print("Affichage des différentes sources choisis par le Serveur NTP ...")
215-
print()
216-
subprocess.call(["sudo", "chronyc", "sources"])
217-
print()
218-
print("Serveur Routeur installé avec succès ! ")
219-
print()
220-
elif user_answer_routeur =="2":
221-
print()
222-
print("Annulation de l'installation du Service Routeur. Retour au menu ... ")
223-
print()
224-
else:
225-
print()
226-
print("Choisissez une option d'installation valide . Fermeture du script ...")
227-
print()
171+
print("Installation d'un pack Routeur en cours ... ")
172+
print()
173+
print("Mises à Jour en cours ... ")
174+
print()
175+
subprocess.call(["sudo", "apt-get", "update"])
176+
subprocess.call(["sudo", "apt-get", "upgrade", "-y"])
177+
subprocess.call(["sudo", "apt-get", "dist-upgrade", "-y"])
178+
subprocess.call(["sudo", "apt-get", "autoremove", "-y"])
179+
subprocess.call(["clear"])
180+
subprocess.call(["sudo", "apt-get", "install", "isc-dhcp-server", "-y"])
181+
print()
182+
print("Serveur DHCP installé avec succès !")
183+
print()
184+
subprocess.call(["sudo", "apt-get", "install", "bind9", "-y"])
185+
print()
186+
print("Serveur DNS installé avec succès !")
187+
subprocess.call(["sudo", "apt-get", "install", "chrony", "-y"])
188+
print()
189+
subprocess.call(["clear"])
190+
print("Serveur NTP installé avec succès !")
191+
print()
192+
print("Affichage des différentes sources choisis par le Serveur NTP ...")
193+
print()
194+
subprocess.call(["sudo", "chronyc", "sources"])
195+
print()
196+
print("Configuration du Serveur DHCP ...")
197+
print()
198+
subprocess.call(["sudo", "echo", "option domain-name ""home.lan"";", ">>", "/etc/dhcp/dhcpd.conf"])
199+
subprocess.call(["sudo", "echo", "option domain-name-servers 9.9.9.9, 1.1.1.1;", ">>", "/etc/dhcp/dhcpd.conf"])
200+
subprocess.call(["sudo", "echo", "authoritative;", ">>", "/etc/dhcp/dhcpd.conf"])
201+
subprocess.call(["sudo", "echo", "default-lease-time 3600e;", ">>", "/etc/dhcp/dhcpd.conf"])
202+
subprocess.call(["sudo", "echo", "max-lease-time 7200;", ">>", "/etc/dhcp/dhcpd.conf"])
203+
subprocess.call(["sudo", "echo", "subnet 192.168.37.0 netmask 255.255.255.0 {", ">>", "/etc/dhcp/dhcpd.conf"])
204+
subprocess.call(["sudo", "echo", " option routers 192.168.37.20;", ">>", "/etc/dhcp/dhcpd.conf"])
205+
subprocess.call(["sudo", "echo", " option subnet-mask 255.255.255.0;", ">>", "/etc/dhcp/dhcpd.conf"])
206+
subprocess.call(["sudo", "echo", " option domain-search ""home.lan"";", ">>", "/etc/dhcp/dhcpd.conf"])
207+
subprocess.call(["sudo", "echo", " option domain-name-servers 1.1.1.1;", ">>", "/etc/dhcp/dhcpd.conf"])
208+
subprocess.call(["sudo", "echo", " range 192.168.37.30 192.168.37.50;", ">>", "/etc/dhcp/dhcpd.conf"])
209+
subprocess.call(["sudo", "echo", "}", ">>", "/etc/dhcp/dhcpd.conf"])
210+
subprocess.call(["sudo", "sed", "-i", ""'s/INTERFACESv4=""/INTERFACESv4="ens37"/g'"", "/etc/default/isc-dhcp-server"])
211+
print()
212+
print("Serveur Routeur installé avec succès ! ")
213+
print()
214+
# Choice N°5 : Install LDAP Server (OpenLDAP) :
228215
elif user_answer == "5":
229216
print()
230-
print("Installation du Service VPN")
217+
print("Installation d'un Serveur LDAP en cours ...")
218+
print()
219+
subprocess.call(["sudo", "apt-get", "update"])
220+
subprocess.call(["sudo", "apt-get", "upgrade", "-y"])
221+
subprocess.call(["sudo", "apt-get", "dist-upgrade", "-y"])
222+
subprocess.call(["sudo", "apt-get", "autoremove", "-y"])
223+
subprocess.call(["sudo", "apt-get", "install", "slapd", "ldap-utils", "-y"])
224+
subprocess.call(["clear"])
225+
print()
226+
print("Configuration de la base LDAP. Demande de mot de passe pour utilisateur Admin du Serveur LDAP")
231227
print()
228+
print("Affichage du DIT créer par LDAP")
229+
print()
230+
subprocess.call(["sudo", "ldapsearch", "-Q", "-L", "-Y", "EXTERNAL", "-H", "ldapi:///", "-b", "dc=entreprise,dc=com"])
231+
print()
232+
print("Creation de 2 utilisateurs tests dans le DIT")
233+
print()
234+
subprocess.call(["sudo", "touch", "structure.ldif"])
235+
subprocess.call(["sudo", "echo", "dn: ou=Personnes,dc=entreprise,dc=com", ">>", "structure.ldif"])
236+
subprocess.call(["sudo", "echo", "objectclass: organizationalUnit", ">>", "structure.ldif"])
237+
subprocess.call(["sudo", "echo", "ou: Personnes", ">>", "structure.ldif"])
238+
subprocess.call(["sudo", "echo", "description: Employes de l entreprise", ">>", "structure.ldif"])
239+
subprocess.call(["sudo", "echo", "dn: ou=Machines,dc=entreprise,dc=com", ">>", "structure.ldif"])
240+
subprocess.call(["sudo", "echo", "objectclass: organizationalUnit", ">>", "structure.ldif"])
241+
subprocess.call(["sudo", "echo", "ou: Machines", ">>", "structure.ldif"])
242+
subprocess.call(["sudo", "echo", "description: Ordinateurs de l entreprise", ">>", "structure.ldif"])
243+
subprocess.call(["sudo", "echo", "dn: cn=Marie Dupond,ou=Personnes,dc=entreprise,dc=com", ">>", "structure.ldif"])
244+
subprocess.call(["sudo", "echo", "objectClass: inetOrgPerson", ">>", "structure.ldif"])
245+
subprocess.call(["sudo", "echo", "givenName: Marie", ">>", "structure.ldif"])
246+
subprocess.call(["sudo", "echo", "sn: Dupond", ">>", "structure.ldif"])
247+
subprocess.call(["sudo", "echo", "cn: Marie Dupond", ">>", "structure.ldif"])
248+
subprocess.call(["sudo", "echo", "uid: mariedupond", ">>", "structure.ldif"])
249+
subprocess.call(["sudo", "echo", "userPassword: mdupond", ">>", "structure.ldif"])
250+
subprocess.call(["sudo", "echo", "dn: cn=Marc Dupond,ou=Personnes,dc=entreprise,dc=com", ">>", "structure.ldif"])
251+
subprocess.call(["sudo", "echo", "objectClass: inetOrgPerson", ">>", "structure.ldif"])
252+
subprocess.call(["sudo", "echo", "givenName: Marc", ">>", "structure.ldif"])
253+
subprocess.call(["sudo", "echo", "sn: Dupond", ">>", "structure.ldif"])
254+
subprocess.call(["sudo", "echo", "cn: Marc Dupond", ">>", "structure.ldif"])
255+
subprocess.call(["sudo", "echo", "uid: marcdupond", ">>", "structure.ldif"])
256+
subprocess.call(["sudo", "echo", "userPassword: mdupond2", ">>", "structure.ldif"])
257+
print()
258+
print("Mot de Passe utilisateur LDAP ?")
259+
print()
260+
subprocess.call(["sudo", "ldapadd", "-x", "-W", "-D", "“cn=admin,dc=entreprise,dc=com”", "-H", "ldapi://localhost", "-f", "structure.ldif"])
261+
print()
262+
print("Affichage du DIT avec les Nouveaux Utilisateurs")
263+
print()
264+
subprocess.call(["sudo", "ldapsearch", "-Q", "-L", "-Y", "EXTERNAL", "-H", "ldapi:///", "-b", "dc=entreprise,dc=com"])
265+
print()
266+
print("Serveur LDAP installé avec Succès !")
267+
print()
268+
# Choice N°6 : Closing Script :
232269
elif user_answer == "6":
233270
print()
234271
print("Fermeture du script ...")
235272
print()
236273
else:
237-
print()
238-
print("Choisissez une option valide. Fermeture du script ...")
239-
print()
240-
241-
274+
pass
242275
# END
243-
#

0 commit comments

Comments
 (0)