Informatique

Systemd

Enable start au boot

1
# systemctl enable nom_service

Check si start au boot

1
# systemctl is-enabled nom_service

show services

1
# systemctl list-unit-files --type=service

reload apres modif

1
# systemctl daemon-reload

Avoid mesage : systemd: plop.service: Start request repeated too quickly.

1
# cat /lib/systemd/system/plop.service
...
[Service]
StartLimitInterval=10s
StartLimitBurst=5
...

Use

1
# systemctl start [name.service]
# systemctl stop [name.service]
# systemctl restart [name.service]
# systemctl reload [name.service]
$ systemctl status [name.service]
# systemctl is-active [name.service]
$ systemctl list-units --type service --all

Les autres units de systemd (au dessus on parlait de .service) :

Target: group of units
Automount: filesystem auto-mountpoint
Device: kernel device names, which you can see in sysfs and udev
Mount: filesystem mountpoint
Path: file or directory
Scope: external processes not started by systemd
Slice: a management unit of processes
Snapshot: systemd saved state
Socket: IPC (inter-process communication) socket
Swap: swap file
Timer: systemd timer.

Openvpn

Serveur

1
apt-get install openvpn easy-rsa
echo 1 > /proc/sys/net/ipv4/ip_forward
sed -i "s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/" /etc/sysctl.conf
cp -r /usr/share/easy-rsa/ /etc/openvpn
mkdir /etc/openvpn/easy-rsa/keys
openssl dhparam -out /etc/openvpn/dh2048.pem 2048
cd /etc/openvpn/easy-rsa/ # on se place dans le rep de travail
source vars # On charge les variables
./clean-all # On nettoie ce qui ne l'aurait pas été
./buid-ca # l'authorité de certification
./build-key-server server
cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt} /etc/openvpn

Conf

1
cat server.conf
#Configuration serveur

mode server # c'est le fichier de configuration du serveur
proto udp
port 1194
dev tun # mode routé

#Clefs
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
tls-auth keys/ta.key 0 # 0 pour le serveur
cipher AES-256-CBC # algorithme de chiffrement

#Configuration VPN
#client-to-client # permet la connexion entre clients
server 10.8.0.0 255.255.255.0 # adresse IP attribuées sur le VPN
#push "redirect-gateway def1 bypass-dhcp" # redirection du flux de données
#push "dhcp-option DNS 8.8.8.8" # utilisation de DNS alternatifs
#push "dhcp-option DNS 8.8.4.4"
keepalive 10 120 # ping toutes les 10 secondes,
                 # considéré comme down après 120 secondes sans réponses

#Divers
user nobody # on passe de l'utilisateur root à nobody
group nogroup # nogroup est typique d'Ubuntu, groupe nobody pour les autres
chroot /etc/openvpn/ovpn_jail # chroot de openvpn
persist-key # n'accède plus à certaines options,
persist-tun # car réduction des privilèges utilisateur
comp-lzo # compression des données

#Log
verb 3 # verbosité du log (1-9, 4 recommandé)
mute 20 # ne répète pas plus de 20 fois un message
status openvpn-status.log # fichier de statut
log-append /var/log/openvpn_append.log # fichier de log
log  /var/log/openvpn.log

Test de la conf

1
openvpn --config /etc/openvpn/server.conf

Start

1
systemctl start openvpn

Client

Certif client

1
cd /etc/openvpn/easy-rsa/keys # on se place dans le rep de travail
. ./vars # On charge les variables
./build-key <identifiant>

conf

1
cat client.conf
#Configuration client
client # mode client
dev tun
#proto tcp-client
proto udp
remote 195.154.16.64 1194
resolv-retry infinite
nobind
persist-key
persist-tun

#Clefs
ca cert/ca.crt
cert cert/client.crt
key cert/client.key
tls-auth cert/ta.key 1 #1 pour le client
cipher AES-256-CBC


comp-lzo
verb 3

log-append /var/log/openvpn_append.log # fichier de log
log  /var/log/openvpn.log

conf client client.ovpn

1
echo '<ca>' >> ~/client.ovpn
cat /etc/openvpn/easy_rsa/keys/ca.crt >> client.ovpn
echo '</ca>' >> client.ovpn
echo '<cert>' >> client.ovpn
cat /etc/openvpn/easy_rsa/keys/client.crt >> client.ovpn
echo '</cert>' >> client.ovpn
echo '<key>' >> cleint.ovpn
cat /etc/openvpn/easy_rsa/keys/client.key >> client.ovpn
echo '</key>' >> client.ovpn

iptables

Reset default to ACCEPT and flush

1
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

99% des mails sortent par 89.89.89.89
1% des mails sortent via 31.31.31.31

1
iptables -t nat -I POSTROUTING 1 -m state --state NEW --source 10.0.0.4 -p tcp --dport 25 ! -d 10.0.0.0/24 -o eth0 -m statistic --mode random --probability .99 -j SNAT --to-source 89.89.89.89

iptables -t nat -I POSTROUTING 1 -m state --state NEW --source 10.0.0.4 -p tcp --dport 25 ! -d 10.0.0.0/24 -o eth0 -j SNAT --to-source 31.31.31.31

Anti flood

1
iptables -A INPUT -p tcp --syn -m limit --limit 10/s --limit-burst 10 -j DROP


iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 20 -j DROP

Drop by pattern

1
iptables -I INPUT -p tcp --dport 80 -m string --to 70 --algo bm --string 'GET /toto.php' -j DROP

Log

1
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A OUTPUT -j LOGGING
iptables -A LOGGING -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A LOGGING -j DROP

junos

Diff entre la flash et la ram (conf commit et en attente de commit)

1
# show | compare

commit sans peur

1
commit confirmed 2

si toujours la main

1
commit

add Vlan

1
# set vlans vlan1234 vlan-id 1234 description mon_vlan_1234

Chercher une mac

1
# show ethernet-switching table brief
# show arp

Avoir une conf a copier/coller

1
# show | display set

Plus d’espace disque

1
request system storage cleanup

lancer un shell

1
start shell

nginx

1
server_tokens off;

listen 443 ssl;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ‘EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH’;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;

Performance thread pool

X-forwarded-for
nginx.conf: http{}

1
set_real_ip_from 127.0.0.1;
set_real_ip_from 10.0.69.120; # ip proxy
  
real_ip_header X-Forwarded-For;
real_ip_recursive on;

ipv6

Désactiver l’ipv6

dans /etc/sysctl.conf

1
2
3
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1

ou

1
echo '1' > /proc/sys/net/ipv6/conf/lo/disable_ipv6   
echo '1' > /proc/sys/net/ipv6/conf/all/disable_ipv6   
echo '1' > /proc/sys/net/ipv6/conf/default/disable_ipv6

flood

1
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1024" > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter

Quelques explications :

La première ligne fait en sorte que la machine ne garde pas en mémoire les demandes de connexion semi-ouverte tant qu’elle n’a pas reçu la confirmation ACK
La deuxième commande positionne à 1024 le nombre maximum de SYN_WAIT
Enfin, la variable rp_filter permet de vérifier qu’un paquet arrive bien par l’interface sur laquelle il devrait arriver

1
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.tcp_max_syn_backlog = 1024

sysctl -p /etc/sysctl.conf

VIM

1
:w !diff % -

Indent

1
>>
>>

Virer ce putain de “visual mouse”

1
:set mouse-=a

Bonding

Need :

1
2
3
# modprobe bonding
# echo "bonding" >> /etc/modules
# apt-get install ifenslave-2.6

Conf :

1
2
3
4
5
6
7
8
9
10
11
12
auto bond0
iface bond0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
slaves eth0 eth2
bond_mode 4
bond-xmit-hash-policy layer3+4
bond_miimon 100
bond_downdelay 200
bond_updelay 200
bond-lacp-rate slow
1
up /sbin/ifenslave bond0 eth0 eth1
down /sbin/ifenslave -d bond0 eth0 eth1

Modes :

  • Mode 0 :
    Round Robin , équilibrage de charge
    La transmission des paquets se fait de façon séquentielle sur chacune des cartes actives dans l’agrégat. Ce mode augmente la bande passante et gère la tolérance de panne.

  • Mode 1 : Active - passive
    Ce mode ne gère que la tolérance de panne. Si une des interfaces est désactivée, une autre du bond prend le relais.

  • Mode 2 : Balance xor
    Une interface est affectée à l’envoi vers une même adresse MAC. Ainsi les transferts sont parallélisés et le choix de l’interface suit la règle : (Adresse MAC de la source XOR Adresse MAC de la destination) modulo nombre d’interfaces.

  • Mode 3 :
    Broadcast
    Tout le trafic est envoyé par toutes les interfaces

  • Mode 4 :
    802.3ad
    Ce mode s’appuie sur la norme IEEE 802.3ad Dynamic link aggregation. Toutes les interfaces du groupe sont agrégées de façon dynamique, ce qui augmente la bande passante et gère la tolérance de panne.
    Cela implique que le switch gère le 802.ad et les interfaces soient compatibles mii-tool et/ou ethtool.

  • Mode 5 :
    balance-tlb
    Adaptive transmit load balancing : seule la bande passante en sortie est load balancée selon la charge calculée en fonction de la vitesse, ceci pour chaque interface. Le flux entrant est affecté à l’interface courante. Si celle-ci devient inactive, une autre prend alors l’adresse MAC et devient l’interface courante.

  • Mode 6 :
    balance-alb
    Adaptive load balancing : ce mode inclut en plus du tlb un load balancing sur le flux entrant et seulement pour un trafic IPV4. L’équilibrage est réalisé au niveau ARP. Le module intercepte les réponses pour y réécrire l’adresse MAC de l’une des interfaces du bond tout en tenant compte des spécificités du protocole ARP. La répartition entre les différentes interfaces, se fait de façon séquentielle ( round robin ).

Options :

  • arp_interval
    Définit le délais en millisecondes entre chaque requête monitor ARP compatible avec le mode 0 ou 2 . Si la valeur est à 0 alors ARP monitoring est désactivé.
    0 est la valeur par défaut

  • arp_ip_target
    Définit les adresses IP si l’option arp_interval > 0 . Il peut être affecté un maximum de 16 adresses à l’agrégat dont le caractère de séparation est la virgule no adresse ip est la valeur par défaut

  • downdelay
    Définit le temps en millisecondes pour qu’une interface soit détecter down
    0 est la valeur par défaut

  • lacp_rate
    Définit le type d’intervalle entre chaque packet LACPDU pour le mode 802.3ad soit : slow ou 0 une requête toutes les 30 seconds
    fast ou 1 une requête toutes les seconds
    slow est la valeur par défaut

  • max_bonds
    Définit le nombre maximum d’agrégat pour cette instance
    1 est la valeur par défaut

  • miimon
    Définit la fréquence des MII link monitoring en millisecondes. Il est conseillé de positionner cette valeur à 100.
    0 est la valeur par défaut

  • primary
    Option utilisable pour les modes actif-passif. Favorise une interface dans un agrégat. Si celle-ci venait à redevenir active, elle prend la main sur les autres.

  • updelay
    Définit le temps en millisecondes pour qu’une interface soit détecter comme active.
    0 est la valeur par défaut

  • use_carrier
    Définit si on utilise le monitoring de MII ou ETHTOOL ou non
    1 est la valeur par défaut

  • xmi_hash_policy
    Définit la règle à utiliser pour déterminer l’interface pour les modes balance-xor et 802.3ad. Cette option peut prendre 2 valeurs :
    layer2 : utilise XOR de l’adresse MAC dont la formule est : (source MAC XOR destination MAC ) modulo le nombre d’interfaces
    layer3+4 : cette valeur n’est pas compatible avec toutes les implémentation 802.3ad. De plus elle fonctionne avec des protocoles de haut niveau ( TCP ou UDP )