I consider only Facebook, but can be used also for youtube.
1) Identify all the common facebook address using this lists:
http://www.armabloggin.com/facehost.php (but really is not the full list, for example some sites like fbcdn.net are missing)
This list is from one user that try to help other user to BYPASS the block of Facebook, but really we help us to block it....
My method works until the user use one vpn or one external proxy.
Any try to bypass the block changing the DNS or contact directly the IP's are unuseful...
Create one address list on firewall called "allowed_ip_AD" with the IP of the devices you want allow to use facebook, youtube, etc.
Add this to firewall and move the rules at the top (the rule is valid from "monday" to "friday", change if the time is different, or duplicate for saturday if the working time are different):
/ip firewall filter
add action=drop chain=forward src-address-list=lista_ip_AD dst-address-list!=allowed_ip_AD time=8h-16h,mon,tue,wed,thu,fri
add action=drop chain=forward dst-address-list=lista_ip_AD src-address-list!=allowed_ip_AD time=8h-16h,mon,tue,wed,thu,fri
Schedule this each 1 min:
:do { add address=[/resolve a.ns.facebook.com] comment=a.ns.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve b.ns.facebook.com] comment=b.ns.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve facebook.com] comment=facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve apps.facebook.com] comment=apps.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve ar-ar.facebook.com] comment=ar-ar.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve blog.facebook.com] comment=blog.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve connect.facebook.com] comment=connect.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve creative.ak.facebook.com] comment=creative.ak.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve cs-cz.facebook.com] comment=cs-cz.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve da-dk.facebook.com] comment=da-dk.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve de-de.facebook.com] comment=de-de.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve developer.facebook.com] comment=developer.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve developers.facebook.com] comment=developers.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve el-gr.facebook.com] comment=el-gr.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve en-gb.facebook.com] comment=en-gb.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve es-es.facebook.com] comment=es-es.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve es-la.facebook.com] comment=es-la.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve fi-fi.facebook.com] comment=fi-fi.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve fr-fr.facebook.com] comment=fr-fr.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve hi-in.facebook.com] comment=hi-in.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve hr-hr.facebook.com] comment=hr-hr.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve hs.facebook.com] comment=hs.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve id-id.facebook.com] comment=id-id.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve iphone.facebook.com] comment=iphone.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve it-it.facebook.com] comment=it-it.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve ja-jp.facebook.com] comment=ja-jp.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve ko-kr.facebook.com] comment=ko-kr.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve login.facebook.com] comment=login.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve m.facebook.com] comment=m.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve ms-my.facebook.com] comment=ms-my.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve nb-no.facebook.com] comment=nb-no.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve new.facebook.com] comment=new.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve nl-nl.facebook.com] comment=nl-nl.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve pl-pl.facebook.com] comment=pl-pl.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve pt-br.facebook.com] comment=pt-br.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve register.facebook.com] comment=register.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve ru-ru.facebook.com] comment=ru-ru.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve s-static.ak.facebook.com] comment=s-static.ak.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve secure.facebook.com] comment=secure.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve sl-si.facebook.com] comment=sl-si.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve sv-se.facebook.com] comment=sv-se.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve tr-tr.facebook.com] comment=tr-tr.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve upload.facebook.com] comment=upload.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve www-college.facebook.com] comment=www-college.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve www.facebook.com] comment=www.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve zh-cn.facebook.com] comment=zh-cn.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve zh-hk.facebook.com] comment=zh-hk.facebook.com list=lista_ip_AD } on-error={ };
:do { add address=[/resolve zh-tw.facebook.com] comment=zh-tw.facebook.com list=lista_ip_AD } on-error={ };
Happy blocking....