forked from guillaume.emorine/siotp
Compare commits
95 Commits
main
...
v.0.1.1-ge
Author | SHA1 | Date | |
---|---|---|---|
c5e8cf8b5b | |||
0510ef607d | |||
74bc3f71c4 | |||
f6dfa00f97 | |||
f921870fe6 | |||
f8fcb95601 | |||
163d690e81 | |||
d1d177dd38 | |||
a6be4fc26b | |||
727d25a1af | |||
efddb08c77 | |||
bcbd0ae9ef | |||
7d2f5d2074 | |||
b89b138cc5 | |||
8d32373041 | |||
0adc0b54ed | |||
599dd574f6 | |||
d3430b425c | |||
1d61707ccd | |||
aec15f7595 | |||
8e22d0b53c | |||
58e6f44789 | |||
65c19a5dac | |||
1b58048482 | |||
30ed1051c4 | |||
ca4ecb0353 | |||
21426ae082 | |||
111174a31e | |||
0830cade8f | |||
5bfe7e88bc | |||
638a50ed05 | |||
473d973a41 | |||
c296e7bab9 | |||
54fed5e7b5 | |||
715d5c66a6 | |||
682aee0175 | |||
114888cf8d | |||
4c2df61b71 | |||
af18ff0a83 | |||
8f6c06c907 | |||
673ea00008 | |||
4b1e3eee9a | |||
ba7f858ca4 | |||
019f56c5d8 | |||
46f42a0d0d | |||
0159744cb3 | |||
198e45ce74 | |||
f782d46c71 | |||
81dc0446c6 | |||
4c75b6e64d | |||
c37d526260 | |||
a06eee0235 | |||
54c7334231 | |||
5f0d3ae723 | |||
869a33ab65 | |||
9991996dd2 | |||
fff61ae587 | |||
f42d7ac77e | |||
67b8643ae6 | |||
2f0057abf9 | |||
578435a8e4 | |||
b897a9da89 | |||
8d198fadda | |||
4c164c6aba | |||
af69bda72e | |||
b5be5e39ee | |||
9a5a319bbe | |||
7749ca1cff | |||
66700829d3 | |||
99e87d65c6 | |||
818cdead86 | |||
85c9291eba | |||
a81c373e20 | |||
123181d3c0 | |||
f9f34d53c8 | |||
5a72d2b706 | |||
b561e4241c | |||
48930ff95e | |||
5e4baa9313 | |||
a9cfcb8c1c | |||
28f9998223 | |||
3297812ab9 | |||
c678d27175 | |||
3279125ac8 | |||
4d347990f4 | |||
f0033dc781 | |||
9f2dd138a8 | |||
dfd0535b9e | |||
64fa760432 | |||
8e7ec6a8cd | |||
3a569735e2 | |||
37eeae75ee | |||
0da0615e76 | |||
397634652c | |||
27c4ee98ce |
@ -1 +1,5 @@
|
||||
Dépôt de fichiers personnels provenant de machines virtuelles utilisées en TP.
|
||||
Dépôt de fichiers personnels provenant de machines virtuelles utilisées en TP.
|
||||
|
||||
Ce Gitea contient aussi un script d'automatisation du processus de push et de pull, adaptés aux deux branches.
|
||||
|
||||
Dépôt anciennement privé, devenu public le 16 Septembre 2024.
|
69
automate.sh
69
automate.sh
@ -2,20 +2,61 @@
|
||||
# Script utilisé pour "automatiser" (raccourcir) le processus de pull, d'ajout, de commit et de push pour le répositoire Gitea personnel.
|
||||
# Ajout de messages et de délais pour mieux se repérer et se situer dans le processus.
|
||||
# Ajout d'un système de choix
|
||||
# Ajout d'un export de proxy HTTP/HTTPS automatique vers ceux du lycée pour la machine en salle 214.
|
||||
# Ajout d'un système de gestion d'erreur très basique pour éviter qu'un push/un pull se produise en cas de réponses incorrectes.
|
||||
|
||||
echo "Voulez-vous récupérer les fichiers à jour ou effectuer un push ? [1 = Pull, 2 = Push]"
|
||||
export http_proxy="http://10.121.38.1:8080/"
|
||||
export https_proxy="http://10.121.38.1:8080/"
|
||||
|
||||
echo "Voulez-vous récupérer les fichiers du dépôt ou effectuer un push sur le dépôt ? [1 = Pull, 2 = Push]"
|
||||
read answer
|
||||
if [ $answer == 1 ] ; then
|
||||
echo "Récupération des fichiers à jour..."
|
||||
git pull
|
||||
|
||||
echo "Quelle branche est concernée ? [1 = main, 2 = test]"
|
||||
read branch
|
||||
|
||||
if [ $branch == 1 ] ; then
|
||||
if [ $answer == 1 ] ; then
|
||||
git checkout main
|
||||
echo "Récupération des fichiers à jour, branche main..."
|
||||
git pull -q origin main
|
||||
else
|
||||
git checkout main
|
||||
echo "Ajout des fichiers au Gitea..."
|
||||
sleep 1
|
||||
git add .
|
||||
echo "Commit en cours..."
|
||||
sleep 1
|
||||
git commit
|
||||
echo "Entrez la version du tag:"
|
||||
read tag
|
||||
git tag $tag
|
||||
echo "Push des fichiers au Gitea, branche main..."
|
||||
sleep 1
|
||||
git push -q origin main --tag
|
||||
fi
|
||||
|
||||
elif [ $branch == 2 ] ; then
|
||||
if [ $answer == 1 ] ; then
|
||||
git checkout test
|
||||
echo "Récupération des fichiers à jour dans la branche test..."
|
||||
git pull -q origin test
|
||||
else
|
||||
git checkout test
|
||||
echo "Ajout des fichiers au Gitea, branche test..."
|
||||
sleep 1
|
||||
git add .
|
||||
echo "Commit en cours..."
|
||||
sleep 1
|
||||
git commit
|
||||
echo "Entrez la version du tag:"
|
||||
read tag
|
||||
git tag $tag
|
||||
echo "Push des fichiers au Gitea, branche test..."
|
||||
sleep 1
|
||||
git push -q origin test --tag
|
||||
fi
|
||||
|
||||
else
|
||||
echo "Ajout des fichiers au Gitea..."
|
||||
sleep 2
|
||||
git add .
|
||||
echo "Commit en cours..."
|
||||
sleep 2
|
||||
git commit
|
||||
echo "Push des fichiers au Gitea..."
|
||||
sleep 2
|
||||
git push
|
||||
fi
|
||||
echo "Choisissez une branche et une option valide. Veuillez relancer le script"
|
||||
|
||||
fi
|
2
bts_annee_2/README.md
Normal file
2
bts_annee_2/README.md
Normal file
@ -0,0 +1,2 @@
|
||||
Dépôt de seconde année de BTS.
|
||||
Divisé en deux, un côté SISR, un côté Cybersécurité.
|
2
bts_annee_2/cyber2/README.md
Normal file
2
bts_annee_2/cyber2/README.md
Normal file
@ -0,0 +1,2 @@
|
||||
Dépôt de seconde année de Cybersécurité.
|
||||
Chaque dossier porte le numéro de la séance associée.
|
1
bts_annee_2/cyber2/vpn-ipsec/README.md
Normal file
1
bts_annee_2/cyber2/vpn-ipsec/README.md
Normal file
@ -0,0 +1 @@
|
||||
Dossier avec les fichiers de configuration du tunnel IPsec fait en TP, ainsi que les IPs et tables de routage.
|
1
bts_annee_2/cyber2/vpn-ipsec/gw1/README.md
Normal file
1
bts_annee_2/cyber2/vpn-ipsec/gw1/README.md
Normal file
@ -0,0 +1 @@
|
||||
Il faut renommer le fichier ipsec-gw1.conf en ipsec.conf et le placer dans /etc/ .
|
18
bts_annee_2/cyber2/vpn-ipsec/gw1/config_ip_gw1
Normal file
18
bts_annee_2/cyber2/vpn-ipsec/gw1/config_ip_gw1
Normal 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
|
23
bts_annee_2/cyber2/vpn-ipsec/gw1/ipsec-gw1.conf
Normal file
23
bts_annee_2/cyber2/vpn-ipsec/gw1/ipsec-gw1.conf
Normal 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
|
||||
|
3
bts_annee_2/cyber2/vpn-ipsec/gw1/table_routage_gw1
Normal file
3
bts_annee_2/cyber2/vpn-ipsec/gw1/table_routage_gw1
Normal 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
|
1
bts_annee_2/cyber2/vpn-ipsec/gw2/README.md
Normal file
1
bts_annee_2/cyber2/vpn-ipsec/gw2/README.md
Normal file
@ -0,0 +1 @@
|
||||
Il faut renommer le fichier ipsec-gw2.conf en ipsec.conf et le placer dans /etc/ .
|
18
bts_annee_2/cyber2/vpn-ipsec/gw2/config_ip_gw2
Normal file
18
bts_annee_2/cyber2/vpn-ipsec/gw2/config_ip_gw2
Normal 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
|
23
bts_annee_2/cyber2/vpn-ipsec/gw2/ipsec-gw2.conf
Normal file
23
bts_annee_2/cyber2/vpn-ipsec/gw2/ipsec-gw2.conf
Normal 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
|
||||
|
2
bts_annee_2/cyber2/vpn-ipsec/gw2/table_routage_gw2
Normal file
2
bts_annee_2/cyber2/vpn-ipsec/gw2/table_routage_gw2
Normal 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
|
1
bts_annee_2/cyber2/wordpress-lamp/README.md
Normal file
1
bts_annee_2/cyber2/wordpress-lamp/README.md
Normal file
@ -0,0 +1 @@
|
||||
Dossier avec les fichiers de configuration du pare-feu, le fichier de test goss et le script de récupération des informations sur le serveur Web Wordpress.
|
100
bts_annee_2/cyber2/wordpress-lamp/compte-rendu-2024-09-30
Normal file
100
bts_annee_2/cyber2/wordpress-lamp/compte-rendu-2024-09-30
Normal file
@ -0,0 +1,100 @@
|
||||
# Scan des ports ouverts visibles depuis le poste physique
|
||||
|
||||
lun. 30 sept. 2024 16:45:55 CEST
|
||||
Starting Nmap 7.93 ( https://nmap.org ) at 2024-09-30 16:45 CEST
|
||||
Nmap scan report for 172.16.0.152
|
||||
Host is up (0.00069s latency).
|
||||
Not shown: 997 filtered tcp ports (no-response)
|
||||
PORT STATE SERVICE VERSION
|
||||
22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u3 (protocol 2.0)
|
||||
| ssh-hostkey:
|
||||
| 256 507a12ddb833cec5b87c576702e1682a (ECDSA)
|
||||
|_ 256 c3bbd552f31fbd2d9fdd9e11ca521cbc (ED25519)
|
||||
80/tcp open http Apache httpd 2.4.62 ((Debian))
|
||||
|_http-title: Did not follow redirect to https://172.16.0.152/
|
||||
|_http-server-header: Apache/2.4.62 (Debian)
|
||||
443/tcp open ssl/http Apache httpd 2.4.62 ((Debian))
|
||||
|_http-server-header: Apache/2.4.62 (Debian)
|
||||
| tls-alpn:
|
||||
|_ http/1.1
|
||||
|_http-title: Apache2 Debian Default Page: It works
|
||||
| ssl-cert: Subject: commonName=wordpress-ge/organizationName=Lyc\xC3\x83\xC2\xA9e Le Castel/stateOrProvinceName=Bourgogne/countryName=FR
|
||||
| Not valid before: 2024-09-26T13:11:27
|
||||
|_Not valid after: 2025-09-26T13:11:27
|
||||
|_ssl-date: TLS randomness does not represent time
|
||||
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
|
||||
|
||||
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
|
||||
Nmap done: 1 IP address (1 host up) scanned in 23.30 seconds
|
||||
|
||||
# Affichage des règles du pare-feu
|
||||
|
||||
# Generated by iptables-save v1.8.9 on Mon Sep 30 16:46:17 2024
|
||||
*filter
|
||||
:INPUT DROP [30889:1853067]
|
||||
:FORWARD DROP [0:0]
|
||||
:OUTPUT ACCEPT [142:9272]
|
||||
-A INPUT -m state --state INVALID -j DROP
|
||||
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
|
||||
-A INPUT -i lo -j ACCEPT
|
||||
-A INPUT -p icmp -j ACCEPT
|
||||
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
|
||||
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
|
||||
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
|
||||
-A FORWARD -m state --state INVALID -j DROP
|
||||
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
|
||||
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
|
||||
COMMIT
|
||||
# Completed on Mon Sep 30 16:46:17 2024
|
||||
|
||||
# Scan des ports UDP ouverts sur le serveur Web
|
||||
|
||||
State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess
|
||||
UNCONN 0 0 127.0.0.54:53 0.0.0.0:* users:(("systemd-resolve",pid=267,fd=19))
|
||||
UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=267,fd=17))
|
||||
UNCONN 0 0 0.0.0.0:5355 0.0.0.0:* users:(("systemd-resolve",pid=267,fd=11))
|
||||
|
||||
# Scan des ports TCP ouverts sur le serveur Web
|
||||
|
||||
State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess
|
||||
LISTEN 0 4096 0.0.0.0:5355 0.0.0.0:* users:(("systemd-resolve",pid=267,fd=12))
|
||||
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=404,fd=3))
|
||||
LISTEN 0 100 0.0.0.0:25 0.0.0.0:* users:(("master",pid=778,fd=13))
|
||||
LISTEN 0 4096 127.0.0.54:53 0.0.0.0:* users:(("systemd-resolve",pid=267,fd=20))
|
||||
LISTEN 0 80 127.0.0.1:3306 0.0.0.0:* users:(("mariadbd",pid=462,fd=20))
|
||||
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=267,fd=18))
|
||||
|
||||
# Résultats des tests Goss
|
||||
|
||||
1..31
|
||||
ok 1 - Package: apache2: installed: matches expectation: true
|
||||
ok 2 - Package: apache2: version: matches expectation: ["2.4.62-1~deb12u1"]
|
||||
ok 3 - Package: mariadb-server: installed: matches expectation: true
|
||||
ok 4 - Package: mariadb-server: version: matches expectation: ["1:10.11.6-0+deb12u1"]
|
||||
ok 5 - Process: apache2: running: matches expectation: true
|
||||
ok 6 - Service: sshd: enabled: matches expectation: true
|
||||
ok 7 - Service: sshd: running: matches expectation: true
|
||||
ok 8 - Process: sshd: running: matches expectation: true
|
||||
ok 9 - Port: tcp:22: listening: matches expectation: true
|
||||
ok 10 - Port: tcp:22: ip: matches expectation: ["0.0.0.0"]
|
||||
ok 11 - Port: tcp6:22: listening: matches expectation: true
|
||||
ok 12 - Port: tcp6:22: ip: matches expectation: ["::"]
|
||||
ok 13 - User: sshd: exists: matches expectation: true
|
||||
ok 14 - User: sshd: uid: matches expectation: 103
|
||||
ok 15 - User: sshd: gid: matches expectation: 65534
|
||||
ok 16 - User: sshd: home: matches expectation: "/run/sshd"
|
||||
ok 17 - User: sshd: groups: matches expectation: ["nogroup"]
|
||||
ok 18 - User: sshd: shell: matches expectation: "/usr/sbin/nologin"
|
||||
ok 19 - Port: tcp6:80: listening: matches expectation: true
|
||||
ok 20 - Port: tcp6:80: ip: matches expectation: ["::"]
|
||||
ok 21 - Interface: eth0: exists: matches expectation: true
|
||||
ok 22 - Interface: eth0: addrs: matches expectation: ["172.16.0.152/24","fe80::be24:11ff:fe76:ac6f/64"]
|
||||
ok 23 - Interface: eth0: mtu: matches expectation: 1500
|
||||
ok 24 - Port: tcp6:443: listening: matches expectation: true
|
||||
ok 25 - Port: tcp6:443: ip: matches expectation: ["::"]
|
||||
ok 26 - Service: ssh: enabled: matches expectation: true
|
||||
ok 27 - Service: ssh: running: matches expectation: true
|
||||
ok 28 - Service: apache2: enabled: matches expectation: true
|
||||
ok 29 - Service: apache2: running: matches expectation: true
|
||||
ok 30 - HTTP: http://172.16.0.152/wordpress: status: matches expectation: 200
|
||||
ok 31 - HTTP: http://172.16.0.152/wordpress: Body: matches expectation: ["engagement"]
|
13
bts_annee_2/cyber2/wordpress-lamp/compterendudistant.sh
Normal file
13
bts_annee_2/cyber2/wordpress-lamp/compterendudistant.sh
Normal file
@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
DATE=$(date -I)
|
||||
echo "Scan nmap et comptes-rendus en cours de création, veuillez patienter..."
|
||||
echo -ne "# Scan des ports ouverts visibles depuis le poste physique\n\n" > compte-rendu-$DATE
|
||||
(date ; nmap -A 172.16.0.152 ) >> compte-rendu-$DATE
|
||||
echo -ne "\n# Affichage des règles du pare-feu\n\n" >> compte-rendu-$DATE
|
||||
ssh debian@172.16.0.152 "sudo iptables-legacy-save" >> compte-rendu-$DATE
|
||||
echo -ne "\n# Scan des ports UDP ouverts sur le serveur Web\n\n" >> compte-rendu-$DATE
|
||||
ssh debian@172.16.0.152 "sudo ss -lnu4p" >> compte-rendu-$DATE
|
||||
echo -ne "\n# Scan des ports TCP ouverts sur le serveur Web\n\n" >> compte-rendu-$DATE
|
||||
ssh debian@172.16.0.152 "sudo ss -lnt4p" >> compte-rendu-$DATE
|
||||
echo -ne "\n# Résultats des tests Goss\n\n" >> compte-rendu-$DATE
|
||||
ssh debian@172.16.0.152 "sudo goss v -f tap" >> compte-rendu-$DATE
|
43
bts_annee_2/cyber2/wordpress-lamp/ferm.conf
Normal file
43
bts_annee_2/cyber2/wordpress-lamp/ferm.conf
Normal file
@ -0,0 +1,43 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Configuration file for ferm(1).
|
||||
#
|
||||
domain (ip) {
|
||||
table filter {
|
||||
chain INPUT {
|
||||
policy DROP;
|
||||
|
||||
# connection tracking
|
||||
mod state state INVALID DROP;
|
||||
mod state state (ESTABLISHED RELATED) ACCEPT;
|
||||
|
||||
# allow local packet
|
||||
interface lo ACCEPT;
|
||||
|
||||
# respond to ping
|
||||
proto icmp ACCEPT;
|
||||
|
||||
# allow SSH connections
|
||||
proto tcp dport ssh ACCEPT;
|
||||
|
||||
# autorise les connexions HTTP et HTTPS
|
||||
proto tcp dport (http https) ACCEPT;
|
||||
}
|
||||
chain OUTPUT {
|
||||
policy ACCEPT;
|
||||
|
||||
# connection tracking
|
||||
#mod state state INVALID DROP;
|
||||
mod state state (ESTABLISHED RELATED) ACCEPT;
|
||||
}
|
||||
chain FORWARD {
|
||||
policy DROP;
|
||||
|
||||
# connection tracking
|
||||
mod state state INVALID DROP;
|
||||
mod state state (ESTABLISHED RELATED) ACCEPT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include ferm.d/;
|
73
bts_annee_2/cyber2/wordpress-lamp/goss.yaml
Normal file
73
bts_annee_2/cyber2/wordpress-lamp/goss.yaml
Normal file
@ -0,0 +1,73 @@
|
||||
package:
|
||||
apache2:
|
||||
installed: true
|
||||
versions:
|
||||
- 2.4.62-1~deb12u1
|
||||
mariadb-server:
|
||||
installed: true
|
||||
versions:
|
||||
- 1:10.11.6-0+deb12u1
|
||||
port:
|
||||
tcp:22:
|
||||
listening: true
|
||||
ip:
|
||||
- 0.0.0.0
|
||||
tcp6:22:
|
||||
listening: true
|
||||
ip:
|
||||
- '::'
|
||||
tcp6:80:
|
||||
listening: true
|
||||
ip:
|
||||
- '::'
|
||||
tcp6:443:
|
||||
listening: true
|
||||
ip:
|
||||
- '::'
|
||||
service:
|
||||
apache2:
|
||||
enabled: true
|
||||
running: true
|
||||
ssh:
|
||||
enabled: true
|
||||
running: true
|
||||
sshd:
|
||||
enabled: true
|
||||
running: true
|
||||
user:
|
||||
sshd:
|
||||
exists: true
|
||||
uid: 103
|
||||
gid: 65534
|
||||
groups:
|
||||
- nogroup
|
||||
home: /run/sshd
|
||||
shell: /usr/sbin/nologin
|
||||
process:
|
||||
apache2:
|
||||
running: true
|
||||
sshd:
|
||||
running: true
|
||||
interface:
|
||||
eth0:
|
||||
exists: true
|
||||
addrs:
|
||||
- 172.16.0.152/24
|
||||
- fe80::be24:11ff:fe76:ac6f/64
|
||||
mtu: 1500
|
||||
http:
|
||||
http://172.16.0.152/wordpress:
|
||||
status: 200
|
||||
allow-insecure: true
|
||||
no-follow-redirects: false
|
||||
timeout: 5000
|
||||
body:
|
||||
- engagement
|
||||
https:
|
||||
https://172.16.0.152/wordpress:
|
||||
status: 200
|
||||
allow-insecure: true
|
||||
no-follow-redirects: false
|
||||
timeout: 5000
|
||||
body:
|
||||
- engagement
|
2
bts_annee_2/sisr2/README.md
Normal file
2
bts_annee_2/sisr2/README.md
Normal file
@ -0,0 +1,2 @@
|
||||
Dépôt de seconde année de SISR.
|
||||
Chaque dossier porte le nom du sujet associé.
|
2
bts_annee_2/sisr2/ansible/README.md
Normal file
2
bts_annee_2/sisr2/ansible/README.md
Normal 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.
|
6
bts_annee_2/sisr2/ansible/hosts
Normal file
6
bts_annee_2/sisr2/ansible/hosts
Normal file
@ -0,0 +1,6 @@
|
||||
[adm]
|
||||
infra
|
||||
|
||||
[web]
|
||||
web1
|
||||
web2
|
32
bts_annee_2/sisr2/ansible/squid.yml
Normal file
32
bts_annee_2/sisr2/ansible/squid.yml
Normal 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
|
35
bts_annee_2/sisr2/ansible/syslog-cli.yml
Normal file
35
bts_annee_2/sisr2/ansible/syslog-cli.yml
Normal 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
|
||||
|
||||
|
30
bts_annee_2/sisr2/ansible/syslog.yml
Normal file
30
bts_annee_2/sisr2/ansible/syslog.yml
Normal 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
|
||||
|
||||
|
21
bts_annee_2/sisr2/ansible/web.yml
Normal file
21
bts_annee_2/sisr2/ansible/web.yml
Normal 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
|
2
bts_annee_2/sisr2/heartbeat_repa_charge/README.md
Normal file
2
bts_annee_2/sisr2/heartbeat_repa_charge/README.md
Normal file
@ -0,0 +1,2 @@
|
||||
Vagrantfiles de la troisième séance en SISR, et scripts pour le heartbeat.
|
||||
Les dossiers nominaux sont les machines du heartbeat.
|
49
bts_annee_2/sisr2/heartbeat_repa_charge/hb1/inst-hb1.sh
Normal file
49
bts_annee_2/sisr2/heartbeat_repa_charge/hb1/inst-hb1.sh
Normal file
@ -0,0 +1,49 @@
|
||||
#!/bin/bash
|
||||
# les bases
|
||||
# noeud hb1 : 192.168.0.101
|
||||
# noeud hb2 : 192.168.0.102
|
||||
# addr virt. : 192.168.0.103
|
||||
|
||||
sed -i 's/bookworm/hb1/g' /etc/host{s,name}
|
||||
apt update
|
||||
apt install -y heartbeat apache2 net-tools
|
||||
systemctl disable apache2
|
||||
|
||||
cat <<EOT> /etc/network/interfaces.d/enp0s3
|
||||
allow-hotplug enp0s3
|
||||
iface enp0s3 inet static
|
||||
address 192.168.0.101/24 # a adapter pour hb2
|
||||
EOT
|
||||
|
||||
cat <<EOT> /etc/network/interfaces.d/enp0s8
|
||||
allow-hotplug enp0s8
|
||||
iface enp0s8 inet static
|
||||
address 10.0.0.1/24 # a adapter pour hb2
|
||||
EOT
|
||||
|
||||
cd /usr/share/doc/heartbeat
|
||||
gunzip *.gz
|
||||
cp ha.cf /etc/ha.d
|
||||
cp haresources /etc/ha.d
|
||||
cp authkeys /etc/ha.d
|
||||
cd /etc/ha.d
|
||||
echo "192.168.0.102 hb2" >> /etc/hosts # a adapter pour hb2
|
||||
|
||||
cat <<EOT >> /etc/ha.d/ha.cf
|
||||
bcast enp0s8
|
||||
node hb1
|
||||
node hb2
|
||||
pacemaker off
|
||||
EOT
|
||||
|
||||
# echo " hb1 192.168.0.103 apache2" >> /etc/ha.d/haresources pou Debian buster
|
||||
echo " hb1 192.168.0.103/24/enp0s3 apache2" >> /etc/ha.d/haresources
|
||||
|
||||
cat <<EOT >> /etc/ha.d/authkeys
|
||||
auth 1
|
||||
1 crc
|
||||
EOT
|
||||
|
||||
chmod 600 /etc/ha.d/authkeys
|
||||
echo hb1 > /var/www/html/index.html # a adapter pour hb2
|
||||
#
|
49
bts_annee_2/sisr2/heartbeat_repa_charge/hb2/inst-hb2.sh
Normal file
49
bts_annee_2/sisr2/heartbeat_repa_charge/hb2/inst-hb2.sh
Normal file
@ -0,0 +1,49 @@
|
||||
#!/bin/bash
|
||||
# les bases
|
||||
# noeud hb1 : 192.168.0.101
|
||||
# noeud hb2 : 192.168.0.102
|
||||
# addr virt. : 192.168.0.103
|
||||
|
||||
sed -i 's/bookworm/hb2/g' /etc/host{s,name}
|
||||
apt update
|
||||
apt install -y heartbeat apache2 net-tools
|
||||
systemctl disable apache2
|
||||
|
||||
cat <<EOT> /etc/network/interfaces.d/enp0s3
|
||||
allow-hotplug enp0s3
|
||||
iface enp0s3 inet static
|
||||
address 192.168.0.102/24 # a adapter pour hb2
|
||||
EOT
|
||||
|
||||
cat <<EOT> /etc/network/interfaces.d/enp0s8
|
||||
allow-hotplug enp0s8
|
||||
iface enp0s8 inet static
|
||||
address 10.0.0.2/24 # a adapter pour hb2
|
||||
EOT
|
||||
|
||||
cd /usr/share/doc/heartbeat
|
||||
gunzip *.gz
|
||||
cp ha.cf /etc/ha.d
|
||||
cp haresources /etc/ha.d
|
||||
cp authkeys /etc/ha.d
|
||||
cd /etc/ha.d
|
||||
echo "192.168.0.101 hb1" >> /etc/hosts # a adapter pour hb2
|
||||
|
||||
cat <<EOT >> /etc/ha.d/ha.cf
|
||||
bcast enp0s8
|
||||
node hb1
|
||||
node hb2
|
||||
pacemaker off
|
||||
EOT
|
||||
|
||||
# echo " hb1 192.168.0.103 apache2" >> /etc/ha.d/haresources pou Debian buster
|
||||
echo " hb1 192.168.0.103/24/enp0s3 apache2" >> /etc/ha.d/haresources
|
||||
|
||||
cat <<EOT >> /etc/ha.d/authkeys
|
||||
auth 1
|
||||
1 crc
|
||||
EOT
|
||||
|
||||
chmod 600 /etc/ha.d/authkeys
|
||||
echo hb2 > /var/www/html/index.html # a adapter pour hb2
|
||||
#
|
@ -0,0 +1,79 @@
|
||||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
|
||||
# All Vagrant configuration is done below. The "2" in Vagrant.configure
|
||||
# configures the configuration version (we support older styles for
|
||||
# backwards compatibility). Please don't change it unless you know what
|
||||
# you're doing.
|
||||
Vagrant.configure("2") do |config|
|
||||
# The most common configuration options are documented and commented below.
|
||||
# For a complete reference, please see the online documentation at
|
||||
# https://docs.vagrantup.com.
|
||||
|
||||
# Every Vagrant development environment requires a box. You can search for
|
||||
# boxes at https://vagrantcloud.com/search.
|
||||
config.vm.box = "debian/bookworm64"
|
||||
config.vm.hostname = "bookworm"
|
||||
|
||||
# Disable automatic box update checking. If you disable this, then
|
||||
# boxes will only be checked for updates when the user runs
|
||||
# `vagrant box outdated`. This is not recommended.
|
||||
# config.vm.box_check_update = false
|
||||
|
||||
# Create a forwarded port mapping which allows access to a specific port
|
||||
# within the machine from a port on the host machine. In the example below,
|
||||
# accessing "localhost:8080" will access port 80 on the guest machine.
|
||||
# NOTE: This will enable public access to the opened port
|
||||
# config.vm.network "forwarded_port", guest: 80, host: 8080
|
||||
|
||||
# Create a forwarded port mapping which allows access to a specific port
|
||||
# within the machine from a port on the host machine and only allow access
|
||||
# via 127.0.0.1 to disable public access
|
||||
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
|
||||
|
||||
# Create a private network, which allows host-only access to the machine
|
||||
# using a specific IP.
|
||||
# config.vm.network "private_network", ip: "192.168.33.10"
|
||||
|
||||
# Create a public network, which generally matched to bridged network.
|
||||
# Bridged networks make the machine appear as another physical device on
|
||||
# your network.
|
||||
# config.vm.network "public_network"
|
||||
|
||||
# Share an additional folder to the guest VM. The first argument is
|
||||
# the path on the host to the actual folder. The second argument is
|
||||
# the path on the guest to mount the folder. And the optional third
|
||||
# argument is a set of non-required options.
|
||||
# config.vm.synced_folder "../data", "/vagrant_data"
|
||||
|
||||
# Disable the default share of the current code directory. Doing this
|
||||
# provides improved isolation between the vagrant box and your host
|
||||
# by making sure your Vagrantfile isn't accessable to the vagrant box.
|
||||
# If you use this you may want to enable additional shared subfolders as
|
||||
# shown above.
|
||||
# config.vm.synced_folder ".", "/vagrant", disabled: true
|
||||
|
||||
# Provider-specific configuration so you can fine-tune various
|
||||
# backing providers for Vagrant. These expose provider-specific options.
|
||||
# Example for VirtualBox:
|
||||
#
|
||||
# config.vm.provider "virtualbox" do |vb|
|
||||
# # Display the VirtualBox GUI when booting the machine
|
||||
# vb.gui = true
|
||||
#
|
||||
# # Customize the amount of memory on the VM:
|
||||
# vb.memory = "1024"
|
||||
# end
|
||||
#
|
||||
# View the documentation for the provider you are using for more
|
||||
# information on available options.
|
||||
|
||||
# Enable provisioning with a shell script. Additional provisioners such as
|
||||
# Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
|
||||
# documentation for more information about their specific syntax and use.
|
||||
config.vm.provision "shell", inline: <<-SHELL
|
||||
timedatectl set-timezone Europe/Paris
|
||||
apt-get update
|
||||
apt-get install -y vim wget curl neovim mc
|
||||
SHELL
|
||||
end
|
@ -0,0 +1,28 @@
|
||||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
Vagrant.configure("2") do |config|
|
||||
config.vm.provision "shell", inline: "apt-get update" # execute pour chacune des machines
|
||||
|
||||
config.vm.define "srv1" do |srv1|#VM No'1
|
||||
srv1.vm.box = "debian/bookworm64" #Setting machine type
|
||||
srv1.vm.hostname = "srv1" #Setting machine type
|
||||
srv1.vm.network "public_network", ip: "192.168.0.111"#Set static IP
|
||||
srv1.vm.provision "shell", inline: <<-SHELL
|
||||
timedatectl set-timezone Europe/Paris
|
||||
apt-get install -y wget curl vim unzip apache2
|
||||
echo "192.168.0.112 srv2" >> /etc/hosts
|
||||
SHELL
|
||||
end
|
||||
|
||||
config.vm.define "srv2" do |srv2|# VM No2
|
||||
srv2.vm.box = "debian/bookworm64" #Setting machine type
|
||||
srv2.vm.hostname = "srv2" #Setting machine type
|
||||
srv2.vm.network "public_network", ip: "192.168.0.112" #Set static IP
|
||||
srv2.vm.provision "shell", inline: <<-SHELL
|
||||
timedatectl set-timezone Europe/Paris
|
||||
apt-get install -y wget curl vim unzip apache2
|
||||
echo "192.168.0.111 srv1" >> /etc/hosts
|
||||
SHELL
|
||||
end
|
||||
end
|
||||
|
1
bts_annee_2/sisr2/lvs_haproxy/README.md
Normal file
1
bts_annee_2/sisr2/lvs_haproxy/README.md
Normal file
@ -0,0 +1 @@
|
||||
Dossier avec les fichiers provenant de la machine LVS pour l'équilibrage des charges.
|
44
bts_annee_2/sisr2/lvs_haproxy/lvs/haproxy.cfg
Normal file
44
bts_annee_2/sisr2/lvs_haproxy/lvs/haproxy.cfg
Normal file
@ -0,0 +1,44 @@
|
||||
global
|
||||
log /dev/log local0
|
||||
log /dev/log local1 notice
|
||||
chroot /var/lib/haproxy
|
||||
stats socket /run/haproxy/admin.sock mode 660 level admin
|
||||
stats timeout 30s
|
||||
user haproxy
|
||||
group haproxy
|
||||
daemon
|
||||
|
||||
# Default SSL material locations
|
||||
ca-base /etc/ssl/certs
|
||||
crt-base /etc/ssl/private
|
||||
|
||||
# See: https://ssl-config.mozilla.org/#server=haproxy&server-version=2.0.3&config=intermediate
|
||||
ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
|
||||
ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
|
||||
ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
|
||||
|
||||
defaults
|
||||
log global
|
||||
mode http
|
||||
option httplog
|
||||
option dontlognull
|
||||
timeout connect 5000
|
||||
timeout client 50000
|
||||
timeout server 50000
|
||||
errorfile 400 /etc/haproxy/errors/400.http
|
||||
errorfile 403 /etc/haproxy/errors/403.http
|
||||
errorfile 408 /etc/haproxy/errors/408.http
|
||||
errorfile 500 /etc/haproxy/errors/500.http
|
||||
errorfile 502 /etc/haproxy/errors/502.http
|
||||
errorfile 503 /etc/haproxy/errors/503.http
|
||||
errorfile 504 /etc/haproxy/errors/504.http
|
||||
# conf perso
|
||||
frontend front_webservers
|
||||
bind *:80
|
||||
default_backend backend_webservers
|
||||
option forwardfor
|
||||
|
||||
backend backend_webservers
|
||||
balance roundrobin
|
||||
server web1-ge 172.16.1.1:80 check
|
||||
server web2-ge 172.16.1.2:80 check
|
5
bts_annee_2/sisr2/lvs_haproxy/lvs/ipvs.sh
Normal file
5
bts_annee_2/sisr2/lvs_haproxy/lvs/ipvs.sh
Normal file
@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
ipvsadm -A -t 192.168.0.150:80 -s rr
|
||||
ipvsadm -a -t 192.168.0.150:80 -r 172.16.1.1:80 -m
|
||||
ipvsadm -a -t 192.168.0.150:80 -r 172.16.1.2:80 -m
|
||||
ipvsadm -L
|
1
bts_annee_2/sisr2/pxe/DHCP/README.md
Normal file
1
bts_annee_2/sisr2/pxe/DHCP/README.md
Normal file
@ -0,0 +1 @@
|
||||
Fichiers de configuration du serveur DHCP de la machine PXE.
|
112
bts_annee_2/sisr2/pxe/DHCP/dhcpd.conf
Normal file
112
bts_annee_2/sisr2/pxe/DHCP/dhcpd.conf
Normal file
@ -0,0 +1,112 @@
|
||||
# dhcpd.conf
|
||||
#
|
||||
# Sample configuration file for ISC dhcpd
|
||||
#
|
||||
|
||||
# option definitions common to all supported networks...
|
||||
#option domain-name "example.org";
|
||||
option domain-name-servers 10.121.38.7, 10.121.38.8;
|
||||
|
||||
default-lease-time 100000;
|
||||
max-lease-time 7200000;
|
||||
|
||||
allow booting;
|
||||
|
||||
# The ddns-updates-style parameter controls whether or not the server will
|
||||
# attempt to do a DNS update when a lease is confirmed. We default to the
|
||||
# behavior of the version 2 packages ('none', since DHCP v2 didn't
|
||||
# have support for DDNS.)
|
||||
ddns-update-style none;
|
||||
|
||||
# If this DHCP server is the official DHCP server for the local
|
||||
# network, the authoritative directive should be uncommented.
|
||||
#authoritative;
|
||||
|
||||
# Use this to send dhcp log messages to a different log file (you also
|
||||
# have to hack syslog.conf to complete the redirection).
|
||||
#log-facility local7;
|
||||
|
||||
# No service will be given on this subnet, but declaring it helps the
|
||||
# DHCP server to understand the network topology.
|
||||
|
||||
#subnet 10.152.187.0 netmask 255.255.255.0 {
|
||||
#}
|
||||
|
||||
# This is a very basic subnet declaration.
|
||||
|
||||
subnet 192.168.1.0 netmask 255.255.255.0 {
|
||||
range 192.168.1.10 192.168.1.20;
|
||||
option broadcast-address 192.168.1.255;
|
||||
option routers 192.168.1.100;
|
||||
next-server 192.168.1.100;
|
||||
filename "pxelinux.0";
|
||||
}
|
||||
|
||||
# This declaration allows BOOTP clients to get dynamic addresses,
|
||||
# which we don't really recommend.
|
||||
|
||||
#subnet 10.254.239.32 netmask 255.255.255.224 {
|
||||
# range dynamic-bootp 10.254.239.40 10.254.239.60;
|
||||
# option broadcast-address 10.254.239.31;
|
||||
# option routers rtr-239-32-1.example.org;
|
||||
#}
|
||||
|
||||
# A slightly different configuration for an internal subnet.
|
||||
#subnet 10.5.5.0 netmask 255.255.255.224 {
|
||||
# range 10.5.5.26 10.5.5.30;
|
||||
# option domain-name-servers ns1.internal.example.org;
|
||||
# option domain-name "internal.example.org";
|
||||
# option routers 10.5.5.1;
|
||||
# option broadcast-address 10.5.5.31;
|
||||
# default-lease-time 600;
|
||||
# max-lease-time 7200;
|
||||
#}
|
||||
|
||||
# Hosts which require special configuration options can be listed in
|
||||
# host statements. If no address is specified, the address will be
|
||||
# allocated dynamically (if possible), but the host-specific information
|
||||
# will still come from the host declaration.
|
||||
|
||||
#host passacaglia {
|
||||
# hardware ethernet 0:0:c0:5d:bd:95;
|
||||
# filename "vmunix.passacaglia";
|
||||
# server-name "toccata.example.com";
|
||||
#}
|
||||
|
||||
# Fixed IP addresses can also be specified for hosts. These addresses
|
||||
# should not also be listed as being available for dynamic assignment.
|
||||
# Hosts for which fixed IP addresses have been specified can boot using
|
||||
# BOOTP or DHCP. Hosts for which no fixed address is specified can only
|
||||
# be booted with DHCP, unless there is an address range on the subnet
|
||||
# to which a BOOTP client is connected which has the dynamic-bootp flag
|
||||
# set.
|
||||
#host fantasia {
|
||||
# hardware ethernet 08:00:07:26:c0:a5;
|
||||
# fixed-address fantasia.example.com;
|
||||
#}
|
||||
|
||||
# You can declare a class of clients and then do address allocation
|
||||
# based on that. The example below shows a case where all clients
|
||||
# in a certain class get addresses on the 10.17.224/24 subnet, and all
|
||||
# other clients get addresses on the 10.0.29/24 subnet.
|
||||
|
||||
#class "foo" {
|
||||
# match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
|
||||
#}
|
||||
|
||||
#shared-network 224-29 {
|
||||
# subnet 10.17.224.0 netmask 255.255.255.0 {
|
||||
# option routers rtr-224.example.org;
|
||||
# }
|
||||
# subnet 10.0.29.0 netmask 255.255.255.0 {
|
||||
# option routers rtr-29.example.org;
|
||||
# }
|
||||
# pool {
|
||||
# allow members of "foo";
|
||||
# range 10.17.224.10 10.17.224.250;
|
||||
# }
|
||||
# pool {
|
||||
# deny members of "foo";
|
||||
# range 10.0.29.10 10.0.29.230;
|
||||
# }
|
||||
#}
|
1
bts_annee_2/sisr2/pxe/Interfaces/README.md
Normal file
1
bts_annee_2/sisr2/pxe/Interfaces/README.md
Normal file
@ -0,0 +1 @@
|
||||
Fichiers d'interfaces réseau des deux cartes de la machine PXE.
|
3
bts_annee_2/sisr2/pxe/Interfaces/enp0s3
Normal file
3
bts_annee_2/sisr2/pxe/Interfaces/enp0s3
Normal file
@ -0,0 +1,3 @@
|
||||
# generated by FAI
|
||||
auto enp0s3
|
||||
iface enp0s3 inet dhcp
|
4
bts_annee_2/sisr2/pxe/Interfaces/enp0s8
Normal file
4
bts_annee_2/sisr2/pxe/Interfaces/enp0s8
Normal file
@ -0,0 +1,4 @@
|
||||
# generated by FAI
|
||||
auto enp0s8
|
||||
iface enp0s8 inet static
|
||||
address 192.168.1.100/24
|
1
bts_annee_2/sisr2/pxe/README.md
Normal file
1
bts_annee_2/sisr2/pxe/README.md
Normal file
@ -0,0 +1 @@
|
||||
Fichiers de configuration de la cinquième séance de SISR, sur PXE et le Netboot.
|
1
bts_annee_2/sisr2/pxe/nftables/README.md
Normal file
1
bts_annee_2/sisr2/pxe/nftables/README.md
Normal file
@ -0,0 +1 @@
|
||||
Fichier de configuration nftables de la machine PXE.
|
24
bts_annee_2/sisr2/pxe/nftables/nftables.conf
Executable file
24
bts_annee_2/sisr2/pxe/nftables/nftables.conf
Executable file
@ -0,0 +1,24 @@
|
||||
#!/usr/sbin/nft -f
|
||||
|
||||
flush ruleset
|
||||
|
||||
table inet filter {
|
||||
chain input {
|
||||
type filter hook input priority filter;
|
||||
}
|
||||
chain forward {
|
||||
type filter hook forward priority filter;
|
||||
}
|
||||
chain output {
|
||||
type filter hook output priority filter;
|
||||
}
|
||||
}
|
||||
table inet nat {
|
||||
chain prerouting {
|
||||
type nat hook prerouting priority 0;
|
||||
}
|
||||
chain postrouting {
|
||||
type nat hook postrouting priority 100;
|
||||
oifname "enp0s3" masquerade
|
||||
}
|
||||
}
|
1
bts_annee_2/sisr2/pxe/routing_command
Normal file
1
bts_annee_2/sisr2/pxe/routing_command
Normal file
@ -0,0 +1 @@
|
||||
sysctl net.ipv4.ip_forward=1
|
2
bts_annee_2/sisr2/python/README.md
Normal file
2
bts_annee_2/sisr2/python/README.md
Normal 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.
|
26
bts_annee_2/sisr2/python/createusers.py
Normal file
26
bts_annee_2/sisr2/python/createusers.py
Normal 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])
|
18
bts_annee_2/sisr2/python/occurences.py
Normal file
18
bts_annee_2/sisr2/python/occurences.py
Normal 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}"
|
||||
|
6
bts_annee_2/sisr2/python/perimetre.py
Normal file
6
bts_annee_2/sisr2/python/perimetre.py
Normal 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)
|
31
bts_annee_2/sisr2/python/tableau.py
Normal file
31
bts_annee_2/sisr2/python/tableau.py
Normal 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.
|
5
bts_annee_2/sisr2/python/users.txt
Normal file
5
bts_annee_2/sisr2/python/users.txt
Normal file
@ -0,0 +1,5 @@
|
||||
adupont:Albert Dupont
|
||||
jduroy:Jeannette Duroy
|
||||
gemorine:Guillaume Emorine
|
||||
jpauchet:Jarod Pauchet
|
||||
ngenret:Nathan Genret
|
@ -1 +1,17 @@
|
||||
Chaque dossier porte le nom du TP associé.
|
||||
Chaque dossier porte le numéro et la description du TP associé.
|
||||
|
||||
01: Mise en oeuvre d'une infrastructure DHCP et routage.
|
||||
|
||||
02: Paramétrage d'un serveur DNS.
|
||||
|
||||
03: Création d'un réseau privé à administrer.
|
||||
|
||||
04: Administration d'un réseau privé.
|
||||
|
||||
05: Création d'un partage de fichiers Samba.
|
||||
|
||||
06: Paramétrage d'un serveur proxy.
|
||||
|
||||
07: Firewall avec netfilter et nftables.
|
||||
|
||||
08: Modification d'une infrastructure.
|
@ -1 +0,0 @@
|
||||
Files for the srv-dhcp-ge Virtual Machine, from the FIRST and SECOND TPs.
|
@ -1 +0,0 @@
|
||||
Files for the srv-dns1-ge Virtual Machine, from the FIRST and SECOND TPs.
|
@ -1 +0,0 @@
|
||||
Files for the srv-dns2-ge Virtual Machine, from the FIRST AND SECOND TPs.
|
1
sisr1/tp01-02_dhcp_dns/files_dhcp_vm/README.md
Normal file
1
sisr1/tp01-02_dhcp_dns/files_dhcp_vm/README.md
Normal file
@ -0,0 +1 @@
|
||||
Fichiers du premier et deuxième TP pour la machine srv-dhcp-ge.
|
18
sisr1/tp01-02_dhcp_dns/files_dhcp_vm/isc-dhcp-server
Normal file
18
sisr1/tp01-02_dhcp_dns/files_dhcp_vm/isc-dhcp-server
Normal file
@ -0,0 +1,18 @@
|
||||
# Defaults for isc-dhcp-server (sourced by /etc/init.d/isc-dhcp-server)
|
||||
|
||||
# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
|
||||
DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
|
||||
#DHCPDv6_CONF=/etc/dhcp/dhcpd6.conf
|
||||
|
||||
# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
|
||||
DHCPDv4_PID=/var/run/dhcpd.pid
|
||||
#DHCPDv6_PID=/var/run/dhcpd6.pid
|
||||
|
||||
# Additional options to start dhcpd with.
|
||||
# Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
|
||||
#OPTIONS=""
|
||||
|
||||
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
|
||||
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
|
||||
INTERFACESv4="enp0s8"
|
||||
INTERFACESv6=""
|
1
sisr1/tp01-02_dhcp_dns/files_dns1_vm/README.md
Normal file
1
sisr1/tp01-02_dhcp_dns/files_dns1_vm/README.md
Normal file
@ -0,0 +1 @@
|
||||
Fichiers du premier et deuxième TP pour la machine srv-dns1-ge.
|
1
sisr1/tp01-02_dhcp_dns/files_dns2_vm/README.md
Normal file
1
sisr1/tp01-02_dhcp_dns/files_dns2_vm/README.md
Normal file
@ -0,0 +1 @@
|
||||
Fichiers du premier et deuxième TP pour la machine srv-dns2-ge.
|
@ -1 +0,0 @@
|
||||
Files for the srv-admin-ge Virtual Machine.
|
@ -1 +0,0 @@
|
||||
Files for the srv-dns2-ge Virtual Machine.
|
@ -1 +0,0 @@
|
||||
Files for the srv-dns1-ge Virtual Machine.
|
@ -0,0 +1 @@
|
||||
Fichiers de la machine srv-admin-ge.
|
1
sisr1/tp03_reseau_prive_creation/files_dns2_vm/README.md
Normal file
1
sisr1/tp03_reseau_prive_creation/files_dns2_vm/README.md
Normal file
@ -0,0 +1 @@
|
||||
Fichiers pour la machine srv-dns2-ge.
|
@ -0,0 +1 @@
|
||||
Fichiers de la machine srv-service-ge.
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user