Sujet technique

Transcription

Sujet technique
Ministère de l’Équipement,
des Transports et du Logement
Examen de vérification d’aptitude aux fonctions
de programmeur de système d’exploitation
Épreuve commune Unix et Windows
Session 2001
Durée: 4h Coefficient: 4
Le sujet comporte 3 pages.
-
Résumé
Les questions suivantes ont pour objectif la réalisation d’un programme en ligne de commande
pouvant d’une part filtrer les connections tcp entrantes par ports et plages d’adresses IP et
d’autre part interdire les messages avec un dom aine sm tp ne correspondant pas au dom aine
du serveur client.
Seules les documentations Unix et Microsoft fournies sont autorisées. La lecture de la docum
entation unix est recommandée.
La documentation fournie, d’origine gcc linux et Visual C++, doit être prise dans un sens
générique.
Le choix du langage de programmation est libre à l’exception de tout langage de script.
Les questions peuvent être traitées de façon indépendantes.
Table des matières
1 Description du problème
2
2 Traitement du fichier de configuration
2
3 Filtrage IP
2
4 Filtrage SMTP
3
5 Écriture d’un fichier journal de sécurité
3
EVA Programmeur système d'exploitation - session 2001
1 Description du problème
Les questions suivantes ont pour objectif la réalisation d’un programm e permettant de filtrer
les connections tep par port et plages d’adresses IP:
 ce programme se lancera enligne de commande 1 avec en argument le numéro du
port que l’on désire filtrer;
 plusieurs instances du programme pourront être lancées simultanément si l’on veut
filtrer plusieurs ports;
 toutes les instances utiliseront un fichier de configuration unique;
Le fichier de configuration devra comprendre pour chaque port tcp à
filtrer les plages d’adresses IP autorisées.
2 Traitement du fichier de configuration
a. Définissez le format du fichier de configuration ainsi que la structure (adaptée au
langage de votre choix) utilisée pour stocker les plages d’adresses IP. Justifiez
succinctement vos choix.
b. Écrivez un sous-programme prenant en arguments un numéro de port tep et un nom de
fichier qui recherche la ligne correspondante dans le fichier et retourne les plages
d’adresses IP autorisées à se connecter.
3 Filtrage IP
Dans cette partie nous allons mettre en place le filtrage IP proprement dit.
a. Un serveur tcp doit pouvoir gérer les connections au fur et à mesure qu’elles arrivent
sans en perdre. Quelles sont les différents m écanism es utilisables. Donnez succinctem
ent leurs avantages et inconvénients.
b. Écrivez le sous-programme qui:
 ouvre le port passé en argument,
 attend indéfiniment les connections,
 passe les connections entrantes au sous-programme verif ip en attendant de
reprendre la main.
c. Écrivez le sous-programme veriLip prenant en argument:
la socket précédement ouverte de la question b,
la structure retournée parle sous-programme écrit dans la question 2b,
—
—
qui vérifie que l’adresse IP du client est dans les plages d’adresses autorisées.
1
Pour l’épreuve windows le programme à écrire doit être du type « Win32 Console Application » et
non un service NT. La docum entation fournie engage à utiliser l’api socket « de base» (Berkeley
style). Les extensions des api socket spécifiques à Microsoft (fonctions prefixées par WSA) ne sont
pas utiles pour notre application non graphique en mode console. Seul un appel à WSAStartup et
WSACleanup (avant et après l’utilisation des api socket) doit être fait.
Page 2/3
EVA Programmeur système d'exploitation - session 2001
4 Filtrage SMTP
Dans cette partie nous voulons vérifier, si la connection se fait sur le port smtp, que le client
appartient au domaine smtp annonce.
Pour des raisons de simplicité, on considère que le client smtp «parle en premier» en
envoyant sur la socket
HELLO <domaine smtp du client>
_
a. A partir de l’adresse IP récupérée, comment peut-on trouver le dom aine du serveur
client ?
b. Écrivez le sous-programme qui:
 prend comme arguments une socket et une adresse IP
 lit sur la socket les inform ations envoyées par le client;
 vérifie que le domaine smtp annoncé par le client correspond bien au domaine
trouvé à partir de l’adresse IP.
5 Écriture d’un fichier journal de sécurité
a. Décrivez la ou les méthodes pour permettre à différents programmes tournant
simultanément d’écrire dans le même fichier journal de manière sécurisée.
b. Écrivez le sous-programme qui prend en argument une chaîne de caractères et l’écrit
dans un fichier journal. Le fichier journal est partagé par les différentes instances
lancées simultanément.
Page 3/3