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]#!/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[/code]

Voici le 2eme script :

[code]#!/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[/code]

Voila merci d’avance pour toutes les réponses

je dirait que sa va bien :slightly_smiling:

cependant les log ce place a la fin car tu veux loguer que ce qui n’est pas dans les règle ou alors loguer la règle elle même.

enfin 2 script na aucune importance SI tu utilise:
iptables a son propre systeme de fichier pour sauvegarder et restaurer les donnée que je te conseil d’utiliser.

Car la tu charges 1 script après l’autre sa c’est pas bon.

regarde ici:

http://www.linux-france.org/prj/inetdoc/guides/iptables-tutorial/

iptables-save et iptables-restaure

:smt006

[quote=“panthere”]je dirait que sa va bien :slightly_smiling:[/quote] Merci

[quote=“panthere”]cependant les log ce place a la fin car tu veux loguer que ce qui n’est pas dans les règle ou alors loguer la règle elle même.[/quote] Je n’ai pas bien compris, ils sont déjà la fin du script 1. Dans le 2eme script je ne souhaite rien loguer.

[quote=“panthere”]enfin 2 script na aucune importance SI tu utilise:
iptables a son propre systeme de fichier pour sauvegarder et restaurer les donnée que je te conseil d’utiliser.

Car la tu charges 1 script après l’autre sa c’est pas bon.

regarde ici:

http://www.linux-france.org/prj/inetdoc/guides/iptables-tutorial/

iptables-save et iptables-restaure [/quote]Merci pour l’astuce je regarderai ça de plus prèt. :slightly_smiling: