Scenario:
Il mio obiettivo era consentire a TeamViewer di connettersi alla mia workstation domestica solo dal mio portatile. Così ho provato a legare il MAC del mio portatile con una regola IPtables come segue,
[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
In base a questo articolo Teamviewer prima tenta di connettersi attraverso la porta 5938, poi la 443 e la 80. Ma bloccando queste porte (fortunatamente non sto usando alcun servizio di web) non impedisce a Teamviewer di connettersi da un dispositivo sconosciuto. Quindi ho provato a verificare quale porta Teamviewer sta usando per connettersi,
Prima della connessione, porta usando dal demone di TeamViewer
[arif@arif:~]$ sudo netstat -tulpn | grep teamviewer
tcp 0 0 127.0.0.1:5940 0.0.0.0:* LISTEN 24323/teamviewerd
Dopo la connessione 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
Quindi ho pensato ora di bloccare la porta 5940 e 42275 invece di 5938 e ho fatto ciò che segue,
[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
Ma quando ho provato di nuovo a connettersi, è stato collegato correttamente e questo è successo,
[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
E non c'è nulla che funzioni sulla porta 80 e 443,
[arif@arif:~]$ sudo netstat -plnt | grep ':80'
[arif@arif:~]$ sudo netstat -plnt | grep ':443'
[arif@arif:~]$
Domanda:
Come posso bloccare questi tipi di applicazioni che usano la porta casuale per connettersi.