Compare commits

...

12 Commits

Author SHA1 Message Date
IDEZ Ugo
4b54b7afc4 UPDATE 2022-02-11 16:25:19 +01:00
IDEZ Ugo
4ffb4f5de8 onfinfra 2022-02-11 16:01:16 +01:00
de Bastiani Bruno
d1ea47881e Scans NMAP 2022-02-10 16:34:37 +01:00
de Bastiani Bruno
f43128e7b9 Ajout des fichiers de test goss et du playbook d'installation GLPI 2022-02-10 16:27:53 +01:00
0889769008 Mise à jour de 'AP4/onfarbo41/ansible/roles/adminer/tasks/main.yml' 2022-02-10 14:25:01 +01:00
eeff416aea Mise à jour de 'AP4/onfarbo41/ansible/roles/adminer/tasks/main.yml' 2022-02-10 10:48:20 +01:00
713f0d2996 Mise à jour de 'AP4/onfarbo41/ansible/playbook.yml' 2022-02-09 16:09:15 +01:00
IDEZ Ugo
ca000e0b57 Playbook onfarbo41 2022-02-09 16:05:53 +01:00
IDEZ Ugo
e428c52cbe WireGuard 2022-02-09 15:01:11 +01:00
IDEZ Ugo
689aa9faa2 WireGuard 2022-02-09 14:55:41 +01:00
IDEZ Ugo
254b9810be Tests Goss 2022-02-08 09:06:20 +01:00
IDEZ Ugo
47b4a07b23 Ansible Onfarbo 2022-02-07 17:37:14 +01:00
72 changed files with 1586 additions and 2131 deletions

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,8 @@
- name: Playbook pour adminer
hosts: onfarbo
become: yes
become_method: sudo
become_user: root
roles:
- adminer

View File

@ -0,0 +1,8 @@
- name: Playbook pour la BDD
hosts: onfarbo
become: yes
become_method: sudo
become_user: root
roles:
- db

View File

@ -0,0 +1,8 @@
- name: Playbook pour le dokuwiki
hosts: onfarbo
become: yes
become_method: sudo
become_user: root
roles:
- dokuwiki

View File

@ -0,0 +1,2 @@
[onfarbo]
onfarbo41

View File

@ -0,0 +1,10 @@
- name: Playbook pour onfarbo41
hosts: onfarbo
become: yes
become_method: sudo
become_user: root
roles:
- adminer
- db
- dokuwiki

View File

@ -0,0 +1,34 @@
- name: apt update
tags: update
apt:
update-cache: yes
cache_valid_time: 3600
- name: install utils
tags: utils
apt:
name:
- apache2
- php
- php-common
- libapache2-mod-php
- php-cli
- php-xml
- php-mysql
- php-curl
- mariadb-server
- adminer
- python3-pymysql
state: present
- name: On créer un lien symbolique
tags: link
file:
src: /usr/share/adminer/adminer
dest: /var/www/html/adminer
state: link
- name: Message d'information
tags: msg
debug: msg="Adminer sera accessible depuis l'adresse http://onfarbo41/adminer.php"

View File

@ -0,0 +1,4 @@
- name: restart apache
service:
name: apache2
state: restarted

View File

@ -0,0 +1,20 @@
- name: On démarre MariaDB
tags: mariadb
service:
name: mysql
state: started
- name: Création de la BDD bdarbre
tags: bdarbre
mysql_db:
login_unix_socket: /var/run/mysqld/mysqld.sock
name: bdarbre
- name: Création de l'utilisateur slam
tags: user
mysql_user:
name: slam
password: Azerty1+
priv: '*.*:ALL,GRANT'
state: present
login_unix_socket: /var/run/mysqld/mysqld.sock

View File

@ -0,0 +1,20 @@
#!/bin/bash
chemin=/var/www/html/doku
apt install -y apache2 php php-mbstring php-gd php-xml
cd /root
[ -r dokuwiki-stable.tgz ] || wget http://depl/store/dokuwiki-stable.tgz
if [ $? !=0 ]; then
echo "$0 : erreurwget" 1>&2
exit 1
fi
tar xvfz dokuwiki-stable.tgz
[ -d "${chemin}" ] || mkdir "${chemin}"
cp -a dokuwiki-2020-07-29/* "${chemin}"
cd "${chemin}"
chown -R root:root .
chmod -R 755 .
chown -R www-data:www-data data lib conf
exit 0

View File

@ -0,0 +1,4 @@
- name: restart apache
service:
name: apache2
state: restarted

View File

@ -0,0 +1,26 @@
- name: Création du dossier DokuWiki
tags: createfile
file:
path: /root/dokuwiki
state: directory
mode: 0755
- name: copie du fichier script d'install de dokuwiki
tags: sh
copy:
src: dokuwiki.sh
dest: /root/dokuwiki
- name: On rend exécutable le script d'install
tags: chmod
file:
path: /root/dokuwiki/dokuwiki.sh
mode: 0755
- name: exécution du script d'install de dokuwiki
tags: exec
command: bash /root/dokuwiki/dokuwiki.sh
- name: Message d'information pour dokuwiki
tags: msg2
debug: msg="Le dokuwiki devra être installer depuis l'adresse http://onfarbo41/doku/install.php"

View File

@ -0,0 +1,36 @@
#Ici, on test MariaDB
port:
tcp:3306:
listening: true
ip:
- 127.0.0.1
#Ici, on test ssh
service:
ssh:
enabled: true
running: true
group:
ssh:
exists: true
gid: 111
#Ici, on test le serveur web
http:
http://10.121.38.206:
status: 200
allow-insecure: false
no-follow-redirects: false
timeout: 5000
body:
- works
#Ici, on test dokuwiki
http:
http://10.121.38.206/doku/:
status: 200
allow-insecure: false
no-follow-redirects: false
timeout: 5000
body:
- Trace

View File

@ -1,4 +0,0 @@
[localhost]
[onfabro]
onfabrovr

View File

@ -1,9 +0,0 @@
- name: Playbook pour onfarbo
hosts: onfabro
connection: local
become: yes
become_method: sudo
become_user: root
roles:
- onfarbo

View File

@ -1,2 +0,0 @@
---
# defaults file for onfarbo

View File

@ -1,56 +0,0 @@
- name: apt update
tags: update
apt:
update-cache: yes
cache_valid_time: 3600
- name: install utils
tags: utils
apt:
name:
- apache2
- php
- php-common
- libapache2-mod-php
- php-cli
- php-xml
- php-mysql
- php-curl
- mariadb-server
- adminer
- python3-pymysql
state: present
- name: On fait la compilation de adminer
tags: compile
shell: |
php /usr/share/adminer/compile.php
mv /usr/share/adminer/adminer-*.php /usr/share/adminer/adminer.php
echo "{{ alias }}" | tee /etc/apache2/conf-available/adminer.conf
a2enconf adminer.conf
notify: restart apache
- name: Message d'information
tags: msg
debug: msg="Adminer sera accessible depuis l'adresse http://10.121.38.206/adminer.php"
- name: On démarre MariaDB
tags: mariadb
service:
name: mysql
state: started
- name: Création de la BDD bdarbre
tags: bdarbre
mysql_db:
login_unix_socket: /var/run/mysqld/mysqld.sock
name: bdarbre
- name: Création de l'utilisateur slam
tags: user
mysql_user:
name: slam
password: Azerty1+
priv: '*.*:ALL,GRANT'
state: present
login_unix_socket: /var/run/mysqld/mysqld.sock

View File

@ -0,0 +1,5 @@
---
- hosts: localhost
connection: local
roles:
- glpi

View File

@ -0,0 +1,10 @@
depl_url: "http://depl/store"
glpi_tgz: "glpi-9.5.7.tgz"
fusion: "fusioninventory-9.5+3.0.tar.bz2"
fusion64: "fusioninventory-agent_windows-x64_2.6.exe"
glpi_dir: "/var/www/html/glpi"
glpi_dbhost: "127.0.0.1"
glpi_dbname: "glpi"
glpi_dbuser: "glpi"
glpi_dbpasswd: "glpi"

View File

@ -0,0 +1,12 @@
DocumentRoot /var/www/glpi
<Directory /var/www/glpi>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
AuthType Basic
</Directory>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog ${APACHE_LOG_DIR}/glpi_access.log combined
ErrorLog ${APACHE_LOG_DIR}/glpi_error.log

View File

@ -0,0 +1,3 @@
[client]
user=root
password=root

View File

@ -0,0 +1,18 @@
---
- name: restart php-fpm
service:
name: php-fpm
state: restarted
enabled: yes
- name: restart nginx
service:
name: nginx
state : restarted
enabled: yes
- name: restart mariadb-server
service:
name: mariadb-server
state: restarted
enabled: yes

View File

@ -0,0 +1,134 @@
---
- name: Installation des paquets
apt:
state: latest
name:
- nginx
- php-fpm
- php-mbstring
- php-mysql
- php-gd
- php-curl
- php-xml
- php-apcu
- php-ldap
- php-imap
- php-xmlrpc
- php-cas
- python3-mysqldb
- mariadb-server
- python3-pymysql
- php-intl
- php-bz2
- php-zip
- postfix
- mailutils
- name: Changement listen dans le fichier conf de php
replace:
dest: /etc/php/7.4/fpm/pool.d/www.conf
regexp: 'listen = /run/php/php7.4-fpm.sock'
replace: 'listen = 127.0.0.1:9000'
backup: yes
- name: Effacement block nginx default
file:
path: /etc/nginx/sites-enabled/default
state: absent
- name: Creation fichier block nginx
template:
src: block.j2
dest: /etc/nginx/sites-enabled/glpi
- name: Remplacement dans le fichier de conf php du timeout
replace:
dest: /etc/php/7.4/fpm/php.ini
regexp: 'max_execution_time = 30'
replace: 'max_execution_time = 600'
backup: yes
notify:
- restart nginx
- name: Creation de la base de donnee mysql
mysql_db:
name: "{{ glpi_dbname }}"
check_implicit_admin: yes
state: present
login_unix_socket: /var/run/mysqld/mysqld.sock
- name: Creation de l'utilisateur mysql avec tous les privileges
mysql_user:
user: "{{ glpi_dbuser }}"
password: "{{ glpi_dbpasswd }}"
priv: "*.*:ALL,GRANT"
login_unix_socket: /var/run/mysqld/mysqld.sock
state: present
# with_items:
# - 127.0.0.1
- name: Creation du repertoire {{ glpi_dir }}
file:
path: "{{ glpi_dir }}"
state: directory
owner: www-data
group: www-data
- name: Installation de GLPI
unarchive:
src: "{{ depl_url }}/{{ glpi_tgz }}"
dest: /var/www/html
remote_src: yes
owner: www-data
group: www-data
- name: Changement des attributs {{ glpi_dir }}
file:
path: "{{ glpi_dir }}"
owner: www-data
group: www-data
mode: 0755
recurse: yes
- name: Changement des attributs {{ glpi_dir }}/plugins
file:
path: "{{ glpi_dir }}/plugins"
mode: 0777
owner: www-data
group: www-data
recurse: yes
- name: Installation de Fusioninventory pour Linux
unarchive:
src: "{{ depl_url }}/{{ fusion }}"
dest: "/var/www/html/glpi/plugins"
remote_src: yes
- name: Creation de ficlient
file:
path: /var/www/html/ficlients
state: directory
owner: www-data
group: www-data
mode: 0775
- name: Attribution des droits nginx.index
file:
path: /var/www/html/index.nginx-debian.html
owner: www-data
group: www-data
mode: 0775
- name: Installation de FusionInventory windows x64
get_url:
url: "{{ depl_url }}/{{ fusion64 }}"
dest: "/var/www/html/ficlients"
- name: Attribution des permissions sur repertoire /plugins/fusioninventory
file:
path: /var/www/html/glpi/plugins/fusioninventory
owner: www-data
group: www-data
recurse: yes
state: directory

View File

@ -0,0 +1,23 @@
server {
listen 80 default_server;
root {{ glpi_dir }};
index index.php;
server_name localhost;
location / {try_files $uri $uri/ index.php;}
#prise en charge PHP
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_param SERVER_NAME $host;
}
location /ficlients {
root /var/www/html;
autoindex on;
}
}

View File

@ -0,0 +1,39 @@
port:
tcp:80:
listening: true
ip:
- 0.0.0.0
tcp:3306:
listening: true
ip:
- 127.0.0.1
service:
mysql:
enabled: true
running: true
user:
mysql:
exists: true
uid: 106
gid: 112
groups:
- mysql
home: /nonexistent
shell: /bin/false
group:
mysql:
exists: true
gid: 112
interface:
enp0s3:
exists: true
addrs:
- 192.168.2.12/24
- fe80::a00:27ff:fea2:45fd/64
mtu: 1500
enp0s8:
exists: true
addrs:
- 192.168.0.39/24
- fe80::a00:27ff:fe66:36e3/64
mtu: 1500

53
AP4/onfinfra/rest/rest.sh Executable file
View File

@ -0,0 +1,53 @@
#!/bin/bash
HOST=sio@onfarbo41
usage() {
echo -e "Usage: $0 [-f] <compressed dumpfile>\n\t-f: force mode\n\t-h: this help\n" 1>&2; exit 1; }
restore() {
zcat "${filename}" | ssh "${HOST}" "mysql -u slam -pAzerty1+ bdarbre"
}
confirm() {
read -r -n 1 -p "${1:-Confirmer?} [o/n]: " REPLY
case "${REPLY}" in
[oO]) echo ; restore ;;
[nN]) echo ; exit 1 ;;
*) printf " \033[31m %s \n\033[0m" "Entrée non valide"
esac
}
while getopts "fh" OPT
do
case "${OPT}" in
f)
forcemode=1
;;
h)
usage
exit 0
;;
esac
done
shift $((OPTIND-1))
filename="${1}"
if [[ -z "${filename}" ]] ; then
usage
fi
if [[ ! -r "${filename}" ]] ; then
echo "erreur ouverture fichier"
exit 1
fi
if [[ "${forcemode}" == 1 ]]; then
restore
exit 0
else
confirm
exit 0
fi
exit 0

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,38 @@
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
<h1>Affectation</h1>
<form id="formAffect" method="POST">
<div id="divCalendar">
<input type="date" id="selectD">
</div>
<div id="divBucheron">
<select name="selectBuch" id="selectBuch" size="15">
</select>
</div>
<div name="divSecteur" id="divSecteur">
<select name="selectSecteur" id="selectSecteur" size="15">
</select>
</div>
<div name="divEspece" id="divEspece">
<input type="text" id="choixEspece">
<select id="selectEspece" id="selectEspece">
</select>
</div>
</form>
</body>
<script src="js/main.js"></script>
</html>

View File

@ -0,0 +1,23 @@
<?php
class BucheronSQL {
private $_laConnexion;
function __construct() {
$this->_laConnexion = new Connexion();
}
function readAllBucheron() {
$stmt = $this->_laConnexion->dbh()->prepare("SELECT id, nom, prenom FROM bucheron");
$valid = $stmt->execute();
if (!$valid) {
$this->_laConnexion->afficherErreurSQL("Erreur recherche bucherons");
}
// Parcours du jeu d'enregistrement
//Retourne dans un array
$tabBuchron = array("lesBucherons" => $stmt->fetchAll(PDO::FETCH_ASSOC));
return $tabBuchron;
}
}

View File

@ -0,0 +1,42 @@
<?php
/**
* Description of Connexion *
* @author Dominique_2
*/
class Connexion {
private $_dbh; // Chaine de connexion
/**
* Connexion persistante au serveur
* @return \PDO Connexion
*/
public function __construct(){
// Définition des variables de connexion
$user = "adminbdarbre";
$pass = "mdpbdarbre";
$dsn ='mysql:host=localhost;dbname=bdarbre'; //Data Source Name
// Connexion
try {
$this->_dbh = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT=>true,
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'')); // Connexion persistante
}
catch (PDOException $e) {
die("Erreur : " . $e->getMessage());
}
}
/** afficherErreurSQL :
* Affichage de messages lors l'accès à la bdd avec une requete SQL
* @param $message : message a afficher
*/
function afficherErreurSQL($message, $sql="") {
echo $message . "<br />" . $sql . "<br />";
$info = $this->_dbh->errorInfo();
echo "Code erreur : " . $info[0] . ", Message : " . $info[2];
die();
}
function dbh() {
return $this->_dbh;
}
}

View File

@ -0,0 +1,34 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of EspeceSQL
*
* @author pierre.perdigues
*/
class EspeceSQL {
private $_laConnexion;
function __construct() {
$this->_laConnexion = new Connexion();
}
function readEspeceAddr($adresse) {
$stmt = $this->_laConnexion->dbh()->prepare("SELECT DISTINCT libelle FROM espece INNER JOIN arbre ON espece.id = arbre.idEspece WHERE arbre.idAdresse=:adr");
$stmt->bindValue(':adr', $adresse);
$valid = $stmt->execute();
if (!$valid) {
$this->_laConnexion->afficherErreurSQL("Erreur recherche espece");
}
//Retourne dans un array
$tabEspece = array("lesEspeces" => $stmt->fetchAll(PDO::FETCH_ASSOC));
return $tabEspece;
}
}

View File

@ -0,0 +1,34 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of SecteurSQL
*
* @author pierre.perdigues
*/
class SecteurSQL {
private $_laConnexion;
function __construct() {
$this->_laConnexion = new Connexion();
}
function readAllSecteur() {
$stmt = $this->_laConnexion->dbh()->prepare("SELECT * FROM adresse");
$valid = $stmt->execute();
if (!$valid) {
$this->_laConnexion->afficherErreurSQL("Erreur recherche bucherons");
}
// Parcours du jeu d'enregistrement
//Retourne dans un array
$tabSecteur = array("lesSecteurs" => $stmt->fetchAll(PDO::FETCH_ASSOC));
return $tabSecteur;
}
}

View File

@ -0,0 +1,13 @@
#divBucheron {
padding-top: 5vh;
}
#divSecteur{
float: left;
padding-top: 5vh;
}
#dataListEspeces {
float: right;
margin-left: 80vw;
}

View File

@ -0,0 +1,22 @@
<?php
/* Chargement des classes nécessaies à partir des 2 répertoires possibles */
spl_autoload_register('chargerClasse');
/* $path_current = dirname( __FILE__ );
echo "Chemin : " . $path_current; */
function chargerClasse($class) {
$directorys = array(
'../bdd/',
'../metier/',
'bdd/',
'metier/'
);
foreach($directorys as $directory) {
//see if the file exists
if(file_exists($directory.$class.'.php')) {
require_once($directory.$class.'.php');
break;
}
}
}

View File

@ -0,0 +1,21 @@
<?php
date_default_timezone_set('Europe/Paris');
$day = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday");
//Si c'est la fin de la semaine
if (date('d-m-Y', strtotime("now")) == date('d-m-Y', strtotime("Friday"))) {
for ($i = 0; $i < count($day); $i++) {
echo '<option>' . date('d-m-Y', strtotime("next".$day[$i])) . "</option>";
}
} //Si c'est le début de la semaine
else{
for ($i = 0; $i < count($day); $i++) {
echo '<option>' . date('d-m-Y', strtotime("this week".$day[$i])) . "</option>";
}
};
/*On peux comaprer les dates pour savoir si la date d'ajourd'hui est plus grande que celle d'hier
if (strtotime("now") > strtotime($day[0])) {
echo 'coucou';
};
echo date("d-m-y", strtotime("this week monday"));*/

View File

@ -0,0 +1,14 @@
<?php
/**************************************************************************
* getProduit.php : Recherche les produits *
* pour alimenter la liste deroulante zlProduit *
***************************************************************************/
header("Content-type:application/json");
include_once 'chargementClasses.php';
//Recupération des prodtuis
$buchSQL = new BucheronSQL();
$lesBucherons = $buchSQL->readAllBucheron();
//Mise en format JSON
echo(json_encode($lesBucherons));
?>

View File

@ -0,0 +1,19 @@
<?php
header("Content-type:application/json");
include_once 'chargementClasses.php';
// Verification existence d'un produit selectionne
if (isset($_REQUEST['selectSecteur'])) {
recupEspece();
} else {
echo 'rien préciser';
}
function recupEspece() {
$idAddr = $_REQUEST['selectSecteur'];
$especeSQL = new EspeceSQL();
$lesEspeces = $especeSQL->readEspeceAddr($idAddr);
echo(json_encode($lesEspeces));
}
?>

View File

@ -0,0 +1,10 @@
<?php
header("Content-type:application/json");
include_once 'chargementClasses.php';
//Recupération des prodtuis
$secteurSQL = new SecteurSQL();
$lesSecteurs = $secteurSQL->readAllSecteur();
//Mise en format JSON
echo(json_encode($lesSecteurs));
?>

View File

@ -0,0 +1,93 @@
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1>Accueil</h1>
<button>Affectation</button>
<br>
<div>
<input type="checkbox" id="filtre1" />Affiche que class 1
<input type="checkbox" id="filtre2" />Affiche que class 2
<input type="checkbox" id="filtre3" />Affiche que class 3
<br>
<br>
<form id="coucou">
<input type="checkbox" class="1" value="case2" ><a>Choix class 1</a><br>
<input type="checkbox" class="1" value="case3"><a>Choix class 1</a><br>
<input type="checkbox" class="2" value="case4"><a>Choix class 2</a><br>
<input type="checkbox" class="2" value="case5"><a>Choix class 2</a><br>
<input type="checkbox" class="2" value="case6"><a>Choix class 2</a><br>
<input type="checkbox" class="3" value="case7"><a>Choix class 3</a><br>
</form>
<button id="btn">COUCOU BOUTTON</button>
</div>
</body>
<script>
var tableDonne = [];
document.querySelector('button').onclick = function () {
window.location.href = "affectation.php";
}
var list = document.getElementById('coucou');
for (i = 0; i < list.length; i++) {
list[i].addEventListener("click", function () {
if (this.checked == true) {
tableDonne.push(this.value);
console.log(tableDonne);
console.log(this.checked);
}
if (this.checked == false) {
var pos = tableDonne.indexOf(this.value);
console.log(tableDonne.indexOf(this.value))
tableDonne.splice(pos, 1);
console.log(this.value);
console.log(tableDonne);
}
})
}
/*document.getElementById("filtre1").onclick = function () {
console.log(document.getElementById("filtre1").checked);
var list = document.getElementById('coucou');
if (document.getElementById("filtre1").checked == true)
{
for (i = 0; i < list.length; i++) {
if (list[i].className != 1) {
list[i].hidden = true;
list[i].nextSibling.hidden = true;
}
}
} else {
for (i = 0; i < list.length; i++) {
if (list[i].className != 1) {
list[i].hidden = false;
list[i].nextSibling.hidden = false;
}
}
}
}
document.getElementById("btn").onclick = function () {
var form = document.getElementById("coucou");
for (i = 0; i<form.length; i++) {
if (form[i].checked == true) {
console.log(form[i]);
}
}
}*/
</script>
</html>

View File

@ -0,0 +1,210 @@
//Cache et Iniitilise les différents element graphique de selection
var zSelBuch = document.getElementById("selectBuch");
var zSelSect = document.getElementById("selectSecteur");
var searchEspece = document.getElementById("choixEspece");
var zAffichEspece = document.getElementById("selectEspece");
zSelBuch.hidden = true;
zSelSect.hidden = true;
searchEspece.hidden = true;
zAffichEspece.hidden = true;
//Script pour le calendrier
var verrif = 0;
var alertActive = 0;
document.getElementById('selectD').onchange = function () {
var dateSelect = document.getElementById('selectD').value;
var date = Date.now();
if (Date.parse(dateSelect) < date) {
alert("Date déjà passer")
alertActive = 1;
document.getElementById("selectBuch").hidden = true;
document.getElementById("selectSecteur").hidden = true;
}
if (verrif == 0 && alertActive == 0) {
getBucheron();
document.getElementById("selectBuch").hidden = false;
verrif = 1;
}
alertActive = 0
console.log(alertActive + "alert");
console.log(verrif + "verif");
}
//Fin calendrier
selectBuch.onclick = function () {
var bucheron = zSelBuch.options[zSelBuch.selectedIndex].value;
console.log("bucheron =" + bucheron);
getSecteur()
}
selectSecteur.onclick = function () {
var secteur = zSelSect.options[zSelSect.selectedIndex].value;
console.log("secteur = " + secteur)
getEspece(secteur);
}
function cherche(catalog) {
//Appel la methode qui charge tous les produits
document.getElementById("choixEspece").addEventListener("keyup", function () {
//Initialise la variable options qui contiendra tout le html a integrer
AffichEspace(catalog, filtre.value);
})
}
function getBucheron() {
var file = "include/getBucheron.php"
var argument, valArgument = null;
getAll(zSelBuch, file, argument, valArgument);
}
function getSecteur() {
var file = "include/getSecteur.php";
var argument, valArgument = null;
getAll(zSelSect, file, argument, valArgument);
}
function getEspece(secteur) {
var file = "include/getEspece.php"
var argument = "selectSecteur="
getAll(searchEspece, file, argument, secteur)
}
function getAll(placeHTML, fichierPHP, argument, valArgument) {
var options = "";
placeHTML.innerHTML = "";
// Construction de la requ<71>te
httpRequest = new XMLHttpRequest();
// Code s'ex<65>cutant quand la r<>ponse du serveur est arriv<69>e
httpRequest.onreadystatechange = function () {
if (httpRequest.readyState === XMLHttpRequest.DONE) {
// tout va bien, une r<>ponse a <20>t<EFBFBD> re<72>ue
if (httpRequest.status === 200) {
// Succ<63>s
//Recupération des données sous forme JSON
var json = JSON.parse(httpRequest.responseText);
/* Mise de ce résultat dans une autre fonction (ce qui évite d'utiliser la fonction de base
* qui effectue une requette a chaque fois*/
var file = json;
//Appel de la methode cherche qui met en place le système de recherche
//Appel de la methode d'affichage de tout les produits
//produitBase(file, filtre.value);
if (placeHTML == zSelBuch) {
afficheBucheron(file);
}
if (placeHTML == zSelSect) {
afficheSecteur(file);
}
if (placeHTML == searchEspece) {
console.log("search")
cherche(file);
zAffichEspece.hidden = false;
}
} else {
alert("Erreur, status : " + httpRequest.status);
// il y a eu un probl<62>me avec la requ<71>te,
// par exemple la r<>ponse peut <20>tre un code 404 (Non trouv<75>e)
// ou 500 (Erreur interne au serveur)
}
} else {
// pas encore pr<70>te
}
};
// Initialisation et envoi de la requ<71>te
httpRequest.open('POST', fichierPHP, true);
httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
if (argument == null && valArgument == null) {
httpRequest.send();
} else {
httpRequest.send(argument + escape(valArgument));
}
}
function afficheBucheron(listB) {
verrif = 0;
//Initialisation de la variable affiche qui contiendra tout le html a intégrer
var options = "";
//parcours la liste des bucherons
for (var i = 0; i < listB.lesBucherons.length; i++) {
//Recupération des informations.
var id = listB.lesBucherons[i].id;
var nom = listB.lesBucherons[i].nom;
var prenom = listB.lesBucherons[i].prenom;
var complet = nom + " " + prenom;
//ajout du code HTML pour afficher les bucherons dans le select
options += "<option value='" + id + "'>" + complet + "</option>;"
}
//Insertion de la variable dans le html
document.getElementById("selectBuch").innerHTML = options;
}
function afficheSecteur(listS) {
zSelSect.hidden = false;
//Initialisation de la variable affiche qui contiendra tout le html a intégrer
var options = "";
//parcours la liste des bucherons
for (var i = 0; i < listS.lesSecteurs.length; i++) {
//Recupération des informations.
var id = listS.lesSecteurs[i].id;
var libelle = listS.lesSecteurs[i].libelle;
//ajout du code HTML pour afficher les bucherons dans le select
options += "<option value='" + id + "'>" + libelle + "</option>;"
}
//Insertion de la variable dans le html
zSelSect.innerHTML = options;
}
/*function cherche(listE) {
searchEspece.parentNode.hidden = false;
//Initialisation de la variable affiche qui contiendra tout le html a intégrer
var options = "";
//parcours la liste des bucherons
for (var i = 0; i < listE.lesEspeces.length; i++) {
//Recupération des informations.
var libelle = listE.lesEspeces[i].libelle;
//ajout du code HTML pour afficher les bucherons dans le select
options += "<option value='" + libelle + "'/>"
}
//Insertion de la variable dans le html
searchEspece.innerHTML = options;
}
*/
function AffichEspace(catalog, saisie) {
//Initialisation de la variable affiche qui contiendra tout le html a intégrer
var options = "";
//si la zone de saisie n'est pas vide, continue la methode
if (saisie != "") {
//parcours la liste des produit
for (var i = 0; i < catalog.lesEpeces.length; i++) {
//Si la chaine est contenue au début d'un num d'un des elements js, n'affiche que celui ci
if (catalog.lesEpeces[i].libelle.toLowerCase().indexOf(saisie.toLowerCase()) == 0) {
//Recupération des informations.
var libelle = catalog.lesEpeces[i].libelle;
//ajout du code HTML pour afficher les produits dans la variable
opt = "<option value='" + libelle + "'>" + libelle + "</option>;"
/*Si l'id du produit est différent d'une des valeurs des balise option
* présent dans zlProduit alors ajoute ce dernier dans la variable qui servira pour
* integrer le html dans zlProduit*/
if (zAffichEspece.querySelectorAll("option").value != id)
//incrémenation de la variable
options += opt;
}
}
//Insertion de la variable dans le html
zAffichEspece.innerHTML = options;
} else {
var affiche = "";
for (var i = 0; i < catalog.lesEpeces.length; i++) {
//Recupération des informations
var id = catalog.lesEpeces[i].id;
var libelle = catalog.lesEpeces[i].libelle;
//ajout du code HTML pour afficher les produits dans la variable
affiche += "<option value='" + id + "'>" + libelle + "</option>;"
//le "+=" veux dire de prendre l'ancien résultat et de l'addition avec le nouveau
}
//Insertion dans le html
zAffichEspece.innerHTML = affiche;
}
}

View File

@ -0,0 +1,70 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of Bucheron
*
* @author pierre.perdigues
*/
class Bucheron {
private $_id;
private $_nom;
private $_prenom;
private $_login;
private $_mdp;
public function __construct($_id, $_nom, $_prenom, $_login, $_mdp) {
$this->_id = $_id;
$this->_nom = $_nom;
$this->_prenom = $_prenom;
$this->_login = $_login;
$this->_mdp = $_mdp;
}
public function id() {
return $this->_id;
}
public function nom() {
return $this->_nom;
}
public function prenom() {
return $this->_prenom;
}
public function login() {
return $this->_login;
}
public function mdp() {
return $this->_mdp;
}
public function setId($_id): void {
$this->_id = $_id;
}
public function setNom($_nom): void {
$this->_nom = $_nom;
}
public function setPrenom($_prenom): void {
$this->_prenom = $_prenom;
}
public function setLogin($_login): void {
$this->_login = $_login;
}
public function setMdp($_mdp): void {
$this->_mdp = $_mdp;
}
}

View File

@ -0,0 +1,6 @@
copy.src.files=false
copy.src.on.open=false
copy.src.target=/var/www/PhpProject3
index.file=index.php
run.as=LOCAL
url=http://localhost/PHPProjects/Bucheron/

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group>
<file>file:/home/pierre.perdigues/PHPProjects/Bucheron/css/style.css</file>
<file>file:/home/pierre.perdigues/PHPProjects/Bucheron/index.php</file>
<file>file:/home/pierre.perdigues/PHPProjects/Bucheron/include/getSecteur.php</file>
<file>file:/home/pierre.perdigues/PHPProjects/Bucheron/bdd/BucheronSQL.php</file>
<file>file:/home/pierre.perdigues/PHPProjects/Bucheron/affectation.php</file>
<file>file:/home/pierre.perdigues/PHPProjects/Bucheron/include/chargementClasses.php</file>
<file>file:/home/pierre.perdigues/PHPProjects/Bucheron/js/main.js</file>
<file>file:/home/pierre.perdigues/PHPProjects/Bucheron/include/getBucheron.php</file>
<file>file:/home/pierre.perdigues/PHPProjects/Bucheron/include/gestionDate.php</file>
<file>file:/home/pierre.perdigues/PHPProjects/Bucheron/include/getEspece.php</file>
<file>file:/home/pierre.perdigues/PHPProjects/Bucheron/bdd/EspeceSQL.php</file>
<file>file:/home/pierre.perdigues/PHPProjects/Bucheron/bdd/SecteurSQL.php</file>
<file>file:/home/pierre.perdigues/PHPProjects/Bucheron/bdd/Connexion.php</file>
</group>
</open-files>
</project-private>

View File

@ -0,0 +1,10 @@
auxiliary.org-netbeans-modules-php-editor.fluent_2e_setter_2e_project_2e_property=false
auxiliary.org-netbeans-modules-php-editor.getter_2e_setter_2e_method_2e_name_2e_generation=AS_JAVA
auxiliary.org-netbeans-modules-php-editor.public_2e_modifier_2e_project_2e_property=true
include.path=${php.global.include.path}
php.version=PHP_80
source.encoding=UTF-8
src.dir=.
tags.asp=false
tags.short=false
web.root=.

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.php.project</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/php-project/1">
<name>Bucheron</name>
</data>
</configuration>
</project>

10
AP4/onfinfra/sv/svbdd-h.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
datem=$(date +%W)
dates=$(($datem %4))
host=sio@10.121.38.95
#sv hebdomadaires avec rotation sur 4 semaines
scp $host:/home/frederic.duhin/PHPProjects/ProjetBucheron/bdarbre.sql /root/sv/bdarbre-$dates.sql
gzip bdarbre-$dates.sql;mv bdarbre-$dates.sql.gz hebdomadaires/

9
AP4/onfinfra/sv/svbdd-j.sh Executable file
View File

@ -0,0 +1,9 @@
#!/bin/bash
datej=$(date +%u)
host=sio@10.121.38.95
#sv journalières avec rotation sur 5 jours
scp $host:/home/frederic.duhin/PHPProjects/ProjetBucheron/bdarbre.sql /root/sv/bdarbre-$datej.sql
gzip bdarbre-$datej.sql;mv bdarbre-$datej.sql.gz journalieres/

5
AP4/onfinfra/sv/svphp.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
host=sio@10.121.38.96
#sv de l'application PHP
scp -r $host:/home/pierre.perdigues/ProjetBucheron/Bucheron /root/sv/sauvegardephp/

View File

@ -0,0 +1,120 @@
Starting Nmap 7.80 ( https://nmap.org ) at 2022-02-10 15:14 CET
NSE: Loaded 151 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 15:14
Completed NSE at 15:14, 0.00s elapsed
Initiating NSE at 15:14
Completed NSE at 15:14, 0.00s elapsed
Initiating NSE at 15:14
Completed NSE at 15:14, 0.00s elapsed
Initiating ARP Ping Scan at 15:14
Scanning 192.168.2.1 [1 port]
Completed ARP Ping Scan at 15:14, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 15:14
Completed Parallel DNS resolution of 1 host. at 15:14, 0.00s elapsed
Initiating SYN Stealth Scan at 15:14
Scanning onfdc.onf41.lan (192.168.2.1) [1000 ports]
Discovered open port 53/tcp on 192.168.2.1
Discovered open port 139/tcp on 192.168.2.1
Discovered open port 135/tcp on 192.168.2.1
Discovered open port 445/tcp on 192.168.2.1
Discovered open port 88/tcp on 192.168.2.1
Discovered open port 3269/tcp on 192.168.2.1
Discovered open port 636/tcp on 192.168.2.1
Discovered open port 464/tcp on 192.168.2.1
Discovered open port 593/tcp on 192.168.2.1
Discovered open port 3268/tcp on 192.168.2.1
Discovered open port 389/tcp on 192.168.2.1
Completed SYN Stealth Scan at 15:14, 4.67s elapsed (1000 total ports)
Initiating Service scan at 15:14
Scanning 11 services on onfdc.onf41.lan (192.168.2.1)
Stats: 0:01:03 elapsed; 0 hosts completed (1 up), 1 undergoing Service Scan
Service scan Timing: About 90.91% done; ETC: 15:15 (0:00:06 remaining)
Completed Service scan at 15:16, 141.12s elapsed (11 services on 1 host)
Initiating OS detection (try #1) against onfdc.onf41.lan (192.168.2.1)
NSE: Script scanning 192.168.2.1.
Initiating NSE at 15:16
Completed NSE at 15:17, 40.11s elapsed
Initiating NSE at 15:17
Completed NSE at 15:17, 23.52s elapsed
Initiating NSE at 15:17
Completed NSE at 15:17, 0.00s elapsed
Nmap scan report for onfdc.onf41.lan (192.168.2.1)
Host is up (0.00053s latency).
Not shown: 989 filtered ports
PORT STATE SERVICE VERSION
53/tcp open domain?
| fingerprint-strings:
| DNSVersionBindReqTCP:
| version
|_ bind
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2022-02-10 14:14:26Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: onf41.lan, Site: Default-First-Site-Name)
445/tcp open microsoft-ds Windows Server 2016 Standard 14393 microsoft-ds (workgroup: onf41)
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open tcpwrapped
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: onf41.lan, Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port53-TCP:V=7.80%I=7%D=2/10%Time=62051DC9%P=x86_64-pc-linux-gnu%r(DNSV
SF:ersionBindReqTCP,20,"\0\x1e\0\x06\x81\x04\0\x01\0\0\0\0\0\0\x07version\
SF:x04bind\0\0\x10\0\x03");
MAC Address: 08:00:27:D0:A5:B6 (Oracle VirtualBox virtual NIC)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Microsoft Windows 2016
OS CPE: cpe:/o:microsoft:windows_server_2016
OS details: Microsoft Windows Server 2016
Uptime guess: 0.027 days (since Thu Feb 10 14:38:47 2022)
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=261 (Good luck!)
IP ID Sequence Generation: Incremental
Service Info: Host: ONFDC; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: -20m02s, deviation: 34m38s, median: -2s
| nbstat: NetBIOS name: ONFDC, NetBIOS user: <unknown>, NetBIOS MAC: 08:00:27:d0:a5:b6 (Oracle VirtualBox virtual NIC)
| Names:
| ONFDC<00> Flags: <unique><active>
| ONF41<1c> Flags: <group><active>
| ONF41<00> Flags: <group><active>
| ONFDC<20> Flags: <unique><active>
|_ ONF41<1b> Flags: <unique><active>
| smb-os-discovery:
| OS: Windows Server 2016 Standard 14393 (Windows Server 2016 Standard 6.3)
| Computer name: onfdc
| NetBIOS computer name: ONFDC\x00
| Domain name: onf41.lan
| Forest name: onf41.lan
| FQDN: onfdc.onf41.lan
|_ System time: 2022-02-10T15:16:43+01:00
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: required
| smb2-security-mode:
| 2.02:
|_ Message signing enabled and required
| smb2-time:
| date: 2022-02-10T14:16:43
|_ start_date: 2022-02-10T13:39:07
TRACEROUTE
HOP RTT ADDRESS
1 0.53 ms onfdc.onf41.lan (192.168.2.1)
NSE: Script Post-scanning.
Initiating NSE at 15:17
Completed NSE at 15:17, 0.00s elapsed
Initiating NSE at 15:17
Completed NSE at 15:17, 0.00s elapsed
Initiating NSE at 15:17
Completed NSE at 15:17, 0.00s elapsed
Read data files from: /usr/bin/../share/nmap
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 211.71 seconds
Raw packets sent: 2027 (91.026KB) | Rcvd: 21 (1.246KB)

View File

@ -0,0 +1,118 @@
Starting Nmap 7.80 ( https://nmap.org ) at 2022-02-10 15:21 CET
NSE: Loaded 151 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 15:21
Completed NSE at 15:21, 0.00s elapsed
Initiating NSE at 15:21
Completed NSE at 15:21, 0.00s elapsed
Initiating NSE at 15:21
Completed NSE at 15:21, 0.00s elapsed
Initiating ARP Ping Scan at 15:21
Scanning 192.168.0.36 [1 port]
Completed ARP Ping Scan at 15:21, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 15:21
Completed Parallel DNS resolution of 1 host. at 15:21, 0.00s elapsed
Initiating SYN Stealth Scan at 15:21
Scanning 192.168.0.36 [1000 ports]
Discovered open port 445/tcp on 192.168.0.36
Discovered open port 139/tcp on 192.168.0.36
Discovered open port 135/tcp on 192.168.0.36
Discovered open port 53/tcp on 192.168.0.36
Discovered open port 3268/tcp on 192.168.0.36
Discovered open port 389/tcp on 192.168.0.36
Discovered open port 3269/tcp on 192.168.0.36
Discovered open port 593/tcp on 192.168.0.36
Discovered open port 88/tcp on 192.168.0.36
Discovered open port 464/tcp on 192.168.0.36
Discovered open port 636/tcp on 192.168.0.36
Completed SYN Stealth Scan at 15:21, 4.83s elapsed (1000 total ports)
Initiating Service scan at 15:21
Scanning 11 services on 192.168.0.36
Completed Service scan at 15:23, 141.12s elapsed (11 services on 1 host)
Initiating OS detection (try #1) against 192.168.0.36
NSE: Script scanning 192.168.0.36.
Initiating NSE at 15:23
Completed NSE at 15:24, 40.09s elapsed
Initiating NSE at 15:24
Completed NSE at 15:24, 17.01s elapsed
Initiating NSE at 15:24
Completed NSE at 15:24, 0.00s elapsed
Nmap scan report for 192.168.0.36
Host is up (0.00048s latency).
Not shown: 989 filtered ports
PORT STATE SERVICE VERSION
53/tcp open domain?
| fingerprint-strings:
| DNSVersionBindReqTCP:
| version
|_ bind
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2022-02-10 14:21:28Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: onf41.lan, Site: Default-First-Site-Name)
445/tcp open microsoft-ds Windows Server 2016 Standard 14393 microsoft-ds (workgroup: onf41)
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open tcpwrapped
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: onf41.lan, Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port53-TCP:V=7.80%I=7%D=2/10%Time=62051F6F%P=x86_64-pc-linux-gnu%r(DNSV
SF:ersionBindReqTCP,20,"\0\x1e\0\x06\x81\x04\0\x01\0\0\0\0\0\0\x07version\
SF:x04bind\0\0\x10\0\x03");
MAC Address: 08:00:27:3A:E3:56 (Oracle VirtualBox virtual NIC)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Microsoft Windows 2016
OS CPE: cpe:/o:microsoft:windows_server_2016
OS details: Microsoft Windows Server 2016
Uptime guess: 0.032 days (since Thu Feb 10 14:38:47 2022)
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=263 (Good luck!)
IP ID Sequence Generation: Incremental
Service Info: Host: ONFDC; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: -20m02s, deviation: 34m38s, median: -2s
| nbstat: NetBIOS name: ONFDC, NetBIOS user: <unknown>, NetBIOS MAC: 08:00:27:3a:e3:56 (Oracle VirtualBox virtual NIC)
| Names:
| ONFDC<00> Flags: <unique><active>
| ONF41<1c> Flags: <group><active>
| ONF41<00> Flags: <group><active>
| ONFDC<20> Flags: <unique><active>
|_ ONF41<1b> Flags: <unique><active>
| smb-os-discovery:
| OS: Windows Server 2016 Standard 14393 (Windows Server 2016 Standard 6.3)
| Computer name: onfdc
| NetBIOS computer name: ONFDC\x00
| Domain name: onf41.lan
| Forest name: onf41.lan
| FQDN: onfdc.onf41.lan
|_ System time: 2022-02-10T15:23:45+01:00
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: required
| smb2-security-mode:
| 2.02:
|_ Message signing enabled and required
| smb2-time:
| date: 2022-02-10T14:23:45
|_ start_date: 2022-02-10T13:39:07
TRACEROUTE
HOP RTT ADDRESS
1 0.48 ms 192.168.0.36
NSE: Script Post-scanning.
Initiating NSE at 15:24
Completed NSE at 15:24, 0.00s elapsed
Initiating NSE at 15:24
Completed NSE at 15:24, 0.00s elapsed
Initiating NSE at 15:24
Completed NSE at 15:24, 0.00s elapsed
Read data files from: /usr/bin/../share/nmap
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 205.32 seconds
Raw packets sent: 2027 (91.026KB) | Rcvd: 22 (1.298KB)

View File

@ -0,0 +1 @@
KClI53wv5L7AZ9ZOQPNzPqIuQVyfda0VpzLsykuXdXg=

View File

@ -0,0 +1 @@
GoHn0zP27+IFPcApQl/Je7EZg2gCrpvr1+Vt6H35AA0=

View File

@ -0,0 +1,11 @@
# local settings for Endpoint B
[Interface]
PrivateKey = KClI53wv5L7AZ9ZOQPNzPqIuQVyfda0VpzLsykuXdXg= #Clé privée du client
Address = 10.0.0.2/32 #Adresse du client
ListenPort = 51820
# remote settings for Endpoint A
[Peer]
PublicKey = qxFRWqsOToqCiV3xlCNFh33mDCm0Mb1U/yDukcfcA2o= #Clé publique du serveur vpn
Endpoint = 10.121.38.66:51820 #Adresse en dhcp (pont) du serveur vpn avec le port qu'on utilise
AllowedIPs = 10.0.0.1/32 #Adresse du serveur vpn

View File

@ -0,0 +1 @@
qKycHr1Ukwzlkw9fI0H4gKbAHpdmwa3HDkWX7rso9Vw=

View File

@ -0,0 +1 @@
qxFRWqsOToqCiV3xlCNFh33mDCm0Mb1U/yDukcfcA2o=

View File

@ -0,0 +1,15 @@
# local settings for Endpoint A
[Interface]
PrivateKey = qKycHr1Ukwzlkw9fI0H4gKbAHpdmwa3HDkWX7rso9Vw= #Clé privée du serveur vpn
Address = 10.0.0.1/32 #Adresse du serveur vpn
ListenPort = 51820
# remote settings for Endpoint B
[Peer]
PublicKey = GoHn0zP27+IFPcApQl/Je7EZg2gCrpvr1+Vt6H35AA0= #Clé publique du client
AllowedIPs = 10.0.0.2/32 #Adresse vpn du client
# remote settings for Endpoint C
[Peer]
PublicKey = e/GFlV6jH219ewqRpNKOKw2SVo/+4g9M5Cz7vZ35JAE= #Clé publique du client
AllowedIPs = 10.0.0.3/32 #Adresse vpn du client

View File

@ -0,0 +1 @@
qKycHr1Ukwzlkw9fI0H4gKbAHpdmwa3HDkWX7rso9Vw=

View File

@ -0,0 +1 @@
qxFRWqsOToqCiV3xlCNFh33mDCm0Mb1U/yDukcfcA2o=

View File

@ -0,0 +1 @@
KClI53wv5L7AZ9ZOQPNzPqIuQVyfda0VpzLsykuXdXg=

View File

@ -0,0 +1 @@
GoHn0zP27+IFPcApQl/Je7EZg2gCrpvr1+Vt6H35AA0=

View File

@ -0,0 +1 @@
cD01vjVVw642INlyE+Rmbwf9/Y6Msz6pLTI1zCRjeWM=

View File

@ -0,0 +1 @@
e/GFlV6jH219ewqRpNKOKw2SVo/+4g9M5Cz7vZ35JAE=

View File

@ -0,0 +1,15 @@
# local settings for Endpoint A
[Interface]
PrivateKey = qKycHr1Ukwzlkw9fI0H4gKbAHpdmwa3HDkWX7rso9Vw= #Clé privée du serveur vpn
Address = 10.0.0.1/32 #Adresse du serveur vpn
ListenPort = 51820
# remote settings for Endpoint B
[Peer]
PublicKey = GoHn0zP27+IFPcApQl/Je7EZg2gCrpvr1+Vt6H35AA0= #Clé publique du client
AllowedIPs = 10.0.0.2/32 #Adresse vpn du client
# remote settings for Endpoint C
[Peer]
PublicKey = e/GFlV6jH219ewqRpNKOKw2SVo/+4g9M5Cz7vZ35JAE= #Clé publique du client
AllowedIPs = 10.0.0.3/32 #Adresse vpn du client

View File

@ -0,0 +1,11 @@
# local settings for Endpoint B
[Interface]
PrivateKey = KClI53wv5L7AZ9ZOQPNzPqIuQVyfda0VpzLsykuXdXg= #Clé privée du client
Address = 10.0.0.2/32 #Adresse du client
ListenPort = 51820
# remote settings for Endpoint A
[Peer]
PublicKey = qxFRWqsOToqCiV3xlCNFh33mDCm0Mb1U/yDukcfcA2o= #Clé publique du serveur vpn
Endpoint = 10.121.38.66:51820 #Adresse en dhcp (pont) du serveur vpn avec le port qu'on utilise
AllowedIPs = 10.0.0.1/32 #Adresse du serveur vpn

View File

@ -0,0 +1,11 @@
# local settings for Endpoint C
[Interface]
PrivateKey = cD01vjVVw642INlyE+Rmbwf9/Y6Msz6pLTI1zCRjeWM= #Clé privée du client
Address = 10.0.0.3/32 #Adresse du client
ListenPort = 51820
# remote settings for Endpoint A
[Peer]
PublicKey = qxFRWqsOToqCiV3xlCNFh33mDCm0Mb1U/yDukcfcA2o= #Clé publique du serveur vpn
Endpoint = 10.121.38.66:51820 #Adresse en dhcp (pont) du serveur vpn avec le port qu'on utilise
AllowedIPs = 10.0.0.1/32 #Adresse du serveur vpn

View File

@ -0,0 +1,7 @@
#!/bin/bash
bash wireguard.sh
cp endpoint-a.* wg0-a.conf /etc/wireguard
cd /etc/wireguard
mv wg0-a.conf wg0.conf
systemctl start wg-quick@wg0
systemctl enable wg-quick@wg0

View File

@ -0,0 +1,78 @@
#!/bin/bash
set -u
set -e
AddressAwg=10.0.0.1/32 # Adresse VPN Wireguard extremite A
EndpointA=10.121.38.66 # Adresse extremite A
PortA=51820 # Port ecoute extremite A
AddressBwg=10.0.0.2/32 # Adresse VPN Wireguard extremite B
EndpointB=192.168.2.14 # Adresse extremite B
PortB=51820 # Port ecoute extremite B
AddressCwg=10.0.0.3/32 # Adresse VPN Wireguard extremite C
EndpointC=192.168.2.15 # Adresse extremite C
PortC=51820 # Port ecoute extremite C
umask 077 ;
wg genkey > endpoint-a.key
wg pubkey < endpoint-a.key > endpoint-a.pub
wg genkey > endpoint-b.key
wg pubkey < endpoint-b.key > endpoint-b.pub
wg genkey > endpoint-c.key
wg pubkey < endpoint-c.key > endpoint-c.pub
PKA=$(cat endpoint-a.key)
pKA=$(cat endpoint-a.pub)
PKB=$(cat endpoint-b.key)
pKB=$(cat endpoint-b.pub)
PKC=$(cat endpoint-c.key)
pKC=$(cat endpoint-c.pub)
cat <<FINI > wg0-a.conf
# local settings for Endpoint A
[Interface]
PrivateKey = $PKA #Clé privée du serveur vpn
Address = $AddressAwg #Adresse du serveur vpn
ListenPort = $PortA
# remote settings for Endpoint B
[Peer]
PublicKey = $pKB #Clé publique du client
AllowedIPs = $AddressBwg #Adresse vpn du client
# remote settings for Endpoint C
[Peer]
PublicKey = $pKC #Clé publique du client
AllowedIPs = $AddressCwg #Adresse vpn du client
FINI
cat <<FINI > wg0-b.conf
# local settings for Endpoint B
[Interface]
PrivateKey = $PKB #Clé privée du client
Address = $AddressBwg #Adresse du client
ListenPort = $PortB
# remote settings for Endpoint A
[Peer]
PublicKey = $pKA #Clé publique du serveur vpn
Endpoint = ${EndpointA}:$PortA #Adresse en dhcp (pont) du serveur vpn avec le port qu'on utilise
AllowedIPs = $AddressAwg #Adresse du serveur vpn
FINI
cat <<FINI > wg0-c.conf
# local settings for Endpoint C
[Interface]
PrivateKey = $PKC #Clé privée du client
Address = $AddressCwg #Adresse du client
ListenPort = $PortC
# remote settings for Endpoint A
[Peer]
PublicKey = $pKA #Clé publique du serveur vpn
Endpoint = ${EndpointA}:$PortA #Adresse en dhcp (pont) du serveur vpn avec le port qu'on utilise
AllowedIPs = $AddressAwg #Adresse du serveur vpn
FINI