« Parefeu Simplifié » : différence entre les versions

Aller à la navigation Aller à la recherche
Ligne 16 : Ligne 16 :


<code>#!/bin/sh
<code>#!/bin/sh
 
### BEGIN INIT INFO
### BEGIN INIT INFO
# Provides:          mon_parefeu
# Provides:          mon_parefeu
Ligne 25 : Ligne 25 :
# X-Start-Before:    $network
# X-Start-Before:    $network
# X-Stop-After:      $network
# X-Stop-After:      $network
# Default-Start:      2 3 4 5
# Default-Start:      S
# Default-Stop:      0 1 6
# Default-Stop:      0 6
# Short-description:  Configure le parefeu
# Short-description:  Configure le parefeu
# Description:        Met en place les règles iptables.
# Description:        Met en place les règles iptables.
### END INIT INFO
### END INIT INFO
 
# Exemple de configuration de pare-feu
# Exemple de configuration de pare-feu
#
#
Ligne 48 : Ligne 48 :
#
#
#---------------------------------------------------------------
#---------------------------------------------------------------
 
PATH=/bin:/sbin:/usr/bin:/usr/sbin
readonly IPTABLES=/sbin/iptables
 
# Services que le système offrira au réseau, à séparer avec des espaces
# Services que le système offrira au réseau, à séparer avec des espaces
# ftp : 21, ssh : 22, serveur web : 80, cups : 631, jabber : 5222
# ftp : 21, ssh : 22, serveur web : 80, cups : 631, jabber : 5222
Ligne 59 : Ligne 59 :
#REMOTE_TCP_SERVICES=""  
#REMOTE_TCP_SERVICES=""  
#REMOTE_UDP_SERVICES=""  
#REMOTE_UDP_SERVICES=""  
 
if ! [ -x /sbin/iptables ]; then   
if ! [ -x $IPTABLES ]; then   
exit 0
exit 0
fi
fi
 
fw_start () {
fw_start () {
 
# Vidage
# Vidage
/sbin/iptables -t filter -F
fw_clear
/sbin/iptables -t filter -X
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
/sbin/iptables -t mangle -F
/sbin/iptables -t mangle -X
 
echo "Parefeu - Suppression des règles : [OK]"
echo "Parefeu - Suppression des règles : [OK]"
 
# Interdictions
# Interdictions
/sbin/iptables -t filter -P INPUT DROP
$IPTABLES -t filter -P INPUT DROP
/sbin/iptables -t filter -P FORWARD DROP
$IPTABLES -t filter -P FORWARD DROP
/sbin/iptables -t filter -P OUTPUT DROP
$IPTABLES -t filter -P OUTPUT DROP
 
echo "Parefeu - interdictions générales établies : [OK]"
echo "Parefeu - interdictions générales établies : [OK]"
 
# Loopback
# Loopback
#/sbin/iptables -t filter -A INPUT -i lo -j ACCEPT
$IPTABLES -t filter -A INPUT -i lo -j ACCEPT
/sbin/iptables -t filter -A INPUT -i lo -j ACCEPT
 
# Trafic d'entrée :
# Trafic d'entrée :
/sbin/iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
# Refus du ping
# Refus du ping pour éviter de répondre aux scans des éventuels vilains
/sbin/iptables -t filter -A INPUT -p icmp -j LOG
$IPTABLES -t filter -A INPUT -p icmp -j LOG
/sbin/iptables -t filter -A INPUT -p icmp -j DROP
$IPTABLES -t filter -A INPUT -p icmp -j DROP
 
# Sortie autorisée,  
# Sortie autorisée,  
# à commenter si seuls certains services doivent être autorisés en sortie.
# à commenter si seuls certains services doivent être autorisés en sortie.
/sbin/iptables -t filter -P OUTPUT ACCEPT
$IPTABLES -t filter -P OUTPUT ACCEPT
 
# Services à autoriser en entrée
# Services à autoriser en entrée
if [ -n "$TCP_SERVICES" ] ; then
for PORT in $TCP_SERVICES; do
for PORT in $TCP_SERVICES; do
$IPTABLES -A INPUT -p tcp --dport ${PORT} -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport ${PORT} -j ACCEPT
done
done
fi
if [ -n "$UDP_SERVICES" ] ; then
for PORT in $UDP_SERVICES; do
/sbin/iptables -A INPUT -p udp --dport ${PORT} -j ACCEPT
done
fi


for PORT in $UDP_SERVICES; do
$IPTABLES -A INPUT -p udp --dport ${PORT} -j ACCEPT
done
# Décommenter les lignes suivantes pour n'autoriser que certains
# Décommenter les lignes suivantes pour n'autoriser que certains
# services en sortie
# services en sortie
 
#if [ -n "$REMOTE_TCP_SERVICES" ] ; then
#for PORT in $REMOTE_TCP_SERVICES; do
# for PORT in $REMOTE_TCP_SERVICES; do
# $IPTABLES -A OUTPUT -p tcp --dport ${PORT} -j ACCEPT
# /sbin/iptables -A OUTPUT -p tcp --dport ${PORT} -j ACCEPT
#done
# done
#for PORT in $REMOTE_UDP_SERVICES; do
#fi
# $IPTABLES -A OUTPUT -p udp --dport ${PORT} -j ACCEPT
#if [ -n "$REMOTE_UDP_SERVICES" ] ; then
#done
# for PORT in $REMOTE_UDP_SERVICES; do
#echo "Parefeu - Mise en place des règles : [OK]"
# /sbin/iptables -A OUTPUT -p udp --dport ${PORT} -j ACCEPT
# done
#fi
 
echo "Parefeu - Mise en place des règles : [OK]"
 
# Décommenter les lignes après les traits
# Décommenter les lignes après les traits
# pour une machine faisant office de routeur avec NAT
# pour une machine faisant office de routeur avec NAT
Ligne 132 : Ligne 117 :
# ethy correspond à l'interface reliée à la truc-box
# ethy correspond à l'interface reliée à la truc-box
# -------------------------------------------
# -------------------------------------------
 
#/sbin/iptables -A INPUT -i ethx -j ACCEPT
#$IPTABLES -A INPUT -i ethx -j ACCEPT
#/sbin/iptables -A INPUT -p icmp -j ACCEPT
#$IPTABLES -A INPUT -p icmp -j ACCEPT
#/sbin/iptables -A FORWARD -i ethy -o ethx -m state --state RELATED,ESTABLISHED -j ACCEPT
#$IPTABLES -A FORWARD -i ethy -o ethx -m state --state RELATED,ESTABLISHED -j ACCEPT
#/sbin/iptables -A FORWARD -o ethy -j ACCEPT
#$IPTABLES -A FORWARD -o ethy -j ACCEPT
#/sbin/iptables -t nat -A POSTROUTING -o ethy -j MASQUERADE
#$IPTABLES -t nat -A POSTROUTING -o ethy -j MASQUERADE
 
#echo "Parefeu - Routeur avec NAT : [OK]"
#echo "Parefeu - Routeur avec NAT : [OK]"
 
# Toutes les autres connexions sont enregistrées dans syslog
# Toutes les autres connexions sont enregistrées dans syslog
#/sbin/iptables -t filter -A OUTPUT -j LOG
#$IPTABLES -t filter -A OUTPUT -j LOG
/sbin/iptables -t filter -A INPUT -j LOG --log-level=4
$IPTABLES -t filter -A INPUT -j LOG --log-level=4
 
echo "Parefeu - Logging : [OK]"
echo "Parefeu - Logging : [OK]"
}
}
 
fw_stop () {
fw_stop () {
/sbin/iptables -F
$IPTABLES -F
/sbin/iptables -t nat -F
$IPTABLES -t nat -F
/sbin/iptables -t mangle -F
$IPTABLES -t mangle -F
/sbin/iptables -P INPUT DROP
$IPTABLES -P INPUT DROP
/sbin/iptables -P FORWARD DROP
$IPTABLES -P FORWARD DROP
/sbin/iptables -P OUTPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
}
}
 
fw_clear () {
fw_clear () {
/sbin/iptables -t filter -F
$IPTABLES -t filter -F
/sbin/iptables -t nat -F
$IPTABLES -t nat -F
/sbin/iptables -t mangle -F
$IPTABLES -t mangle -F
/sbin/iptables -t raw -F
$IPTABLES -t raw -F
/sbin/iptables -t filter -P INPUT ACCEPT
$IPTABLES -t filter -P INPUT ACCEPT
/sbin/iptables -t filter -P OUTPUT ACCEPT
$IPTABLES -t filter -P OUTPUT ACCEPT
/sbin/iptables -t filter -P FORWARD ACCEPT
$IPTABLES -t filter -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
/sbin/iptables -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P PREROUTING ACCEPT
/sbin/iptables -t mangle -P OUTPUT ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
/sbin/iptables -t mangle -P POSTROUTING ACCEPT
$IPTABLES -t mangle -P POSTROUTING ACCEPT
/sbin/iptables -t mangle -P FORWARD ACCEPT
$IPTABLES -t mangle -P FORWARD ACCEPT
/sbin/iptables -t mangle -P INPUT ACCEPT
$IPTABLES -t mangle -P INPUT ACCEPT
/sbin/iptables -t raw -P OUTPUT ACCEPT
$IPTABLES -t raw -P OUTPUT ACCEPT
/sbin/iptables -t raw -P PREROUTING ACCEPT
$IPTABLES -t raw -P PREROUTING ACCEPT
/sbin/iptables -F
$IPTABLES -F
}
}
 
fw_status () {
fw_status () {
/sbin/iptables -L --line-numbers
$IPTABLES -L --line-numbers
}
}
 
case "$1" in
case "$1" in
start|restart)
start|restart)
Ligne 209 : Ligne 194 :
esac
esac
exit 0
exit 0
</code>
</code>


159

modifications

Menu de navigation