Archives de catégorie : Ipfire

Une distribution Linux From Scratch orientée firewall.

Plugin : check_ipfire_core_update

Depuis IpFire

Créer un script pour savoir si une mise à jour est disponible pour ipfire, par exemple copié collé dans /usr/lib/nagios/check_ipfire_core_update. Puis attribuer les droits d’exécution :

mkdir -p /usr/lib/nagios/
cat > /usr/lib/nagios/check_ipfire_core_update <<EOF
#!/bin/bash
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
STATE_DEPENDENT=4
SYSTEM=\`cat /opt/pakfire/db/lists/core-list.db |grep "core_"\`
PAKFIRE=\\\$core_release=\"\`cat /opt/pakfire/db/core/mine\`\"\;
if [[ \$SYSTEM == \$PAKFIRE ]]
then
echo \$STATE_OK
exit 0
else
echo \$STATE_CRITICAL
exit 2
fi
exit 3
EOF
chmod +x /usr/lib/nagios/check_ipfire_core_update

Ajouter la ligne suivante dans /etc/snmpd.conf et on relance le service snmpd

echo "extend update /usr/local/bin/check_ipfire_core_update" >> /etc/snmpd.conf
/etc/init.d/snmpd restart
 

Avant, sur Ipfire, on check l’OID.

snmpwalk -v2c -c public 127.0.0.1 nsExtendOutput1
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."update" = STRING: 0
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."echotest" = STRING: hello world
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."update" = STRING: 0
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."echotest" = STRING: hello world
NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."update" = INTEGER: 1
NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."echotest" = INTEGER: 1
NET-SNMP-EXTEND-MIB::nsExtendResult."update" = INTEGER: 0
NET-SNMP-EXTEND-MIB::nsExtendResult."echotest" = INTEGER: 0
snmptranslate -On NET-SNMP-EXTEND-MIB::nsExtendOutput1Line.\"update\"
.1.3.6.1.4.1.8072.1.3.2.3.1.1.6.117.112.100.97.116.101

Depuis le superviseur

Command à créer dans Eyes Of Network :

$USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.8072.1.3.2.3.1.1.6.117.112.100.97.116.101 -l "Update" -s 0 -c 2

Ce qui donnerai dans un fichier texte normal

define command {
    command_name    check_ipfire_update
    command_line    $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.8072.1.3.2.3.1.1.6.117.112.100.97.116.101 -s 0 -c 2 -l "Update"
}

Créer et configurer un point d’accès wifi

Mise en situation

Ipfire-Wifi

Le schéma à droite est la première configuration réseau que j’ai testé et mis en place au sein de ma maison. Cependant, créer un point d’accès wifi avec Ipfire peut devenir compliqué surtout quand vous ne possédez que deux cartes réseaux, une ethernet et une wifi, comme les pc portables.

Précaution

D’abord, il faut s’assurer que la carte Ethernet soit bien définit sur red et que la carte wifi soit bien sur green. Normalement pendant l’installation de la distribution, vous avez pu activer le serveur DHCP sur green.

Créer un point d’accès wifi

Après une fraiche installation, il est tout à fait possible de configurer ipfire en ligne de commande. Après s’être rassuré qu’Ipfire soit connecté à Internet, on installe hostapd en ligne de commande.

[code lang= »bash »]pakfire install hostapd
[/code]

Normalement, vous avez un point d’accès visible avec vos autres terminaux. Cependant, il est possible de le modifier rapidement grâce à un heredoc (et de choisir le mot de passe).

[code lang= »bash »]cat << EOF > /var/ipfire/wlanap/setting
DRIVER=NL80211
COUNTRY=FR
CHANNEL=1
INTERFACE=green0
TXPOWER=auto
HW_MODE=g
MACMODE=0
PWD=un_mot_de_passe
DEBUG=0
SYSLOGLEVEL=0
ENC=wpa2
SSID=’Hotspot Wifi via IpFire’
HIDESSID=off
APMODE=on
HTCAPS=
EOF

/etc/init.d/hostapd start
[/code]

Explication:

Pendant que le script /etc/init.d/hostapd lit le fichier /var/ipfire/wlanap/setting, le fichier de configuration /var/ipfire/wlanap/hostapd.conf est renseigné et enfin le point d’accès de lance.

Edit: Suite à une modification de l’installation, ipfire ne nat plus automatiquement, pour l’activer, soit vous allez dans les options à la page https://ipfire:444/cgi-bin/optionsfw.cgi, ou en une ligne de commande.

[code lang= »bash »]sed -i.bak ‘s/^MASQUERADE_GREEN=.*/MASQUERADE_GREEN=on/’ /var/ipfire/optionsfw/settings
[/code]

Il manque plus qu’un « reboot » ou « /etc/init.d/firewall reload ».