Shorewall pour les paresseux !

Vous avez un didactiel ou une astuce particulière concernant un logiciel, partagez votre expérience dans cette partie.

Shorewall pour les paresseux !

Messagede le Manchot Masqué » Sam 24 Mar 2018, 17:51

Et si on transformait notre ordinateur en passerelle internet de base, à placer juste après la box internet, histoire de protéger les utilisateur de notre réseau local des affreux jojos du net, dont nos chers FAI qui se permettent tous de scanner notre réseau local sans notre permission ?

Dans un premier temps, on installera le paquet isc-dhcp-server qui va fournir le service DHCP (attribution des adresses IP aux clients),
en rajoutant simplement les lignes suivantes dans le fichier /etc/dhcp/dhcpd.conf :

Code: Select All Code
subnet 192.168.100.0 netmask 255.255.255.0 {
        range 192.168.100.2 192.168.100.8;
        option domain-name "lug68.lan";
        option domain-name-servers 192.168.100.1;
        option routers 192.168.100.1;
        option broadcast-address 192.168.100.255;
}


On installera ensuite le paquet shorewall, qui va s'occuper de filtrer le trafic IP, avec une configuration basique mais
suffisante à la plupart des usagers.

Comme pour toute passerelle, il faudra fournir l'interface réseau WAN (vers l'extérieur/internet) et l'interface LAN (réseau interne) manuellement.

Mais comme nous sommes de gros "feignasses" au LUG68, nous avons ici écrit un petit script BASH, qui s'occupe de trouver les interfaces réseaux présentes sur votre machine, et de vous les afficher sous la forme d'une liste avec un numéro distinct en début de ligne.

Ainsi vous n'aurez plus qu'à rentrer les deux numéros correspondants respectivement aux interfaces WAN et LAN de votre réseau pour créer votre passerelle !

Contenu du script shorewall.sh, à exécuter avec les droits root :

Code: Select All Code
#!/bin/bash

HAS_SHOREWALL=$(dpkg -l|grep " shorewall "|cut -d " " -f1)
HAS_DHCPD=$(dpkg -l|grep " isc-dhcp-server "|cut -d " " -f1)

if [ ! "$HAS_SHOREWALL" == "ii" ]; then
   apt-get install shorewall
fi
if [ ! "$HAS_DHCPD" == "ii" ]; then
   apt-get install isc-dhcp-server
fi

service shorewall stop
service isc-dhcp-server stop

echo -e "\nInterfaces disponibles :"
i=1
INTERFACES=$(ifconfig|cut -d' ' -f1|sed '/^$/d')
for interface in $INTERFACES; do
   echo -e "$i / $interface";
   i=$((i+1))
done

ARR=($INTERFACES)

echo -e ""
read -r -n 1 -p "Numéro interface WAN ? " NUMWAN
echo -e ""
read -r -n 1 -p "Numéro interface LAN ? " NUMLAN
echo -e "\n"

NUMWAN=$((NUMWAN-1))
NUMLAN=$((NUMLAN-1))

#echo -e "\nNUMWAN=$NUMWAN"
#echo -e "\nNUMLAN=$NUMLAN"

WAN=${ARR[$NUMWAN]};
LAN=${ARR[$NUMLAN]};

# pour le serveur local DHCPD
ifconfig $LAN 192.168.100.1/24

echo -e "WAN=$WAN"
echo -e "LAN=$LAN"

echo "
?FORMAT 2
net     $WAN            dhcp,tcpflags,nosmurfs,logmartians,sourceroute=0,routeback
loc     $LAN            nosmurfs,logmartians,sourceroute=0
" > /etc/shorewall/interfaces

echo "
fw   firewall
net   ipv4
loc   ipv4
" > /etc/shorewall/zones

echo "
$WAN $LAN
" > /etc/shorewall/masq

echo "
\$FW        all         ACCEPT
loc        \$FW         ACCEPT
loc        net         ACCEPT
net        all         DROP   info

# THE FOLLOWING POLICY MUST BE LAST
all        all         REJECT      info
" > /etc/shorewall/policy

ifconfig $LAN 192.168.100.1/24

service shorewall restart
service isc-dhcp-server restart

echo -e ""
sysctl -w net.ipv4.ip_forward=1
:1
Avatar de l’utilisateur
le Manchot Masqué
Administrateur du site
 
Messages: 331
Inscription: Lun 26 Mai 2008, 21:05
Localisation: Guebwiller
Distribution: Debian, Ubuntu
Niveau: Moitié plein !

Retourner vers Sur un logiciel

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron