UBNT UNIFI USG IPTV

Dit is een handleiding voor KPN IPTV Unifi USG.

IPTV op een USG is nogal een Pain in the Ass.
veel Config zijn te uitgebreid of bevatten een veiligheidslek of zijn voor de niet Iter last te configureren.

En dat is jammer want het zijn namelijk heel mooie en stabiele zakelijke routers  maar van wegen de kosten prima geschikt voor thuisgebruik.
Hiervoor heeft UBNT namelijk ook de USG Lite op de markt gebracht. Dit is een goedkopere versie die bijna alles kan wat zijn grotere broertjes kunnen alleen net even iets langzamer. Door zijn compacte formaat is hij ook nog aangenaam om te zien in de meterkast of onder het bureau.

De pro is voor kantoorgebruik en heeft daarom sterkere hardware waardoor het mogelijk is om meer en sneller IPS te draaien functies te draaien dan op de LITE.
De USG-XG laten we hier buiten beschouwing de gebruikers van deze usg worden geacht voldoende netwerk kennis te hebben om zonder hulp iptv aan de praat te krijgen.
De XG is namelijk voor zeer grote kantooromgevingen met ongeveer 20.000 gebruikers. en heeft de prijs van leuke 2 hands auto. ik verwacht dus ook niet dat iemand deze met weinig netwerk kennis thuis heeft staan.

Deze json’s zijn speciaal gemaakt voor thuisgebruik.
Een json file is nodig om de  Tv (kpn, telfort, x4all, t-mobile, ) instellingen in de USG te kunnen zetten.
Dit kan namelijk niet vanuit de controller software en dat is logisch. Dit omdat iptv bij elke provider anders werkt  en het ook niet echt een zakelijke toepassing is staat dit bij ubnt wat lager op het lijstje

Er zijn momenteel een aantal Json online in omloop maar die bevatten kleine probleempjes.
Omdat unifi een zakelijk insteek heeft is de firewall heel steng met met de controle waar het verkeer vandaan komt.
Dit noemen we source validation en zorgt er voor dat hackers zich niet via ip spoofing kunnen voordoen als een bestaande computer op je netwerk waardoor de firewall denkt dat hacker een interne computer en zo bij alle apparaten op je netwerk kan. Dit is precies waar het probleem zit met tv ( iptV) is multicast. Dat houd in dat alle apparaten in het kpn netwerk en ook je eigen netwerk het verkeer doorsturen naar alle apparaten op je netwerk. zo hoeft kpn het tv beeld maar 1 keer naar wijk kast te versturen en alle mensen kunnen tegelijk Nederland 1 kijken. Voor de firewall is het hierdoor niet mogelijk om de originele bron van het verkeer te controleren en ziet iptv dan als onveilig verkeer en houd alles tegen.

Nu staat er online veel gebruikte oplossing waar deze functie gewoon wordt uitgezet. ( lekker makkelijk) maar dit gaat wel te kosten voor de veiligheid en dat wil je eigenlijk niet.
want hierdoor kan een goede hacker eenvoudig binnen komen al je computers bekijken. Vandaar dat ik deze json online zet juist om te zorgen dat de USG ook een Veilige Firewall blijft.  De Json files die firewall uitschakelen zijn makkelijk te herkennen die beginnen namelijk allemaal met met deze regel.

{
        "firewall": {
                "source-validation": "disable"
        },

 

De onderstaande JSon zorgt ervoor dat alleen functie alleen voor de iptv vlan( port) iets minder streng wordt terwijl de firewall voor het gewone internet even streng beveiligt blijft.
ook is het de bedoeling dat deze json iets makkelijk is toe te passen doordat er maar 1 variable ip-address in zit. dit is dan ook het enige wat je aan deze config hoeft te wijzigen om te tv krijgen. Blijven alle netwerk instellingen zerken zoals ze waren ingesteld op functie na en dat is VPN. Hier ben ik nog druk mee bezig maar dat ziet er positief uit.

Ik heb 2 Json online staan omdat de PRO en LITE verschillen in het aantal netwerk porte en benamingen is het verstandig om de json config te kopiëren die past je eigen model.
de eerste voor de PRO en voor de LITE scroll verder naar beneden.


JSON USP-4P (PRO):
Deze Json is geschreven voor een USG-4p ( pro) en kan gekopieerd en geplakt worden naar je eigen json file.
Om tv werkent te krijgen moet je alleen router adres van je eigen wijkcentrale aanpassen.
Om je router adres te kunnen opvragen moet je eerst deze json laden  en daarna kun het ip-adres opvragen met de het onderstaande commando

show dhcp client leases interface eth2.4

Geeft als uitkomst resultaat:


interface : eth2.4
ip address : 10.164.xx.xx [Active]
subnet mask: 255.255.224.0
router : 10.164.xx.x (iptv Router ip)
dhcp server: 10.164.xx.xx
lease time : 82174
last update: Thu Sep 27 07:41:35 CEST 2018
expiry : Fri Sep 28 06:31:08 CEST 2018
reason : RENEW

Het gaat dan om ip-adress vermeld bij router:

vul dit ip-adres in op de plaats  van het niet werkende ip-adress  ( iptv Router ip) wat staat  op regel 97

{
	"interfaces": {
		"ethernet": {
			"eth2": {
				"dhcp-options": {
					"default-route": "no-update",
					"default-route-distance": "1",
					"name-server": "no-update"
				},
				"vif": {
					"4": {
						"address": [
							"dhcp"
						],
						"description": "WAN",
						"dhcp-options": {
							"client-option": [
								"send vendor-class-identifier "IPTV_RG";",
								"request subnet-mask, routers, rfc3442-classless-static-routes;"
							],
							"default-route": "no-update",
							"default-route-distance": "210",
							"name-server": "no-update"
						},
						"ip": {
							"source-validation": "loose"
						}

					},
					"6": {
						"description": "WAN",
						"firewall": {
							"in": {
								"ipv6-name": "WANv6_IN",
								"name": "WAN_IN"
							},
							"local": {
								"ipv6-name": "WANv6_LOCAL",
								"name": "WAN_LOCAL"
							},
							"out": {
								"ipv6-name": "WANv6_OUT",
								"name": "WAN_OUT"
							}
						},
						"pppoe": {
							"2": {
								"default-route": "auto",
								"firewall": {
									"in": {
										"ipv6-name": "WANv6_IN",
										"name": "WAN_IN"
									},
									"local": {
										"ipv6-name": "WANv6_LOCAL",
										"name": "WAN_LOCAL"
									},
									"out": {
										"ipv6-name": "WANv6_OUT",
										"name": "WAN_OUT"
									}
								},
								"name-server": "auto",
								"password": "kpn",
								"user-id": "kpn"
							}
						}
					}

				}
			}
		}
	},
	"protocols": {
		"igmp-proxy": {
			"interface": {
				"eth2.4": {
					"alt-subnet": [
						"0.0.0.0/0"
					],
					"role": "upstream",
					"threshold": "1"
				},
				"eth0": {
					"alt-subnet": [
						"0.0.0.0/24"
					],
					"role": "downstream",
					"threshold": "1"
				}
			}
		},
		"static": {
			"route": {
				"213.75.112.0/21": {
					"next-hop": {
						"10.160.10.1": "''"
					}
				}
			}
		}
	},
	"port-forward": {
		"wan-interface": "pppoe2"
	},

	"service": {
		"dns": {
			"forwarding": {
				"except-interface": [
					"pppoe2"
				]
			}
		},
		"nat": {
			"rule": {
				"5000": {
					"description": "MASQ corporate_network to IPTV network",
					"destination": {
						"address": "213.75.112.0/21"
					},
					"log": "disable",
					"outbound-interface": "eth2.4",
					"protocol": "all",
					"type": "masquerade"
				},
				"6001": {
					"outbound-interface": "pppoe2"
				},
				"6002": {
					"outbound-interface": "pppoe2"
				},
				"6003": {
					"outbound-interface": "pppoe2"
				}
			}
		}
	}
}

JSON USG-3P (LITE):

Gebruik voor de USG-3P (lite) deze json en doorloop dezelfde stappen

show dhcp client leases interface eth0.4

Geeft als resultaat:


interface : eth0.4
ip address : 10.164.xx.xx [Active]
subnet mask: 255.255.224.0
router : 10.164.xx.x (iptv Router ip)
dhcp server: 10.164.xx.xx
lease time : 82174
last update: Thu Sep 27 07:41:35 CEST 2018
expiry : Fri Sep 28 06:31:08 CEST 2018
reason : RENEW

Het gaat dan om ip-adress vermeld bij router:

vul dit ip-adres in op de plaats  van het niet werkende ip-adress  ( iptv Router ip) wat staat  op regel 97

{ 
    "interfaces": {
        "ethernet": {
            "eth0": {
                "dhcp-options": {
                    "default-route": "no-update",
                    "default-route-distance": "1",
                    "name-server": "no-update"
                },
                "vif": {
                    "4": {
                        "address": [
                            "dhcp"
                        ],
                        "description": "WAN",
                        "dhcp-options": {
                            "client-option": [
                                "send vendor-class-identifier "IPTV_RG";",
                                "request subnet-mask, routers, rfc3442-classless-static-routes;"
                            ],
                            "default-route": "no-update",
                            "default-route-distance": "210",
                            "name-server": "no-update"
                        },
                        "ip": {
                            "source-validation": "loose"
                        }
 
                    },
                    "6": {
                        "description": "WAN",
                        "firewall": {
                            "in": {
                                "ipv6-name": "WANv6_IN",
                                "name": "WAN_IN"
                            },
                            "local": {
                                "ipv6-name": "WANv6_LOCAL",
                                "name": "WAN_LOCAL"
                            },
                            "out": {
                                "ipv6-name": "WANv6_OUT",
                                "name": "WAN_OUT"
                            }
                        },
                        "pppoe": {
                            "2": {
                                "default-route": "auto",
                                "firewall": {
                                    "in": {
                                        "ipv6-name": "WANv6_IN",
                                        "name": "WAN_IN"
                                    },
                                    "local": {
                                        "ipv6-name": "WANv6_LOCAL",
                                        "name": "WAN_LOCAL"
                                    },
                                    "out": {
                                        "ipv6-name": "WANv6_OUT",
                                        "name": "WAN_OUT"
                                    }
                                },
                                "name-server": "auto",
                                "password": "kpn",
                                "user-id": "kpn"
                            }
                        }
                    }
 
                }
            }
        }
    },
    "protocols": {
        "igmp-proxy": {
            "interface": {
                "eth0.4": {
                    "alt-subnet": [
                        "0.0.0.0/0"
                    ],
                    "role": "upstream",
                    "threshold": "1"
                },
                "eth1": {
                    "alt-subnet": [
                        "0.0.0.0/24"
                    ],
                    "role": "downstream",
                    "threshold": "1"
                }
            }
        },
        "static": {
            "route": {
                "213.75.112.0/21": {
                    "next-hop": {
                        "10.160.10.1": "''"
                    }
                }
            }
        }
    },
    "port-forward": {
        "wan-interface": "pppoe2"
    },
 
    "service": {
        "dns": {
            "forwarding": {
                "except-interface": [
                    "pppoe2"
                ]
            }
        },
        "nat": {
            "rule": {
                "5000": {
                    "description": "MASQ corporate_network to IPTV network",
                    "destination": {
                        "address": "213.75.112.0/21"
                    },
                    "log": "disable",
                    "outbound-interface": "eth0.4",
                    "protocol": "all",
                    "type": "masquerade"
                },
                "6001": {
                    "outbound-interface": "pppoe2"
                },
                "6002": {
                    "outbound-interface": "pppoe2"
                },
                "6003": {
                    "outbound-interface": "pppoe2"
                }
            }
        }
    }
}