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]