Auteur/autrice : starmate

3 janvier 2017 /

Je reprend l’exemple d’un fichier texte contenant une multitude d’identifiants.
Des identifiants qui commencent par 4 chiffres puis 2 lettres (exemple: 1502KQ) respecte le standard voulu, les autres non.

Nous souhaitons donc isoler les identifiants ne correspondant pas à ce standard.

Pour cela, crée un fichier, test.txt par exemple, et on y inscrit cette liste d’identifiants:

7737OM
8053HR
8184MH
8579MX
9254NF
1034AP
ADMIN01
ADMIN26
BIZOT
4569DF
BOURGAINET
CHACONNI
4126NR
4685ET
D?ALES
5016NW
DESOUSASSE06
FITGERERT
FRANCINETTE

Pour afficher les occurrences qui correspondent à notre expression régulière, [0-9]{4}[a-zA-Z]{2} (pour 4 chiffres et 2 lettres en minuscule ou majuscule):

egrep "[0-9]{4}[a-zA-Z]{2}" test.txt

7737OM
8053HR
8184MH
8579MX
9254NF
1034AP
4569DF
4126NR
4685ET
5016NW

Pour afficher au contraire les occurrences qui correspondent pas à notre expression régulière, on rajoute l’option « -v »:

egrep -v "[0-9]{4}[a-zA-Z]{2}" test.txt

ADMIN01
ADMIN26
BIZOT
BOURGAINET
CHACONNI
D?ALES
DESOUSASSE06
FITGERERT
FRANCINETTE

Note: On peut également utiliser grep avec l’option « -E » qui forcer grep à se comporter comme egrep:

grep -E "[0-9]{4}[a-zA-Z]{2}" test.txt

Autres exemples:

Recherche les mots dont b n’est pas suivi de o:

egrep "b[^o]" test.txt

Recherche toute ligne qui commence par « De: », « Sujet: » ou « Date: »:

egrep "^(De|Sujet|Date):" test.txt

Recherche et affiche chaque ligne du fichier test.txt qui contient l’occurence bonjour ou Bonjour, les numéros de ligne sont également affichés (option -n):

egrep -n "[bB]onjour" test.txt

Liste toute les lignes du fichier test.txt commençant avec le caractère $:

egrep "^\\$" test.txt

Liste tous les fichiers et répertoires dans le répertoire courant qui ne se terminent pas avec .txt:

ls -l | egrep "[^.txt]$"

Liste tous les fichiers et répertoires dans le répertoire courant qui se terminent avec .txt:

ls -l | egrep "[.txt]$"

Affiche uniquement les lignes dont le numéro de téléphone commence par un 1:

egrep "^1" test.txt

Recherche les lignes avec un 2 à la seconde position et n’importe quel caractère en première position:

egrep "^.2" test.txt

Recherche les lignes dont le premier caractère est différent de 1:

egrep "^[^1]" test.txt

27 décembre 2016 /

Notepad++ permet de filtrer un texte avec des expressions régulières.

Prenons l’exemple d’un fichier texte contenant une multitude d’identifiants.
Les identifiants qui commencent par 4 chiffres puis 2 lettres (exemple: 1803KQ) respecte le standard voulu, les autres non.

Nous souhaitons donc isoler les identifiants ne correspondant pas à ce standard.

Pour cela, on ouvre le fichier texte contenant l’ensemble des identifiants avec Notepad++.
Voici un exemple de texte à ouvrir avec Notepad++:

7737OM
8053HR
8184MH
8579MX
9254NF
1034AP
ADMIN01
ADMIN26
BIZOT
4569DF
BOURGAINET
CHACONNI
4126NR
4685ET
D?ALES
5016NW
DESOUSASSE06
FITGERERT
FRANCINETTE

Dans le menu de Notepad++, on va dans Recherche -> Remplacer…:

Dans cette fenêtre, on va mettre dans le champ « Recherche » notre expression régulière, [0-9]{4}[a-zA-Z]{2} (pour 4 chiffres et 2 lettres en minuscule ou majuscule).

On va également cocher « Expression régulière » dans la case « Mode de recherche« :

Une fois que cela est fait, on clique sur « Remplacer tout« .

Notre liste devrait maintenant ressembler à cela:

ADMIN01
ADMIN26
BIZOT
BOURGAINET
CHACONNI
D?ALES
DESOUSASSE06
FITGERERT
FRANCINETTE
KANNAOUITTET

Tout les identifiants correspondant au REGEX ont été supprimé, ne laissant que les identifiants ne le respectant pas.

12 décembre 2016 /

Pour voir la quantité de Ram physique installé sur un Solaris:

prtconf | grep Memory

Memory size: 15872 Megabytes

ou

prtdiag | grep Memory


Memory size: 15872 Megabytes
======================= Physical Memory Configuration ========================

4 décembre 2016 /

Pour augmenter la taille d’un .vmdk sur une appliance vCenter 6.x:

  1. Connectez-vous en ssh (en root) sur le vCenter.
  2. Exécutez cette commande pour activer le shell Bash:

    Shell.set --enabled true

  3. Il faut maintenant taper le mot « shell » puis on valide en appuyant sur entrée pour le lancer.
  4. On utilise la commande « df » pour identifier la partition à augmenter:

    df -h

  5. Une fois identifiée, on peut en déduire son numéro de VMDK, on va donc cette fois sur le client Vsphere (web ou client lourd) et on augmente la taille du disque VMDK.
  6. On retourne sur notre connexion ssh, et on exécute cette commande pour que le volume logique prenne en compte l’espace ajouté dans l’étape précédente:

    vpxd_servicecfg storage lvm autogrow

  7. Si tout c’est bien passé, le message suivant apparaîtra :
    VC_CFG_RESULT=0 
  8. On peut alors vérifier que la taille a bien été augmenté avec la commande df:

    df -h

Rappel:

Disque VMDK Taille par défaut Point de montage
VMDK1 12 Go / (10Go), /boot (132Mo), SWAP (1Go)
VMDK2 1,3 Go /tmp
VMDK3 25 Go SWAP
VMDK4 25 Go /storage/core
VMDK5 10 Go /storage/log
VMDK6 10 Go /storage/db
VMDK7 5 Go /storage/dblog
VMDK8 10 Go /storage/seat
VMDK9 1 Go /storage/netdump
VMDK10 10 Go /storage/autodeploy
VMDK11 5 Go /storage/invsvc

Source

14 novembre 2016 /

Le Domain Name System (ou DNS, système de noms de domaine) est un service permettant de traduire un nom de domaine en informations de plusieurs types qui y sont associées, notamment en adresses IP de la machine portant ce nom.

BIND (pour Berkeley Internet Name Daemon, ou parfois Berkeley Internet Name Domain) est le serveur DNS le plus utilisé sur Internet, spécialement sur les systèmes de type UNIX et est devenu de facto un standard. La première version de BIND a été conçue par quatre étudiants diplômés de l’Université de Californie (Berkeley) sur la base du système d’exploitation BSD 4.3

Nous allons installer Bind sur un serveur CentOS 6.5 (configuration également testée sur un CentOS7 avec succès) nommé dns, ayant pour adresse IP 10.148.14.36 et pour domaine starmate.fr.

Installation:

yum -y install bind bind-utils

On modifie la configuration DNS du système pour que les requêtes DNS se fassent désormais vers le DNS local, pour cela on modifie le paramètre « nameserver » du fichier resolv.conf:

vi /etc/resolv.conf

search starmate.fr
nameserver 127.0.0.1
nameserver 10.148.14.36

On va maintenant configurer la zone.
La mise en place d’une zone, aussi appelé nom de domaine, se fait par la création d’un fichier dans /var/named/.
Ce fichier contiendra l’ensemble des enregistrements DNS du domaine. Ce sont ces informations qui seront envoyées lors d’une requête DNS. Ils donnent notamment les adresses IP de plusieurs services, les IP des sous-domaines, machines, le TTL, etc…

Pour une zone starmate.fr :

vi /var/named/starmate.fr.db

Et on mets ça dedans:

$TTL 604800
@ IN SOA dns.starmate.fr. root.starmate.fr. (
2 ; Serial
3600 ; Refresh [1h]
600 ; Retry [10m]
86400 ; Expire [1j]
600 ) ; Negative Cache TTL [1h]
;
@ IN NS dns.starmate.fr.
dns.starmate.fr. IN A 10.148.14.36

On créer la configuration de la zone inversé:

vi /var/named/10.148.14.zone.db

Et on y met ca:

$TTL 604800
@ IN SOA dns.starmate.fr. root.starmate.fr. (
2 ; Serial
3600 ; Refresh [1h]
600 ; Retry [10m]
86400 ; Expire [1j]
600 ) ; Negative Cache TTL [1h]
;
@               IN      NS      dns.starmate.fr.
36              IN      PTR     dns.starmate.fr.

il faut maintenant inclure cette zone dans la liste des domaines de bind

On va commencer par sauvegarder le fichier de configuration initial:

cp -p /etc/named.conf /etc/named.conf.sav

On va vider le fichier:

> /etc/named.conf

Maintenant le fichier est sauvegardé et vidé de son contenu, on y ajoute ça:

vi /etc/named.conf

options
{
directory "/var/named"; // "Working" directory
dump-file "data/cache_dump.db";
statistics-file "data/named_stats.txt";
memstatistics-file "data/named_mem_stats.txt";

listen-on port 53 { any; };
//listen-on port 53 { 127.0.0.1; };

listen-on-v6 port 53 { any; };
//listen-on-v6 port 53 { ::1; };

allow-query { any; };
allow-query-cache { any; };

recursion yes;

};

logging
{
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

view "internal"
{
match-clients { localnets; };
recursion yes;

zone "." IN {
type hint;
file "/var/named/named.ca";
};

include "/etc/named.rfc1912.zones";

zone "starmate.fr" {
type master;
file "starmate.fr.db";
};

zone "14.148.10.in-addr.arpa" {
type master;
file "10.148.14.zone.db";
};
};

On vérifie que l’on a pas fait d’erreur de syntaxe:

named-checkzone starmate.fr /var/named/starmate.fr.db
named-checkzone starmate.fr /var/named/10.148.14.zone.db

Si pas d’erreur, on redémarre le service:

service named restart

Pour CentOS6, voici les règles iptables pour ouvrir le port DNS qu’il faut ajouter dans /etc/sysconfig/iptables :

vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT

Ou via la commande iptables directement:

iptables -t filter -A OUTPUT -p tcp –dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp –dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp –dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp –dport 53 -j ACCEPT

Pour CentOS7, le mieux est de passer par la commande firewall-cmd:

firewall-cmd --permanent --add-port=53/tcp
firewall-cmd --permanent --add-port=53/udp
firewall-cmd --reload

Vérification de la résolution depuis un autre poste:

dig @10.148.14.36 dns.starmate.fr +short

10.148.14.36

Dig nous a bien retourné l’adresse IP correspondante au nom dns, « dns.starmate.fr »

Vérification de la résolution inversée depuis un autre poste:

dig @10.148.14.36 -x 10.148.14.36 +short

dns.starmate.fr.

Dig nous a bien retourné le nom DNS de la machine ayant l’adresse IP, « 10.148.14.36 »