Activar SNMP en pfSense y consulta de cliente SNMP desde un Debian

Un post rápido sobre cómo activar SNMP en pfSense y cómo hacer una consulta SNMP desde un Debian al pfSense

Para activar el daemon SNMP en pfSense, ir a: Services > SNMP

Y habilitar (enable), configurar, indicar la o las interfaces donde va a escuchar el daemon SNMP (bind interface) y salvar

captura-de-pantalla-de-2016-11-23-144343

Ahora mi pfSense responderá a queries SNMP en su interfaz LAN

Desde un Debian, instalo snmp

apt-get update

apt-get install snmp

apt-get install snmp-mibs-downloader

download-mibs

Y efectuo un SNMP querie a la rama public a la ip de la interfaz LAN del pfSense

snmpwalk -v1 -cpublic 192.168.0.254 | more

captura-de-pantalla-de-2016-11-23-144530

Y voila 🙂

(Visited 29 times, 1 visits today)

pfSense script getIblockListByCategory.sh – Obtener listas iBlockLists en categorias

captura-de-pantalla-de-2016-11-20-141015

getIblockListByCategory.sh , un shell script testeado en pfSense 2.3.2_1, para descargar las listas (no de pago) de IblockLists en ficheros gz con el nombre de la categoria (spyware.gz, webexploit.gz, etc)

captura-de-pantalla-de-2016-11-20-140931

Se aloja en un directorio (por ejemplo /scripts) y se ejecuta con

sh /scripts/getIblockListByCategory.sh

Y descarga los ficheros en /tmp/iblocklist/

[2.3.2-RELEASE][root@pfSense232a.localdomain]/scripts: ls -l /tmp/iblocklist/                  total 7188
-rw-r--r--  1 root  wheel     5052 Nov 20 00:01 DROP.gz
-rw-r--r--  1 root  wheel       80 Nov 19 23:01 HOSTS.gz
-rw-r--r--  1 root  wheel    67690 Nov 20 02:02 Malicious.gz
-rw-r--r--  1 root  wheel    12946 Nov 19 19:07 Microsoft.gz
-rw-r--r--  1 root  wheel      231 Nov 19 19:50 Palevo.gz
-rw-r--r--  1 root  wheel   178438 Nov 19 15:00 Pedophiles.gz
-rw-r--r--  1 root  wheel      769 Nov 20 09:15 SpyEye.gz
-rw-r--r--  1 root  wheel     1698 Nov 19 15:20 ZeuS.gz
-rw-r--r--  1 root  wheel    47520 Nov 19 19:48 ads.gz
-rw-r--r--  1 root  wheel   114074 Nov 20 03:01 adservers.gz
-rw-r--r--  1 root  wheel   445274 Nov 19 19:45 badpeers.gz
-rw-r--r--  1 root  wheel    18010 Nov 19 16:11 bogon.gz
-rw-r--r--  1 root  wheel    46173 Nov 20 13:30 cruzitwebattacks.gz
-rw-r--r--  1 root  wheel      625 Nov 19 19:43 dshield.gz
-rw-r--r--  1 root  wheel   758263 Nov 19 20:06 edu.gz
-rw-r--r--  1 root  wheel     3946 Nov 20 02:43 exclusions.gz
-rw-r--r--  1 root  wheel      165 Nov 20 05:52 fornonlancomputers.gz
-rw-r--r--  1 root  wheel     3432 Nov 19 20:04 forumspam.gz
-rw-r--r--  1 root  wheel     3334 Nov 19 14:40 hijacked.gz
-rw-r--r--  1 root  wheel      114 Nov 20 04:21 iana-multicast.gz
-rw-r--r--  1 root  wheel      406 Nov 20 09:49 iana-private.gz
-rw-r--r--  1 root  wheel      283 Nov 19 15:48 iana-reserved.gz
-rw-r--r--  1 root  wheel  3665537 Nov 20 08:24 level1.gz
-rw-r--r--  1 root  wheel  1321060 Nov 19 18:12 level2.gz
-rw-r--r--  1 root  wheel   268600 Nov 19 20:35 level3.gz
-rw-r--r--  1 root  wheel     2537 Nov 19 21:24 malc0de.gz
-rw-r--r--  1 root  wheel       80 Nov 19 16:43 malwaredomainlist.gz
-rw-r--r--  1 root  wheel    37023 Nov 19 23:13 proxy.gz
-rw-r--r--  1 root  wheel     5314 Nov 20 03:35 rangetest.gz
-rw-r--r--  1 root  wheel     9350 Nov 19 19:55 spider.gz
-rw-r--r--  1 root  wheel    50334 Nov 20 04:36 spyware.gz
-rw-r--r--  1 root  wheel    19784 Nov 20 02:37 webexploit.gz

El código de getIblockListByCategory.sh

#!/bin/sh
# getIblockListByCategory.sh
# get iblocklist lists by Category
# @javcasta - Javier Casta?non - https://javcasta.com/ - 2016

if [ ! -d /tmp/iblocklist ]; then
 mkdir /tmp/iblocklist
fi

#categories
for CATEGORY in `curl -s https://www.iblocklist.com/lists.php | egrep -A1 '>*</a></span></td>' | cut -d '>' -f 5 | cut -d '<' -f 1`; do
	CATEGORIES="${CATEGORIES} $CATEGORY"
done

J=1
#download
for NAME in `curl -s https://www.iblocklist.com/lists.php | egrep -A1 '>*</a></span></td>' | egrep -o '[a-z]{20}'`; do
	MYID='$'$J
	#echo $J
	CATEGORY=`echo ${CATEGORIES} | awk -F' -- ' "{ print $MYID }" | tr -d '[[:space:]]'`
	echo $CATEGORY
	J=$((J+1))
	fetch -q -o /tmp/iblocklist/${CATEGORY}.gz "http://list.iblocklist.com/?list=${NAME}&fileformat=p2p&archiveformat=gz"
done

Y voila 🙂

(Visited 150 times, 1 visits today)

Scripting – pfSense-install-FreeBSD-Package.sh – Instalar paquete FreeBSD en pfSense 2.3.x

Referencia: pfSense-install-FreeBSD-Package.sh – Instalar paquete FreeBSD en pfSense 2.3.x

Enlazando con el post:pfSense 2.3 – Instalar paquetes FreeBSD – pscp (putty-tools)

Un shell script: pfSense-install-FreeBSD-Package.sh

Para instalar paquetes de FreeBSD en pfSense.

#!/bin/sh
# pfSense-install-FreeBSD-Package.sh
# @javcasta – Javier Casta?non – 2016 – https://javcasta.com/
###############################################################
# Install FreeBSD package at pfSense 2.3
# Use # sh pfSense-install-FreeBSD-Package.sh <FreeBSD-Package>
###############################################################

# FreeBSD: { enabled: no } =>  FreeBSD: { enabled: yes }
# /usr/local/share/pfSense/pkg/repos/pfSense-repo.conf
# /usr/local/etc/pkg/repos/FreeBSD.conf

if [ $# -eq 0 ]
then
echo “No package supplied”
exit 1
fi

FAUX=”/tmp/fauxf2b.tmp”
FILE1=”/usr/local/share/pfSense/pkg/repos/pfSense-repo.conf”
cp $FILE1 /usr/local/share/pfSense/pkg/repos/pfSense-repo.conf.back
FILE2=”/usr/local/etc/pkg/repos/FreeBSD.conf”
cp $FILE2 /usr/local/etc/pkg/repos/FreeBSD.conf.back
NOFREEBSD=”FreeBSD: { enabled: no }”
YESFREEBSD=”FreeBSD: { enabled: yes }”
sed “s|$NOFREEBSD|$YESFREEBSD|” $FILE1  > $FAUX
cp $FAUX $FILE1
sed “s|$NOFREEBSD|$YESFREEBSD|” $FILE2  > $FAUX
cp $FAUX $FILE2

pkg bootstrap
pkg update
yes | pkg lock pkg
pkg lock pfSense-2.3.2
pkg lock dnsmasq-devel
echo ” Install package $1″
yes | pkg install $1
yes | pkg unlock pkg
pkg unlock pfSense-2.3.2
pkg unlock dnsmasq-devel
#rehash

#back
sed “s|$YESFREEBSD|$NOFREEBSD|” $FILE1  > $FAUX
cp $FAUX $FILE1
sed “s|$YESFREEBSD|$NOFREEBSD|” $FILE2  > $FAUX
cp $FAUX $FILE2

La captura de pantalla anterior es para el paquete FreeBSD py27-fail2ban

sh pfSense-install-FreeBSD-Package.sh py27-fail2ban

Y voila 🙂


Aviso de un Admin del foro

https://forum.pfsense.org/index.php?topic=121354.msg670799#msg670799

    Do not do this. We don’t allow FreeBSD packages to be installed directly with good reason. It’s only a matter of time before something gets screwed up in the dependencies or a package gets replaced and the whole system is hosed, or it’ll break wildly on upgrade.

Que viene a decir:

    No hacer esto. No permitimos que los paquetes de FreeBSD se instalen directamente por una buena razón. Es sólo cuestión de tiempo antes de que algo se fastidie en las dependencias o un paquete se reemplaze y todo el sistema esté mal, o se romperá salvajemente en la actualización.

 Lo cual tiene su lógica, ya que las dependencias , pfSense las buscará en sus repositorios y no en los de FreeBSD, ya que pfSense es una distro personalizada de FreeBSD

Así que las pruebas nunca en producción o bajo la responsabilidad de cada uno

(Visited 41 times, 1 visits today)

pfSense – Snort y OpenAppID:Bloquear protocolos de capa 7: openvpn,Facebook,twitter

Referencia: https://forum.pfsense.org/index.php?topic=120647.0

Tras investigar cómo ntopng y Snort detectan loos protocolos de capa 7 ( https://forum.pfsense.org/index.php?topic=120520 , https://forum.pfsense.org/index.php?topic=120399 )

Ahora he configurado Snort para que me bloquee en la LAN, el tráfico de OpenVPN, FaceBook y Twitter.

Obviamente se debe añadir la interfaz LAN a Snort, configurarala sgún necesidades de tu red (hay mucha doc en el foro y google), y para bloquear: OpenVPN, Facebook y Twitter.:

Services > Snort > RulesLAN > Lan Rules > Custom Rules: añadir las reglas

alert tcp any any -> any any (msg:”Facebook1″; appid: facebook; sid: 9000101; classtype:misc-activity; rev:1;)
alert udp !192.168.0.13/32 any -> any any (msg:”OpenVPN”; appid: openvpn;sid: 9000103; classtype:misc-activity; rev:1;)
alert tcp any any -> any any (msg:”Facebook2″; appid: facebook_apps;sid: 9000105; classtype:misc-activity; rev:1;)
alert tcp any any -> any any (msg:”Facebook3″; appid: facebook_like;sid: 9000107; classtype:misc-activity; rev:1;)
alert tcp !192.168.0.13/32 any -> any any (msg:”Twitter1″; appid: twitter;sid: 9000109; classtype:misc-activity; rev:1;)

Atendiendo de poner el sid adecuado (que no esté en uso por otra regla) y asgurándose que en Snort esté habilitado

 Services > Snort > Global Settings > Sourcefire OpenAppID Detectors
Enable OpenAppID

Click to enable download of Sourcefire OpenAppID Detectors

–     Services > Snort > Preprocessors and Flow > LAN > Application ID Detection
Enable

Use OpenAppID to detect various applications. Default is Not Checked.

Las reglas con source !192.168.0.13/32 , indican cualquier origen menos la IP 192.168.0.13 (la forma de definir una excepción en una regla de snort . No aplicamos la restricción a esa IP).

Una cosa importante a la hora de añadir una custom rule en Snort para bloquear protocolos de capa 7, es saber cómo Snort denomina los protocolos para construir la regla.

Por ejemplo para saber todos los protocolos relacionados con FaceBook que Snort reconoce.
Bastaria con hacer un grep filtrando lo que buscamos al volcado del fichero:

/usr/local/etc/snort/appid/odp/appMapping.data

[2.3.2-RELEASE][root@pfSense232a.localdomain]/root: cat /usr/local/etc/snort/appid/odp/appMapping.data | grep facebook
149   Facebook Apps   0   0   852   ~   facebook_apps
629   Facebook   0   161   17   ~   facebook
4068   Facebook Like   0   0   1846   ~   facebook_like

Y ya podremos implementar la regla, con sid adecuado (empezar por el sid 9000000 y >,  asegura que no interfiera con sids de otras reglas ya definidas)

alert tcp any any -> any any (msg:”Facebook3″; appid: facebook_like;sid: 9000107; classtype:misc-activity; rev:1;)

El classtype en una regla personalizada en snort en pfSense, tras leer posts del foro, se recomienda poner alguno siempre, por ejemplo : misc-activity

It is also vital that you always include a “classtype:” keyword in your custom rules

Y voila 🙂

(Visited 390 times, 1 visits today)

Forzar sshd habilitado al inicio del sistema – script force-at-boot-enable-ssh.sh

force-at-boot-enable-sshd

Una demo de como ejecutar un shell script (*.sh) al inicio del sistema en pfSense

#!/bin/sh
# force at boot enable sshd
# force-at-boot-enable-sshd.sh
# @javcasta – 2016 – https://javcasta.com/
# source code /etc/rc.initial
# host this script at /usr/local/etc/rc.d/force-at-boot-enable-ssh.sh
# add execution privilege: chmod +x /usr/local/etc/rc.d/force-at-boot-enable-ssh.sh
# Check to see if SSH is running.
if pgrep -q -a -F /var/run/sshd.pid sshd >/dev/null 2>&1; then
echo “already enable sshd”;
else
#run unattended php -f /etc/rc.initial.toggle_sshd
yes | php -f /etc/rc.initial.toggle_sshd
fi

El script se aloja en /usr/local/etc/rc.d/force-at-boot-enable-ssh.sh

Se le dan permisos de jecución chmod +x /usr/local/etc/rc.d/force-at-boot-enable-ssh.sh

[2.3.2-RELEASE][root@pfSense232a.localdomain]/usr/local/etc/rc.d: ./force-at-boot-enable-ssh.sh 
already enable sshd

Reloading firewall rules. done.
[2.3.2-RELEASE][root@pfSense232a.localdomain]/root: yes | php -f /etc/rc.initial.toggle_sshd
SSHD is currently disabled.  Would you like to enable? [y/n]? 
Writing configuration... done.

Enabling SSHD...
Reloading firewall rules. done.

Y al inicio del sistema de pfSense, si no esta habilitado sshd, se habilita (de forma no atendida).

Y voila 🙂

(Visited 30 times, 1 visits today)

pfSense – snort : Detectando protocolos usados en tu red con OpenAppID

Enlazando con el post anterior: pfSense – ntopng : Detectando protocolos usados en tu red con ndpiReader vía shell .

Ahora muestro cómo detectar protocolos de capa de aplicación (Layer 7) en pfSense con el paquete snort instalado con OpenAppID habilitado:

En Services > Snort > Global Settings. > Sourcefire OpenAppID Detectors: Habilitar:

captura-de-pantalla-de-2016-11-02-155756
Salvar cambios y reiniciar el servicio Snort.
Tras un tiempo para que snort y OpenAppID recolecten datos, podremos mirar los protocolos detectados:
  • Vía GUI: En Services > Snort > Snort interfaces > Wan Logs > app-stats.log
captura-de-pantalla-de-2016-11-02-155839
  • Vía shell: Desde shell, con el comando: (target fichero: app-stats-log.MARCA-DE-TIEMPO )
    • u2openappid /var/log/snort/snort_em024285/app-stats.log.1478100006

captura-de-pantalla-de-2016-11-02-155920

[2.3.2-RELEASE][root@pfSense232a.localdomain]/: u2openappid /var/log/snort/snort_em024285/app-stats.log.1478100006
statTime="1478099700",appName="DNS",txBytes="174",rxBytes="218"
statTime="1478099700",appName="__unknown",txBytes="1727",rxBytes="5714"
statTime="1478099700",appName="__unknown",txBytes="2984",rxBytes="1168"
statTime="1478100000",appName="HTTPS",txBytes="1992",rxBytes="7017"
statTime="1478100000",appName="__unknown",txBytes="8065",rxBytes="2593"
statTime="1478100000",appName="__unknown",txBytes="336",rxBytes="402"
statTime="1478100300",appName="__unknown",txBytes="448",rxBytes="580"
statTime="1478100300",appName="__unknown",txBytes="224",rxBytes="224"
statTime="1478100600",appName="Google",txBytes="2692",rxBytes="5399"
statTime="1478100600",appName="HTTPS",txBytes="2692",rxBytes="5399"
statTime="1478100600",appName="SSL client",txBytes="2692",rxBytes="5399"
statTime="1478100600",appName="__unknown",txBytes="3471",rxBytes="770"
statTime="1478100600",appName="__unknown",txBytes="178",rxBytes="178"
statTime="1478100900",appName="Google",txBytes="2980",rxBytes="6172"
statTime="1478100900",appName="HTTPS",txBytes="2980",rxBytes="6172"
statTime="1478100900",appName="SSL client",txBytes="2980",rxBytes="6172"
statTime="1478100900",appName="__unknown",txBytes="1762",rxBytes="1395"
statTime="1478101200",appName="Google",txBytes="1238",rxBytes="5366"
statTime="1478101200",appName="Firefox",txBytes="761",rxBytes="2672"
statTime="1478101200",appName="Gmail",txBytes="3276",rxBytes="6218"
statTime="1478101200",appName="HTTP",txBytes="761",rxBytes="2672"
statTime="1478101200",appName="HTTPS",txBytes="6325",rxBytes="16093"
statTime="1478101200",appName="Mozilla",txBytes="1811",rxBytes="4509"
statTime="1478101200",appName="SSL client",txBytes="6325",rxBytes="16093"
statTime="1478101200",appName="GoDaddy",txBytes="761",rxBytes="2672"
statTime="1478101200",appName="__unknown",txBytes="1233",rxBytes="848"
statTime="1478101200",appName="Firefox",txBytes="1753",rxBytes="5116"
statTime="1478101200",appName="HTTP",txBytes="1753",rxBytes="5116"
statTime="1478101200",appName="HTTPS",txBytes="11131",rxBytes="76597"
statTime="1478101200",appName="Gravatar",txBytes="723",rxBytes="3957"
statTime="1478101500",appName="Google",txBytes="9844",rxBytes="31304"
statTime="1478101500",appName="HTTPS",txBytes="11740",rxBytes="38018"
statTime="1478101500",appName="SSL client",txBytes="9844",rxBytes="31304"
statTime="1478101500",appName="__unknown",txBytes="9938",rxBytes="1718"
statTime="1478101500",appName="Google",txBytes="10250",rxBytes="34118"
statTime="1478101500",appName="HTTPS",txBytes="34320",rxBytes="268372"
statTime="1478101500",appName="SSL client",txBytes="10250",rxBytes="34118"
statTime="1478101500",appName="__unknown",txBytes="5579",rxBytes="27426"
statTime="1478101800",appName="__unknown",txBytes="11675",rxBytes="5171"

 

Y voila 🙂

(Visited 59 times, 1 visits today)

pfSense – ntopng : Detectando protocolos usados en tu red con ndpiReader vía shell

Referencia: http://www.ntop.org/wp-content/uploads/2013/12/nDPI_QuickStartGuide.pdf

captura-de-pantalla-de-2016-10-31-133743

Si tienes instalado el paquete ntopng en pfSense, ya sabrás que es una herramienta de monitorización de red.

ntopng (replaces ntop) is a network probe that shows network usage in a way similar to what top does for processes. In interactive mode, it displays the network status on the user’s terminal. In Web mode it acts as a Web server, creating an HTML dump of the network status. It sports a NetFlow/sFlow emitter/collector, an HTTP-based client interface for creating ntop-centric monitoring applications, and RRD for persistently storing traffic statistics.

Tiene un ejecutable /usr/local/bin/ndpiReader que permite la detección de protocolos de capa de aplicación (layer-7).

Su uso vía shell:

/usr/local/bin/ndpiReader
Welcome to nDPI 1.8.0

ndpiReader -i <file|device> [-f <filter>][-s <duration>]
[-p <protos>][-l <loops> [-q][-d][-h][-t][-v <level>]
[-n <threads>] [-w <file>] [-j <file>]

Usage:
-i <file.pcap|device>     | Specify a pcap file/playlist to read packets from or a device for live capture (comma-separated list)
-f <BPF filter>           | Specify a BPF filter for filtering selected traffic
-s <duration>             | Maximum capture duration in seconds (live traffic capture only)
-p <file>.protos          | Specify a protocol file (eg. protos.txt)
-l <num loops>            | Number of detection loops (test only)
-n <num threads>          | Number of threads. Default: number of interfaces in -i. Ignored with pcap files.
-j <file.json>            | Specify a file to write the content of packets in .json format
-d                        | Disable protocol guess and use only DPI
-q                        | Quiet mode
-t                        | Dissect GTP/TZSP tunnels
-r                        | Print nDPI version and git revision
-w <path>                 | Write test output on the specified file. This is useful for
| testing purposes in order to compare results across runs
-h                        | This help
-v <1|2>                  | Verbose ‘unknown protocol’ packet print. 1=verbose, 2=very verbose

Por ejemplo: Una captura de tráfico durante 5sg en la interfaz em1

/usr/local/bin/ndpiReader -i em1 -s 5

Con output:

———————————————————–
* NOTE: This is demo app to show *some* nDPI features.
* In this demo we have implemented only some basic features
* just to show you what you can do with the library. Feel
* free to extend it and send us the patches for inclusion
————————————————————

Using nDPI (1.8.0) [1 thread(s)]
Capturing live traffic from device em1…
Capturing traffic up to 5 seconds
Running thread 0…

nDPI Memory statistics:
nDPI Memory (once):      107.66 KB
Flow Memory (per flow):  1.88 KB
Actual Memory:           2.01 MB
Peak Memory:             2.01 MB

Traffic statistics:
Ethernet bytes:        5752          (includes ethernet CRC/IFC/trailer)
Discarded bytes:       0
IP packets:            17            of 17 packets total
IP bytes:              5344          (avg pkt size 314 bytes)
Unique flows:          5
TCP Packets:           16
UDP Packets:           1
VLAN Packets:          0
MPLS Packets:          0
PPPoE Packets:         0
Fragmented Packets:    0
Max Packet size:       1082
Packet Len < 64:       8
Packet Len 64-128:     2
Packet Len 128-256:    1
Packet Len 256-1024:   5
Packet Len 1024-1500:  1
Packet Len > 1500:     0
nDPI throughput:       3.09 pps / 8.18 Kb/sec
Traffic throughput:    3.09 pps / 8.18 Kb/sec
Traffic duration:      5.495 sec
Guessed flow protos:   4

Detected protocols:
SSL                  packets: 12            bytes: 4785          flows: 3
SSH                  packets: 4             bytes: 448           flows: 1
OpenVPN              packets: 1             bytes: 111           flows: 1

Protocol statistics:
Safe                          4896 bytes
Acceptable                     448 bytes

Donde obtenemos en ese periodo en la interfaz em1 que se estan usando los protocolos:

  • SSL
  • SSH
  • OpenVPN

Obviamente vía GUI del paquete ntopng en pfSense la información es infinitamente más detallada y variada de lo que ocurre en tu red

captura-de-pantalla-de-2016-10-31-135424

Y voila 🙂

(Visited 221 times, 1 visits today)

pfSense – Modificar gif (1×1) de DNSBL de pfBlockerNG

Cuando el DNSBL de pfBlockerNG, encuentra un dominio bloqueado, muestra un gif de 1×1.

Para que muestre un gif con un mensaje, por ejemplo FORBIDDEN (prohibido). para que al usuario al navegar, le quede clara la situación, se puede hacer sustituyendo el gif de 1×1 codificado en base64 po otro gif en el fichero:

/usr/local/www/pfblockerng/www/index.php

Por ejemplo el código de mi /usr/local/www/pfblockerng/www/index.php

( Ver código en: https://forum.pfsense.org/index.php?topic=120253.msg665188#msg665188 )

Sustituyo la imagen gif 1×1 codificada en base64

echo base64_decode('R0lGODlhAQABAJAAAP8AAAAAACH5BAUQAAAALAAAAAABAAEAAAICBAEAOw==');

Por otra, que muestra la imagen:

( ver código en https://forum.pfsense.org/index.php?topic=120253.msg665188#msg665188 )

captura-de-pantalla-de-2016-10-28-125800

Y voila 🙂

(Visited 138 times, 1 visits today)

Cómo crear y compilar un ejecutable en C++ para pfSense 2.3.2

Un mini tutorial de cómo crear un ejecutable de C++ para pfSense 2.3.2

Desde una shell de una máquina con FreeBSD 10.3 editamos el código fuente :

ee ejecutable.cpp

Sea el código fuente C++ (un sencillo ejemplo de Hola mundo 🙂 ) :

//C++
#include <iostream>
#include <fstream>
using namespace std;
int main () {
cout << “Hola mundo” << endl;
return 0;
}

captura-de-pantalla-de-2016-10-27-153022

Salvamos el fichero (esc > a) leave editor > a) save changes )

Compilamos el ejecutable.cpp en ejecutable.bin

CC -o ejecutable.bin ejecutable.cpp

Copiamos ejecutable.bin desde la máquina FreeBSD al directorio /tmp del pfSense

scp ejecutable.bin root@10.168.0.254:/tmp

captura-de-pantalla-de-2016-10-27-153027

Y desde la shell de pfSense, ejecutamos /tmp/ejecutable.bin

/tmp/ejecutable.bin

captura-de-pantalla-de-2016-10-27-153030

Y voila 🙂

(Visited 86 times, 1 visits today)

pfSense – Descargar script comprimido en formato zip, extraerlo y ejecutarlo

captura-de-pantalla-de-2016-10-27-150433

Post sencillo para ilustrar para aquellos que deseen desde la shell de pfSense:

  • Descargar un fichero (conteniendo un script) en formato zip:
    • /usr/bin/fetch -q -o /tmp/wgmtu.zip “http://www.javcasta.com/?smd_process_download=1&download_id=17386”

  • Descomprimir el script del fichero en formato zip
    • unzip -d /tmp /tmp/wgmtu.zip

  • Y ejecutar el script (en este caso un sh/bash script)
    • sh /tmp/getMTUv2.sh

 

Y voila 🙂

(Visited 25 times, 1 visits today)