Précédent   Forum des professionnels en informatique > Systèmes > Linux > Sécurité
Sécurité Vos questions sur la sécurité sous Linux/Unix
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 08/12/2009, 13h12   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2009
Messages : 48
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 48
Points : 14
Points : 14
Par défaut iptables demande de conseils

Bonjour,

j'aimerai votre avis sur mes configs iptables. C'est mon premier script alors désolé pour les imbécilités...

Les scripts sont destinées à un serveur web. J'ai fais 2 scripts parce qu'il y en a un pour tout les jours (plutôt restrictif) et un autre qui ouvre le dns/le web/"solr" (port 8983) quand j'en ai besoin, mise à jour des fichier php, des packages, etc... Solr c'est un moteur de recherche qui tourne sur jetty qui n'est écouté que sur le localhost en temps normal et quand je travaille dessus il doit écouter sur le réseau. Il n'y a pas de ftp je compte utiliser sftp qui passe par le 22 je crois.

Déjà première question, est ce une bonne idée 2 scripts ? Est ce que cela coupe les connexions quand on change de script ? J'aurais tendance à dire oui à cause de "iptables -P INPUT/OUTPUT DROP". Est ce grave ?

Bon je continue :
1er script :
Ssh et http (côté serveur uniquement) autorisé.
Le reste refusé et en log.
Le ssh est en log aussi, je veux savoir qui vient sur ma machine, normalement que moi.

2eme script
ssh http https dns solr (port 8983)
Je ne log pas car ce script ne sera pas souvent actif

Voici le 1er script :
Code :
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
#!/bin/sh
 
#####################################################################
#
#	Shell Script for configuration of Itables
#	Server web Pomelojob powered by Gandi.net
#	
#	only web and ssh available used in webserver mode
#	
#	author:	Charles Bourasseau
#	date:	2009
#####################################################################
 
 
## On active quelques modules utiles
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_filter
 
## On vide les règles
iptables -F
iptables -X
 
## On log tout
iptables -N LOG_DROP
iptables -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] : '
iptables -A LOG_DROP -j DROP
 
iptables -N LOG_ACCEPT
iptables -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES ACCEPT] : '
iptables -A LOG_ACCEPT -j ACCEPT
 
## On interdit tout
 
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
 
## On autorise la boucle local
 
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
 
## SSH
iptables -A INPUT -p tcp -i eth0 --dport 22 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT 
iptables -A OUTPUT -p tcp -o eth0 --dport 1024:65535 --sport 22 -m state --state ESTABLISHED -j LOG_ACCEPT
 
## web
iptables -A INPUT -p tcp -i eth0 --dport 80 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 --dport 1024:65535 --sport 80 -m state --state ESTABLISHED -j ACCEPT
 
iptables -A FORWARD -j LOG_DROP
iptables -A INPUT -j LOG_DROP
iptables -A OUTPUT -j LOG_DROP
Voici le 2eme script :
Code :
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
#!/bin/sh
 
#####################################################################
#
#	Shell Script for configuration of Itables
#	Server web Pomelojob powered by Gandi.net
#	
#	http htpps ssh solr dns available : more possibilities to work
#	
#	author:	Charles Bourasseau
#	date:	2009
#####################################################################
 
 
## On active quelques modules utiles
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_filter
 
## On vide les règles
iptables -F
iptables -X
 
## On interdit tout
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
 
## On autorise la boucle local
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
 
## ssh (server)
iptables -A INPUT -i eth0 -p tcp --dport 22 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 1024:65535 --sport 22 -m state --state ESTABLISHED -j ACCEPT
 
## http (server)
iptables -A INPUT -i eth0 -p tcp --dport 80 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 1024:65535 --sport 80 -m state --state ESTABLISHED -j ACCEPT
 
## http (client)
iptables -A INPUT -i eth0 -p tcp --dport 1024:65535 --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 80 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
 
## https (server)
iptables -A INPUT -i eth0 -p tcp --dport 443 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 1024:65535 --sport 443 -m state --state ESTABLISHED -j ACCEPT
 
## https (client)
iptables -A INPUT -i eth0 -p tcp --dport 1024:65535 --sport 443 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 443 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
 
## solr
iptables -A INPUT -i eth0 -p tcp --dport 8983 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 1024:65535 --sport 8983 -m state --state ESTABLISHED -j ACCEPT
 
## dns (client)
iptables -A INPUT -i eth0 -p udp --dport 1024:65535 --sport 53 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 53 --sport 1024:65535 -j ACCEPT
## Voila merci d'avance pour toutes les réponses

Dernière modification par lavazavio ; 09/12/2009 à 09h20. Motif: Ajout balises CODE
einboubou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2009, 18h28   #2
Membre éprouvé
 
Ingénieur sécurité
Inscription : février 2007
Messages : 433
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Australie

Informations professionnelles :
Activité : Ingénieur sécurité
Secteur : Industrie

Informations forums :
Inscription : février 2007
Messages : 433
Points : 414
Points : 414
Salut,
Un truc que je trouve bizarre dans ton premier script :
Citation:
Envoyé par einboubou Voir le message
[code]
## web
iptables -A INPUT -p tcp -i eth0 --dport 80 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 --dport 1024:65535 --sport 80 -m state --state ESTABLISHED -j ACCEPT
Tu n'autorises pas tes clients à joindre ton serveur web depuis le port 80 (port standard) ??? Pour ssh, ça se comprend, mais pour http...
Pas regardé le seuxième encore...
Bon courage
dahtah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2009, 20h10   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2009
Messages : 48
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 48
Points : 14
Points : 14
Citation:
Envoyé par dahtah Voir le message
Salut,
Un truc que je trouve bizarre dans ton premier script :

Tu n'autorises pas tes clients à joindre ton serveur web depuis le port 80 (port standard) ??? Pour ssh, ça se comprend, mais pour http...
Pas regardé le seuxième encore...
Bon courage
Il me semble que quand un client fait de l'http, il te joint sur le 80 mais son source c'est entre 1024 et 65535. Donc je vois pas où est le pb.
Code :
1
2
iptables -A INPUT -p tcp -i eth0 --dport 80 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 --dport 1024:65535 --sport 80 -m state --state ESTABLISHED -j ACCEPT
1ere ligne : On accepte les entrées qui vont vers le port 80 si elles sont nouvemmes ou établies
2eme ligne : On accepte les sorties qui partent du port 80 si elles sont établies.
einboubou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2009, 09h26   #4
Membre éprouvé
 
Ingénieur sécurité
Inscription : février 2007
Messages : 433
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Australie

Informations professionnelles :
Activité : Ingénieur sécurité
Secteur : Industrie

Informations forums :
Inscription : février 2007
Messages : 433
Points : 414
Points : 414
Citation:
Envoyé par einboubou Voir le message
Il me semble que quand un client fait de l'http, il te joint sur le 80 mais son source c'est entre 1024 et 65535.
Tu as raison, erreur de ma part. Désolé...
Tout semble ok donc.
dahtah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2010, 19h57   #5
Invité régulier
 
Inscription : juillet 2009
Messages : 13
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 13
Points : 6
Points : 6
Code :
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
 
#!/bin/bash
 
 
. /etc/init.d/functions
. /etc/sysconfig/network
if [ ${NETWORKING} = "no" ]
then
exit 0
fi
if [ ! -x /sbin/iptables ] ; then
exit 0
fi
case "$1" in
start)
echo -n "iptables demarre : "
 
#regle d'initiation--------------------------
iptables -F
iptables -X
 
#parametre par default-----------------------
 
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
 
 
# --- --- RULES
 
# --- LO
iptables -A OUTPUT -o lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT
iptables -A INPUT -i lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT
 
# --- WIRELESS
iptables -A OUTPUT -o wlan0 -p tcp -m multiport --dport 80,443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
iptables -A OUTPUT -o wlan0 -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
# --- ALL WIRELESS (for Transmission)
#iptables -A OUTPUT -o wlan0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
#iptables -A INPUT -i wlan0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
 
 
# --- INERNET
iptables -A OUTPUT -p tcp -s 192.168.0.102 -m multiport --dport 80,443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p udp -s 192.168.0.102 --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 
# --- MSN
iptables -A OUTPUT -p tcp --dport 1863 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 
# --- SSH + VNC WAN
#iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -p tcp --dport 5900 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 
# --- LAN
iptables -A OUTPUT -s 192.168.0.102 -d 192.168.0.200 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 192.168.0.200 -d 192.168.0.102 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 
# --- RETOUR 
iptables -A INPUT -d 192.168.0.102 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -s 192.168.0.102 -m state --state ESTABLISHED,RELATED -j ACCEPT
 
# --- RETOUR WIRELESS
iptables -A INPUT -i wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT
 
 
 
# --- --- RULES END 
;;
stop)
echo -n "iptables ferme : "
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -F
iptables -t nat -X;;
 
statut)
statut iptables;;
restart)
$0 stop
$0 start;;
*)
echo "usage : iptables {start|stop|status|restart}"
exit 1
esac
echo "OK"
exit 0
pmastery est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 06h59.


 
 
 
 
Partenaires

Hébergement Web