View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

Seguridad en sico

Cambios que afectan a la seguridad de la red de SICO





Tuesday, 17 December 2024, 11:53:36 am
Permito binds arbitrarios a los puertos forwardeados en vps.sicosoft.es y forwardeo puertos para una prueba (junto con sus reglas de firewall), ya que se reuiere que revenga pueda conectarse a un pupitre de prueba, al vnc de un ui_pupitre configuirado en la maqueta de SICO y transferir archivos por ftp a dicho pupitre de prueba Todo esto está basadp en un autossh desde uiharu, que hace los forwardeos de puertos desde vps, junto con unas reglas del firewall en el propio vps, que hacen que sólo pueda utilizar esto la IP que revenga nos ha facilitado. Además se ha hecho que sólo se pueda usar en un periodo lectivo determinado usando un crontab.

En vps.sicosoft.es, como root (para poder hacer que el bind de una IP determinada en el forwardeo de ssh; así evitamos el tener que redirigir un puerto a localhost con otro programa adicional):
sed -i "/^GatewayPorts.*/d" /etc/ssh/sshd_config
echo "GatewayPorts clientspecified" >> /etc/ssh/sshd_config
/etc/init.d/ssh restart


En vps.sicosoft.es, se edita el /etc/default/iptables (la IP que está puesta es la que nos ha facilitado revenga, que es desde la IP que se van a conectar) para que quede de la siguiente manera:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
IPTABLES=/sbin/iptables
DEV=ens3

echo "$(date) $0 $@" >> /tmp/iptables.log

if [ "m$1" = "m--help" ] ; then
        echo "$0 [revenga]"
        exit 1
fi
REVENGA=off
while [ "m$1" != "m" ] ; do
        if [ "m$1" = "mrevenga" ] ; then
                REVENGA=on
        else
                echo "Parametro no reconocido: $1"
        fi
        shift
done


# Activamos el anti-spoofing
for i in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 >$i ; done

# Don't respond to broadcast pings (Smurf-Amplifier-Protection)
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Block source routing
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route

# Kill timestamps
echo 0 > /proc/sys/net/ipv4/tcp_timestamps

# Enable SYN Cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Desabilitar la redireccion del ping
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects

# Enable bad error message protection
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

# Registrar los paquetes extranios (martians: packets with impossible addresses)
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians

# Anti-flooding o inundacin de tramas SYN.
$IPTABLES -N syn-flood
for IFACE in `ifconfig -a | grep -B 1 "inet addr" | grep ^[a-z] | expand | cut -d ' ' -f 1 | grep -v "^lo\$"` ; do
        $IPTABLES -A INPUT -i $IFACE -p tcp --syn -j syn-flood
done
$IPTABLES -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
$IPTABLES -A syn-flood -j DROP

# Quitamos todo lo que hubiera
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

$IPTABLES -F
$IPTABLES -F -t mangle
$IPTABLES -F -t nat
$IPTABLES -X
$IPTABLES -X -t mangle
$IPTABLES -X -t nat

for i in `$IPTABLES -L | grep "^Chain" | cut -d " " -f 2 | grep -v "INPUT\|FORWARD\|OUT
PUT"` ; do
        $IPTABLES -F $i
        $IPTABLES -X $i
done

$IPTABLES -A INPUT -s 83.48.87.215/32 -j ACCEPT
# START Pupitre y VNC de pruebas para revenga
if [ "m$REVENGA" != "moff" ] ; then
        ip_revenga=195.57.30.139
        $IPTABLES -A INPUT -s ${ip_revenga}/32 -p tcp --dport 5900 -j ACCEPT
        $IPTABLES -A INPUT -s ${ip_revenga}/32 -p tcp --dport 5899 -j ACCEPT
        $IPTABLES -A INPUT -s ${ip_revenga}/32 -p tcp --dport 20 -j ACCEPT
        $IPTABLES -A INPUT -s ${ip_revenga}/32 -p tcp --dport 21 -j ACCEPT
        $IPTABLES -A INPUT -s ${ip_revenga}/32 -p tcp --dport 60000 -j ACCEPT
        $IPTABLES -A INPUT -s ${ip_revenga}/32 -p tcp --dport 60001 -j ACCEPT
        $IPTABLES -A INPUT -s ${ip_revenga}/32 -p tcp --dport 60002 -j ACCEPT
        $IPTABLES -A INPUT -s ${ip_revenga}/32 -p tcp --dport 60003 -j ACCEPT
        $IPTABLES -A INPUT -s ${ip_revenga}/32 -p tcp --dport 60004 -j ACCEPT
        $IPTABLES -A INPUT -s ${ip_revenga}/32 -p tcp --dport 60005 -j ACCEPT
fi
$IPTABLES -A INPUT -p tcp --dport 5900 -j DROP
$IPTABLES -A INPUT -p tcp --dport 5899 -j DROP
$IPTABLES -A INPUT -p tcp --dport 20 -j DROP
$IPTABLES -A INPUT -p tcp --dport 21 -j DROP
$IPTABLES -A INPUT -p tcp --dport 60000 -j DROP
$IPTABLES -A INPUT -p tcp --dport 60001 -j DROP
$IPTABLES -A INPUT -p tcp --dport 60002 -j DROP
$IPTABLES -A INPUT -p tcp --dport 60003 -j DROP
$IPTABLES -A INPUT -p tcp --dport 60004 -j DROP
$IPTABLES -A INPUT -p tcp --dport 60005 -j DROP
# END Pupitre y VNC de pruebas para revenga

$IPTABLES -A INPUT -p tcp --dport 25 -j DROP
$IPTABLES -A INPUT -p udp --dport 25 -j DROP

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT


En vps.sicosoft.es, como root, se instala el anacron:
apt-get install anacron


En vps.sicosoft.es, como root, se añaden las siguientes dos entrafas al crontab de root (como root:"crontab -e"):
0 8 * * 1,2,3,4,5 /bin/bash /etc/default/iptables revenga
0 18 * * 1,2,3,4,5 /bin/bash /etc/default/iptables



Y luego, en vps.sicosoft.es, como root:
 /etc/init.d/ssh restart
 bash /etc/default/iptables revenga


Por último, en uiharu, se añade una línea en el /etc/init.d/rc.local
sudo -u dario autossh -f -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -N root@vps.sicosoft.es -R 51.38.32.171:5900:3.0.1.64:5900 -R 51.38.32.171:5899:3.0.1.59:2500 -R 51.38.32.171:20:3.0.1.59:20 -R 51.38.32.171:21:3.0.1.59:21 -R 51.38.32.171:60000:3.0.1.59:60000 -R 51.38.32.171:60001:3.0.1.59:60001 -R 51.38.32.171:60002:3.0.1.59:60002 -R 51.38.32.171:60003:3.0.1.59:60003 -R 51.38.32.171:60004:3.0.1.59:60004 -R 51.38.32.171:60005:3.0.1.59:60005


Update 20241219 Se usa el crontab para que las sólo acepte conexiones a dichos puertos de L-V de 8h a 18h.

Update 20250113 Se añaden los puertos 20 y 21 para que puedan usar el ftp en modo pasivo (en modo normal del ftp no funcionará por no haber algo similar al conntrack del NAT del núcleo del linux para reeescribir los paquetes del modo activo; si se quisiera hacer que funcionase eso también habría que poner algo que hiciera de proxy de ftp).

Update 20250114 Se añaden los puertos 60000-60005 para que si el servidor proftpd tiene configurado en el proftpd.conf la línea "PassivePorts 60000 60005", funcione todo correctamente.


Thursday, 3 October 2024, 9:22:51 am
Añado los puerto 5541 y 5542 a las scripts para que funcione la redirección de postgres de servpci1 y servpci2

1. En shirka modifico el S47sico_miscmain1. En shirka, como root:
cd /chroot/etc/rcS.d
mount -o remount,rw /chroot
vi S47sico_miscmain1
#...añado esos puertos al for que ya tenía el 5543
:wq
cp S47sico_miscmain1 /etc/rcS.d/
mount -o remount,ro /chroot

2. En shirka, hago el equivalente de reiniciar el autossh del rc.local. Para no interrumpir las conexiones actuales, simplemente arranco otro autossh. En shirka, como root:
cd /tmp
nohup autossh -nNT -i /root/.ssh/id_rsa -L 16.0.62.18:5541:localhost:5541 -L 16.0.62.18:5542:localhost:5542 metro@185.89.60.47 &

3. En shirka, modifico el firewall. En shirka, como root:
cd /chroot/etc/init.d
mount -o remount,rw /chroot
vi firewall
#...añado esos puertos al for que ya tenía el 5543
:wq
cp firewall /etc/init.d/
mount -o remount,ro /chroot
/etc/init.d/firewall


NOTA: en estos momentos, parece que no funciona el autossh si está el firewall arrancado con la redirección puesta. Basta con quitarlo del firewall y empieza a funcionar. Quizás haya que quitar la lista de puertos a redireccionar del firewall ya que no se usa ya eso...


Monday, 13 November 2023, 10:42:59 am
(ESTOS SON LOS CAMBIOS PARA DEJAR DE USAR vpn_reiter Y USAR EL SSH A IPFIJA)
En shirka, se ha cambiado el /chroot/etc/ssh/sshd_config para que sólo escuche en el el 3.0.1.42 De manera que quede el 16.0.62.18 libre en caso de hacer un alias a dicha IP.

Se ha añadido la siguiente línea al etc/ssh/sshd_config del /chroot :
 ListenAddress 3.0.1.42

Y luego se ha reiniciado el servidor ssh:
 /etc/init.d/ssh restart

En shirka se ha cambiado que los socat de redirecciones de puerto sólo hagan bind al 3.0.1.42 y 127.0.0.1

Básicamente se han buscado los "TCP4-LISTEN:" y se han duplicado las líneas, poniendo un ,bind=3.0.1.42 en la primera y un ,bind=127.0.0.1 en la segunda.

Por ejemplo quedaría así:
./rcS.d/S47sico_miscmain1:/usr/bin/socat TCP4-LISTEN:${i},fork,bind=3.0.1.42 EXEC:"/usr/bin/sudo -u metro /usr/bin/ssh misc${i}@16.0.62.18" &
./rcS.d/S47sico_miscmain1:/usr/bin/socat TCP4-LISTEN:${i},fork,bind=127.0.0.1 EXEC:"/usr/bin/sudo -u metro /usr/bin/ssh misc${i}@16.0.62.18" &


En shirka, como root
mount -o remount,rw /chroot
cd /chroot/etc
vi ./rcS.d/S47sico_maintdserver
vi ./rcS.d/S47sico_webmain1
vi ./rcS.d/S47sico_miscmain1 
cd /
mount -o remount,ro /chroot
reboot


En shirka se ha puesto en el rc.local para que haga el autossh con todas las redirecciones


En shirka, en el /chroot/etc/rc.local se añade lo siguiente (si se pone que su shell sea bash en vez de sh):
(
ifconfig eth0:1 16.0.62.18 netmask 255.255.255.255
cd /etc/rcS.d
puertos1=$(cat `ls | grep sico_` | grep TCP4-LISTEN:[0-9] | sed "s/^.*TCP4-LISTEN:\([0-9][0-9]*\).*/\1/g" | uniq)
puertos2=$(cat `ls | grep sico_` | grep ^for | sed "s/for i in //g;s/\; do//g" | tr '`' '\n' | grep seq | while read l ; do $l ; done)
puertos3=$(cat `ls | grep sico_` | grep ^for | sed "s/for i in //g;s/\; do//g" | tr '`' '\n' | grep -v seq  | tr ' ' '\n' | grep .)
params=""
for i in 22 $puertos1 $puertos2 $puertos3 ; do
        params="$params -L 16.0.62.18:$i:localhost:$i"
done
autossh -f -nNT -i /root/.ssh/id_rsa $params -L 2222:localhost:22 -R 2223:localhost:22 metro@185.89.60.47
)



En shirka, se quita el rearranque del vpn_reiter del crontab de root Ya que había uno a las 6.10am

En shirka, se renombra el vpn_reiter a vpn_reiter.disabled Para evitar problemas de que alguien le dé sin querer.


Wednesday, 8 November 2023, 10:31:47 am
Se ha habilitado un autossh en shirka que forwardea el puerto shirka:2222 al main1:22, y otro de main1:2223 a shirka:22 Siguiendo el siguiente procedimiento:

1. En main1, se ha añadido la clave rsa de root@shirka ( shirka:/root/.ssh/id_rsa )

2. En shirka, se ha instalado el paquete de autossh

3. En shirka, se ha añadido lo siguiente al /etc/rc.local (exactamenta al shirsk:/chroot/etc/rc.local)
autossh -f -nNT -i /root/.ssh/id_rsa -L 2222:localhost:22 -R 2223:localhost:22 metro@185.89.60.47


Hago que el firewall de shirka forwardee el 16.0.62.18:22 al 127.0.0.1:2222
En shirka, como root, edito el /etc/init.d/firewall :
vi /etc/init.d/firewall
# añado las siguientes líneas después del forwardeo del puerto 8081
# iptables -t nat -I OUTPUT -p tcp -d 16.0.62.18 --dport 22 -j DNAT --to-destination 127.0.0.1:2222
# iptables -t nat -A PREROUTING  -d 16.0.62.18 -p tcp --dport 22 -j DNAT --to 127.0.0.1:2222
#:wq
mount -o remount,rw /chroot/
cp  /etc/init.d/firewall /chroot/etc/init.d/firewall
mount -o remount,ro /chroot/
/etc/init.d/firewall



NOTA: se ha desactivado lo de esa regla del firewall porque no funcionaba.

Monday, 27 March 2023, 8:21:23 am
Añado el forwardeo del puerto 5545 al puerto correspondiente de main1 y el redir en main1 para acceder al postgresql de frontpci02 Se siguen las instrucciones de "Thursday, 3 September 2020, 8:55:37 am".


Wednesday, 29 June 2022, 9:27:49 am
Añado el forwardeo del puerto 5905 al puerto correspodinte de main1 y de paso actualizo el redir en main1 Se siguen las instrucciones de "Thursday, 3 September 2020, 8:55:37 am".

Monday, 27 June 2022, 9:06:34 am
Actualizo vps.sicosoft.es de Debian 9 a Debian 10 y a continuación a Debian 11 "Bullseye" Para poder instalar el wireguard en un futuro, por si es necesario.

Tuesday, 8 March 2022, 9:26:35 am
Añado los puertos 5543 5544 a los forwardeos de shirka Para el postgres de servtce1/2. Se siguen las instrucciones de "Thursday, 3 September 2020, 8:55:37 am".

Thursday, 2 September 2021, 11:41:13 am
Filtro en asterisk/obelisk las conexiones al exterior al puerto 25 Para minimizar el riesgo de que mandemos SPAM.

En asterisk y en obelisk, como root, edito el fichero /etc/default/iptables:
...
# Permitimos de forma explicita el correo desde salchicha y zen
-A FORWARD -p tcp -s 3.0.1.170 --dport 25 -j ACCEPT
-A FORWARD -p tcp -s 3.0.1.124 --dport 25 -j ACCEPT

# Denegamos de forma explicita el correo desde el resto de las maquinas de SICO
-A FORWARD -p tcp -s 3.0.1.0/24 --dport 25 -j LOG --log-prefix "noforward-correo:"
-A FORWARD -p tcp -s 3.0.1.0/24 --dport 25 -j DROP

#-A FORWARD -j LOG --log-prefix "noforward:"
COMMIT



Thursday, 1 July 2021, 10:02:32 am
Añado el puerto 5916/8016 a los forwardeos de shirka Para llegar al vnc/web del monitorwall que se ha instalado en granvia.

Tuesday, 9 March 2021, 8:19:58 am
Añado el puerto 5915/8015 a los forwardeos de shirka Para llegar al vnc/web del monitorwall que se ha instalado en tribunal.

Tuesday, 24 November 2020, 9:08:28 am
Añado los puerto 5914 y 8014 a los forwardeos de shirka Para llegar al vnc/web del monitorwall que se ha instalado en ¿arroyofresno?. Siguiendo las linstrucciones de "Thursday, 3 September 2020, 8:55:37 am"

Thursday, 3 September 2020, 8:55:37 am
Añado los puertos 8888 y 8889 a los forwardeos de shirka Como he puesto una redirección desde main1:8888 a servvent:8888 (tomcat) y 8889 a servsic:8888 (tomcat), añado el 8888 y 8889 a la lista de puertos forwardeados por shirka:

En shirka, como root:

1. Edito /etc/rcS.d/S47sico_miscmain1 y lo copio a disco:
cd
vi /etc/rcS.d/S47sico_miscmain1 
# añado el 8888 y 8889 a la lista de puertos de misc_main1.sh
#:wq
mount -o remount,rw /chroot/
cp  /etc/rcS.d/S47sico_miscmain1 /chroot/etc/rcS.d/S47sico_miscmain1 
mount -o remount,ro /chroot/
for i in 8888 8889 ; do nohup /usr/bin/socat TCP4-LISTEN:${i},fork,reuseaddr EXEC:"/usr/local/sbin/miscport.sh ${i}",pty,raw,echo=0 & done


2. Edito /etc/init.d/firewall y lo copio en disco:
vi /etc/init.d/firewall
# añado el 8888 8889 a la lista de puertos 
#:wq
mount -o remount,rw /chroot/
cp  /etc/init.d/firewall /chroot/etc/init.d/firewall
mount -o remount,ro /chroot/
/etc/init.d/firewall


NOTA: En main1 se ha hecho previamente lo siguiente:

En main1, como root
cd
./virinetd
# Se añaden las siguientes dos líneas (sin la almohadilla inicial)
#0.0.0.0 8888 16.0.62.10 8888
#0.0.0.0 8889 16.0.59.14 8888
#:wq
nohup redir --lport=8888 --caddr=16.0.62.10 --cport=8888 &
nohup redir --lport=8889 --caddr=16.0.59.14 --cport=8888 &



Thursday, 23 July 2020, 9:43:52 am
Hago que /root/renew-certbot.sh ponga temporalmente una redirección desde el vps a sico Ya que webmail.sicosoft.es está apuntando al vps en estos momentos.

asterisk:/root/renew-certbot.sh

#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
n=`certbot certificates 2>/dev/null | grep "[^A-Z]VALID: [0-9]" | wc -l | tr -dc 0-9`
daysleft=`certbot certificates 2>/dev/null | grep "[^A-Z]VALID: [0-9]" | head -1 | sed "s/^.*VALID: \([0-9][0-9]*\).*/\1/g"`
if [ "m$n" != "m1" ] || [ $daysleft -le 30 ] ; then
        ssh root@vps.sicosoft.es "ps -efa | grep 'redir .*83.48.87.215:80\|redir .*83.48.87.215:443' | expand | sed 's/  */ /g' | cut -d ' '  -f 2 | xargs kill"
        ssh root@vps.sicosoft.es "redir 51.38.32.171:80 83.48.87.215:80 ; redir 51.38.32.171:443 83.48.87.215:443 "
        service nginx stop
        certbot renew
        service nginx start
        ssh root@vps.sicosoft.es "ps -efa | grep 'redir .*83.48.87.215:80\|redir .*83.48.87.215:443' | expand | sed 's/  */ /g' | cut -d ' '  -f 2 | xargs kill"
        scp /etc/letsencrypt/live/sico.sicosoft.es/fullchain.pem /etc/letsencrypt/live/sico.sicosoft.es/privkey.pem root@zen:/etc/letsencrypt/live/sico.sicosoft.es/
        ssh root@zen "apache2ctl restart"
fi


Friday, 3 July 2020, 11:30:38 am
Habilito un usuario "tablet" en asterisk para forwardear a un puerto de main1 Siguiendo las instrucciones de "Wednesday, 13 May 2020, 9:43:28 am"
En asterisk:
adduser tablet
su - tablet
ssh-keygen -t rsa
scp .ssh/id_rsa.pub metro@16.0.62.18:/tmp/
ssh metro@16.0.62.18
su
cd
rm /etc/mtab ; ln -s /proc/mounts /etc/mtab
mount -o remount,rw /chroot/home/
cd /chroot/home/miscport
cat /tmp/id_rsa.pub >> .ssh/authorized_keys 
mount -o remount,ro /chroot/home/
exit
exit
touch .hushlogin
echo -e '#!/bin/bash\nexec ssh miscport@16.0.62.18' > connect
chmod 755 connect
su
sed -i "s#/home/tablet:/bin/bash#/home/tablet:/home/tablet/connect#g" /etc/passwd
exit
echo -e "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCa9khU8/6CkaBo7r
Zd0B5W75zWIa5wS+BWMDwYq746+avLqmPSUKKmu43nE5GE9pT0UsVKhJr4pLB1E
6UR5yqh6OeGvvg8YUYcbVXJzRUdIQ41nkcyK6HkrhliIr3TXrHGuZZ7TYzIXKZi
9nU5iIvgaSHYMR/4yOL9As6A461AitzlKmfdF2zXSnTFoFfNU2KFDG946otm4d7
MQ4RKaQ0GEZi1Gw87zz953ZLH3bloLzKTX848l8ZgCMs1ZxGLzQ3SgyfFW/46FD
W26d/9DA5eGzahuaYtfpEkEdpJWxxLy6ROsz601zr1VF7IRMD7Pg6BvztvPGGzK
2rwxUf9isREumeZvFRNcxpggTocnR95EXkDSYAbnZgP1F1arTD39S9F4U6tzxwG
2NodQIQHLq32XucmIdgZ/zWwNs+p+Qb2VaEe20MMDeP2mLeTaNSXkOMUAOJdbqh
eTKrghteFqrr/OF066e+bnYeS1uoP6NdvBVowBZOOHAcFIh+Yvc8I1CTCcWpqZX
LukvhBuve/EtXCfpfiKIGWiNOp8VVCTr+CS4ABhtKQX10a4bpZoDGrHiYYzaydA
5qAvifKe6Ba3oZc5NtKsylFxCmkwyEqZK27UHW4/hKs7GQZld3ghQxZtPhxCKMU
bFGzZYRr3WNjnNzITLsyntJTf1Js9/Vcw== root@raspberrypi" | tr -d '\n' >> .ssh/authorized_keys



Configuramos una raspberry para que lo use Básicamente se ha hecho lo siguiente (tutorial):
vi /etc/dhcpcd.conf 
apt-get install nfs-common expect tk8.6 wish openssh-server rsh-server telnetd-ssl vsftpd
vi /etc/vsftpd.conf
apt-get update
apt-get install ssh-server
apt-get install openssh-server
apt-get -f install
hostname raspberry
apt-get -f install
hostname
vi /etc/hosts
apt-get -f install
dpkg -C
cat /etc/dhcpcd.conf 
exit
cd /etc/ssl/
vi openssl.cnf 
apt-get install --reinstall openssh-server
systemctl enable ssh
systemctl start ssh
reboot
cd /etc/
vi /etc/dhcpcd.enter-hook
chmod a+x dhcpcd.enter-hook 
cd /root/
scp ana@sico.sicosoft.es:/tmp/redirmetro.tgz .
tar -xvzf redirmetro.tgz 
vi redir-metro.sh 
apt-get install build-essential
scp ana@sico.sicosoft.es:/tmp/redir4.tgz .
tar -xvzf redir4.tgz 
cd redir4/src/
ls
make clean
make
cp redir4-* /usr/local/bin/
redir4-client 
cd
cd .ssh/
ssh-keygen -t rsa -b 4096
rfkill unblock 0
cat /etc/dhcpcd.enter-hook
cp /dev/tty dhcpcd.enter-hook
chmod a+x dhcpcd.enter-hook 
vi /etc/dhcpcd.enter-hook
apt install hostapd
sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo apt install dnsmasq
vi /etc/dhcpcd.conf
vi /etc/hostapd/hostapd.conf
systemctl reboot
apt-get install bc
vi redir-metro.sh 
mkdir src
cd src
scp ana@sico.sicosoft.es:/tmp/tctivideoserver-src.tgz .
tar -xvzf tctivideoserver-src.tgz 
vi Makefile 
apt-get install libjpeg62-turbo-dev
ln -s /usr/lib/arm-linux-gnueabihf/libjpeg.a .
make clean all
./tctivideoserver --help
cp tctivideoserver ..
./tctivideoserver -nocams
^C
rm -rf src
reboot
apt-get install socat
vi redir-metro.sh 
echo "#!/bin/bash\nexport TERM=$1\nexec ssh tablet@sico.sicosoft.es\n" > miscport.sh
chmod a+x miscport.sh 
mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
vi /etc/dnsmasq.conf
systemctl enable dnsmasq
systemctl start dnsmasq
systemctl restart dnsmasq


Los ficheros que se han editado, han quedado así
 /etc/dhcpcd.conf
hostname
clientid
persistent
option rapid_commit
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
option interface_mtu
require dhcp_server_identifier
slaac private
interface eth0
static ip_address=192.168.1.5/24
static routers=192.168.1.1
static domain_name_servers=8.8.8.8 fd51:42f8:caae:d92e::1
interface wlan0
    static ip_address=16.0.62.18/8
    nohook wpa_supplicant


 /etc/vsftpd.conf
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO


 /etc/dnsmasq.conf
interface=wlan0 # Listening interface
dhcp-range=16.0.62.1,16.0.62.4,255.255.255.0,24h
                # Pool of IP addresses served via DHCP
domain=wlan     # Local wireless DNS domain
address=/gw.wlan/16.0.62.18
                # Alias for this router



 /etc/dhcpcd.enter-hook
/root/dhcpcd.enter-hook


 /root/dhcpcd.enter-hook
#!/bin/bash
rfkill unblock 0
rfkill unblock 1
/sbin/ifconfig wlan0 down
/sbin/ifconfig wlan0 up
/sbin/ifconfig wlan0 16.0.62.18 netmask 255.255.255.0
/root/redir-metro.sh


 /root/miscport.sh
#!/bin/bash
TERM=$1 ssh tablet@sico.sicosoft.es


 /root/redir-metro-off.sh
#!/bin/sh
ps -efa | grep redir | grep -v metro | grep -v qemu | grep -v libvirt | sed "s/  */ /g" | cut -d ' ' -f 2 | xargs kill 2>/dev/null
# Para el redir-metro.sh
for i in `ifconfig -a | grep wlan0: | expand | cut -d ' ' -f 1 | sed "s/:\$//g" `; do 
        ifconfig $i down
done


 /root/redir-metro.sh
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH
if [ "m$(whoami)" != "mroot" ] ; then
        echo "ERROR: esta script requiere root\n"
        exit 1
fi
echo 1 > /proc/sys/net/ipv4/ip_forward
dev=wlan0
echo "DEVICE: $dev"
n=`/sbin/ifconfig -a | grep "^$dev[ :]" | wc -l | tr -dc 0-9`
echo "n: $n"
if [ "m$n" == "m0" ] ; then
        echo "ERROR: No hay interfaz ${dev} (el ethernet USB de uiharu), comprueba que esta bien conectado"
        exit 1
fi
cd /root
echo "Cleaning old configuration..."
./redir-metro-off.sh 2>/dev/null >/dev/null
echo "Stopping tctivideoserver..."
ps -efa | grep "tctivi[d]eoserver" | expand | grep -v "zed\| vi" | sed "s/  */ /g" | cut -d ' '  -f 2 | xargs kill 2>/dev/null
(
nohup redir4-client 10001 127.0.0.1 11001 &
nohup redir4-client 10003 127.0.0.1 11001 &
nohup redir4-client 10011 127.0.0.1 11001 &
nohup redir4-client 10013 127.0.0.1 11001 &
nohup redir4-client 10016 127.0.0.1 11001 &
nohup redir4-client 10017 127.0.0.1 11001 &

) 2>/dev/null
ifconfig ${dev} 16.0.62.18 netmask 255.255.255.255
ifconfig ${dev}:1 16.13.62.60
ifconfig ${dev}:1 up
ifconfig ${dev}:2 16.0.62.62
ifconfig ${dev}:2 up
n=3;
for i in `ls planos_linea*.cfg | tr -cd "0-9\n" | sort -n` ; do
    for ip in `cat planos_linea${i}.cfg  | expand | cut -d ' '  -f 1 | grep ^[0-9]` ; do
        ifconfig ${dev}:$n $ip netmask 255.255.255.255
        ifconfig ${dev}:$n up
        n=`echo ${n}+1| bc`
    done
done
for i in planos_piloto.cfg ; do
    for ip in `cat ${i}  | expand | cut -d ' '  -f 1 | grep ^[0-9]` ; do
        ifconfig ${dev}:$n $ip netmask 255.255.255.255
        ifconfig ${dev}:$n up
        n=`echo ${n}+1| bc`
    done
done
nohup ./tctivideoserver -nocams &
for i in 11001 ; do 
/usr/bin/socat TCP4-LISTEN:${i},fork,reuseaddr EXEC:"/root/miscport.sh ${i}",pty,raw,echo=0 &
done


 /etc/ssl/openssl.cnf
HOME                    = .
oid_section             = new_oids
openssl_conf = default_conf
[ new_oids ]
tsa_policy1 = 1.2.3.4.1
tsa_policy2 = 1.2.3.4.5.6
tsa_policy3 = 1.2.3.4.5.7
[ ca ]
default_ca      = CA_default
[ CA_default ]
dir             = ./demoCA
certs           = $dir/certs
crl_dir         = $dir/crl
database        = $dir/index.txt
new_certs_dir   = $dir/newcerts
certificate     = $dir/cacert.pem
serial          = $dir/serial
crlnumber       = $dir/crlnumber
crl             = $dir/crl.pem
private_key     = $dir/private/cakey.pem
x509_extensions = usr_cert
name_opt        = ca_default
cert_opt        = ca_default
default_days    = 365
default_crl_days= 30
default_md      = default
preserve        = no
policy          = policy_match
[ policy_match ]
countryName             = match
stateOrProvinceName     = match
organizationName        = match
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional
[ policy_anything ]
countryName             = optional
stateOrProvinceName     = optional
localityName            = optional
organizationName        = optional
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional
[ req ]
default_bits            = 2048
default_keyfile         = privkey.pem
distinguished_name      = req_distinguished_name
attributes              = req_attributes
x509_extensions = v3_ca
string_mask = utf8only
[ req_distinguished_name ]
countryName                     = Country Name (2 letter code)
countryName_default             = AU
countryName_min                 = 2
countryName_max                 = 2
stateOrProvinceName             = State or Province Name (full name)
stateOrProvinceName_default     = Some-State
localityName                    = Locality Name (eg, city)
0.organizationName              = Organization Name (eg, company)
0.organizationName_default      = Internet Widgits Pty Ltd
organizationalUnitName          = Organizational Unit Name (eg, section)
commonName                      = Common Name (e.g. server FQDN or YOUR name)
commonName_max                  = 64
emailAddress                    = Email Address
emailAddress_max                = 64
[ req_attributes ]
challengePassword               = A challenge password
challengePassword_min           = 4
challengePassword_max           = 20
unstructuredName                = An optional company name
[ usr_cert ]
basicConstraints=CA:FALSE
nsComment                       = "OpenSSL Generated Certificate"
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
[ v3_ca ]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
basicConstraints = critical,CA:true
[ crl_ext ]
authorityKeyIdentifier=keyid:always
[ proxy_cert_ext ]
basicConstraints=CA:FALSE
nsComment                       = "OpenSSL Generated Certificate"
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer
proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo
[ tsa ]
default_tsa = tsa_config1
[ tsa_config1 ]
dir             = ./demoCA
serial          = $dir/tsaserial
crypto_device   = builtin
signer_cert     = $dir/tsacert.pem
certs           = $dir/cacert.pem
signer_key      = $dir/private/tsakey.pem
signer_digest  = sha256
default_policy  = tsa_policy1
other_policies  = tsa_policy2, tsa_policy3
digests     = sha1, sha256, sha384, sha512
accuracy        = secs:1, millisecs:500, microsecs:100
clock_precision_digits  = 0
ordering                = yes
tsa_name                = yes
ess_cert_id_chain       = no
ess_cert_id_alg         = sha1
[default_conf]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect]
MinProtocol = TLSv1.1
CipherString = DEFAULT@SECLEVEL=1


FALTA: contenido de "/etc/hostapd/hostapd.conf"

Wednesday, 13 May 2020, 9:43:28 am
Habilito un forwardeo generico de puertos en main1 Siguiendo este post veo que se puede poner en el sshd_config un AcceptEnv para poder pasar una variable de entorno desde el cliente usando "ssh -o SendEnv=MYVARNAME user@host.tld", y que la variable TERM siempre se pasa (lo de AcceptEnv no funciona en el sshd de main1, seguramente portque es muy antiguo). Habilito el usuario miscport en main1 para usar la variable TERM que indica el puerto a forwardear a localhost si es que es puramente numérica.
Resumiendo:
1. Se modifica el firewall de shirka para que haga proxy transparente de esos puertos
2. Se añade en la script /etc/rcS.d/S47sico_miscmain1 para que haga un socat del puerto local a un ssh a main1
3. Se añaden los usuarios a main1 (rm /etc/mtab ; ln -s /proc/mounts /etc/mtab ; chroot /chroot ; #(esperar el prompt) ; mount -o remount,rw /home ; mount -o remount,rw / ; adduser xxxx )
4. Para cada usuario se hace

poner el .ssh/authorized_keys de la clave de metro@shirka
poner el .hushlogin
cambiar la script de connect para que se conecte al sitio requerido
cambiar el /etc/passwd para que el shell sea /home/nombreusuario/connect


Todo eso con cuidado de hacer los cambios en los directorio /chroot de main1 y shirka y reiniciar después.


Update 20200514 Para que funcionen bien los forwardeos desde shirka han sido necesarias las siguientes scripts:

 shirka:/chroot/etc/rcS.d/S47sico_miscmain1
#!/bin/sh
#
# start/stop webmain1 forward daemon.

### BEGIN INIT INFO
# Provides:          webmain1
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     S 2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start webmain1 port forward
# Description:       webmain1 port forward
#                    (does an ssh to maintd@16.0.62.18)
### END INIT INFO

test -f /usr/bin/socat || exit 0

for i in 1525 1527 1528 1529 1530 1531 5901 5902 5969 5979 5989 5999 11001 11003 4321 ; do 
/usr/bin/socat TCP4-LISTEN:${i},fork EXEC:"/usr/bin/sudo -u metro /usr/bin/ssh misc${i}@16.0.62.18" &
done
for i in `seq 5501 5516` `seq 5521 5536` ; do 
/usr/bin/socat TCP4-LISTEN:${i},fork,reuseaddr EXEC:"/usr/local/sbin/miscport.sh ${i}",pty,raw,echo=0 &
done


 shirka:/chroot/usr/local/sbin/miscport.sh
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export TERM=$1
exec /usr/bin/sudo -u metro /usr/bin/ssh miscport@16.0.62.18


Y en main1:

 main1:/etc/passwd
...
miscport:$1$TGFZ7KXc$ZAASPd1KfpVSmwasMq0At.:1020:1020:-,-,-,-,-:/home/miscport:/home/miscport/connect
...


 main1:/home/miscport/connect
#!/bin/bash
MISCPORT=$( echo "$TERM" | tr -dc 0-9 | grep ....)
if [ "m$MISCPORT" == "m" ] ; then
        exit
fi
exec /usr/local/bin/nc localhost $MISCPORT


Monday, 16 September 2019, 11:44:26 am
Añado webmail.sicosoft.es a asterisk:/root/renew-certbot.sh Realmente no se toca el script, sino que se hace a mano para que el certbot actualice lo que hace con un simple renew.

En asterisk, como root:
service nginx stop
certbot certonly --standalone -d sico.sicosoft.es -d mail.sicosoft.es -d mail2.sicosoft.es -d informes.sicosoft.es -d vpn.sicosoft.es -d webmail.sicosoft.es
service nginx start
scp /etc/letsencrypt/live/sico.sicosoft.es/fullchain.pem /etc/letsencrypt/live/sico.sicosoft.es/privkey.pem root@zen:/etc/letsencrypt/live/sico.sicosoft.es/
ssh root@zen "apache2ctl restart"


NOTA: las siguientes veces bastará hacer un simple:
 /root/renew-certbot.sh

Monday, 16 September 2019, 11:36:48 am
Vuelvo a poner que asterisk haga un autossh a vps para forwardear de forma inversa el puerto 2222 de vps al 22 sico Para poder entrar desde fuera si por alguna razón el router de telefónica se vuelve loco.

En asterisk, como root, he modificado:
 autossh-vps.sh 
#!/bin/bash
cd /tmp
autossh -f -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -N root@vps.sicosoft.es -R 2222:192.168.1.2:22 -R 443:192.168.1.2:443 -R 80:192.168.1.2:80 -C


 /etc/network/interfaces
...
iface eth1 inet static
        address 192.168.1.2
        network 192.168.1.0
        netmask 255.255.255.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        post-up /bin/sh -c "/etc/init.d/iptables start ; sleep 1 ; /root/nat.sh eth1 ; /root/autossh-sico2.sh ; /root/nat-carteles.sh ; /root/autossh-vps.sh"
...


Y en vps.sicosoft.es, como root:

 /etc/init.d/networking
...
case "$1" in
start)
...
        if ifup -a $exclusions $verbose && ifup_hotplug $exclusions $verbose
        then
            log_action_end_msg $?
        else
            log_action_end_msg $?
        fi
        ### SICO
        for i in 2222 443 80 ; do
                redir 51.38.32.171:$i 127.0.0.1:$i 
        done
        ### END SICO
        ;;

stop)
        if init_is_upstart; then
                exit 0
...


Thursday, 23 May 2019, 10:36:31 am
Configuro el router Linksys WAG320N como "profiláctico de red" Si se enchufa el LANPORT1 del WAG a la red de sico, los equipos que se enchufen en la LANPORT2/3/4 con IPs de SICO, sólo se verán entre ellos, sin poder llegar al resto de los equipos de SICO.

Esto está pensado para las pruebas de los carteles de ascensores.

1. Se configura en asterisk un alias de red en la eth0:2 con la ip 192.168.2.254:
 /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo eth0 eth1
allow-hotplug eth2

iface lo inet loopback

iface eth0 inet static
        address 3.0.1.52
        #gateway 3.0.1.51
        network 3.0.1.0
        netmask 255.255.255.0
        broadcast 3.0.1.255
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 3.0.1.3
        dns-search sicosoft.es
        post-up /sbin/ifconfig eth0:1 3.0.1.51
        post-up /sbin/ifconfig eth0:2 192.168.2.254 netmask 255.255.255.0
        post-up /sbin/route add -host 16.0.62.18 gw 3.0.1.42
        post-up echo 1 > /proc/sys/net/ipv4/ip_forward

iface eth1 inet static
        address 192.168.1.2
        network 192.168.1.0
        netmask 255.255.255.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        post-up /bin/sh -c "/etc/init.d/iptables start ; sleep 1 ; /root/nat.sh eth1 ; /root/autossh-sico2.sh"


iface eth2 inet dhcp
        post-up /usr/local/sbin/ppp_huawei_e5563_modem.sh on
        post-up /etc/init.d/iptables start
        post-up /bin/sh -c "sleep 5 ; /root/nat.sh eth2 ; /root/autossh-sico2.sh"
        post-down /usr/local/sbin/ppp_huawei_e5563_modem.sh off


2. Se configura en asterisk el firewall para que filtre las cosas que vienen de 192.168.2.1 de manera que sólo responda a las peticiones de DNS, filtrando el resto de los puertos.
 /etc/default/iptables
...
# Loop device.
-A INPUT -i lo -j ACCEPT

# Para la red aislada (WAG320N 192.168.2.1 a ASTERISK 192.168.2.254)
-A INPUT -s 192.168.2.1 -d 192.168.1.2 -j DROP
-A INPUT -s 192.168.2.1 -d 192.168.2.254 -p tcp --dport 53 -j ACCEPT
-A INPUT -s 192.168.2.1 -d 192.168.2.254 -p udp --dport 53 -j ACCEPT
-A INPUT -s 192.168.2.1 -d 192.168.2.254 -j DROP

# socket-upipe-server usage
-A INPUT -p tcp --dport 10000 -j ACCEPT

# dns
-A INPUT -p tcp --dport 53  -j ACCEPT
-A INPUT -p udp --dport 53  -j ACCEPT

...


3. Reseteo el WAF320N: se enciende, y una vez totalmente arrrancado, se presiona el reset durante 5segs; el power parpadea en rojo para indicar que el router se ha reseteado

4. Desde un portátil con un cable al puerto LANPORT1, me conecto a http://192.168.1.1 (user:admin, pass:admin)

5. Configuro el WAG320N
  • Pongo el user/pass de los routers de internet de sico (admin:qni...)
  • Desactivo el WiFi
  • Le pongo como red de la LAN la 3.0.1.51 (y me reconecto a http://3.0.1.51)
  • Le pongo en modo bridge
  • Le configuro el LANPORT1 como WAN, con la IP 192.168.2.1, GATEWAY 192.168.1.254, DNS 192.168.1.254 y 8.8.8.8
  • Reconecto el portátil al puerto LANPORT2
  • Configuro los forwards de puertos (ver forwardeos-carteles-laboratorio_20210929-1.png):
nombrepuertoorigpuertodestipdestactive
185801858080803.0.1.185YES
185811858180813.0.1.185YES
1852218522223.0.1.185YES
186801868080803.0.1.186YES
186811868180813.0.1.186YES
1862218622223.0.1.186YES
187801878080803.0.1.187YES
187811878180813.0.1.187YES
1872218722223.0.1.187YES
188801888080803.0.1.188YES
188811888180813.0.1.188YES
1882218822223.0.1.188YES
189801898080803.0.1.189YES
189811898180813.0.1.189YES
1892218922223.0.1.189YES
1855018550285503.0.1.185YES
1855118551285513.0.1.185YES
1865018650285503.0.1.186YES
1865118651285513.0.1.186YES
1875018750285503.0.1.187YES
1875118751285513.0.1.187YES
1885018850285503.0.1.188YES
1885118851285513.0.1.188YES
1895018950285503.0.1.189YES
1895118951285513.0.1.189YES

Y con eso está todo.

Update 20190913: Faltaba hacer un "/root/nat.sh eth0" en asterisk (como root) para que todo funcionase bien, ya que si no, no hace NAT desde la 192.168.2.0/24 a la 3.0.1.0/24. Lo he añadido al /etc/network/interfaces.

 asterisk:/etc/network/interfaces
...
iface eth1 inet static
        address 192.168.1.2
        network 192.168.1.0
        netmask 255.255.255.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        post-up /bin/sh -c "/etc/init.d/iptables start ; sleep 1 ; /root/nat.sh eth1 ; /root/autossh-sico2.sh ; /root/nat.sh eth0"
...


Update 20210929 Se añaden puertos para poder conectar a los carteles por SSL, se quita el cartel de 3.0.1.190 porque hay un límite de 24 reglas.

Friday, 24 August 2018, 10:09 am
Hemos vuelto a contratar un vps. Reconfiguro el DNS y los ssh para él
  • Lo pongo en el DNS de sico como "vps.sicosoft.es"
  • Le autorizo para mandar emails de sico (añado su IP registro SPF del DNS)
  • Genero una clave rsa para root@vps.sicosoft.es
  • Igual que con el anterior, se ha autorizado a root@asterisk y a dario@uiharu para acceder al equipo por ssh ("ssh root@vps.sicosoft.es").
  • En el vps, se ha desactivado el acceso por ssh con password siguiendo este tutorial.
  • Pongo un firewall en /etc/default/iptables y lo llamo desde rc.local (ver fichero al final de esta entrada)
  • Instalo un postfix como "open relay", ya que sólo aceptamos mails que vengan de vps.sicosoft.es, siguiendo esta guía, pero sin desactivar lo de "open relay".
apt-get install postfix mailutils
# NOTA: Cuando pregunte, queremos "Internet Host" y el nombre a usar er "vps.sicosoft.es"
sed -i "s/^myhostname = .*/myhostname = vps.sicosoft.es/g" /etc/postfix/main.cf
echo -e "\n# ADDED\n\nrelay_domains = sicosoft.es\nmynetowrks = 2.136.41.224/32\nsmtpd_client_restrictions = permit_mynetworks" >> /etc/postfix/main.cf
/etc/init.d/postfix restart

EN ZEN, COMO ROOT:
cd /etc/postfix
for i in rocketmail.com yahoo.ae yahoo.at yahoo.be yahoo.ch yahoo.co.id yahoo.co.il yahoo.co.in yahoo.co.jp yahoo.co.nz yahoo.co.th yahoo.co.uk yahoo.co.za yahoo.com yahoo.com.ar yahoo.com.au yahoo.com.br yahoo.com.co yahoo.com.hk yahoo.com.hr yahoo.com.mx yahoo.com.my yahoo.com.ph yahoo.com.sg yahoo.com.tr yahoo.com.tw yahoo.com.vn yahoo.cz yahoo.de yahoo.dk yahoo.es yahoo.fi yahoo.fr yahoo.gr yahoo.hu yahoo.ie yahoo.in yahoo.it yahoo.nl yahoo.no yahoo.pl yahoo.pt yahoo.ro yahoo.ru yahoo.se ymail.com ; do echo "$i smtp:vps.sicosoft.es:25" >> transport ; done
postmap hash:/etc/postfix/transport
sed -i "s@\(^transport_maps = .*\)@\1, hash:/etc/postfix/transport@g" main.cf
/etc/init.d/postfix restart



 /etc/default/iptables
IPTABLES=/sbin/iptables
DEV=ens3

# Activamos el anti-spoofing
for i in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 >$i ; done

# Don't respond to broadcast pings (Smurf-Amplifier-Protection)
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Block source routing
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route

# Kill timestamps
echo 0 > /proc/sys/net/ipv4/tcp_timestamps

# Enable SYN Cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Desabilitar la redireccion del ping
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects

# Enable bad error message protection
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

# Registrar los paquetes extranios (martians: packets with impossible addresses)
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians

# Anti-flooding o inundacin de tramas SYN.
$IPTABLES -N syn-flood
for IFACE in `ifconfig -a | grep -B 1 "inet addr" | grep ^[a-z] | expand | cut -d ' ' -f 1 | grep -v "^lo\$"` ; do
        $IPTABLES -A INPUT -i $IFACE -p tcp --syn -j syn-flood
done
$IPTABLES -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
$IPTABLES -A syn-flood -j DROP

# Quitamos todo lo que hubiera
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

$IPTABLES -F
$IPTABLES -F -t mangle
$IPTABLES -F -t nat
$IPTABLES -X
$IPTABLES -X -t mangle
$IPTABLES -X -t nat

for i in `$IPTABLES -L | grep "^Chain" | cut -d " " -f 2 | grep -v "INPUT\|FORWARD\|OUT
PUT"` ; do
        $IPTABLES -F $i
        $IPTABLES -X $i
done

$IPTABLES -A INPUT -s 2.136.41.224/32 -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport 25 -j DROP
$IPTABLES -A INPUT -p udp --dport 25 -j DROP

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT



Wednesday, 11 July 2018, 9:13:09 am
Instalo el certbot en asterisk

/etc/init.d/nginx stop
apt-get update
echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list
apt-get update
apt-get install certbot -t jessie-backports
cd /root
cat > renew-certbot.sh <<'EOF'
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
n=`certbot certificates 2>/dev/null | grep "[^A-Z]VALID: [0-9]" | wc -l | tr -dc 0-9`
if [ "m$n" != "m1" ] ; then
        service nginx stop
        certbot renew
        service nginx start
fi
EOF
chmod 755 renew-certbot.sh
certbot certonly --standalone -d sico.sicosoft.es -d mail.sicosoft.es -d mail2.sicosoft.es -d informes.sicosoft.es -d vpn.sicosoft.es
/etc/init.d/nginx start


Y en el crontab se añade:
51 3,17 * * * /root/renew-certbot.sh



Thursday, 14 June 2018, 10:36:07 am
Configuro el acceso a internet en el equipo asterisk y le pongo un firewall He modificado
  • /etc/init.d/network/interfaces (arranca el ppp_huawei_e5563_modem.sh cuando se levanta el interfaz eth2)
  • /etc/init.d/iptables (nuevo, copiado de nas)
  • /etc/default/iptables (nuevo, copiado de nas)
  • /usr/local/sbin/ppp_huawei_e5563_modem.sh (nuevo, arranca el dhcp en el interfaz eth2, que es el modem 3G usb)
  • /etc/wvdial.conf (no se usa)
  • /etc/rc.local (arrancar el autossh contra vps para forwardeo inverso desde vps:2222 al puerto ssh de asterisk)
  • /etc/secirity/access.com (listar todos los usuario como no permitidos desde otras redes, excepto al usuario ana)
  • /etc/pam.d/sshd (activar el uso de pam_access.so)

Configurado el vps Se ha autorizado a root@asterisk y a dario@uiharu. Se ha desactivado el acceso por ssh con password siguiendo este tutorial.

Tuesday, 29 May 2018, 11:33:55 am
Hago que database tenga el default gw a 3.0.1.51 para que pueda acceder a internet (y sincronizar la hora) Para que sincronice la hora y tenga database conectividad a internet se ha hecho lo siguiente:
1. Como root, se ha añadido al crontab la siguiente línea (para que sincronice la hora con hora.rediris.es):
0 3 * * * /usr/sbin/ntpdate hora.rediris.es


2. Se ha puesto bien el resolv.conf (estaba a 3.0.1.51, ahora hay que poner 3.0.1.3):
# echo nameserver 3.0.1.3 > /etc/resolv.conf


3. Se ha editado el fichero /etc/init.d/network para añadir justo antes del "exit 0" la siguiente línea que pone el default gw:
/sbin/route add default gw 3.0.1.51


Tuesday, 24 April 2018, 11:01:02 am
Hago que main1 forwardee el puerto 5901 a frontpci02 desde shirka Siguiendo las instrucciones del "Tuesday, 11 February 2014, 9:57:25 am".

Wednesday, 28 March 2018, 11:56:09 am
Quitamos la fibra de internetti y la ponermos en nas, quitamos el adsl de databse y lo ponemos en internetti, y modificamos la configuraciópn de red de ambos equipos Se ha hecho los siguientes cambios:
1. Se ha puesto la fibra conectada a NAS usando un adaptador usb-ethernet
2. Se ha puesto en el NAS un alias a 3.0.1.51
3. Se ha cambiado la IP de internetti a 3.0.1.151
4. Se ha puesto el ADSL conectado a internetti
5. En internetti (freebsd) se ha cambiado el rc.local y el pf.conf para que tenga esa IP y que no haga lo del pppoe, sino directamente configure la interfaz "wan" de forma normal con su gateway configurado.

Tuesday, 10 October 2017, 11:58:40 am
Arreglo el iptables de database Ya que da unos errores en las reglas por tener un iptables demasiado antiguo:
cd /root
mkdir iptables_amd64
cd iptables_amd64
scp dario@3.0.1.3:/sbin/iptables .
cp ../modprobe_amd64/*so* .
cat > iptables.sh <<'EOF'
#!/bin/bash
LANG=C
LC_ALL=C
export LANG LC_ALL
LD_LIBRARY_PATH=/root/iptables_amd64 /root/iptables_amd64/ld-linux-x86-64.so.2 /root/iptables_amd64/iptables "$@"
EOF
chmod 755 iptables.sh
scp dario@3.0.1.3:/lib64/ld-linux-x86-64.so.2 .
scp dario@3.0.1.3:/lib/x86_64-linux-gnu/libc.so.6 .
scp dario@3.0.1.3:/lib/x86_64-linux-gnu/libm.so.6 .
scp dario@3.0.1.3:/lib/x86_64-linux-gnu/libdl.so.2 .
scp dario@3.0.1.3:/usr/lib/x86_64-linux-gnu/libip4tc.so.0 .
scp dario@3.0.1.3:/usr/lib/x86_64-linux-gnu/libip6tc.so.0 .
scp dario@3.0.1.3:/usr/lib/x86_64-linux-gnu/libxtables.so.12 .
cd /sbin
mv iptables iptables.orig
ln -s /root/iptables_amd64/iptables.sh iptables


Y para rearrancar el firewall:
cd /etc/init.d/
./firewall.sico.solocorreo


Tuesday, 10 October 2017, 11:23:42 am
Actualizo el nginx en internetti Siguiendo esta guía:
portsnap fetch extract
cd /usr/ports/ports-mgmt/pkg
make reinstall
make clean
cd /usr/ports/www/nginx
pkg install nginx
service nginx restart


Thursday, 4 May 2017, 10:27:47 am
Instalo el letsencrypt.sh en internetti (freebsd-11.0) Siguiendo estas instrucciones del certbot:

portsnap fetch update
portsnap fetch
portsnap extract
pkg install pkgconf
cd /usr/ports/security/py-certbot && make install clean
mkdir -p /var/www
cd /usr/local/etc/nginx
service nginx stop
certbot certonly --standalone -d informes.sicosoft.es -d sico2.sicosoft.es -d mail.sicosoft.es
service nginx start


Además he modificado el "/usr/local/etc/nginx/nginx.conf" para que tenga la misma configuración SSL en todos los servidores, quedando así:

...
         ssl on;
         ssl_certificate /usr/local/etc/letsencrypt/live/informes.sicosoft.es/fullchain.pem;
         ssl_certificate_key  /usr/local/etc/letsencrypt/live/informes.sicosoft.es/privkey.pem;
...



Y para el script de renovación (hay que verificar que ha funcionado dentro de tres meses...):
 /usr/local/etc/nginx/renew-certbot.sh

#!/bin/sh
n=`certbot certificates 2>/dev/null | grep "[^A-Z]VALID: [0-9]" | wc -l | tr -dc 0-9`
if [ "m$n" != "m1" ] ; then
        service nginx stop
        certbot renew
        service nginx start
fi



Se ponen permisos y se instala el crontab:
chmod 755 /usr/local/etc/nginx/renew-certbot.sh
echo "51 3,17 * * * /usr/local/etc/nginx/renew-certbot.sh" | crontab -e




Thursday, 4 May 2017, 9:26:51 am
Actualizo el freebsd de internetty de la 10.3 a la 11.0 Ya que el 10.3 sigue sin tener el letsencrypt en sus repositorios.
He seguido las instrucciones oficiales:
cd
: > /usr/bin/bspatch
freebsd-update upgrade -r 11.0-RELEASE
freebsd-update install
shutdown -r now
freebsd-update install
pkg-static install -f pkg
# Recompilamos los paquetes que estaban instalados usando ports
cd /usr/ports/net/trafshow
make clean deinstall reinstall
cd /usr/ports/dns/bind99
make clean deinstall reinstall
cd /usr/ports/net/mpd5
make clean deinstall reinstall
# quitamos las librerías antiguas
freebsd-update install
# actualizamos el nginx
pkg install nginx
# reiniciamos para usar la nueva versión del s.o.
shutdown -r now


Wednesday, 3 May 2017, 11:35:11 am
Actualizo el freebsd de internetti de la 10.1 a la 10.3 Siguiendo estas instrucciones:
freebsd-update fetch
freebsd-update install
freebsd-update upgrade -r 10.3-RELEASE
freebsd-update install
shutdown -r now
# se reinicia y se vuelve a ejecutar para las actualizaciones que dependían del kernel
freebsd-update install
# Una vez que termina, se vuelve a ejeuctar (si lo pide) para borrar librerías antiguas
# Por último se vuelve a reiniciar para que use la nueva versión de todo
shutdown -r now


UPDATE 20170504 Restauro una versión antigua de la BBDD de paquetes porque me estaba dando un error el "pkg info":
cd /var/db/pkg
mv local.sqlite local.sqlite.bad2
xzcat /var/backups/pkg.sql.xz.1 | sqlite3 /var/db/pkg/local.sqlite
pkg info



Wednesday, 3 May 2017, 9:52:26 am
Instalo el letsencrypt en informes.sicosoft.es, esto es, en el nginx de internetti/FreeBSD Siguiendo este tutorial, y para arreglar un problema con el pkg este thread/y este otro .

También he tenido que recrear la BBDD de paquetes
pkg update
pkg install py-letsencrypt
cd /usr/ports/ports-mgmt/pkg
make clean deinstall reinstall -D ALLOW_UNSUPPORTED_SYSTEM
pkg-static install sqlite3
cp /var/db/pkg/local.sqlite /var/db/pkg/local.sqlite.backup
sqlite3 /var/db/pkg/local.sqlite
#tambien se puede hacer un "pkg shell" en vez del sqlite3
sqlite> pragma integrity_check;
ok
sqlite> pragma user_version="31";
sqlite> .mode insert
sqlite> .output local.sqlite.dump
sqlite> .dump
sqlite> .quit
root@internetti:/usr/ports/ports-mgmt/pkg # mv /var/db/pkg/local.sqlite /var/db/pkg/local.sqlite.bad
root@internetti:/usr/ports/ports-mgmt/pkg # sqlite3 /var/db/pkg/local.sqlite
SQLite version 3.18.0 2017-03-28 18:48:43
Enter ".help" for usage hints.
sqlite> .read local.sqlite.dump
sqlite> .quit
cd /usr/ports/ports-mgmt/pkg
make clean deinstall reinstall -D ALLOW_UNSUPPORTED_SYSTEM


Aunque con eso no se ha terminado de arreglar...
Una alternativa es usar los ports directamente:
portsnap fetch
portsnap extract
# (Para las siguientes veces no no se hace el extract, sino solo un "portsnap fetch update")


Y luego, siguiendo el tutorial que mencionaba al principio

NOTA: Sigue sin tener acceso al paquete de lets-encript. Actualizo el freebsd (ver siguiente entrada)



Wednesday, 8 February 2017, 9:00:06 am
Para el futuro: actualizar el Archer C7

Wednesday, 26 October 2016, 9:40:04 am
Instalo el trafshow en internetti (trafshow es el iptraf de BSD) Visto aquí. Instrucciones para instalar ports. Pasos seguidos (como root):
stat -x /usr/ports/UPDATING > ~/last_update
sudo portsnap fetch update
cd /usr/ports/net/trafshow
make config-recursive install distclean


Para usarlo:

 trafshow -i em0 -n


Friday, 29 July 2016, 12:06:54 pm
Hago que internetti forwardee el puerto iax2 a asterisk Siguiendo esta guía de puertos.

Hago lo siguiente en el /etc/pf.conf de internetti:

TCP_SERVICES="{ 22, 25, 53, 80, 443 }"
UDP_SERVICES="{ 53 4569 }"


...


ASTERISK_PORT="4569"
HOST_ASTERISK="3.0.1.52"

...
rdr pass on $EXT_NIC inet proto tcp from any to $EXT_IP port 80 -> $HOST_GEA port $OPENVPN_PORT
rdr pass on $EXT_NIC inet proto udp from any to $EXT_IP port $ASTERISK_PORT -> $HOST_ASTERISK port $ASTERISK_PORT
...


Y después:

/etc/rc.d/pf reload

(enbtonces hay que abrir un nuevo ssh contra internetti, el actual se queda bloqueado).

Monday, 7 March 2016, 10:23:13 am
Actualizo las reglas del firewall del wifi en el archer para hacer un agujero en el 3.0.1.52 de manera que se pueda llegar desde los móviles a la máquina final de asterisk Ver entrada "Tuesday, 3 February 2015, 9:27:20 am", que he actualizado con los nuevos valores.

Thursday, 3 March 2016, 9:28:51 am
Forwardeo a metro el puerto 1528 Lo hago como en ocasiones anteriores, ver entrada de "Tuesday, 12 January 2016, 9:20:32 am".

Friday, 26 February 2016, 10:31:44 am
Actualizo las reglas del firewall del wifi en el archer para hacer un agujero en el 3.0.1.88 de manera que se pueda llegar desde los móviles al asterisk Ver entrada "Tuesday, 3 February 2015, 9:27:20 am", que he actualizado con los nuevos valores.

Tuesday, 12 January 2016, 9:20:32 am
Forwardeo a metro los puertos 11001 (pruebas tcti), 11003 (pruebas tcti) y 4321 (zlogtail) Igual que en las entradas anteriores. Resumiendo:
1. Se modifica el firewall de shirka para que haga proxy transparente de esos puertos
2. Se añade en la script /etc/rcS.d/S47sico_miscmain1 para que haga un socat del puerto local a un ssh a main1
3. Se añaden los usuarios a main1 (rm /etc/mtab ; ln -s /proc/mounts /etc/mtab ; chroot /chroot ; #(esperar el prompt) ; mount -o remount,rw /home ; mount -o remount,rw / ; adduser xxxx )
4. Para cada usuario se hace

poner el .ssh/authorized_keys de la clave de metro@shirka
poner el .hushlogin
cambiar la script de connect para que se conecte al sitio requerido
cambiar el /etc/passwd para que el shell sea /home/nombreusuario/connect


Todo eso con cuidado de hacer los cambios en los directorio /chroot de main1 y shirka y reiniciar después.

Monday, 20 July 2015, 9:59:39 am
Instalo el bind de forma normal en internetti
portsnap fetch update
make -C /usr/ports/dns/bind99 install clean


Dejo todo por defecto excepto lod e "install docs" (que lo dejo desactivado).

Hago un enlace para llegar más fácilmente a la configuración y pongo la zona de sicosoft desde el último backup conocido:
ln -s /usr/local/etc/namedb /etc/bind
cd /etc/bind
mkdir zones
cd zones
scp root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/var/named/zones/sicosoft.es.db .
chown bind:bind sicosoft.es.db


Edito la configuración del named en /usr/local/etc/namedb/named.conf y añado lo siguiente:
acl trusted-servers {
    79.98.145.34; 195.80.237.194;
};

zone "sicosoft.es" {
        type master;
        file "/etc/bind/zones/sicosoft.es.db";
        allow-transfer { 79.98.145.34; 195.80.237.194; };
        also-notify { 79.98.145.34; 195.80.237.194; };
};


También, en el options del named.conf, cambio el listen-on para que escuche en la ip externa, y añado el allow recursion para lasañado lo siguiente:
options {
...
        listen-on       { any; };
...
        allow-recursion { 127.0.0.1; 3.0.1.0/24; };
};



Por último se añade al /etc/rc.conf la línea:
 named_enable="YES"

Y se arranca a mano para probarlo:
 service named start
 tail -25 /var/log/messages

NOTA: Tengo un problema con el firewall, ya que el puerto 53 aparece como filtered (pero sí que funciona desde la red de sico (?)). manual para depurar el firewall.

Monday, 20 July 2015, 8:36:42 am
Actualizo internetti (FreeBSD 10.1) e instalo el bind9

Para actualizar los ports:
portsnap fetch update


Guía de instalación del named en un chroot jail sin ayuda del ezjail, y la guía usando ezjail:
NOTA: ezjail ya lo tengo instalado ya que lo uso para el nginx.
Añado a /etc/rc.conf
 cloned_interfaces="${cloned_interfaces} lo2"
Arranco el interfaz clonado
 service netif cloneup
Creo el ezjail dns1
 ezjail-admin create dns1 'lo2|127.0.3.1,em0|3.0.1.51'
Lo arrancamos:
 ezjail-admin start dns1

Desactivo el ezjail ya que al activarlo me quedo sin red en la máquina (?). He editado el /etc/rc.conf y he dejado:
 ezjail_enable="NO"
Supongo que eso es porque la ip del interfaz em0 no la comparte, sino que se queda como privada de la jail (¿habrá que poner una IP deiferente y forwardear usando el firewall?)

Monday, 15 June 2015, 10:29:28 am
Pongo rutas estáticas en el Archer para poder hacer pruebas con los teléfonos en SICO Se añaden las siguientes rutas estáticas en 192.168.0.1 (archer desde uiharu):
Advanced Routing > Static Routing
IdDestination NetworkSubnet maskDefault gatewayNotas
116.0.62.18255.255.255.255192.168.0.254main1
218.132.58.12255.255.255.255192.168.0.254estación de arganzuela
316.13.62.60255.255.255.255192.168.0.254tctiserver
418.4.58.10255.255.255.255192.168.0.254estación de mar de cristal

NOTA: Para que funcione, en uiharu hay que hacer (como root):
ifconfig br0:1 16.13.62.60
route add -host 18.132.58.12 gw 3.0.1.4
/etc/init.d/firewall stop


Y en el tcti (3.0.1.4 es el de pruebas)
ifconfig eth0:1 18.132.58.12
route add -net 192.168.0.0 netmask 255.255.255.0 gw 3.0.1.3


Update 20160112 Añado también la estación de Mar de Cristal a las rutas estáticas del archer c7

Wednesday, 3 June 2015, 10:38:34 am
Instalo el openvpn en gea Siguiendo este tutorial y este otro
test ! -c /dev/net/tun && echo openvpn requires tun support || echo tun is available
cp -prv /usr/share/doc/openvpn/examples/easy-rsa/2.0 /root/easy-rsa
cd /root/easy-rsa
cp vars{,.orig}
scp -r root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/home/ana/easyrsa/* .
openvpn --genkey --secret /root/easy-rsa/keys/ta.key
cp -pv /root/easy-rsa/keys/{ca.{crt,key},{vpn,carlosculebras,jjcriado}.sicosoft.es.{crt,key},ta.key,dh1024.pem} /etc/openvpn/certs/
mkdir -p /etc/openvpn/private
chmod 700 /etc/openvpn/private
scp root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/etc/openvpn/private/vpn.sicosoft.es.key /etc/openvpn/private
cat > /etc/openvpn/server.conf <'EOF'

port 1194
proto udp
dev tun

ca /etc/openvpn/certs/ca.crt
cert /etc/openvpn/certs/vpn.sicosoft.es.crt
key /etc/openvpn/private/vpn.sicosoft.es.key
dh /etc/openvpn/certs/dh1024.pem
tls-auth /etc/openvpn/certs/ta.key 0

server 192.168.88.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

client-to-client
keepalive 1800 4000

cipher DES-EDE3-CBC # Triple-DES
comp-lzo

max-clients 10

user nobody
group nogroup

persist-key
persist-tun

#log openvpn.log
#status openvpn-status.log
verb 5
mute 20
EOF
service openvpn restart
update-rc.d -f openvpn defaults
sed -i "s:^#*net.ipv4.ip_forward=.*:net.ipv4.ip_forward=1:g" /etc/sysctl.conf
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -p udp -m state --state NEW -m udp --dport 1194 -j ACCEPT
iptables -A FORWARD -s 192.168.88.0/24 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.88.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/iptables.rules
echo '#!/bin/bash' > /etc/network/if-pre-up.d/iptables
echo 'test -e /etc/iptables.rules && iptables-restore -c /etc/iptables.rules' >> /etc/network/if-pre-up.d/iptables
chmod 755 /etc/network/if-pre-up.d/iptables


Tuesday, 2 June 2015, 12:03:50 pm
Hago que internetti forwardee el puerto del openvpn a gea El objetivo es poner el openvpn en gea.

Hago lo siguiente en el /etc/pf.conf de internetti:
TCP_SERVICES="{ 22, 25, 53, 80, 443 }"
UDP_SERVICES="{ 53 }"

...

OPENVPN_PORT="1194"
HOST_GEA="3.0.1.198"

...
rdr pass on $EXT_NIC inet proto tcp from any to $EXT_IP port 25 -> 3.0.1.123 port 25
rdr pass on $EXT_NIC inet proto tcp from any to $EXT_IP port 80 -> $HOST_GEA port $OPENVPN_PORT
...

Y después:
 /etc/rc.d/pf reload
(enbtonces hay que abrir un nuevo ssh contra internetti, el actual se queda bloqueado).

Tuesday, 2 June 2015, 11:29:24 am
Desinstalo el openvpn de internetti ya que parece estar dando problemas
pkg remove openvpn
pkg remove easy-rsa


vi /etc/rc.conf
(quito la parte de openvpn)

 reboot

Tuesday, 2 June 2015, 9:35:15 am
Instalo el openvpn en el freebsd 10.1 de internetti Siguiendo estas instrucciones para droplets freebsd 10.1 de digitalocean y setting up a bridged openvpn:
pkg update
pkg install openvpn
cd /usr/local/etc
scp -r root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.6/etc/openvpn .
ln -s /usr/local/etc/openvpn /etc/openvpn
sed "s/_openvpn/nobody/g;s/port 80/port 8080/g" < server.conf > /tmp/a
cat /tmp/a > server.conf

vi /etc/rc.conf


Se añaden las siguientes líneas al final del fichero, se salva y se sale del vi
# openvpn firewall options
natd_enable="YES"
natd_interface="vtnet0"
natd_flags="-dynamic -m"

# Start openvpn
openvpn_enable="YES"
openvpn_configfile="/usr/local/etc/openvpn/server.conf"


 vi /etc/pf.conf

Y se añade el puerto 8080 en la lista de puertos

Por último se reicinia y se prueba que funciona:
 reboot

Thursday, 21 May 2015, 11:37:57 am
Actualizo el mainthtml5 de shirka A una versión que ya no requiere el ponerlo detrás de un redir para que funcione tras el nginx. De momento no quito el redir para no cambiar varias cosas al mismo tiempo (aunque ya no sea necesario tenerlo).

Wednesday, 25 March 2015, 11:07:37 am
Instalo el nginx en internetti (FreeBSD) para habilitar lo de los pupitres Uso este tutorial y la configuración antigua que usaba en openbsd. Hago lo siguiente:
pkg install nginx
cd /usr/local/etc/nginx
mv nginx.conf nginx.conf.ori
scp root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/etc/nginx/nginx.conf .
mkdir -p /var/log/nginx/log/ /etc/ssl/certs /etc/ssl/private
scp "root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/etc/ssl/private/*sicosoft*" /etc/ssl/private/
echo 'nginx_enable="YES"' >> /etc/rc.conf
service nginx start


Tuesday, 3 February 2015, 9:27:20 am
Cambio el Wifi de SICO al Archer C7 v2 Ya que el otro aparato no funcionaba bien. Está conectado a uiharu (3.0.1.3) para acceder al web admin panel por la IP 192.168.0.1. Se ha hecho lo siguiente:
1. Conectado a la red de sico en la WAN, conectado a un interfaz de uiharu (uiharu tiene la 192.168.0.254 en dicho interfaz) en la LAN1.
2. Encender el aparato y conectarse desde un navegador de uiharu a la 192.168.0.1 (si el firmware fuera más moderno, habría sido la 192.168.1.1)
3. Poner la configuración de red del archer
Tipo IP Estática
IP3.0.1.254
Gateway3.0.1.51
DNS13.0.1.3
DNS23.0.1.170
4. Configurar la red wifi de sico
SSIDWiFiAp
WPA2 passwd(la misma que antes)
5. Poner la restricción de acceso; en "Access Control":
  • Añadir el hosts "ALL WIFI DHCP" que incluya el 192.168.0.100-192.168.0.199
  • Añadir los target "VERY LOW IP SICO" (3.0.1.1-3.0.1.2), "LOW IP SICO" (3.0.1.4-3.0.1.50), "HIGH IP SICO split 1/2" (3.0.1.53-3.0.1.87), "HIGH IP SICO split 2/2" (3.0.1.89-3.0.1.197), "VERY HIGH IP SICO" (3.0.1.199-3.0.1.254)
  • Añadir las rules "DENY VERY LOW" ("ALL WIFI DHCP", "VERY LOW IP SICO"),"DENY LOW" ("ALL WIFI DHCP", "LOW IP SICO"),"DENY HIGH split 1/2" ("ALL WIFI DHCP", "HIGH IP SICO split 1/2"),"DENY HIGH split 2/2" ("ALL WIFI DHCP", "HIGH IP SICO split 2/2"), ,"DENY VERY HIGH" ("ALL WIFI DHCP", "VERY HIGH IP SICO")
  • Dejar seleccionado que las reglas son un DENY.
  • Activar el Access Control en el checkbox de arriba.
  • Dar al SAVE
6. Poner bien la hora para los logs; en "System Tools"->"Time Settings"
  • Poner la zona horatia como Europe/Berlin
  • Poner como servidor de NTP a "hora.rediris.es"
  • Dar a "get GMT"
  • Dar a "SAVE"

NOTA: Aunque he puesto como DNS secundario el 3.0.1.170, los aparatos conectados al wifi no tienen acceso al 3.0.1.170...
Update 20150311 Hago otro agujero al firewall para gea (3.0.1.198). Actualizo la información de arriba con la configuración actual.
Update 20160226 Hago otro agujero al firewall para el asterisk (3.0.1.88). Actualizo la información de arriba con la configuración actual.
Update 20160307 Hago otro agujero al firewall para la máquina final del asterisk (3.0.1.52). Actualizo la información de arriba con la configuración actual.

Wednesday, 31 December 2014, 10:55 am
Instalación del bind9 en internetti/FreeBSD Hay un tutorial completo y otro tutorial simplificado para bind9 en jail. Aparte hay un tutorial más sencillo de cómo instalar bind9 en un chroot en FreeBSD 10. Sigo el tutorial del chroot:
1. Actualizamos el FreeBSD a los últimos parches
portsnap fetch extract
freebsd-update fetch install


2. Preparamos el entorno para ezjail
echo 'cloned_interfaces="${cloned_interfaces} lo1"' >> /etc/rc.conf
service netif cloneup


3. Instalamos ezjail desde los ports:
cd /usr/ports/sysutils/ezjail
make install clean


4. Hacemos que arranque
echo 'ezjail_enable="YES"' >> /etc/rc.conf
service ezjail start


5. Instalamos el FreeBSD plantilla para las jails
ezjail-admin install -p



Thursday, 18 December 2014, 11:58:51 am
Hago que el FreeBSD ponga en el arranque la ruta para shirka Hecho según la página de manual de rc:
 /etc/rc.local
source /etc/rc.conf
/sbin/route add 16.0.62.18 3.0.1.42

Tuesday, 16 December 2014, 1:18:05 pm
Información de cómo depurar un problema con multihomed mail
 http://www.linuxforums.org/forum/networking/153506-solved-iproute2-rule-based-multi-homed-snat-problem.html
 conntrack -L | grep "=25\b"
 watch "netstat -pan | grep \":25\b\""


Monday, 15 December 2014, 10:36:02 am
Hago que internetti (FreeBSD) redirija el puerto 25 a la ip secundaria de zen 3.0.1.123 El /etc/pf.conf queda así:

SYN_ONLY="S/FSRA"
EXT_NIC="tun0"
INT_NIC="em0"
EXT_IP="80.28.211.112"
INT_IP="3.0.1.51"
INT_IP2="3.0.1.52"
TCP_SERVICES="{ 22, 25, 53, 80, 443 }"
UDP_SERVICES="{ 53 }"
ICMP_TYPES="{ echoreq, unreach}"
set limit states 100000
set skip on lo
scrub all fragment reassemble
nat on $EXT_NIC from !($EXT_NIC) to any -> ($EXT_NIC)
rdr pass on $EXT_NIC inet proto tcp from any to $EXT_IP port 25 -> 3.0.1.123 port 25
block           # block stateless traffic
pass            # establish keep-state
block in on ! lo0 proto tcp to port 6000:6010
block return-rst in log on $EXT_NIC proto TCP all
   pass in on $EXT_NIC proto TCP from any to $EXT_IP port $TCP_SERVICES flags $SYN_ONLY keep state
block in on $EXT_NIC proto udp all
   pass in quick on $EXT_NIC proto UDP from any to $EXT_IP port $UDP_SERVICES keep state
pass in inet proto icmp all icmp-type $ICMP_TYPES
block out on $EXT_NIC all
   pass out quick on $EXT_NIC from $EXT_IP to any keep state
set skip on lo0
set skip on $INT_NIC


Y para que lo recargue:

 pfctl -F all -f /etc/pf.conf

Thursday, 11 December 2014, 11:25:45 am
Multihoming en zen Hay un tutorial de multihoming para linux con iptables. Para ello:

1. Edito /etc/network/interfaces para que también tenga la ip 3.0.1.123, pero en el eth1 (3.0.1.124 es eth0).

2. Edito el /etc/default/iptables, poniendo lo que da por pantalla lo siguiente (antes de la parte de filtro de iredmail):
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [17:884]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [17:1596]
:POSTROUTING ACCEPT [17:1596]
:MARK-FIBRA - [0:0]
-A PREROUTING -s 3.0.1.0/24 -d 3.0.1.0/24 -i eth0 -j ACCEPT
-A PREROUTING -i eth1 -m conntrack --ctstate RELATED,ESTABLISHED -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
-A PREROUTING -d 3.0.1.123 -m conntrack --ctstate NEW -j MARK-FIBRA
-A INPUT -d 3.0.1.123  -m conntrack --ctstate NEW -j MARK-FIBRA
-A OUTPUT -d 3.0.1.123  -m conntrack --ctstate NEW -j MARK-FIBRA
-A MARK-FIBRA -j MARK --set-xmark 0x2/0xffffffff
-A MARK-FIBRA -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
-A MARK-FIBRA -j MARK --set-xmark 0x2/0xffffffff
-A MARK-FIBRA -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
COMMIT
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp --dport 10000 -j ACCEPT
-A INPUT -p tcp --dport 53  -j ACCEPT
-A INPUT -p udp --dport 53  -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p tcp --dport 25 -j ACCEPT
-A INPUT -p tcp --dport 587 -j ACCEPT
-A INPUT -p tcp --dport 110 -j ACCEPT
-A INPUT -p tcp --dport 995 -j ACCEPT
-A INPUT -p tcp --dport 143 -j ACCEPT
-A INPUT -p tcp --dport 993 -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT
COMMIT


3. Añadir lo siguiente a /etc/iproute2/rt_tables
250     ADSL
249     FIBRA


4. Añadir lo siguiente a un nuevo fichero /etc/init.d/routes
#!/bin/bash
export PATH=$PATH:/sbin:/usr/sbin
ip route flush table FIBRA
ip route add default via 3.0.1.51 dev eth1 table FIBRA
ip route add to 3.0.1.0/24 dev eth0 table default
ip route flush cache
ip rule flush
ip rule add from all lookup local priority 0
ip rule add from all fwmark 0x2 lookup FIBRA priority 90
ip rule add from 3.0.1.123 lookup FIBRA priority 91
ip rule add from all lookup main priority 32766
ip rule add from all lookup default priority 32767

#Finally, make sure that the rp_filter option is disabled on the router, otherwise it could drop packets:
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > "$i"; done

# Set up so that both cards can share network
# http://unix.stackexchange.com/questions/126832/linux-routing-for-receiving-packet
sysctl -w net.ipv4.conf.eth0.arp_announce=2
sysctl -w net.ipv4.conf.eth1.arp_announce=2
sysctl -w net.ipv4.conf.eth0.arp_filter=1
sysctl -w net.ipv4.conf.eth1.arp_filter=1
sysctl -w net.ipv4.conf.eth0.arp_ignore=1
sysctl -w net.ipv4.conf.eth1.arp_ignore=1


5. Darle permisos de ejecución
 chmod 755 /etc/init.d/routes

6. Llamarlo desde el /etc/init.d/ip_tables del iRedMail, en la parte del start, entre el touch y el return:
...
 start() {
     # Do not start if there is no config file.
     [ -f "$IPTABLES_DATA" ] || return 1
 
     log_daemon_msg "Applying $IPTABLES firewall rules"
 
     OPT=
     [ "x$IPTABLES_SAVE_COUNTER" = "xyes" ] && OPT="-c"
 
     $IPTABLES-restore $OPT $IPTABLES_DATA
     if [ $? -eq 0 ]; then
         log_end_msg 0
     else
         log_end_msg 1; return 1
     fi
     
     # Load additional modules (helpers)
     if [ -n "$IPTABLES_MODULES" ]; then
        echo -n "Loading additional $IPTABLES modules"
        ret=0
        for mod in $IPTABLES_MODULES; do
            echo -n "$mod "
            modprobe $mod > /dev/null 2>&1
            let ret+=$?;
        done
        [ $ret -eq 0 ] && log_end_msg 0 || log_end_msg 1
     fi
     
     touch $VAR_SUBSYS_IPTABLES
 
+### SICO ADDENDA
+/etc/init.d/routes start
+### END OF SICO ADDENDA
 
     return $ret
 }
...


7. Hacer que admita que varios interfaces de red estén en la misma red, pone lo siguiente al final del /etc/init.d/routes

sysctl -w net.ipv4.conf.eth0.arp_announce=2
sysctl -w net.ipv4.conf.eth0:1.arp_announce=2
sysctl -w net.ipv4.conf.eth0.arp_filter=1
sysctl -w net.ipv4.conf.eth0:1.arp_filter=1
sysctl -w net.ipv4.conf.eth0.arp_ignore=1
sysctl -w net.ipv4.conf.eth0:1.arp_ignore=1



Wednesday, 10 December 2014, 10:25:13 am
Instalo FreeBSD 10.1 x86-64 en internetti Para poder seguir el tutorial para freebsd con instrucciones para poner la fibra con mpd5. Pasos realizados:

1. Instalo usando un pendrive con la imagen de 10.1-release para x86-64 UEFI, interfaz de red em0 con ip 3.0.1.9, todo lo demás por defecto (y se crea un usuario, ana, al que invito al grupo wheel cuando me lo pregunta)
2. Arranco desde el HDD.
3. Hago lo siguiente para configurar el ppp en el interfaz re0 (como root) con nat:
ifconfig vlan0 create
ifconfig vlan0 vlan 6 vlandev re0
cd /usr/ports/net/mpd5
make install clean
cp /dev/tty /usr/local/etc/mpd5/mpd.conf
infinity:
  create bundle static B1
  set iface name tun0
  set iface enable tcpmssfix
  set iface route default
  set ipcp ranges 0.0.0.0/0 0.0.0.0/0
  create link static L1 pppoe
  set link action bundle B1
  set auth authname adslppp@telefonicanetpa
  set auth password adslppp
  set link max-redial 0
  set link mtu 1492
  set link mru 1492
  set link keep-alive 10 60
  set pppoe iface vlan0
  set pppoe service ""
  open
default:
  load infinity
^D
/usr/local/etc/rc.d/mpd5 onestart

4. Para que arranque automáticamente el ppp en el inicio, se edita el /etc/rc.conf
vi /etc/rc.conf

Se añade lo siguiente:
ifconfig_re0="up"
cloned_interfaces="vlan0"
ifconfig_vlan0="vlan 6 vlandev re0"

mpd_enable="YES"
gateway_enable="YES"

Y también se borra el default route de rc.conf.
5. Activo el pf firewall
echo 'pf_enable="YES"' >> /etc/rc.conf
echo 'pf_rules="/etc/pf.conf"' >> /etc/rc.conf
ssh root@3.0.1.46 "cat /shared/unix/chroots/internettiOBSD5.6/etc/pf.conf" | sed "s/pppoe/tun/g" | grep -v scrub | grep -v "^pass.*rdr-to\|nat-to" > pf.conf
pfctl -F all -f /etc/pf.conf

En el comando anterior hemos eliminado las líneas que dan error en el pfctl -vnf /etc/pf.conf, es decir, las líneas 51 (scrub), 65,67 y 68 (rdr-to, nat-to).
5. ya está, se reinicia para ver que todo funciona y listo.
 reboot


Friday, 5 December 2014, 11:22:51 am
Instalo Dragonfly BSD 4.0.1 x86-64 en internetti Usando la guía de instalación y la de pppoe. Hay un tutorial más completo aquí

Para el PPP hay un tutorial para freebsd contra la fibra de telefónica con mpd5 (en linux era diferente):


pkg install mpd5

he editado /etc/rc.conf (manual)para las vlan y /etc/ppp/ppp.conf (manual) para el ppp

Después de reiniciar se prueba con:
 internetti# ppp -ddial fibra


Friday, 5 December 2014, 8:22:22 am
Alternativa por si no consigo hacer funcionar el Debian/kfreebsd ni dragonflybsd: bitrig Para el Bitrig (OpenBSD fork): Información aquí y proceso de instalación. Otro tutorial de instalación.

Thursday, 4 December 2014, 10:52:01 am
Actualizo internetti a Debian/kFreeBSD jessie mediante una reinstalación Como el OpenBSD 5.6 está dando cores (por algo de interrupciones) y noencuentro como actualizar a -current, cambio el S.O. a debian/kfreebsd. Utilizo el instalador beta2 para jessie kfreebsd-amd64. He instalado como:
  • He copiado la ISO de instalación a un pendrive con un dd
  • Cuando después de arrancar el pendrive me ha preguntado por el cdrom, he dicho que driver "none" y como dispositivo /dev/ud0 (descubuierto mirando el /var/log/syslog después de reintroducir el pendrive)
  • Cuando ha pedido instalar el grub le he dicho que en /dev/ada0 (el primer HDD).

Notas para el resto de las partes:
1. He copiado el pf.conf directamente desde el antiguo openbsd
cd /etc
mv pf.conf pf.conf.sample
scp root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.6/etc/pf.conf .

2. Para el pppoe he usado información de aquí (y 1 2 3)
kldload ng_pppoe

3. Para el OpenVPN se puede usar la información de aquí

NOTA: información para las vlan
NOTA: resolta que el ppp de freebsd no está portado a debian/kfreebsd, y las hackedutils tienen un ppp que no soporta pppoe (por un problema con el netgraph), aparte de ser para FreeBSD 9 y no 10 como tiene jessie. Por último, se puede usar el ng_pppoe del núcleo directamente usando la utilidad para multilink (ver instrucciones (jp)), pero el mpd no está compilado para debian/kfreebsd.


Tuesday, 25 November 2014, 11:14:47 am
Cambio la configuración del sshd de uiharu para que salchicha pueda seguir coenctándose Me estaban dando errores de:
 no matching cipher found
 no kex alg 
Para arreglarlo, he añadido a uiharu:/etc/ssh/sshd_config lo siguiente:

Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-cbc
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1


Y después reiniciado el sshd en uiharu.

Wednesday, 5 November 2014, 11:16:03 am
Actualizo internetti a OpenBSD 5.6 mediante una resinstalación Pases seguidos:
1. Bajar install56.iso para x86_64 y grabarlo a CD
2. Arrancar del CD, aceptar las opciones por defecto de la instalación excepto:
  • hibernate on close lid [yes]: no
  • whole disk: yes
  • sólo instalo los paquetes que NO empiezan por x
3. Después de arrancar se hace lo siguiente:
cd /etc/
scp root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/etc/hostname.em0 .
scp root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/etc/hostname.pppoe0 .
scp root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/etc/hostname.re0 .
scp root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/etc/hostname.vlan6 .
scp root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/etc/pf.conf .
scp root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/etc/sysctl.conf .
cd /var/named  
scp -r root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/var/named/* .
cd /etc/
scp root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/etc/rc.conf.local .
export PKG_PATH="ftp://ftp.openbsd.org/pub/OpenBSD/5.6/packages/amd64/"
pkg_add -i lzo
pkg_add -i openvpn
pkg_add -i git
cd /usr/local/share/examples/openvpn/
git clone -b release/2.x https://github.com/OpenVPN/easy-rsa.git easy-rsa
su - ana


Y como usuario:
cd
scp -r root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/home/ana/easyrsa .
exit


Como root otra vez:
cd /etc
scp -r root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/etc/openvpn .
pkg_add pcre
pkg_add nginx
mkdir -p /var/log/nginx/log/
scp -r root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/etc/nginx .
cd /etc/ssl
scp -r root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/etc/ssl/certs .
scp -r root@3.0.1.46:/shared/unix/chroots/internettiOBSD5.4/etc/ssl/private .


Y con esto ya está todo trasladado de la instalación antigua a la nueva.

Monday, 20 October 2014, 10:24:16 am
Hago que shirka forwardee el puertos 1525 a main1 usando ssh Siguiendo las instrucciones del "Tuesday, 11 February 2014, 9:57:25 am"

Tuesday, 7 October 2014, 10:17:31 am
Comprobar los certificados SSL Se puede hacer desde un sitio web externo. He usado estos dos:

Tuesday, 7 October 2014, 10:13:34 am
Resulta que todavía éramos vulnerables al heartbleed en el openbsd; aplico los parches pertinientes Siguiendo este tutorial para actualizar OpenBSD y este otro, es una simple instrucción:

export PKG_PATH="ftp://ftp.openbsd.org/pub/OpenBSD/5.4/packages/amd64/"
pkg_add -uvi


PERO para arreglar lo del OpenSSL (heartbleed, test) hay que instalar los parches (parches 007, 008 y 009 de OpenBSD 5.4):
cd /root
curl http://ftp.openbsd.org/pub/OpenBSD/patches/5.4/common/007_openssl.patch > 007_openssl.patch
curl http://ftp.openbsd.org/pub/OpenBSD/patches/5.4/common/008_openssl.patch > 008_openssl.patch
curl http://ftp.openbsd.org/pub/OpenBSD/patches/5.4/common/009_openssl.patch > 009_openssl.patch


Se puede seguir este howto para parchear openbsd 5.4.

NOTA: Antes de seguir el howto, hay que montar un HDD externo en /usr/src:
dmesg | grep sd0 
disklabel sd0
mount /dev/sd0i /usr/src



Tuesday, 7 October 2014, 9:18:49 am
Hacemos un certificado para *.sicosoft.es El procedimiento es igual que veces anteriores:

openssl req -new -newkey rsa:4096 -days $(( 365 * 2 )) -nodes -keyout asterisk.sicosoft.es.key -out asterisk.sicosoft.es.csr


Entonces hago (NOTA: es un class-2, no un class-1 como antes):

curl  http://www.startssl.com/certs/sub.class2.server.ca.pem > sub.class2.server.ca.pem
curl https://www.startssl.com/certs/ca.pem > startssl.ca.crt
wget http://www.startssl.com/certs/sub.class2.server.ca.pem 
cat sub.class2.server.ca.pem startssl.ca.crt > startssl.chain.class2.server.crt
cat asterisk.sicosoft.es.crt startssl.chain.class2.server.crt > asterisk.sicosoft.es.pem


Instalo dichos certificados en internetti Los instalo y los pongo en el nginx.conf. En internetti, como root:

cd /etc/ssl/private/
scp dario@3.0.1.3:certs/asterisk.sicosoft.es/asterisk.sicosoft.es.key .
chmod 640 *.key *.pem *.crt
cd /etc/ssl/certs/
scp dario@3.0.1.3:certs/asterisk.sicosoft.es/asterisk.sicosoft.es.pem .
cd /etc/nginx/
vi nginx.conf


Y también en zen:
cd /etc/ssl/certs
scp dario@3.0.1.3:certs/asterisk.sicosoft.es/asterisk.sicosoft.es.pem iRedMail_CA.pem
cd /etc/ssl/private
scp dario@3.0.1.3:certs/asterisk.sicosoft.es/asterisk.sicosoft.es.key iRedMail.key
chmod 640 iRedMail.key 
chgrp ssl-cert iRedMail.key


Tuesday, 16 September 2014, 10:50:44 am
Hacemos un nuevo certificado para sico2.sicosoft.es Siguiendo el mismo procedimiento que el "Wednesday, 10 September 2014, 10:25:40 am";
 openssl req -new -newkey rsa:4096 -days 365 -nodes -keyout sico2.sicosoft.es.key -out sico2.sicosoft.es.csr


Y los campos rellenados como en el post de abajo.

Idem para mail.sicosoft.es Con
openssl req -new -newkey rsa:4096 -days 365 -nodes -keyout mail.sicosoft.es.key -out mail.sicosoft.es.csr



Monday, 15 September 2014, 8:54:22 am
Resumen de cómo hacer certificado
openssl req -new -newkey rsa:4096 -days 365 -nodes -keyout informes.sicosoft.es.key -out informes.sicosoft.es.csr


Copio el resultado del procedimiento en startssl a informes.sicosoft.es.crt y entonces hago:

curl https://www.startssl.com/certs/sub.class1.server.ca.pem > startssl.sub.class1.server.ca.crt
curl https://www.startssl.com/certs/ca.pem > startssl.ca.crt
cat startssl.sub.class1.server.ca.crt startssl.ca.crt > startssl.chain.class1.server.crt
cat informes.sicosoft.es.crt startssl.chain.class1.server.crt > informes.sicosoft.es.pem
chown root:root *.crt *.key *.pem
chmod 640 *.key *.pem
cp informes.sicosoft.es.pem /etc/ssl/certs/
chmod 644 /etc/ssl/certs/informes.sicosoft.es.pem
cp informes.sicosoft.es.key /etc/ssl/private/
chgrp ssl-cert /etc/ssl/private/informes.sicosoft.es.key


Wednesday, 10 September 2014, 10:25:40 am
Creación de un certificado en el startssl.com
dario@uiharu:~/certs/informes.sicosoft.es$ openssl req -new -newkey rsa:4096 -days 365 -nodes -keyout informes.sicosoft.es.key -out informes.sicosoft.es.csr
Generating a 4096 bit RSA private key
.............................................................................................................................................++
.........................................................................................................++
writing new private key to 'informes.sicosoft.es.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:Spain
Locality Name (eg, city) []:Alcobendas
Organization Name (eg, company) [Internet Widgits Pty Ltd]:SICOSOFT
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:sicosoft.es
Email Address []:javiersoler@sicosoft.es

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
dario@uiharu:~/certs/informes.sicosoft.es$


Monday, 8 September 2014, 9:52:32 am
Instalo el nginx en internetti Hago lo siguiente (información parical de aquí):
pkg_add pcre
pkg_add nginx


Friday, 5 September 2014, 10:54:26 am
Instalo el maintdclienthtml5 en shirka En el puerto 8080.

Friday, 5 September 2014, 9:03:41 am
Añado informes.sicosoft.es al DNS Apuntando a la IP externa de internetti (fibra).

Wednesday, 3 September 2014, 9:13:36 am
Configuración de un cliente windows para el openvpn Se descarga/instala la aplicación openvpn para windows, y se copia en el directorio config de la aplicación el client.ovpn. Hay que instalar en dicho directorio config también el ca.crt, nombreusuario.sicosoft.es.crt y el nombreusuario.sicosoft.es.key . Por último, en la lista de "conexiones de red" de windows hay que cambiar el nombre a la conexión tipo tun/tap a "vpn".

Tuesday, 2 September 2014, 11:38:13 am
Generar un nuevo certificado para otro cliente en el OpenVPN Se hace en internetti, como usuario:
cd easyrsa
. ./vars
KEY_NAME=clientcarlosculebras ./pkitool carlosculebras.sicosoft.es


Tuesday, 2 September 2014, 9:56:31 am
Instalo OpenVPN en el openbsd de internetti Siguiendo esta guía de instalación de openvpn sobre openbsd yla actualización del documento para OpenBSD 5.3/5.4.

En internetti, como root:
pkg_add -i lzo
pkg_add -i openvpn
pkg_add -i git
cd /usr/local/share/examples/openvpn/
git clone -b release/2.x https://github.com/OpenVPN/easy-rsa.git easy-rsa


En internetti, como usuario
cp -R /usr/local/share/examples/openvpn/easy-rsa/easy-rsa/2.0 easyrsa
cd easyrsa
vi vars


Los cambios que he hecho son:
--- /usr/local/share/examples/openvpn/easy-rsa/easy-rsa/2.0/vars        Tue Sep  2 10:17:45 2014
+++ vars        Tue Sep  2 10:23:51 2014
@@ -50,7 +50,7 @@
 # down TLS negotiation performance
 # as well as the one-time DH parms
 # generation process.
-export KEY_SIZE=2048
+export KEY_SIZE=1024
 
 # In how many days should the root CA key expire?
 export CA_EXPIRE=3650
@@ -61,12 +61,12 @@
 # These are the default values for fields
 # which will be placed in the certificate.
 # Don't leave any of these fields blank.
-export KEY_COUNTRY="US"
-export KEY_PROVINCE="CA"
-export KEY_CITY="SanFrancisco"
-export KEY_ORG="Fort-Funston"
-export KEY_EMAIL="me@myhost.mydomain"
-export KEY_OU="MyOrganizationalUnit"
+export KEY_COUNTRY="ES"
+export KEY_PROVINCE="Madrid"
+export KEY_CITY="Alcobendas"
+export KEY_ORG="SICOSOFT"
+export KEY_EMAIL="dariorodriguez@sicosoft.es"
+export KEY_OU="IT"
 
 # X509 Subject Field
 export KEY_NAME="EasyRSA"


Y para generar los certificados, como usuario en el directorio easyrsa:
. vars
./clean-all
./build-dh
./pkitool --initca
./pkitool --server vpn.sicosoft.es
KEY_NAME=clientjjcriado ./pkitool jjcriado.sicosoft.es


Para configurar el openvpn, como root:
cd /home/ana/easyrsa
mkdir /etc/openvpn
cp /usr/local/share/examples/openvpn/sample-config-files/server.conf /etc/openvpn/server.conf
cp keys/ca.crt /etc/openvpn/ca.crt
cp keys/dh1024.pem /etc/openvpn/dh1024.pem
cp keys/vpn.sicosoft.es.crt  /etc/openvpn/vpn.sicosoft.es.crt
mkdir /etc/openvpn/private
chmod 500 /etc/openvpn/private
mv keys/vpn.sicosoft.es.key /etc/openvpn/private/vpn.sicosoft.es.key
chmod 400 /etc/openvpn/private/vpn.sicosoft.es.key
vi /etc/openvpn/server.conf


Los cambios que he hecho son:
--- /usr/local/share/examples/openvpn/sample-config-files/server.conf   Tue Jul 23 16:16:46 2013
+++ /etc/openvpn/server.conf    Tue Sep  2 11:00:13 2014
@@ -29,11 +29,11 @@
 # on the same machine, use a different port
 # number for each one.  You will need to
 # open up this port on your firewall.
-port 1194
+port 80
 
 # TCP or UDP server?
-;proto tcp
-proto udp
+proto tcp
+;proto udp
 
 # "dev tun" will create a routed IP tunnel,
 # "dev tap" will create an ethernet tunnel.
@@ -50,7 +50,7 @@
 # unless you partially or fully disable
 # the firewall for the TUN/TAP interface.
 ;dev tap
-dev tun
+dev tun0
 
 # Windows needs the TAP-Win32 adapter name
 # from the Network Connections panel if you
@@ -75,16 +75,16 @@
 # Any X509 key management system can be used.
 # OpenVPN can also use a PKCS #12 formatted key file
 # (see "pkcs12" directive in man page).
-ca ca.crt
-cert server.crt
-key server.key  # This file should be kept secret
+ca /etc/openvpn/ca.crt
+cert /etc/openvpn/vpn.sicosoft.es.crt
+key /etc/openvpn/private/vpn.sicosoft.es.key  # This file should be kept secret
 
 # Diffie hellman parameters.
 # Generate your own with:
 #   openssl dhparam -out dh1024.pem 1024
 # Substitute 2048 for 1024 if you are using
 # 2048 bit keys. 
-dh dh1024.pem
+dh /etc/openvpn/dh1024.pem
 
 # Configure server mode and supply a VPN subnet
 # for OpenVPN to draw client addresses from.
@@ -184,7 +184,7 @@
 # (The OpenVPN server machine may need to NAT
 # or bridge the TUN/TAP interface to the internet
 # in order for this to work properly).
-;push "redirect-gateway def1 bypass-dhcp"
+push "redirect-gateway def1 bypass-dhcp"
 
 # Certain Windows-specific network settings
 # can be pushed to clients, such as DNS
@@ -192,8 +192,8 @@
 # http://openvpn.net/faq.html#dhcpcaveats
 # The addresses below refer to the public
 # DNS servers provided by opendns.com.
-;push "dhcp-option DNS 208.67.222.222"
-;push "dhcp-option DNS 208.67.220.220"
+push "dhcp-option DNS 3.0.1.51"
+push "dhcp-option DNS 3.0.1.170"
 
 # Uncomment this directive to allow different
 # clients to be able to "see" each other.
@@ -252,7 +252,7 @@
 
 # The maximum number of concurrently connected
 # clients we want to allow.
-;max-clients 100
+max-clients 2
 
 # It's a good idea to reduce the OpenVPN
 # daemon's privileges after initialization.


He comprobado que en el /etc/sysctl.conf ya tenía el "net.inet.ip.forwarding=1"

En el firewall (etc/pf.conf) he añadido en TCP_SERVICES el puerto 80.

En el firewall (etc/pf.conf) he añadido la siguiente línea:
pass out on $INT_NIC from 10.8.0.0/24 to any nat-to ($INT_NIC)


Por último, para que arranque automáticamente, se añade la siguient línea en el /etc/rc.local:
sh -c "sleep 20 ; exec /usr/local/sbin/openvpn --daemon --config /etc/openvpn/se
rver.conf" &



Monday, 25 August 2014, 11:12:42 am
Guía alternativa para el wifi de phonedevel En esta otra guía recomiendan instalar el driver de este repositorio (aunqeu el nuestro tiene dos antenas y avisan que en ese caso da problemas...), y en este otro thread indican que para el tl-wn823n (mismo chipset que el nuestro) hay que usar en el hostapd.conf el rtl871xdrv (ver este post).

NOTA: Uso el binario del hostapd que he compilado con las instrucciones de "Monday, 14 July 2014, 5:01:26 pm"

apt-get install linux-headers-amd64 build-essential dkms
cd /usr/src/
mkdir rtl8192cu-fixes
cd rtl8192cu-fixes/
git clone https://github.com/pvaret/rtl8192cu-fixes.git
dkms add ./rtl8192cu-fixes
dkms install 8192cu/1.9
depmod -a
cp ./rtl8192cu-fixes/blacklist-native-rtl8192.conf /etc/modprobe.d/
reboot
cd /usr/src/
rm -rf wpa-1.1/
dpkg-source -x wpa*dsc
cd wpa-1.1/
patch -Np1 < ../hostapd-rtl871xdrv/rtlxdrv.patch 
vi src/wps/wps_registrar.c
# comentamos las líneas 512-516
# básicamente son dos "methods &= "...
cp /dev/tty /tmp/newchangelog
cat <<'EOF' >/tmp/newchangelog
wpa (1.1-1rt8192cu) unstable; urgency=medium

  * apply rt8192cu patches, https://github.com/pritambaral/hostapd-rtl871xdrv 

 -- Dario Rodriguez <dario@softhome.net>  Tue, 15 Jul 2014 09:29:52 +0100

EOF
cp debian/changelog /tmp
cat /tmp/newchangelog /tmp/changelog debian/changelog
sed -i "/cp.*hostapd..config/d" debian/rules
sed -i "s:hostapd/.config::g" debian/rules
cp ../hostapd-rtl871xdrv/.config hostapd/
cp ../hostapd-rtl871xdrv/*.[ch] src/drivers/
vi src/drivers/driver_rtw.c # comentar el include del "linux_wext.h" y
                            # descomentar rel anterior de "wireless_copy.h"
fakeroot debian/rules binary
cp ./debian/hostapd/usr/sbin/hostapd /usr/sbin/hostapd
/usr/sbin/hostapd -B /etc/hostapd/hostapd.conf
/etc/init.d/udhcpd restart
/etc/init.d/firewall restart


Tuesday, 29 July 2014, 5:31:21 pm
Hago que shirka forwardee el puerto 1529 a main1 usando ssh Siguiendo las instrucciones del "Tuesday, 11 February 2014, 9:57:25 am"

Monday, 14 July 2014, 5:01:26 pm
Instalo el nuevo adaptador wifi en phonedevel Siguiendo esta guía.

apt-get install wpasupplicant hostapd bridge-utils wireless-regdb \
   iw wireless-tools usbutils psmisc crda apt-utils dialog
sed -i "s/jessie main\$/jessie main contrib non-free/g" \
   /etc/apt/sources.list
apt-get update
apt-get install firmware-atheros firmware-realtek


Como el adaptador que estamos usando usa "rtl8192cu", el driver del hostapd que hay que usar es el "rtl871xdrv" (ver 1, 2 y 3). Los fuentes de esa versión del hostapd están aquí

 /etc/hostapd/hostapd.conf
interface=wlan0
bridge=br0
driver=rtl871xdrv
device_name=RTL8192CU
manufacturer=Realtek
hw_mode=g
ieee80211n=1
wmm_enabled=1
channel=2
country_code=ES
ieee80211d=1
ssid=WiFiAp
auth_algs=3
wpa=3
wpa_passphrase=contake
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
macaddr_acl=0
ht_capab=[HT20][SHORT-GI-20]
eap_reauth_period=360000000
ignore_broadcast_ssid=0


Y para el resto de la configuración:

chmod 640 /etc/hostapd/hostapd.conf
cd /etc/init.d/
mv hostapd hostapd.disabled
cd /etc/network
mv interfaces interfaces.stock-backup


 /etc/network/interfaces
auto lo eth0
iface lo inet loopback
iface eth0 inet static
        address 3.0.1.3
        gateway 3.0.1.51
        network 3.0.1.0
        netmask 255.255.255.0
        broadcast 3.0.1.255
        post-up /bin/sleep 10 ; /usr/sbin/hostapd -B /etc/hostapd/hostapd.conf
        pre-down /usr/bin/killall hostapd
iface wlan0 inet static
        address 192.168.3.5
        network 192.168.3.0
        gateway 192.168.3.0
        netmask 255.255.255.0
        broadcast 192.168.3.255


Instalamos el udhcpd y el firewall antiguo:

apt-get install udhcpd
vi /etc/default/udhcpd #(<--enable daemon)
cd /etc
scp root@3.0.1.46:/shared/unix/chroots/phonedevel/etc/udhcpd.conf .
cd init.d/
scp root@3.0.1.46:/shared/unix/chroots/phonedevel/etc/init.d/firewall .
sed -i "s/ath0/wlan0/g" firewall
vi networking #(<--add a call to firewall after start/restart)



Compilamos un hostapd con los parches adecuados:
cd /usr/src
apt-get source hostapd
apt-get build-dep hostapd
git clone https://github.com/pritambaral/hostapd-rtl871xdrv.git
cd wpa-1.1
patch -Np1 < ../hostapd-rtl871xdrv/rtlxdrv.patch 
cat src/wps/wps_registrar.c.rej
vi src/wps/wps_registrar.c # comentamos las líneas 512-516
                           # básicamente son dos "methods &= "...
cp /dev/tty /tmp/newchangelog
cat <<'EOF' >/tmp/newchangelog
wpa (1.1-1rt8192cu) unstable; urgency=medium

  * apply rt8192cu patches, https://github.com/pritambaral/hostapd-rtl871xdrv 

 -- Dario Rodriguez <dario@softhome.net>  Tue, 15 Jul 2014 09:29:52 +0100

EOF
cp debian/changelog /tmp
cat /tmp/newchangelog /tmp/changelog debian/changelog
sed -i "/cp.*hostapd..config/d" debian/rules
sed -i "s:hostapd/.config::g" debian/rules
cp ../hostapd-rtl871xdrv/.config hostapd/
cp ../hostapd-rtl871xdrv/*.[ch] src/drivers/
vi src/drivers/driver_rtw.c # comentar el include del "linux_wext.h" y
                            # descomentar rel anterior de "wireless_copy.h"
fakeroot debian/rules binary
cd ..
dpkg -i hostapd_1.1-1rt8192cu_amd64.deb
echo hostapd hold | dpkg --set-selections
dpkg -i wpasupplicant_1.1-1rt8192cu_amd64.deb
echo wpasupplicant hold | dpkg --set-selections



Thursday, 3 April 2014, 8:36:14 am
Hago que shirka forwardee los puertos 1527 1530 1531 a main1 usando ssh Siguiendo las instrucciones del "Tuesday, 11 February 2014, 9:57:25 am"

Monday, 31 March 2014, 5:33:36 pm
Hago que main1 forwardee el puerto 5902 a frontpci02 desde shirka Siguiendo las instrucciones del "Tuesday, 11 February 2014, 9:57:25 am".

Wednesday, 5 March 2014, 10:56:21 am
Configuración de la máquina OpenBSD (internetti)
Se ha conectado la fibra a la tarjeta integrada (ra0), y la lan a la tarjeta pci (em0).

En /etc
[hostname.em0]
inet 3.0.1.51 255.255.255.0
!/sbin/route add 16.0.62.18 3.0.1.42
[hostname.pppoe0]
inet 0.0.0.0 255.255.255.255 NONE \
        pppoedev vlan6 authproto pap \
        authname adslppp@telefonicanetpa authkey adslppp up
dest 0.0.0.1
!/sbin/route add default -ifp pppoe0 0.0.0.1
!/usr/bin/pkill named
!/usr/sbin/named -t /var/named -u named
[hostname.re0]
up
[hostname.vlan6]
vlan 6 vlandev re0


El firewall pf.conf:
set limit states 100000
set skip on lo
block           # block stateless traffic
pass            # establish keep-state
block in on ! lo0 proto tcp to port 6000:6010
SYN_ONLY="S/FSRA"
EXT_NIC="pppoe0"
INT_NIC="em0"
EXT_IP="80.28.211.112"
INT_IP="3.0.1.51"
INT_IP2="3.0.1.52"
TCP_SERVICES="{ 22, 25, 53, 443 }"
UDP_SERVICES="{ 53 }"
ICMP_TYPES="echoreq"
match on $EXT_NIC scrub (max-mss 1440)
block return-rst in log on $EXT_NIC proto TCP all
   pass in on $EXT_NIC proto TCP from any to $EXT_IP port $TCP_SERVICES flags $S
YN_ONLY keep state
block in on $EXT_NIC proto udp all
   pass in quick on $EXT_NIC proto UDP from any to $EXT_IP port $UDP_SERVICES ke
ep state
pass in inet proto icmp all icmp-type $ICMP_TYPES
block out on $EXT_NIC all
   pass out quick on $EXT_NIC from $EXT_IP to any keep state
pass in on $EXT_NIC proto tcp from any to any port 25 rdr-to 3.0.1.124
pass in on $EXT_NIC proto tcp from any to any port 443 rdr-to 3.0.1.124
pass out on $EXT_NIC from 3.0.1.0/24 to any nat-to $EXT_IP
set skip on lo0
set skip on $INT_NIC


El sysctl.conf
net.inet.tcp.mssdflt=1452
net.inet.tcp.recvspace=131072
net.inet.tcp.sendspace=131072
net.inet.udp.recvspace=139264
net.inet.udp.sendspace=32768
net.inet.ip.forwarding=1


El DNS, en /var/named
/var/named/named.conf
//...
options {
        version "";     // remove this to allow version queries

        listen-on    { any; };
        listen-on-v6 { none; };

        empty-zones-enable yes;

        //allow-recursion { clients; };
        allow-recursion { 127.0.0.1; 3.0.1.0/24; };
};

logging {
        category lame-servers { null; };
};

include "/etc/named.conf.local";

//...


etc/named.conf.local
acl trusted-servers {
    79.98.145.34;
};

zone "sicosoft.es" {
        type master;
        file "/zones/sicosoft.es.db";
        allow-transfer { 79.98.145.34; };
        also-notify { 79.98.145.34; };
};


 zones/sicosoft.es.db

$TTL 86400
sicosoft.es. IN SOA ns1.sicosoft.es. hostmaster.sicosoft.es. 2014022101 7200 1800 2419200 5400

sicosoft.es. IN  NS      ns1.sicosoft.es.
sicosoft.es. IN  NS      ns2.sicosoft.es.
sicosoft.es. IN  NS      ns3.sicosoft.es.
sicosoft.es. IN  MX      10      mail.sicosoft.es.
sicosoft.es. IN  MX      20      mail2.sicosoft.es.

mail    IN      A       80.28.211.112
mail2   IN      A       80.28.221.188
sico    IN      A       80.28.221.188
sico2   IN      A       80.28.211.112

ns1     86400 IN        A       80.28.211.112
ns2     86400 IN        A       80.28.221.188
ns3     86400 IN        A       79.98.145.34


/etc/rc.conf.local
#!/bin/sh -
multicast_router=YES
named_flags=""


Además en el /etc/rc he cmabiado la posición de aranque del named, desde el "early daemon" hasta donde estaba el ssh, pero sigue sin funcionar el named; sólo cuando se hace un
pkill named
 named

Empieza a funcionar correctamente :-?

Ahora lo he dejado con
 /etc/rc.conf.local
 #named_flags=""

 /etc/rc.local
 sh -c "sleep 20 ; exec named" &

Tuesday, 4 March 2014, 10:00:43 am
Instalando OpenBSD 5.4 en internetti Se ha hecho una instalación por defecto sin X. Se ha puesto el interfaz de la lan en el em0 (que resulta ser la tarjeta PCI) y el ftth en el re0 (que resulta ser la integrada).
Para configurar el ftth se ha seguido este howto (sin la parte de igmp). Se ha complementado con este otro howto más completo.

1. Se ha instalado con las opciones por defecto pero sin las X
2. se ha puesto en el /etc/sysctl.conf lo siguiente:
net.inet.tcp.mssdflt=1452
net.inet.tcp.recvspace=131072
net.inet.tcp.sendspace=131072
net.inet.udp.recvspace=139264
net.inet.udp.sendspace=32768

y el el /etc/rc.conf.local
multicast_router=YES


Para el firewall se tiene:


Se ha hecho lo siguiente del firewall:
1. poner en el /etc/sysctl.conf
net.inet.ip.forwarding=1

2. Hacerlo a mano para que forwardee "desde ya"
 # sysctl net.inet.ip.forwarding=1


Monday, 24 February 2014, 12:38:04 pm
Quitar el router de telefónica en la FTTH Hay un tutorial (y otro más antiguo). Básicamente:
  • instalar rp-pppoe, vlan y ppp
  • configurar el interfaz ppp para que arranque (con las claves corespondientes en /etc/ppp/chap-secrets y /etc/ppp/pap-secrets )

Y aquí hay otro par parte del vlan (y como usar /sbin/vconfig).


Tuesday, 11 February 2014, 9:57:25 am
Hago lo mismo para los puertos 5969 y 5979 Igual que en las entradas anteriores. Resumiendo:
1. Se modifica el firewall de shirka para que haga proxy transparente de esos puertos
2. Se añade en la script /etc/rcS.d/S47sico_miscmain1 para que haga un socat del puerto local a un ssh a main1
3. Se añaden los usuarios a main1 (chroot /chroot ; mount -o remount,rw /home ; mount -o remount,rw / ; adduser xxxx )
4. Para cada usuario se hace
  • poner el .ssh/authorized_keys de la clave de metro@shirka
  • poner el .hushlogin
  • cambiar la script de connect para que se conecte al sitio requerido
  • cambiar el /etc/passwd para que el shell sea /home/nombreusuario/connect

Todo eso con cuidado de hacer los cambios en los directorio /chroot de main1 y shirka y reiniciar después.

Monday, 10 February 2014, 10:15:05 am
Hago lo mismo para los puertos 5999 y 5989 Ver las entradas anteriores.

Friday, 11 October 2013, 5:50:53 pm
Hago que el forwardeo de puertos 80 y 9510 sea transparente Para que se llegue desde sico a main1:80 directamente, he añadido al firewall de shirka lo siguiente:
#!/bin/sh
#
# start/stop maintdserver forward daemon.

### BEGIN INIT INFO
# Provides:          maintdserver
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     S 2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start maintdserver port forward
# Description:       maintdserver port forward
#                    (does an ssh to maintd@16.0.62.18)
### END INIT INFO

test -f /usr/bin/socat || exit 0

/usr/bin/sudo -u metro /usr/bin/socat TCP4-LISTEN:9510,fork EXEC:"/usr/bin/ssh maintd@16.0.62.18" &


Friday, 11 October 2013, 5:27 pm
Hecho otro forwardeo de puertos desde shirka:80 a main1:80 Usando la misma técnica que en la entrada anterior, y usando el usuario "web" en main1.

Saturday, 12 October 2013, 12:13:19 am
Hecho un forwardeo del puerto 9510 desde shirka a main1 usando socat y ssh Lo he hecho de la siguiente manera:
1. En metro@shirka he generado claves para ssh
2. En shirka he hecho un script de arranque con el siguiente contenido:
 /chroot/etc/rcS.d/S47sico_maintdserver
#!/bin/sh
exec /usr/local/bin/nc localhost 9510

3. En main1 he generado un usuario maintd
4. En main1:/etc/passwd he puesto que el usuario maintd tiene como home /incoming/maintd, y como shell "/incoming/maintd/connect"
5. He creado un directorio /incoming/maintd/.ssh y he metido en el authorized_keys la clave pública de metro@shirka
6. He generado el fichero /incoming/maintd/.hushlogin para que el ssh no ponga el motd
7. He hecho el script connect de main1 con el siguiente contenido:
 /chroot/etc/rcS.d/S47sico_maintdserver
%	SOA % hostmaster@% 2011121301 7200 3600 604800 1800 ~

%	NS dns1.% ~
%	NS dns2.% ~

dns1.%		A 80.28.221.188 ~
dns2.%		A 80.37.72.228 ~

internetti.%	A 80.28.221.188 ~
sico.%		A 80.28.221.188 ~
sico2.%		A 80.37.72.228 ~
shirka.%	A 80.37.72.228 ~

mail.%		CNAME sico.% ~
mail2.%		CNAME sico.% ~

%		MX 10 mail2.% ~


Y para que todo funcione, también he hecho un script que arranque en el inicio a maintdserevr en main1.


Friday, 19 October 2012, 4:22:48 pm
Cambio en la contraseña de la VPN Por petición de Metro se cambia la password de acceso via VPN a la siguiente 490sz5ghcd

Wednesday, 18 April 2012, 5:35:59 pm
Conectarse al ONT de fibra directamente, sin el router de teñefónica Dan un enlace para conectar un ordenador Linux directamente al ONT. Resulta que no es un PPPoE normal, sino que hay que habilitar las cabeceras de 802.1q (que también llaman en sitios con el nombre "taggear el tráfico", VLAN o VirtualLan). Hay algo de información en el ebtables. Al final la solución es seguir el siguiente tutorial:
Para probar cómo se comporta el e-mail desde el exterior (y ver que no hay relay aunque sea desde el 3.0.1.199), se puede usar esta guía.


Tuesday, 13 December 2011, 8:29:31 pm
Transición del ADSL desde 213.97.190.112 al 80.28.221.188 Se han realizado los pasos necesarios para la transición del ADSL desde el antiguo de orange al nuevo de telefónica.

Pasos realizados:
1. Se ha cambiado el dns en la web de nominalia
2. Se ha puesto un nuevo fichero de DNS en internetti y en shirka:
 /etc/maradns/db.sicosoft.es

3. Se han reconfigurado los dos "aparatos" de ADSL, de manera que el linksys wag320n de servicio en el adsl 80.28.221.188 y el tecom de telefónica en el antiguo 213.97.190.112. Los datos para 80.28.221.188 (916620254) son:
VPI8
VCI32
EncapPPPoE, LLC
Useradslppp@telefonicanetpa
Passpppuser
4. Se ha configurado el forwardeo de puertos del módem adsl tecom para que sólo forwardee el SMTP (puerto 25). El forwardeo de puertos del wag320n vale el que tenía (ftp/ftp-data, ssh, telnet, smtp, domain, https, 7846).
5. Se ha configurado en seraphim el segundo interfaz de red y se ha conectado ahí el router tecom. Se ha puesto dicho interfaz como gateway por defecto. Se ha hecho que al levantar el interfaz ejecute una script ( /etc/init.d/redir-smtp-zen.sh ) que haga un redir del puerto 25 a zen
6. Se ha configurado el servidor de correo de zen para que los correos que vienen de 3.0.1.45 no permitan relay; he copiado en el fichero de configuración /var/lib/exim4/config.autogenerated
la línea en la que estaba 3.0.1.51, quedando:
 hostlist dont_relay_from_hosts = ; 3.0.1.51/32 ; 3.0.1.45/32
Y después he reiniciado al exim.

Y con eso está la siguiente parte de la transición finalizada. La semana que viene se podrá quitar el ADSL antiguo ya que todos los DNS habrán cogido la nueva configuración.

Monday, 12 December 2011, 8:47:19 pm
Usar equipo con dos ADSL Hay un post que explica como evitar los martian source. Básicamente es marcar los paquetes que vienen por un interfaz para que salgan por ese mismo interfaz.

Thursday, 1 December 2011, 8:36:40 pm
Problemas con el QoS Dice: "HTB: quantum of class 10249 is small. Consider r2q change.". La solución la ponen en esta faq del lartc

Thursday, 17 November 2011, 5:34:14 pm
Activado el forwarding del puerto https desde el router adsl de 213.97.190.112 (mail2.sicosoft.es) a internetti Ya que faltaba y eso hacía que no se pudiera usar el webmail.

Tuesday, 13 September 2011, 5:52:47 pm
He activado QoS en internetti En el script del firewall (/etc/init.d/firewall.sico) he añadido lo siguiente:

# Para QoS, marcamos los paquetes antes de hacer masqueradings
for i in `seq 1 255` ; do
      $IPTABLES -t mangle -A FORWARD -s 3.0.1.$i -j MARK --set-mark $i
done
# Fin del marcado de QoS
...
##############
# QoS con tc #
##############
# http://opalsoft.net/qos/DS-28.htm
# http://opalsoft.net/qos/DS-211.htm
# http://lartc.org/howto/lartc.qdisc.filters.html
# Borramos lo que hubiera
tc qdisc del dev eth0 root 2>/dev/null >/dev/null
# Añadimos las nuevas reglas
tc qdisc add dev eth0 root handle 1:0 htb
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 1024kbit
for i in `seq 1 255` ; do tc class add dev eth0 parent 1:1 classid 1:$(( $i + 1 )) htb rate 4kbit ceil 1024kbit ; done
for i in `seq 1 255` ; do tc qdisc add dev eth0 parent 1:$(( $i + 1 )) handle $(( $i + 1000 )): pfifo limit 10 ; done
for i in `seq 1 255` ; do tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle $i fw flowid 1:$(( $i + 1 )) ; done



Monday, 12 September 2011, 5:03:43 pm
Puesta la segunda ADSL (la antigua de SICO/industria) en shirka Para que la VPN vaya por shirka. Se han hecho los siguientes cambios de configuración:
  • Se ha conectado dicho ADSL a la interfaz de red recundaria de shirka.
  • Añadido al /etc/network/interfaces de shirka de la eth1 con la IP 192.168.0.1 y el default gateway 192.168.0.2 (el adsl, vamos).
  • Se ha añadido el usuario ana
  • Se ha configurado el /etc/security/access.conf para inhibir el acceso desde el exterior a los usuarios root, isa y metro.
  • Se ha descomentado en /etc/pam.d la línea del pam_access.so de login y de sshd.


Monday, 5 September 2011, 7:19:04 pm
Para un futuro: implementar QoS en internetti usando HTB El manual. Lo que me gustaría sería:
  • un bucket por cada IP de la ofi
  • marcar cada paquete saliente con la IP de origen de la ofi
  • llevar el paquete a su bucket (esto lo hace solo, se supone)
  • que todos los buckets tenga la misma prioridad (que haga un round-robin, vamos).
¿Es posible? Bueno, cuendo lo pruebe lo veremos O:).

Friday, 1 July 2011, 4:23:25 pm
Cambiada la password del usuario ana en internetti Se ha añadido un "1" al final de la password que tenía antes.

Thursday, 30 June 2011, 8:00:20 pm
Activado de nuevo el acceso de juan manuel usando abracadabra.tcl en internetti kinuir/jk5b9f8y

Saturday, 30 April 2011, 2:57:39 pm
Sitio con utilidades de seguridad para Windows, entre otros Aquí es donde he encontrado una referencia al McAfee FPort, que es equivalente al "netstat -pan" de Linux. Y tienen muchos más programas (¿habrá tb. un equivalente al iptraf?).

Wednesday, 16 February 2011, 11:34:05 am
Un artículo interesante sobre un "defacement" Este artículo. Básicamente recuerdan que son técnicas básicas de seguridad:
  • Los front-ends web que menden cosas a otros sistemas (shells, BBDD SQL, etc) han de comprobar siempre la entrada para evitar que usen el formulario para obtener documentos diferentes del que se supone que se ha de servir Esto evita SQL injections; que una consulta modificada a la BBDD de como resultado la tabla de passwords en vez del documento a mostrar, o que se ejecute un script con efectos laterales abriendo nuevas vulnerabilidades.
  • El almacenar las passwords en forma de HASH (MD5, SHA1...). Esto evita que si se obtiene la BBDD de passwords se tenga directamente el cómo entrar en el equipo/servicio
  • Usar un hash "lento" (md5 es rápido) Esto minimiza el riesgo por "brute force attacks"
  • Usar iterativamente el hash: pasar la función de hash al hash "n" veces y almacenar el resultado de eso. Esto minimiza el riesgo por uso de "rainbow tables" para btener la password desde el hash, ya que no tiene por qué existir una rainbow table para tu número de iteraciones
  • Añadir un "salt number" al hash antes de realizar el hash Esto también minimiza el riesgo por uso de "rainbow tables para btener la password desde el hash ya que no controlan el "salt number" que añades al texto antes de pasarlo por el hash
  • No dejar entrar usando ssh directamente al usuario root Así los atacantes al menos tienen que comprometer primero una cuenta de usaurio y luego la cuenta de root o usar un ataque de escalado de privilegios
  • No usar passwords, sino autorizar usando claves públics/privadas Si no hay claves textuales, la única forma de entrar es consiguiendo los ficheros de clave privada; esos no están en el servidor sino en el equipo del usuario que entra... viable siempre que el equipo de dichos usuarios estén suficientemente protegidos, claro



Friday, 29 January 2010, 5:51:50 pm
A estudiar: throttling de p2p con ipp2p Instalar IPP2P en Debian para bloquear P2P. Ese manual es para bloquearlo completamente, pero también se puede configurar para simplemente hacer throttling del mismo. NOTA: Como ipp2p ya no se mantiene, sería mejor usar el l7-filter.

Friday, 18 September 2009, 6:11:40 pm
Abro el puerto 22 en el firewall de internettiold en ine-if Que no estaba abierto y por eso no funcionaba el ssh desde internet.

Monday, 20 April 2009, 7:42:50 pm
Abierto puerto 28030 en el internet publico y forwardeado a 3.0.1.33 Pues eso. Para las pruebas de IG-Metrovision

Thursday, 16 April 2009, 4:58:44 pm
Conexión con MLO vía CITRAM Usan "Cisco AnyConnect VPN". Enlaces relevantes:
Por ahora vamos a usar el cliente de Cisco en las máquinas que se quieran conectar. En cuanto haya tiempo se hará lo de hacer la conexión desde internetti (aunque seguramente haya que actualizar a lenny... porque tiene sarge).

Monday, 24 November 2008, 10:15:01 am
Se configura redirección de puertos en frontpci02 hacia las BBDD sagir/control_id Woody estaba teniendo problemas para hacer unos scripts automáticos a las 6am en los fines de semana (como si apagasen la rdsi). Se han habilitado los puertos 1524, 1525 y 5504 en el rinetd.conf de rdsi2 (frontpci02) para que también sean forwardeados a las BBDD correspondientes.

Friday, 14 November 2008, 9:52:56 am
Túnel contra MLO Se conecta a un RAS de windows, y está implementado con el PPTP client for linux de hp. Usa el ppp del sistema.

Se arranca con:
internetti# /etc/init.d/rutas.infoglobal on

Se para con
internetti# /etc/init.d/rutas.infoglobal off

Los fihcheros de configuración son:
/etc/ppp/options.pptp
/etc/ppp/peers/infoglobal


Tuesday, 13 May 2008, 6:13:42 pm
Hago que el puerto 28001 del router vaya a internetti, hago que internetti forwardee (rinetd.conf) dicho puerto a marina Ya que ana lo necesita para unas pruebas remotas con la metta. He quitado el forwadeo del puerto 31000 que había en el router, ya que parecía ser de unas pruebas antiguas y ya no aplica...

Friday, 15 February 2008, 9:01:20 am
Abro el el firewall de internetti los puerto 1527-1528 para que puedan llegar a main1 De manera que puedan acceder desde SICO a las BBDD de serv_pci1..2.

Thursday, 31 May 2007, 5:03:19 pm
Puesto en guagua que pueda llegar a ml2/3 Estaba todo puesto. Faltaba ejecutar a mano el " route add -net 12.192.0.0 netmask 255.255.0.0 gw 10.0.8.1", ya que parece que el vtun no fue reiniciado cuando lo puse...

Tuesday, 24 April 2007, 4:54:28 pm
Puesto en adslold que forwardee puerto 25 a internettiold, y que internettiold forwardee 110 y 25 a 3.0.1.124 de arriba Para soportar el servidor de correo de ese otro dominio (y que se pueda coger el correo desde abajo con 10.0.4.2:110).

Monday, 26 March 2007, 4:26:51 pm
Hago que la conexión RDSI de internetti con main1 vaya siempre por el canal 0 Y lo he hecho añadiendo la siguiente línea al /etc/isdn/device.isdn0 en donde dice "OTHER OPTIONS":
isdnctrl bind isdn0 HiSax,0 exclusive

He comprobado después con un "isdnctrl list all" que hay un pre-bind en el isdn0.

Thursday, 15 February 2007, 5:15:44 pm
Pues no ha funcionado lo de pop3 en internetti; lo he cambiado a una redirección a zen y el stunnel está en zen Así ya se puede usar pop3s desde las casas, desde outlook si se quiere.

Thursday, 15 February 2007, 4:37:31 pm
Hago un nuevo certificado de stunnel.pem para mail2.sicosoft.es internetti Ya había caducado el certificado que hice el año pasado. Esta vez he hecho el certificado para 3650 día (poco menos de 10 años), a ver si así esto es más razonable. He hecho lo siquiente:

# cd /etc/ssl/certs/
# mkdir old
# mv * old/
# openssl req -new -x509 -nodes -days 3650 -out mail2-sicosoft-es.pem -keyout mail2-sicosoft-es.pem

Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:Spain
Locality Name (eg, city) []:Alcobendas
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Sistemas Integrados de Control y Software, SL
Organizational Unit Name (eg, section) []:SICOSOFT
Common Name (eg, YOUR name) []:Jesus Criado
Email Address []:sicosoft@sicosoft.es
# chmod 600 mail2-sicosoft-es.pem
# dd if=/dev/urandom of=temp_file count=2
# openssl dhparam -rand temp_file 512 >> mail2-sicosoft-es.pem
# ln -sf mail2sicosoft-es.pem `openssl x509 -noout -hash mail2-sicosoft-es.pem`.0
# ln -s mail2-sicosoft-es.pem stunnel.pem
# mv old/fb72b55e.0 old/telnetd.pem .


Y luego he reiniciado el stunnel.

NOTA El CN (Common Name) debería ser el hostname del servidor web que está ofreciendo el certificado, p.ej. "mail2.sicosoft.es". En caso contrario el certificado va a ser rechazado siempre. Para más información ver Creating your own CA cert

Friday, 24 November 2006, 11:20:09 am
Añado a main1 que forwardee los puertos de oracle para bd_sagir y bd_controlid Y tb. abro esos puertos en la opción sico->main1 en el firewall de internetti.

Thursday, 23 November 2006, 2:50:24 pm
Pongo en main1 que forwardee los puertos de oracle (1521) a metrosun1, metrosun2 y metrosun3, para canarias. He modificado el main1:/etc/rinetd.conf

Hago que desde canarias tengan ping con main1 He modificado el firewall de internetti, añadiendo forwarding de tun1 a isdn0 y viceversa.

Thursday, 2 November 2006, 11:42:28 am
Pongo el rinetd en main1 y hago que forwardee los puertos del minichat 11512-11515 a internettiY éste su vez a los PCs de Bea, Javi, Carlos y Rosa respectivamente.

Monday, 30 October 2006, 1:24:09 pm
Hago un stunnel de internetti:993 a 3.0.1.124:imap Usando las instrucciones de http://security.fi.infn.it/tools/stunnel/index-en.html. He copiado el /etc/init.d/vtun a /etc/init.d/stunnel y modificado para que acepte un listado de túneles en el fichero /etc/stunnel.conf, cada línea siendo un túnel y con la sintaxis "localport remotehost:remoteport". Después he hecho un "echo 993 3.0.1.124:imap >> /etc/stunnel.conf", "update-rc.d stunnel defaults" y un "/etc/init.d/stunnel start"

Friday, 16 June 2006, 10:57:25 am
Chiro ya tiene router Es un COMTREND CT-536+, información sobre el: tutoriales, puesta a punto del wifi (WPA, MAC Filter y Ocultar SSID), manuales y más tutoriales.

Tuesday, 14 March 2006, 1:51:52 pm
He abierto el puerto 2525 en internetti (met-if) y he puesto un redir hacia salchicha Para soportar el mandar mensajes desde metro con un socket-pipe-client. Para que todo funcione, lo que he puesto ha sido:
  • Un redir en main1 desde el puerto 2525 a iinternetti
  • Abrir el puerto 2525 en internetti
  • Un redir en el puerto 2525 de internetti hacia salchicha
  • el mailmessage-server en salchicha.

Wednesday, 22 February 2006, 12:40:26 pm
Acceso remoto a pop3 en canarias: Abro el puerto 110 en router-cc y en guagua/mips hago que apunte a yaiza.

Friday, 17 February 2006, 4:40:08 pm
Instalación del webmail en yaiza He hecho lo siguiente (que es aproximadamente el mismo procedimiento que seguí en zen, aunque no quedó documentado):
  1. Instalar los paquetes stunnel mathopd qpopper exim4 libc6-dev gcc make cpp:
    # apt-get install stunnel mathopd qpopper exim4 libc6-dev gcc make cpp
  2. Hacer un directorio para los cgis del mathopd y hacer un enlace al cgi del webmail:
    # mkdir /usr/lib/cgi-bin/
    # ln -s /usr/src/nullwebmail-0.8.4sico/webmail.cgi /usr/lib/cgi-bin/webmail.cgi
  3. Hacer el certificado del mail, siguiendo las instrucciones de "Instalación del stunnel" que están debajo de éstas. NOTA: "Organization" es SICOSOFT y "Organizational Unit " es "Sistemas...", y cuando piden el nombre propio, se refiere al FQDN público (hostname completo) de la máquina para la que se genera el certificado.
  4. Poner los ficheros de configuración y redireccionamiento siguientes: etc-initd-mathopd etc-mathopd.conf var-www-index.html. Hay que editar el /etc/init.d/mathopd para que al arrancar el stunnel, use el certificado que hemos creado en el paso anterior, ya que si no, el túnel no arrancará.
  5. Copiar los fuentes del webmail en /usr/src/nullwebmail-0.8.4sico
  6. Copiar /usr/src/nullwebmail-0.8.4sico/webmail en /vaw/www/webmail y cambiar los logos header.png y header2.png de /var/www/webmail a los que correspondan para ese servidor web
  7. Ir a /usr/src/nullwebmail-0.8.4sico/, cambiar la configuración en include/config.h y hacer un "make" para compilar la nueva versión del webmail
  8. Parar y arrancar el mathopd para que arranque con el stunnel:
    # /etc/init.d/mathopd stop
    # /etc/init.d/mathopd start
Además de esto, se ha configurado port-forwarding en guagua de los puertos 25 y 443 a yaiza, y lo mismo en el router-adsl (que los forwardea a
guagua
, y no los filtra con su firewall).

Ahora sólo queda poner los DNSs para que usen dicha máquina para el correo a sicosoft.com, y poner los usuarios de correo.

Friday, 17 February 2006, 3:50:34 pm
Instalación del stunnel En zen, la otra vez hice lo siguiente (aunque asociándolo a mail2.sicosoft.es, independientemente del nombre del certificado):

# cd /etc/ssl/certs
# openssl req -new -x509 -nodes -days 365 -out mail-sicosoft-es.pem -keyout mail-sicosoft-es.pem
# chmod 600 mail-sicosoft-es.pem
# dd if=/dev/urandom of=temp_file count=2
# openssl dhparam -rand temp_file 512 >> mail-sicosoft-es.pem
# ln -sf mail-sicosoft-es.pem `openssl x509 -noout -hash < mail-sicosoft-es.pem`.0


Y después, cambié el script de /etc/init.d/mathopd para que arrancase el túnel a la vez que el servidor web. La script modificada es esta: etc-initd-mathopd.

(Aproximadamente, ya que no me acuerdo del todo bien).

Friday, 18 November 2005, 10:28:25 am
Instalado el rsyncd en frontpci02 Pero sólo escuchando en el interfaz rdsi. Esto es para poder copiar las fotos con un cron desde seraphim.

Thursday, 3 November 2005, 9:15:32 am
Abro los puertos 11000-11099 al PC de Carlos Y pongo en internetti que haga un redir del 11000 y un uredir del 11010. El resto de los puertos "mueren" en internetti.

Wednesday, 20 July 2005, 12:16:39 pm
He añadido la 3.0.1.x al DNS de salchicha Para que los telnets sean más rápidos. Lo he hehco siguiendo el siguiente tutorial de configuración del bind. Además he puesto que tanto zen, seraphim resuelvan también con el 3.0.1.170 (además de con el 3.0.1.51).

Wednesday, 6 July 2005, 9:54:59 am
He puesto rutas desde la oficina de arriba a database He puesto un interfaz "dummy" en database con la ip 10.0.64.1 y he puesto rutas en internetti y en internettiold para que sepan rutar a dicha dirección IP. También he modificado el firewall de internetti para que la regla si2-sic deje pasar a dichos paquetes (es decir, los que van desde la oficina antigua a database).

Wednesday, 6 July 2005, 9:51:20 am
He puesto un túnel desde iris(portatilana) a internetti (sico2.sicosoft.e) Ho que he ehcho ha sido:
  1. Añadir al firewall de internetti la nueva "RED_CIPE" a la lista (en el caso de ana es la 6).
  2. Reiniciar el firewall
  3. Añadir en internetti a /etc/vtund.conf una nueva conxión (tipo tcp, etc, etc).
  4. Instalar en iris el vtun
  5. Instalar en un fichero de arranque de iris el que cargue el módulo tun (en iris lo he puesto en /etc/rc.boot, pero lo normal es añadirlo a /etc/modules)
  6. poner en iris un /etc/vtun.conf con la nueva conexión (copiada del de internetti pero cambiando el peer y añadiendo otro route para la red 3.0.1.x)
  7. poner en iris un /etc/vtund-start.conf con la siguiente línea:
    internetti-anaportatil 80.37.72.228 -P 6544
  8. Hacer en iris un /etc/init.d/vtun restart

Y eso es todo ;-).

Tuesday, 28 June 2005, 9:02:13 am
He vuelto a abrir el puerto 22 en sico2.sicosoft.es/internetti Esta vez poniendo el OpenSSH_3.8.1p1 (recompilado para woody usando los fuentes del backport de backports (xaranet mirror). Los fuentes están en internetti:/root/src.ssh. Lo único que ha habido que hacer además de instalrlo ha sido dar acceso en los tcpwrappers, añadiendo a /etc/hosts.allow un "sshd: ALL". La razón de usar dicha versión del ssh es para que tuviera soporte a PAM. También he añadido al /etc/pam.d/ssh un "account required pam_access.so".

Friday, 24 June 2005, 1:33:05 pm
He abierto el puerto 22 (ssh) en sico2.sicoft.es (hacia internetti) y puesto el dropbear en internetti Así se debería de poder hacer un login seguro a sico2 desde internet.
Update: A úiltima hora he quitado el dropbear de internetti, ya que no permite poner restricciones con PAM (access.conf).

Friday, 27 May 2005, 11:20:38 am
Pongo redirs entre internetti e internettiold y entre internetti y seraphim He puesto un redir en internettiold para pasar el puerto 80 al 8080 de internetti y en internetti otro para pasar el 880 al 80 de seraphim.

NOTA: Al final he renunciado a hacer proxy-arp entre las dos oficinas, ya que era extremadamente difícil por lo de tener dos PCs con la misma IP (internetti e internettiold), que además son los gateways de las redes respectivas y que tienen una red diferente entre ellos :-/. La documentación de la que disponía era 2.4 routing y arp networking tricks.

Friday, 27 May 2005, 11:18:54 am
Redir en internettiold para llegar a los vnc de sic(old) He puesto en internettiold (10.0.4.2) dos redir en el arranque para que se pueda llegar desde todos los ordenadores de la oficina nueva a controlar usando vnc los dos ordenadores de la oficina antigua. Está mapeados de la siguiente manera:
Mantenimiento3.0.1.85LegolasWinXP
vnc a 10.0.4.2:0
Juan Manuel3.0.1.96PippinWinXP
vnc a 10.0.4.2:1

Wednesday, 18 May 2005, 8:43:44 am
HARDWARE: tarjetas rdsi En Alternate pueden pedir la tarjeta "isdn 128" que va con un winbond "cologne". Dicho chip está soportado por linux (por el fabricante). Necesitamos al menos una...

Tuesday, 17 May 2005, 12:41:44 pm
En el servidor de correo he activado el allow_domain_literals Se supone que eso se puede abusar para mandar spam, pero no he encontrado otra manera de mandar el correo usando un .forward desde zen a internettiold. Para más información ver Mantenimiento de DNS y correo de sico. En este mensaje apuntan que los problemas de seguridad que esto acarrea no son graves (parece que ninguno aplica al sistema de sico).

Friday, 13 May 2005, 3:48:55 pm
Internetti actualizado a iptables Y funciona tanto el ftp como el rutas.miguel.

Problemas con rutas.carlos Ver este, este y este otro mensaje. Voy a interntar implementar lo que dicen en el último mensaje.

Wednesday, 11 May 2005, 12:40:13 pm
Conversión de internetti de ipchains a iptables Utilizando este tutorial para impacientes O:-), un ejemplo complejo y una introducción un poco más completa.

Monday, 9 May 2005, 7:58:43 am --Dario
He terminado de configurar el túnel internetti-internettiold Lo he configurado como un túnel tcp, ya que como udp no llegaban los paquetes de un extremo al otro (?). Lo que sí he puesto es compresión lzo:9 (según un howto de por ahí...).

Quito la rdsi entre internetti e internettiold Ya que con el túnel no es necesaria.

Monday, 9 May 2005, 7:34:52 am --Dario
He configurado el túnel desde tecnosaurus Para no tener que hacer un telnet a pelo cuando tengo que trabajar algo desde casa.

Tuesday, 19 April 2005, 5:24:21 pm --Dario
Cambiado el túnel de guagua para que vaya a internetti en vez de a internettiold Ayudado por Chiro y usando el chat (ya que no puedo entrar a guagua desde el exterior :-? ), hemos hecho:
  1. editar en guagua el /etc/vtund-start.conf para que ponga la ip de sico2 en vez de la de sicoold
  2. reiniciar en guagua el tunel con un /etc/init.d/vtun restart
Y con eso ha sidosuficiente; ahora tanto guagua como portalico establecen el túnel contra internetti en vez de contra internettiold :-)

Tuesday, 19 April 2005, 11:39:23 am --Dario
He cambiado el túnel de portalico para que vaya a internetti, en vez de a internetti old Lo que he hecho ha sido:
  1. Habilitar que el adsl1 (sico2) forwardee el puerto 6544 a internetti
  2. cambiar en portalico la ip del peer a la de sico2
  3. hacer el enlace en internetti desde /dev/misc/net/tun a /dev/net/tun (ya que faltaba, y resulta que es ese el que usa el vtun)
  4. reiniciar el vtun en internetti
  5. reiniciar el vtun en portalico

Y con eso ya tengo ping directo desde internetti a portalico :-).

Friday, 24 December 2004, 10:02:29 am --Dario
He activado TOS (type of service) en internetti, rdsi y rdsi2 Lo que he puesto es lo siguiente dentro de los firewalls:

Internetti (kernel 2.2, ipchains):

ipchains -A output -p tcp -d 0.0.0.0/0 telnet -t 0x01 0x10
ipchains -A output -p tcp -d 0.0.0.0/0 www -t 0x01 0x10
ipchains -A output -p tcp -d 0.0.0.0/0 ftp -t 0x01 0x10
ipchains -A output -p tcp -s 0.0.0.0/0 ftp-data -t 0x01 0x08
ipchains -A output -p tcp -s 0.0.0.0/0 smtp -t 0x01 0x08
ipchains -A output -j ACCEPT


main1/rdsi (kernel 2.2, ipchains):

ipchains -A output -p tcp -d 0.0.0.0/0 telnet -t 0x01 0x10
ipchains -A output -p tcp -d 0.0.0.0/0 ftp -t 0x01 0x10
ipchains -A output -p tcp -s 0.0.0.0/0 ftp-data -t 0x01 0x08


frontpci02/rdsi2 (kernel 2.4, iptables):

iptables -A PREROUTING -t mangle -p tcp --dport telnet -j TOS --set-tos Minimize-Delay
iptables -A PREROUTING -t mangle -p tcp --dport ftp -j TOS --set-tos Minimize-Delay
iptables -A PREROUTING -t mangle -p tcp --dport ftp-data -j TOS --set-tos Maximize-Throughput



Tuesday, 7 December 2004, 9:58:13 am --Dario
Abrir el puerto 11511 para aceptar conexiones de minichat con carlos desde metro He abierto el puerto 11511 en internetti, y he puerto forwarders de ese puerto tanto en main1 como en internetti, de manera que las conexiones a ese puerto que se hagan en metro, aparezcan en el pc de carlos (en el cual hemos dejado un minichat server corriendo...).

Friday, 30 April 2004, 1:24:36 pm --Dario
tun-sanitize en internetti.He puesto en internetti una entrada en el crontab de root para que llame cada 20min a /usr/local/bin/tun-sanitize, que es una script que mata los túneles de guagua/portalico en caso de haber más de 1 de cada (pero sólo mata a los "ofensores", no a los inocentes ;-).

Tuesday, 25 November 2003, 5:33:48 pm --Dario
Reexport de nfs activado en main1 y en frontpci02 He modificado /etc/init.d/nfs-server para que llame a rpc.mountd y a rpc.nfsd com el flag -r (ver http://seclists.org/lists/linux-kernel/2001/Aug/0331.html).

Tuesday, 25 November 2003, 11:23:51 am --Dario
Instalación de ttysnoop en frontalc Siguiendo las intrucciones de Linux help tty snoop setup guide, pero solo para telnet (para permitir mostrar cosas desde la oficina ;-).

Monday, 10 November 2003, 1:47:08 pm --Dario
Script de supervisión de los tuneles de portalico y guagua Se ha instalado un script que supervise el estado de los túneles, tabto en protlaico como en guaga. La versión de portalico es esta: vtun-check.tar.gz

Friday, 7 November 2003, 2:58:18 pm --Dario
Conexión a metro inexplicablemente fallida Ha habido un problema con la conexión a internet e intentando diagnostivcarlo han reiniciado internetti. Viendo que internetti no era el problema, han reiniciado el módem adsl y ha desaparecido el problema de internet. Pero resulta que se ha perdido la conexión a metro.

El diagnóstico es que no estaba cargado el driver de la rdsi. Los pasos realizados para "arreglarlo" (todo como root, en internetti):
  • "modprobe slhc", y si ese no funciona "insmod slhc.o"
  • "modprobe hisax"
  • "/etc/init.d/isdnutils stop"
  • "/etc/init.d/isdnutils start"

Y con eso ya estaba la rdsi funcionando otra vez. Realmente es un problema del slhc.o, que no parece tener "versioning info", pero no se me ocurre cómo es que antes no daba ningún problema eso y ahora sí (nota: de la última vez a ahora han cambiado las modutils, por la actualización de potato a woody que hice en internetti el pasado día 2, con lo que ya sé la causa)

Ahora habrá que buscarle una solución para que no se pierda la conexión a metro cada vez que se reinicie internetti :-/.

Tuesday, 4 November 2003, 8:48:44 am --Dario
Túneles con portalico y guagua otra vez en funcionamiento Se han puesto de nuevo los túneles contra portalico y guagua, pero esta vez unsando vtun. No están usando una password razonable (o sea que no se puede considerar que estén encriptados), pero esto es mejor que nada. Los pasos realizados:
  • Copiar de internetti /home/ana/vtun (que también dejo aquí: vtun-sico.tar.gz)
  • Instalar el vtun*.deb
  • copiar el vtund a /usr/sbin y darle permisos de ejecución, copiar el tun.o al directorio de módulos (/lib/modules/2.2.18/misc/)
  • poner en /etc/modutils/vtun la línea (sin comillas) "alias char-major-90 tun" y hacer un update-modules
  • hacer un "depmod -a"
  • usar el firewall.guagua como ejemplo y hacer un /etc/init.d/firewall.nombreordenador con él.
  • usar el vtund.conf y el vtund-start.conf como puntos de partida para los ficheros homónimos de /etc
  • poner en internetti ese nuevo túnel en el /etc/vtund.conf
  • reiniciar el demorio de internetti (matando los vtund y ejecutando "vtund-start start")
  • reiniciar el demonio en el ordenador satélite (de la misma manera que en internetti)
  • ver si ha habido algún error en /var/log/daemon.log

Por último compruebo que funcionan los pings y que no se quedan paquetes en ninguno de los firewalls (mirando el /var/log/messages) y que las rutas son todas las que tenía que haber.

NOTA: el vtun usa el tcp para las conexiones y el udp para el túnel, por lo que ha habido que habilitar ambos puertos en el router-adsl (el tcp lo tenía filtrado). Ahora están direigidos a internetti.

Sunday, 2 November 2003, 10:24:17 am --Dario
Habilitando port-forwarding de un puerto en internetti Quiero que los túneles los maneje seraphim en vez de portalico. Para ello necesito hcer NAPT de los puertos udp del cipe. Hay un pequeño tutorial aquí

Tuesday, 28 October 2003, 1:35:24 pm --Dario
Cambios en la rdsi Los de metro han cambiado el cómo aparecen los números externos en los PCs que están dentro de metro. Ahora el núemro externo aparece con un 0 delante (p.ej. 914840807 aparece como 0914840807). Guillermo ha ido a un PCL para hacer el cambio desde metro... ya que no ha habido forma de usar el módem para conectarnos como otras veces. Cambiado tanto main1 como frontpci02.

Wednesday, 11 June 2003, 7:55:57 pm --Dario
Acabo de terminar los cambios al acceso por FTP a internetti (debido a que necesitan acceder agentes externos a la cuenta de kinuir).

Son imprescindibles las siguientes guias


He tenido que habilitar en el router-adsl (speedstream 5660) el ftp a internetti (estaba filtrado).

También he cambiado /etc/pam.d/ftp para que use pam_access.so igual que lo hace login, de manera que no puedan entrar por ftp los que no pueden entrar por login. Rationale: este router no admite hacer masquerading de rangos de puertos, y para el ftp en puertos "raros" se necesita (p. ej. con el "in.ftpd -h" requiere los puertos 40000-44999).

También he puesto otro telnet en el puerto 9323 (ademas del que ya habia en 7846).

Para el usuario kinuir, el acceso está restringido; he puesto el script en expect abracadabra.tcl como shell (y añadido a /etc/shells para que el ftp siguiera funcionando, aparte de hacer un fichero en /etc/logrotate.d para rotar su log) y hecho ftp-chroot añadiéndolo a /etc/ftpchroot y poniendo el ls y sus dependencias en su home-dir.

Y por ahora lo dejo asi.



Descripción del proyecto


La idea es tener aqui una referencia de "cómo hice qué". Que siempre me pasa que necesitando repetir alguna cosa, necesito leerme demasiada documentación para el tiempo disponible O:-)

Cosas que pueden ayudar:


Explicación somera del iptables (de la monografía de iptables en wikilearning):
REDIRECT
Otra extensión es REDIRECT (redirigir). Su misión es alterar los paquetes, de manera de cambiar el puerto de destino, pero sin modificar opciones adicionales, como en el caso de mangle.
Por ejemplo
  1. iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3200
desvía los paquetes que llegan al puerto 80 para redirigirlos al puerto 3200. Es útil para Web servers, ya que se puede correr Apache en un puerto superior al 1024 (user ports) y desviar el tráfico desde el puerto 80 al puerto donde realmente está corriendo, de forma transparente.
SNAT y DNAT
Estas extensiones permiten realizar transformaciones de dirección (origen y destino, respectivamente) de los paquetes. DNAT indica que la dirección de destino debe ser modificada. SNAT, la dirección de origen.
Permiten, por ejemplo, redirigir el tráfico hacia un host específico
  1. iptables -t nat -A POSTROUTING -d 192.168.1.1 -p tcp --dport 80 -j SNAT --to 192.168.1.3
O permitir que el tráfico desde Internet sea enviado a una máquina dentro de la LAN
  1. iptables -t nat -A PREROUTING -d 10.200.1.18 -j DNAT --to 192.168.1.8.

en el forward podrias hacer un not(!)
iptables -A FORWARD -s !tuipadenegar -p tcp -m tcp --dport 80 -j ACCEPT

en vez de utilizar drop , bueno seria una manera de hacerlo


Aquí hay otra página que dice cómo hacer forwarding preservando la ip de origen, además de hacer un round-robin a 5 máquinas:
In this example, the iptables the 192.168.1.10 server gets these rules:

/sbin/iptables -t mangle -A PREROUTING -d 192.168.1.10 -p tcp -dport 80 -m statistic -mode nth -every 5 -packet 1 -m state -state new -j CONNMARK -set-mark 1
/sbin/iptables -t mangle -A PREROUTING -d 192.168.1.10 -p tcp -dport 80 -m statistic -mode nth -every 5 -packet 2 -m state -state new -j CONNMARK -set-mark 2
/sbin/iptables -t mangle -A PREROUTING -d 192.168.1.10 -p tcp -dport 80 -m statistic -mode nth -every 5 -packet 3 -m state -state new -j CONNMARK -set-mark 3
/sbin/iptables -t mangle -A PREROUTING -d 192.168.1.10 -p tcp -dport 80 -m statistic -mode nth -every 5 -packet 4 -m state -state new -j CONNMARK -set-mark 4
/sbin/iptables -t mangle -A PREROUTING -d 192.168.1.10 -p tcp -dport 80 -m statistic -mode nth -every 5 -packet 0 -m state -state new -j CONNMARK -set-mark 5
/sbin/iptables -t nat -A PREROUTING -d 192.168.1.10 -p tcp -dport 80 -m connmark -mark 1 -j DNAT -to-destination 192.168.1.50:80
/sbin/iptables -t nat -A PREROUTING -d 192.168.1.10 -p tcp -dport 80 -m connmark -mark 2 -j DNAT -to-destination 192.168.1.51:80
/sbin/iptables -t nat -A PREROUTING -d 192.168.1.10 -p tcp -dport 80 -m connmark -mark 3 -j DNAT -to-destination 192.168.1.52:80
/sbin/iptables -t nat -A PREROUTING -d 192.168.1.10 -p tcp -dport 80 -m connmark -mark 4 -j DNAT -to-destination 192.168.1.53:80
/sbin/iptables -t nat -A PREROUTING -d 192.168.1.10 -p tcp -dport 80 -m connmark -mark 5 -j DNAT -to-destination 192.168.1.54:80

If this is all greek to you - here is the explanation:

  • Filter NEW connections that are destined to 192.168.1.10 port 80
  • Mark each filtered packet with a number
  • Each is marked in sequence, 1 through 5
  • Each marked packet is sent to port 80 on a given IP address, depending on the marked number
  • There are 5 apache nodes, 192.168.1.50 through .54



Attachs


vtun-sico.tar.gz
vtun-check.tar.gz
etc-initd-mathopd
etc-mathopd.conf
var-www-index.html
client.ovpn
forwardeos-carteles-laboratorio_20210929-1.png

Link to this Page