Escenario:
Mi objetivo era permitir que TeamViewer se conecte solo a mi estación de trabajo doméstica. Así que he tratado de vincular el MAC de mi computadora portátil con una regla de IPtables como sigue,
[arif@arif:~]$ sudo iptables -I INPUT -p tcp --destination-port 5938 -m mac ! --mac-source xx:xx:xx:xx:xx:xx -j DROP
[arif@arif:~]$ sudo iptables -I INPUT -p udp --destination-port 5938 -m mac ! --mac-source xx:xx:xx:xx:xx:xx -j DROP
Según este artículo Teamviewer primero intenta conectarse a través del puerto 5938, luego 443 luego 80. Pero el bloqueo de estos puertos (afortunadamente no estoy usando ningún servicio web) no detiene a Teamviewer para conectarse desde un dispositivo desconocido. Luego intenté verificar qué puerto está utilizando Teamviewer para conectarse,
Antes de conectarse, utilice el puerto mediante el demonio TeamViewer
[arif@arif:~]$ sudo netstat -tulpn | grep teamviewer
tcp 0 0 127.0.0.1:5940 0.0.0.0:* LISTEN 24323/teamviewerd
Después de conectarse con destop remoto,
[arif@arif:~]$ sudo netstat -tulpn | grep teamviewer
tcp 0 0 127.0.0.1:5940 0.0.0.0:* LISTEN 24323/teamviewerd
udp 0 0 0.0.0.0:42275 0.0.0.0:* 24323/teamviewerd
Así que pensé que ahora tengo que bloquear los puertos 5940 y 42275 en lugar de 5938 y hice lo siguiente,
[arif@arif:~]$ sudo iptables -L | head -n 4
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP udp -- anywhere anywhere udp dpt:42275 MAC ! xx:xx:xx:xx:xx:xx
DROP tcp -- anywhere anywhere tcp dpt:5940 MAC ! xx:xx:xx:xx:xx:xx
Pero cuando intenté conectarme de nuevo, se conectó correctamente y esto sucedió,
[arif@arif:~]$ sudo netstat -tulpn | grep teamviewer
tcp 0 0 127.0.0.1:5940 0.0.0.0:* LISTEN 24323/teamviewerd
udp 0 0 0.0.0.0:34775 0.0.0.0:* 24323/teamviewerd
Y no hay nada en el puerto 80 y 443,
[arif@arif:~]$ sudo netstat -plnt | grep ':80'
[arif@arif:~]$ sudo netstat -plnt | grep ':443'
[arif@arif:~]$
Pregunta:
¿Cómo puedo bloquear este tipo de aplicaciones que usan puertos aleatorios para conectarse?