Compare commits

..

11 Commits

22 changed files with 305 additions and 1 deletions

View File

@ -0,0 +1 @@
Dossier avec les fichiers de configuration du tunnel IPsec fait en TP, ainsi que les IPs et tables de routage.

View File

@ -0,0 +1 @@
Il faut renommer le fichier ipsec-gw1.conf en ipsec.conf et le placer dans /etc/ .

View File

@ -0,0 +1,18 @@
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:71:ec:44 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe71:ec44/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:c2:6d:0b brd ff:ff:ff:ff:ff:ff
inet 10.0.0.1/24 brd 10.0.0.255 scope global enp0s8
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fec2:6d0b/64 scope link
valid_lft forever preferred_lft forever

View File

@ -0,0 +1,23 @@
config setup
charondebug="all"
uniqueids=yes
strictcrlpolicy=no
conn %default
conn tunnel #
left=10.0.0.1
leftsubnet=192.168.1.0/24
right=10.0.0.2
rightsubnet=192.168.2.0/24
ike=aes256-sha2_256-modp1024!
esp=aes256-sha2_256!
keyingtries=0
ikelifetime=1h
lifetime=8h
dpddelay=30
dpdtimeout=120
dpdaction=restart
authby=secret
auto=start
keyexchange=ikev2
type=tunnel

View File

@ -0,0 +1,3 @@
10.0.0.0/24 dev enp0s8 proto kernel scope link src 10.0.0.1
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.1
192.168.2.0/24 via 192.168.1.1 dev enp0s3

View File

@ -0,0 +1 @@
Il faut renommer le fichier ipsec-gw2.conf en ipsec.conf et le placer dans /etc/ .

View File

@ -0,0 +1,18 @@
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:35:ba:6d brd ff:ff:ff:ff:ff:ff
inet 192.168.2.1/24 brd 192.168.2.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe35:ba6d/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:ea:8b:77 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.2/24 brd 10.0.0.255 scope global enp0s8
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:feea:8b77/64 scope link
valid_lft forever preferred_lft forever

View File

@ -0,0 +1,23 @@
config setup
charondebug="all"
uniqueids=yes
strictcrlpolicy=no
conn %default
conn tunnel #
left=10.0.0.2
leftsubnet=192.168.2.0/24
right=10.0.0.1
rightsubnet=192.168.1.0/24
ike=aes256-sha2_256-modp1024!
esp=aes256-sha2_256!
keyingtries=0
ikelifetime=1h
lifetime=8h
dpddelay=30
dpdtimeout=120
dpdaction=restart
authby=secret
auto=start
keyexchange=ikev2
type=tunnel

View File

@ -0,0 +1,2 @@
10.0.0.0/24 dev enp0s8 proto kernel scope link src 10.0.0.2
192.168.2.0/24 dev enp0s3 proto kernel scope link src 192.168.2.1

View File

@ -1,2 +1,2 @@
Dépôt de seconde année de SISR.
Chaque dossier porte le numéro de la séance associée.
Chaque dossier porte le nom du sujet associé.

View File

@ -0,0 +1,2 @@
Fichier hosts utilisé pour ansible lors du TP de la séance 16.
Sont inclus les fichiers idempotents .yml d'ansible que j'ai fait.

View File

@ -0,0 +1,6 @@
[adm]
infra
[web]
web1
web2

View File

@ -0,0 +1,32 @@
# squid.yml
---
- hosts: adm
vars:
- proxy_port: 8080
- proxy_mem: 128
- proxy_localnet: "192.168.0.0/24"
tasks:
- name: 1. Installe le proxy Squid sur la machine Infra.
apt:
name: squid
state: present
# Uncomment this on FIRST RUN, comment afterwards !
# - name: 2. Récupère le fichier squid.conf.
# ansible.builtin.fetch:
# src: /etc/squid/squid.conf
# dest: squid.conf.j2
# flat: yes
- name: 3. Envoie squid.conf
template:
src: squid.conf.j2
dest: /etc/squid/squid.conf
notify: Restart squid
handlers:
- name: Restart squid
service:
name: squid
state: restarted

View File

@ -0,0 +1,35 @@
# syslog-cli.yml
---
- hosts: web
tasks:
- name: 1. Installe le paquet rsyslog.
apt:
name: rsyslog
state: present
- name: 2. Ajoute la ligne pour forwarder les logs rsyslog au bon endroit.
lineinfile:
path: /etc/rsyslog.conf
line: '*.* @192.168.0.37:514'
create: yes
notify: Restart rsyslog
- name: 3. Forward les logs journald vers syslog.
replace:
path: /etc/systemd/journald.conf
regexp: '^#ForwardToSyslog=yes'
replace: 'ForwardToSyslog=yes'
notify: Restart journald
handlers:
- name: Restart rsyslog
service:
name: rsyslog
state: restarted
- name: Restart journald
service:
name: systemd-journald
state: restarted

View File

@ -0,0 +1,30 @@
# syslog.yml
---
- hosts: adm
tasks:
- name: 1. Installe le paquet rsyslog.
apt:
name: rsyslog
state: present
- name: 2. Active le module UDP sur le serveur syslog.
replace:
path: /etc/rsyslog.conf
regexp: '^#module\(load="imudp"\)'
replace: 'module(load="imudp")'
notify: Restart rsyslog
- name: 3. Active l'écoute sur le port UDP 514.
replace:
path: /etc/rsyslog.conf
regexp: '^#input\(type="imudp" port="514"\)'
replace: 'input(type="imudp" port="514")'
notify: Restart rsyslog
handlers:
- name: Restart rsyslog
service:
name: rsyslog
state: restarted

View File

@ -0,0 +1,21 @@
# playbook.yml
---
- hosts: web
tasks:
- name: 1. installe Apache
apt:
name: apache2
state: present
- name: 2. installe PHP pour Apache
apt:
name: php
state: present
- name: 3. installe php-mbstring
apt:
name: php-mbstring
state: present
- name: 4. installe index.html
copy:
src: index.html
dest: /var/www/html/index.html
mode: 0664

View File

@ -0,0 +1,2 @@
Dépôt des fichiers Python faits lors de la séance du 3 Octobre, le matin.
Le fichier users.txt est celui utilisé pour la création des comptes, pour l'exercice 4.

View File

@ -0,0 +1,26 @@
#!/usr/bin/python3
import os
import sys
def create_user(login, full_name):
try:
os.system(f'sudo useradd -m -c "{full_name}" {login}')
print(f"Utilisateur {login} créé avec succès.")
except Exception as e:
print(f"Erreur lors de la création de l'utilisateur {login}: {e}")
def main(filename):
try:
with open(filename, 'r') as file:
for line in file:
line = line.strip()
if line:
login, full_name = line.split(':')
create_user(login.strip(), full_name.strip())
except FileNotFoundError:
print(f"Le fichier {filename} n'a pas été trouvé.")
except Exception as e:
print(f"Erreur lors de la lecture du fichier {filename}: {e}")
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python creatusr.py <nom_du_fichier>")
else:
main(sys.argv[1])

View File

@ -0,0 +1,18 @@
#!/usr/bin/python3
# Demander à l'utilisateur de saisir une phrase
phrase = input("Entrez une phrase : ")
# Convertir la phrase en liste de mots
mots = phrase.split()
# Crée un dictionnaire pour stocker les occurrences des mots
occurrences = {}
# Compter les occurrences de chaque mot
for mot in mots:
if mot in occurrences:
occurrences[mot] += 1
else:
occurrences[mot] = 1
# Afficher les mots et leurs occurrences
print("Occurrences des mots :")
for mot, count in occurrences.items():
print(f"{mot} : {count}"

View File

@ -0,0 +1,6 @@
#!/usr/bin/python3
# Récupération de la valeur du rayon
rayon=int(input("Quel est le rayon du cercle ? "))
# Calcul et affichage
perim=(2*3.141592*rayon)
print("Le périmètre vaut:",perim)

View File

@ -0,0 +1,31 @@
#!/usr/bin/python3
# Les variables:
tableau=[]
i=0
avg=0
# Boucle while pour l'input et le remplissage du tableau
while i < 4:
x=int(input("Entrez un chiffre : "))
tableau.append(x)
x=0
i=i+1
# Fin de la boucle while, déclaration de variables pour la suite
mini=tableau[0]
maxi=tableau[0]
# Boucle for pour obtenir les valeurs minimales et maximales
for y in range (i):
if tableau[y] > maxi:
maxi=tableau[y]
if tableau[y] < mini:
mini=tableau[y]
avg=avg+tableau[y]
# Affichage de chaque élément du tableau
print(tableau[y])
# Calcul de la moyenne
avg=avg/i
# Affichage final
print("La plus grande valeur du tableau est: ",maxi)
print("La plus petite valeur du tableau est: ",mini)
print("La moyenne du tableau final est: ",avg)
# On aurait pu faire ça 100x plus vite, mais faut se compliquer la vie.

View File

@ -0,0 +1,5 @@
adupont:Albert Dupont
jduroy:Jeannette Duroy
gemorine:Guillaume Emorine
jpauchet:Jarod Pauchet
ngenret:Nathan Genret