-
Notifications
You must be signed in to change notification settings - Fork 0
/
HardeningLinux.sh
122 lines (121 loc) · 3.74 KB
/
HardeningLinux.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/bin/bash
# Creation groupe
groupadd sualfa
groupadd suopen
# Droit Sudo
apt install sudo
echo '
%sualfa $HOSTNAME=(ALL) ALL
%suopen $HOSTNAME=(ALL) ALL
' >> /etc/sudoers
# Creation Uilisateur
pass=$(openssl rand -base64 16)
user="opensecu.adm"
sudo useradd -m $user --group sudo --shell /bin/bash
adduser $user suopen
adduser $user docker
echo $user:$pass | sudo chpasswd
echo $pass
pass=$(openssl rand -base64 16)
user="alfactory.adm"
sudo useradd -m $user --group sudo --shell /bin/bash
adduser $user sualfa
adduser $user docker
echo $user:$pass | sudo chpasswd
echo $pass
pass=$(openssl rand -base64 16)
user="opensecu.user"
sudo useradd -m $user --group sudo --shell /bin/bash
echo $user:$pass | sudo chpasswd
echo $pass
pass=$(openssl rand -base64 16)
user="alfactory.user"
sudo useradd -m $user --group sudo --shell /bin/bash
echo $user:$pass | sudo chpasswd
echo $pass
# Configuration du kernel
echo '
# Configuration du kernel
kernel.yama.ptrace_scope=2' >> /etc/sysctl.conf
# Configuration de la configuration réseaux
echo '
# Configuration de la configuration réseaux
# IPV4
net.core.bpf_jit_harden=2
net.ipv4.ip_forward=0
net.ipv4.conf.all.accept_local=0
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.default.secure_redirects=0
net.ipv4.conf.all.shared_media=0
net.ipv4.conf.default.shared_media=0
net.ipv4.conf.all.accept_source_route=0
net.ipv4.conf.default.accept_source_route=0
net.ipv4.conf.all.arp_filter=1
net.ipv4.conf.all.arp_ignore=2
net.ipv4.conf.all.route_localnet=0
net.ipv4.conf.all.drop_gratuitous_arp=1
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.icmp_ignore_bogus_error_responses=1
net.ipv4.ip_local_port_range=32768 65535
net.ipv4.tcp_rfc1337=1
net.ipv4.tcp_syncookies=1
# IPV6
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.all.disable_ipv6=1
' >> /etc/sysctl.conf
echo 'GRUB_CMDLINE_LINUX=" ipv6.disable=1"' >> /etc/default/grub
# Configuration système de fichier
echo '
# Configuration système de fichier
fs.suid_dumpable = 0
fs.protected_fifos=2
fs.protected_regular=2
fs.protected_symlinks=1
fs.protected_hardinks=1
' >> /etc/sysctl.conf
# Conf SSH mis à la main
# Service Audit
apt install auditd
# Configuration Auditd
echo '
# Exécution de insmod , rmmod et modprobe
-w /sbin/insmod -p x
-w /sbin/modprobe -p x
-w /sbin/rmmod -p x
# Sur les distributions GNU/Linux récentes , insmod , rmmod et modprobe sont
# des liens symboliques de kmod
-w /bin/kmod -p x
# Journaliser les modifications dans /etc/
-w /etc/ -p wa
# Surveillance de montage/démontage
-a exit,always -S mount -S umount2
# Appels de syscalls x86 suspects
-a exit,always -S ioperm -S modify_ldt
# Appels de syscalls qui doivent être rares et surveillés de près
-a exit,always -S get_kernel_syms -S ptrace
-a exit,always -S prctl
# Rajout du monitoring pour la création ou suppression de fichiers
# Ces règles peuvent avoir des conséquences importantes sur les
# performances du système
-a exit,always -F arch=b64 -S unlink -S rmdir -S rename
-a exit,always -F arch=b64 -S creat -S open -S openat -F exit=-EACCES
-a exit,always -F arch=b64 -S truncate -S ftruncate -F exit=-EACCES
# Rajout du monitoring pour le chargement , le changement et
# le déchargement de module noyau
-a exit,always -F arch=b64 -S init_module -S delete_module
-a exit,always -F arch=b64 -S finit_module
# Verrouillage de la configuration de auditd
-e 2
# Audit modification utilisateurs
-w /etc/passwd -p wa -k user-modify
' >> /etc/audit/rules.d/audit.rules
systemctl restart auditd
#apt-get install selinux-basics selinux-policy-default
#selinux-activate
#setenforce 1
#sed -i 's/SELINUX=permissive/SELINUX=enforcing/g' /etc/selinux/config