Compare commits

...

31 Commits

Author SHA1 Message Date
35c46449fa fix: fixed multiple issues in the values.yaml of peertube package 2023-05-10 16:47:13 +02:00
575a2fa87a fix: added s-adm to resolv.conf for s-peertube 2023-05-10 11:26:27 +02:00
Elam Monnot
30b74c50e2 fix: edites dns entries and peertube role 2023-05-10 11:02:40 +02:00
597ff383f7 feat: tried to add peertube domain entry in CNAME 2023-05-10 09:08:03 +02:00
c482540de6 fix: removed peertube from dns rev file 2023-05-10 08:51:57 +02:00
ce37973f9d feat: added s-infra to peertube role 2023-05-10 08:45:11 +02:00
andgel sassignol
a2c1636a0f correction bug Arnoux 2023-04-30 20:27:14 +02:00
Anthony Arnoux
d107c26449 délais dhcp r-int dhcp 2023-04-28 09:39:52 +02:00
Elam Monnot
d0efb480c8 feat: specified k3s install on enp0s8 2023-04-28 09:00:47 +02:00
Elam Monnot
be47dbabd2 fix: fixed peertube ingress and dns record 2023-04-26 11:09:42 +02:00
24d8892b4c Mise à jour de 'roles/fog/tasks/main.yml' 2023-04-23 17:47:58 +02:00
Elam Monnot
2c828574ef fix: dhcp start correctly on r-int 2023-04-07 09:50:59 +02:00
Elam Monnot
a5f0d258a5 feat: peertube work 2023-04-07 08:49:45 +02:00
Elam Monnot
52b9f3af87 feat: changed ingress for peertube 2023-04-06 11:39:09 +02:00
8dc1f9a891 Ajout creation utilisateur nextcloud Windows 2023-04-06 10:58:52 +02:00
Anthony Arnoux
0d3860211b readme wireguard-l était bancal 2023-04-06 10:48:27 +02:00
Anthony Arnoux
7a2311ae25 readme wireguard-l 2023-04-06 10:43:54 +02:00
Anthony Arnoux
ebcd50bf69 elam qui fait nimporte quoi encore une fois ! 2023-04-06 09:19:45 +02:00
Elam Monnot
30eeabb58b feat: added nginx ingress 2023-04-06 09:15:43 +02:00
Anthony Arnoux
542978fd75 correctif filtrage r-vp2 2023-04-06 08:42:14 +02:00
b7d8e6e9d4 Merge branch 'main' of https://gitea.lyc-lecastel.fr/gadmin/gsb2023 2023-04-05 17:22:11 +02:00
5526eab214 Ajout intégration AD Nextcloud 2023-04-05 17:20:26 +02:00
Elam Monnot
ea4ecb2fae feat: changed the way the playbook behave 2023-04-05 17:17:15 +02:00
Elam Monnot
58f4556a53 fix: tried to make peertube role work 2023-04-05 16:54:11 +02:00
Elam Monnot
86e7124f24 fix: edited values.yaml so postfix will work 2023-04-05 16:39:02 +02:00
Elam Monnot
c99642eae3 fix: made cluster finally reachable 2023-04-05 16:35:35 +02:00
Elam Monnot
5b759a24c9 Merge branch 'main' of https://gitea.lyc-lecastel.fr/gadmin/gsb2023 2023-04-05 10:57:07 +02:00
Elam Monnot
a64004d713 feat: added dns records for peertube 2023-04-05 10:56:43 +02:00
root
dd6d34986b fw filtrage int ok 2023-04-05 10:49:31 +02:00
root
cf6f6096d6 fw filtrage interne ok 2023-04-05 10:44:58 +02:00
root
99ed9d3b27 r-vp2 delais dhcp 2 seconde lancement 2023-04-05 10:25:44 +02:00
24 changed files with 111 additions and 152 deletions

View File

@ -7,7 +7,7 @@ Ce document décrit les divers élements du projet GSB du BTS SIO utilisé pour
Le projet GSB décrit les diférents playbooks permttant d'installer les
machines du projet GSB
Les répertoires :
Les répertoires :
- roles : les roles
- goss : les outils de test

View File

@ -28,7 +28,7 @@
192.168.99.103 s-lb-web3.gsb.adm
192.168.99.112 r-vp1.gsb.adm
192.168.99.102 r-vp2.gsb.adm
192.168.99.120 s-peertube.gsb.adm
192.168.99.8 syslog.gsb.adm

View File

@ -27,6 +27,6 @@
192.168.99.103 s-lb-web3.gsb.adm
192.168.99.112 r-vp1.gsb.adm
192.168.99.102 r-vp2.gsb.adm
192.168.99.120 s-peertube.gsb.adm
192.168.99.8 syslog.gsb.adm

View File

@ -5,7 +5,7 @@
;
$TTL 604800
@ IN SOA s-infra.gsb.lan. root.s-infra.gsb.lan. (
2023012500 ; Serial
2023051000 ; Serial
7200 ; Refresh
86400 ; Retry
8419200 ; Expire
@ -35,4 +35,6 @@ s-web1 IN A 192.168.101.1
s-web2 IN A 192.168.101.2
s-lb.gsb.lan IN A 192.168.100.10
ns IN CNAME s-infra.gsb.lan.
wpad IN CNAME s-infra.gsb.lan.
wpad IN CNAME s-infra.gsb.lan.
s-peertube IN A 192.168.100.20
peertube IN CNAME s-peertube

View File

@ -5,7 +5,7 @@
;
$TTL 604800
@ IN SOA s-infra.gsb.lan. root.s-infra.gsb.lan. (
2023012500 ; Serial
2023040501 ; Serial
7200 ; Refresh
86400 ; Retry
8419200 ; Expire
@ -27,5 +27,4 @@ $TTL 604800
100.10 IN PTR s-lb.gsb.lan
11.0 IN PTR s-elk.gsb.lan.
17.0 IN PTR s-gestsup.lan
254.0 IN PTR r-int.gsb.lan.
254.0 IN PTR r-int.gsb.lan.

View File

@ -22,5 +22,5 @@
command: "cp /root/tools/ansible/roles/fog/files/fogsettings /opt/fog/"
- name: fichier fogsettings en .fogsettings
command: "mv /opt/fog/fogsettings /opt/fog/.fogsettings"
command: "mv /opt/fog/fogsettings /opt/fog/.fogsettings"

View File

@ -4,10 +4,12 @@
@def $DEV_PRIVATE = enp0s8;
@def $DEV_WORLD = enp0s9;
@def $DEV_WORLD = enp0s9;
@def $DEV_VPN= wg0;
@def $NET_PRIVATE = 172.16.0.0/24;
table filter {
chain (INPUT OUTPUT){
# allow VPN
proto udp dport 51820 ACCEPT;
@ -28,22 +30,22 @@ table filter {
# allow SSH connections from the private network and from some
# well-known internet hosts
saddr ($NET_PRIVATE 81.209.165.42) proto tcp dport ssh ACCEPT;
saddr ($NET_PRIVATE) proto tcp dport ssh ACCEPT;
# we provide DNS and SMTP services for the internal net
interface $DEV_PRIVATE saddr $NET_PRIVATE {
proto (udp tcp) dport domain ACCEPT;
proto udp dport bootps ACCEPT;
}
# interface réseau
# the rest is dropped by the above policy
}#FIN INPUT
# outgoing connections are not limited
chain OUTPUT {
policy ACCEPT;
# interface $DEV_VPN proto ssh dport 22 ACCEPT;
}#FIN OUTPUT
@ -59,6 +61,9 @@ table filter {
# internal nets are allowed
interface $DEV_PRIVATE ACCEPT;
interface $DEV_VPN daddr $NET_PRIVATE {
proto tcp dport ssh DROP;
}
# the rest is dropped by the above policy
}
}

View File

@ -27,19 +27,15 @@ table filter {
# allow SSH connections from the private network and from some
# well-known internet hosts
saddr ($NET_PRIVATE 81.209.165.42) proto tcp dport ssh ACCEPT;
saddr ($NET_PRIVATE) proto tcp dport ssh ACCEPT;
# we provide DNS and SMTP services for the internal net
interface $DEV_PRIVATE saddr $NET_PRIVATE {
proto (udp tcp) dport domain ACCEPT;
proto udp dport bootps ACCEPT;
}
interface $DEV_VPN{
# respond to ping
proto icmp icmp-type echo-request ACCEPT;
# disallow ssh
saddr proto tcp dport ssh ACCEPT;
}
# interface réseau
interface $DEV_WORLD {
@ -49,17 +45,13 @@ table filter {
}#FIN INPUT
# outgoing connections are not limited
chain OUTPUT {policy ACCEPT;
interface $DEV_VPN{
# allow ssh
daddr proto tcp dport ssh DROP;
# respond to ping
proto icmp icmp-type echo-request ACCEPT;
}
chain OUTPUT {
policy ACCEPT;
}
chain FORWARD {
policy ACCEPT;
proto icmp icmp-type echo-request ACCEPT;
# connection tracking
mod state state INVALID DROP;
mod state state (ESTABLISHED RELATED) ACCEPT;
@ -68,6 +60,9 @@ table filter {
# internal nets are allowed
interface $DEV_PRIVATE ACCEPT;
interface $DEV_VPN daddr $NET_PRIVATE {
proto tcp dport ssh DROP;
}
# the rest is dropped by the above policy
}
}

View File

@ -1,43 +0,0 @@
# Définir la politique par défaut
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# Autoriser le trafic pour le VPN
iptables -A INPUT -p udp --dport 51820 -j ACCEPT
# Autoriser les connexions établies et connexes
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Autoriser les connexions sur l'interface loopback
iptables -A INPUT -i lo -j ACCEPT
# Autoriser les requêtes ping
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# Autoriser les connexions SSH depuis le réseau privé et depuis certains hôtes internet
iptables -A INPUT -p tcp -s 172.16.0.0/24,81.209.165.42 --dport ssh -j ACCEPT
# Autoriser les connexions DNS et SMTP sur l'interface privée
iptables -A INPUT -i enp0s9 -s 172.16.0.0/24 -p udp --dport domain -j ACCEPT
iptables -A INPUT -i enp0s9 -s 172.16.0.0/24 -p tcp --dport domain -j ACCEPT
iptables -A INPUT -i enp0s9 -s 172.16.0.0/24 -p udp --dport bootps -j ACCEPT
# Autoriser les requêtes ping sur l'interface VPN
iptables -A INPUT -i wg0 -p icmp --icmp-type echo-request -j ACCEPT
# Interdire les connexions SSH sur l'interface VPN
iptables -A INPUT -i wg0 -s 0.0.0.0/0 -p tcp --dport ssh -j DROP
# Interdire les connexions SSH sortantes sur l'interface VPN
iptables -A OUTPUT -o wg0 -d 0.0.0.0/0 -p tcp --dport ssh -j DROP
# Autoriser le trafic sur l'interface publique
iptables -A INPUT -i enp0s8 -j ACCEPT
# Autoriser les connexions depuis l'interface privée vers l'interface publique ou une autre interface privée
iptables -A FORWARD -i enp0s9 -o enp0s8 -j ACCEPT
iptables -A FORWARD -i enp0s9 -o enp0s9 -j ACCEPT
# Interdire toutes les autres connexions de forwarding
iptables -A FORWARD -j DROP

View File

@ -1,50 +0,0 @@
# Politique par défaut : DROP
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# Autoriser les connexions VPN entrantes
iptables -A INPUT -p udp --dport 51820 -j ACCEPT
# Autoriser les connexions établies et apparentées
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Autoriser les connexions depuis l'interface locale
iptables -A INPUT -i lo -j ACCEPT
# Autoriser les requêtes ping
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# Autoriser les connexions SSH depuis le réseau privé et depuis certains hôtes Internet
iptables -A INPUT -s 172.16.0.0/24 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 81.209.165.42 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# Autoriser les connexions DNS et SMTP depuis le réseau privé
iptables -A INPUT -i enp0s8 -s 172.16.0.0/24 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i enp0s8 -s 172.16.0.0/24 -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -i enp0s8 -s 172.16.0.0/24 -p udp --dport 67 -j ACCEPT
# Autoriser le trafic sortant
iptables -A OUTPUT -j ACCEPT
# Autoriser les requêtes ping sortantes
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
# Autoriser les connexions SSH sortantes
iptables -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# Autoriser les connexions VPN sortantes
iptables -A FORWARD -i wg0 -o enp0s9 -j ACCEPT
iptables -A FORWARD -i enp0s9 -o wg0 -j ACCEPT
# Interdire les connexions SSH entrantes depuis l'interface VPN
iptables -A FORWARD -i wg0 -p tcp --dport 22 -j DROP
# Autoriser les connexions SSH sortantes vers l'interface VPN
iptables -A FORWARD -o wg0 -p tcp --dport 22 -j ACCEPT
# Autoriser les connexions établies et apparentées
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Autoriser le trafic depuis le réseau privé
iptables -A FORWARD -i enp0s8 -o enp0s9 -j ACCEPT

View File

@ -35,3 +35,24 @@ Nextcloud est alors fonctionnel avec le proxy inverse **traefik** assurant la re
ATTENTION : Après avoir relancé la VM, executez le script "nxc-start.sh" afin d'installer les piles applicatives.
Une fois le script terminé, le site est disponible ici : https://s-nxc.gsb.lan
## 5. Ajout authentification LDAP
Pour ajouter l'authentification LDAP au Nextcloud, il faut :
* Une fois l'installation de Nextcloud terminé, cliquez sur le profil et Application
* Dans vos applications, descendre et activer "LDAP user and group backend"
* Puis cliquer sur le profil, puis Paramètres d'administration et dans Administration cliquer sur Intégration LDAP/AD
* Une fois sur la page d'intégration LDAP/AD :
* Dans Hôte mettre :
> ldap://s-win.gsb.lan
* Cliquer sur Détecter le port (normalement le port 389 apparait)
* Dans DN Utilisateur mettre :
> CN=nextcloud,CN=Users,DC=GSB,DC=LAN
* Mot de passe :
> Azerty1+
* Et dans Un DN de base par ligne :
> DC=GSB,DC=LAN
* Après la configuration passe OK
* Une fois la configuration finie, cliquer 3 fois sur continuer
* Une fois arrivé sur Groupes, vous pouvez vous déconnecter du compte Admin et vous connecter avec un compte qui est dans l'AD.

View File

@ -8,16 +8,15 @@
- name: installation de docker...
shell: curl https://releases.rancher.com/install-docker/20.10.sh | sh
- name: attente de l'installation...
- name: attente de l'installation de docker...
wait_for:
timeout: 30
host: localhost
- name: installation de k3s...
shell: curl -sfL https://get.k3s.io | sh -s - --docker
shell: curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--node-ip=192.168.100.20 --flannel-iface=enp0s8" sh -s - --docker
- name: mise a jour de resolv.conf...
copy:
src: /root/tools/ansible/gsb2023/roles/peertube/files/resolv.conf
dest: /etc/
mode: '0644'
- name: attente de l'installation de k3s...
wait_for:
timeout: 25
host: localhost

View File

@ -0,0 +1,9 @@
MYHOST=peertube.gsb.lan;
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml;
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.cert -subj /CN="${MYHOST}"/O="${MYHOST}" -addext "subjectAltName = DNS:${MYHOST}";
kubectl create secret tls tls-peertube --key tls.key --cert tls.cert;
helm repo add postgresql https://charts.bitnami.com/bitnami;
helm repo add redis https://charts.bitnami.com/bitnami;
helm repo add mail https://bokysan.github.io/docker-postfix;
helm install --create-namespace -n peertube peertube-gsb /root/tools/peertube/helm/ ;
kubectl config view --raw > ~/.kube/config

View File

@ -1 +1,4 @@
nameserver 192.168.99.99
domain gsb.lan
search gsb.lan
nameserver 172.16.0.1
nameserver 192.168.99.99

View File

@ -45,9 +45,9 @@ peertube:
dbPasswd: user # must be consistent with postgresql configuration
dbSsl: false # disabled by default WARNING: ssl connection feature not tested, use at your own risk
dbHostname: peertube-gsb-postgresql # must be consistent with postgresql configuration
webHostname: peertube # must be changed to your local setup
webHostname: peertube.gsb.lan # must be changed to your local setup
secret: b2753b0f37444974de0e81f04815e6a889fcf8960bd203a01b624d8fa8a37683
smtpHostname: peertube-mail # must be consistent with mail configuration
smtpHostname: peertube-gsb-mail # must be consistent with mail configuration
smtpPort: 587 # must be consistent with mail configuration
smtpFrom: noreply@lan.lan # not configured by default, add something meaningfull if you want
smtpTls: false # disabled by default WARNING: tls connection feature not tested, use at your own risk
@ -98,21 +98,21 @@ redis:
## ingress configuration is very specific this part must be configured or else you'll get 503 or 404 errors
ingress:
enabled: false
enabled: true
className: ""
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/proxy-body-size: 4G # this caps the size of imported videos, if set low this might prevent you from uploading videos
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/proxy-body-size: 6G # this caps the size of imported videos, if set low this might prevent you from uploading videos
# kubernetes.io/tls-acme: "true"
hosts:
- host: # your domain here
- host: peertube.gsb.lan
paths:
- path: /
pathType: ImplementationSpecific
tls:
# - secretName: chart-example-tls
tls:
- secretName: tls-peertube
- hosts:
- # your domain here
- peertube.gsb.lan
resources: {}
autoscaling:

View File

@ -18,14 +18,11 @@
dest: /root/tools/peertube/helm/
mode: '0644'
- name: copie du script finish...
copy:
src: /root/tools/ansible/gsb2023/roles/peertube/files/finish
dest: /root
mode: '0644'
- name: installation de helm...
shell: curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
- name: exposition du cluster...
shell: export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
- name: installation de peertube...
shell: helm repo add postgresql https://charts.bitnami.com/bitnami && helm repo add redis https://charts.bitnami.com/bitnami && helm repo add mail https://bokysan.github.io/docker-postfix
- name: lancement du helm chart peertube...
shell: helm install --create-namespace -n peertube peertube-gsb /root/tools/peertube/helm

View File

@ -34,4 +34,4 @@ iface enp0s10 inet static
allow-hotplug enp0s16
iface enp0s16 inet static
address 172.16.0.254/24
post-up sleep 10 && systemctl restart isc-dhcp-server

View File

@ -14,4 +14,4 @@ iface enp0s3 inet static
allow-hotplug enp0s8
iface enp0s8 inet static
address 192.168.100.20/24
post-up systemctl start k3s && sleep 20 && export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
post-up systemctl start k3s

View File

@ -17,3 +17,13 @@
#- name: extraction fog.tar.gz
#unarchive: src=/tmp/fog.tar.gz dest=/var/www/ copy=no
#- name: delais 2 secondes isc-dhcp-service
# become: yes
# lineinfile:
# path: /etc/init.d/isc-dhcp-server
# insertafter: '^\s+start\)$'
# line: " sleep 2"
# firstmatch: yes
# state: present
# backup: yes

View File

@ -1,5 +1,5 @@
#ajout du sleep 5
# ajout du sleep 5
éditer "/etc/init.d/isc-dhcp-server"
aller au "case \"$1\" in" et rajouter "sleep 5" avant le "if"
~~éditer "/etc/init.d/isc-dhcp-server"~~
~~aller au "case \"$1\" in" et rajouter "sleep 5" avant le "if"~~

View File

@ -14,7 +14,15 @@
name: wireguard-tools
state: present
- name: delais 2 secondes isc-dhcp-service
become: yes
lineinfile:
path: /etc/init.d/isc-dhcp-server
insertafter: '^\s+start\)$'
line: " sleep 2"
firstmatch: yes
state: present
backup: yes
#- name: renommage du fichier de configuration
# command: "mv /etc/wireguard/wg0-b.conf /etc/wireguard/wg0.conf"

View File

@ -1,3 +1,4 @@
@echo off
net group gg-backup /ADD
call mkusr uBackup "u-backup" gg-backup
icacls "C:\gsb\partages\public" /Grant:r uBackup:M /T

View File

@ -1,4 +1,5 @@
@echo off
call mkusr aDupont "Albert Dupon" gg-compta
call mkusr cSeum "Claire Seum" gg-compta
call mkusr nPaul "Nicolas Paul" gg-compta
call mkusr atour "Alexandre Tour" gg-compta
call mkusr atour "Alexandre Tour" gg-compta

View File

@ -0,0 +1,2 @@
@echo off
call mkusr nextcloud "nextcloud" nextcloud