Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: Nik123 в Jan 18, 2021, 21:05



Титла: Ограничаване на сайтове, Магея 7
Публикувано от: Nik123 в Jan 18, 2021, 21:05
Здравейте! Дистрибуцията е Магея 7, работната среда Плазма. Иска ми се да огранича достъпа до някои уеб-сайтове, например ютюб. Как да го направя, и възможно ли е изобщо? Идеята е през интернет-браузърите да няма връзка към определени сайтове през юзър-акаунта. Благодаря предварително!

Едит: За домашна стационарка става въпрос, не за рутиране. Родителски контрол.


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: 10101 в Jan 18, 2021, 21:53
http://www.squidguard.org или подобни разгледай за начало...


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: Nik123 в Jan 18, 2021, 22:38
Благодаря, доколкото знам, скуид е вид прокси, идеята е трафика да минава през скуид и скуидгард да блаклиства определени сайтове?

Само това ме притесни:
SquidGuard v.1.3 is reported to install and run smoothly on the following operating systems:

    Gentoo on 32Bit Intel Celeron
    Gentoo on 64Bit AMD Opteron
    Solaris 2.8
    OpenBSD 3.8

Магеята я няма.


Edit2: Поразрових се малко в интернет за инфо, това ще свърши ли работа?

http://subinsb.com/block-a-site-on-all-browsers-in-linux/

За убунту е писано, но и в магеята има /etc/hosts    ?


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: 4096bits в Jan 18, 2021, 23:03
Поставяш в /etc/hosts например:

0.0.0.0        youtube.com
0.0.0.0        youtube.bg

Имай предвид, че домейните с youtube са не малко и може да се наложи да листнеш доста от тях тук. Един по един. С wildcards не става, така че ще трябва всеки един да се опише


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: 10101 в Jan 19, 2021, 08:06
в /etc/hosts го трепе за цялата машина.
а той иска по потребител ако съм го разбрал.
и неможе да не работи на Магея ли е Магия ли е ...

https://madb.mageia.org/package/show/application/0/name/squidguard


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: Nik123 в Jan 19, 2021, 11:06
Да, за потребител имах предвид.. конкретен юзър. Руута и моя си юзър да си вървят. Ще почета малко за тоя скуид, благодаря Ви.


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: laskov в Jan 19, 2021, 17:14
"Гимнастиката" е доста натоварваща и е със съмнителен резултат. Да, със squid и с име и парола за пред него ще стане, но ще трябва доста да си поиграеш, за да го направиш така, че да ти хареса.
Преди доста време, когато се тормозих с такива проблеми, бях задал "работно време" в рутера. Спираше целия нет.
Като стана дума за рутер, дали твоя няма някакви подобни функционалности?


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: 10101 в Jan 19, 2021, 18:28
Ако рутера е от тези с повечко възможности, като микротик, нещо с dd-wrt и други подобни има начин, но остава да си измисли следния сценарии как да е активно за user еди_кой_си, а на останалите да пуска всичко.


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: jet в Jan 19, 2021, 18:56
Напиши един скрипт в cron, като детектне , че някой от дечурлигата се е логнал, да подменя /etc/hosts с рестриктивен такъв, като не, да си го връща "чист".


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: Nik123 в Jan 19, 2021, 20:13
Рутъра е от м-телските, от тия с оптиката, дето, ако поискаш да си смениш wifi паролата, трябва да се логнеш в м-тел-а. Аз не съм с големи познания по мрежи и рутиране. А и не ме устройва да спира нета нито на лаптопа ми, нито целия нет на стационарката, щото дечурлигата имат занятия онлайн. Идеята е, да не вървят определени сайтове през детския юзър, например ютюба и фейсбука. За да си гледат даскалото, а не клипове, след като само се обозначат в училищната платформа и няма никой вкъщи.

Напиши един скрипт в cron, като детектне , че някой от дечурлигата се е логнал, да подменя /etc/hosts с рестриктивен такъв, като не, да си го връща "чист".

jet, това някакъв bash-скрипт ли трябва да е?


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: jet в Jan 19, 2021, 21:06
Ами от каквото разбираш, може и на Асемблер ако искаш


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: Nik123 в Jan 19, 2021, 22:04
Колега, писал съм само леки bash-скриптове от типа да посоча пътеката към изпълнимия файл. И не съм много наясно какво е да напиша "скрипт в cron". Може ли малко повече инфо, или някой линк?


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: laskov в Jan 19, 2021, 22:14
Запитах се, а дали браузърите не го могат? Търсенето на "firefix родителски контрол" показа туй-онуй.


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: Nik123 в Jan 19, 2021, 22:32
Да, но трябва да се занимавам с всеки конкретен браузър. Или да деинсталирам всички (chromium, firefox, opera) и да оставя един. А искам да реша проблема генерално в юзърския акаунт. Благодаря на включилите се в темата.


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: jet в Jan 19, 2021, 22:42
Код
GeSHi (Bash):
  1. #!/bin/sh
  2.  
  3. kids="$(/usr/bin/who | /bin/grep -E 'ivancho|mima')"
  4.  
  5. if [ -z "$kids" ]
  6. then
  7.      cp /etc/hosts_normal /etc/hosts
  8. else
  9.      cp /etc/hosts_restricted /etc/hosts
  10. fi

crontab -e
0 3 * * * /root/stop_kids.sh  >/dev/null 2>&1


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: remotexx в Jan 19, 2021, 23:40
Аз също се сещам за два варианта
по-лекия с HOSTALIASES env. var.
http://blog.tremily.us/posts/HOSTALIASES/
https://unix.stackexchange.com/questions/10438/can-i-create-a-user-specific-hosts-file-to-complement-etc-hosts
по-тежкия с chroot env. и там веке каквото ти душа сака per user  ;D


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: malin1 в Jan 19, 2021, 23:48
И няма, казвате, телефон или таблет наблизо, ни друг комп, латоп, така ли... И телевизора/тв-тата е/са пак с родителски контрол и работи/тят само по график... Ми туй диктатура, затва - бъдещето е мама анархия.
Ako на компа е най-сладко - съгласен, тъкмо ще се ограмотят малко как се заобикалят рестрикциите и как да правят любимите неща офлайн или по друг начин.


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: jet в Jan 20, 2021, 01:01
Едно време за родителски контрол се слагаше
https://en.wikipedia.org/wiki/DansGuardian
ама трябва и сървър, а и гледам е 11г. не е имало нова версия.

Виж и тука:
https://www.ubuntupit.com/best-parental-control-software-for-linux/


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: Nik123 в Jan 24, 2021, 18:27
Колеги, благодаря Ви за информацията, ще я изчета и ще си избера някой вариант. Просто в последните дни не ми остава време за експерименти, поздрави!


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: getqwerty11 в Jan 28, 2021, 18:18
Докато се намери решение, децата ще пораснат.  ;D


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: 4096bits в Jan 29, 2021, 11:05
Предложението на @jet е достатъчно елементарно и ще работи. Периодично се проверява потребителя ( например на пет секунди ) и се подменя /etc/hosts


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: Nik123 в Feb 01, 2021, 18:35
Поставяш в /etc/hosts например:

0.0.0.0        youtube.com
0.0.0.0        youtube.bg

Имай предвид, че домейните с youtube са не малко и може да се наложи да листнеш доста от тях тук. Един по един. С wildcards не става, така че ще трябва всеки един да се опише

По този метод го направих. Прежалих, че цялата система няма достъп до конкретните блокирани сайтове, и без това компютъра е изцяло детска стационарка и друг не го ползва. Ако ми се наложи да го ползвам, винаги през руута може да сложа коментари на дописваното от мен. Падна малко писане на домейни, но няма как. С шел-скрипт ми стана интересно, но първо, едва сега разбрах какво е cron, второ, това нещо се пуска в определени моменти, които трябва да посочвам, доколкото четох, и се отказах да се занимавам повече. Информативно изчетох инфото, като линкове, което включилите се тук ми посочиха. Накрая се спрях на най-простия метод с /etc/hosts. Благодаря на всички, които се включиха.


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: Acho в Feb 01, 2021, 19:08
Изгоряха децата, няма вече туба.........


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: go_fire в Feb 01, 2021, 19:36
Проблем с тубата ли има?

От вчера ytdl ми дава „ERROR: Unable to download webpage: HTTP Error 429: Too Many Requests“. Което никога не ми се е случвало преди. Налага ми се да правя sudo /etc/init.d/tor restart, но решава въпроса временно. Излишно е да казвам, че и без торсокс (торифай) все тая.

Или имаш предвид темата?

п.п. Аз също съм любител на hosts и така си махам рекламите поне от петилетка.


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: Nik123 в Feb 01, 2021, 21:07
Ачо, не само туба, ами и бая още сайтове орязах, от тия за игрите в браузър. Временна мярка, ако има ефект, ще пусна пак всичко. Сега се занимавам със 124-ката, комповете са на заден план.
go_fire, ами при мен тубата върви, даже и през тор в момента.


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: 4096bits в Feb 02, 2021, 13:21
Поставяш в /etc/hosts например:

0.0.0.0        youtube.com
0.0.0.0        youtube.bg

Имай предвид, че домейните с youtube са не малко и може да се наложи да листнеш доста от тях тук. Един по един. С wildcards не става, така че ще трябва всеки един да се опише
По този метод го направих. Прежалих, че цялата система няма достъп до конкретните блокирани сайтове, и без това компютъра е изцяло детска стационарка и друг не го ползва. Ако ми се наложи да го ползвам, винаги през руута може да сложа коментари на дописваното от мен. Падна малко писане на домейни, но няма как. С шел-скрипт ми стана интересно, но първо, едва сега разбрах какво е cron, второ, това нещо се пуска в определени моменти, които трябва да посочвам, доколкото четох, и се отказах да се занимавам повече. Информативно изчетох инфото, като линкове, което включилите се тук ми посочиха. Накрая се спрях на най-простия метод с /etc/hosts. Благодаря на всички, които се включиха.
Слагането и махането на коментари е занимавка и направо хамалогия, ако са повече редове.
Можеш да направиш например, копие на /etc/hosts както си е било. Да речем с име hosts.old и друг файл с рестрикциите кръстен например restricted.
И двата където е /etc/hosts

След това, ако ти се наложи, само ги подменяш:

sudo cp /etc/hosts.old /etc/hosts      за да върнеш старото положение и

sudo cp /etc/restricted /etc/hosts      за да ограничиш желаните сайтове

Но и това си е много писане. BASH скриптове не пиша, че нещо ми е омотан синтаксиса, но може да пробваш този питонски, който спретнах ей сега набързо.
Скрипта взима един или два аргумента. Единият "-r" ще го накара да копира оригиналния /etc/hosts като /etc/hosts.orig и при успех, съдържанието на вече направения списък с примерен hosts файл с ограниченията.и име restricted върху /etc/hosts, като го подмени и така ще ограничи, каквото си сложил в restricted. Съдържанието на примерен restricted файл си е hosts, но с друго име:

0.0.0.0        youtube.com
0.0.0.0        youtube.bg

Вторият аргумент '-a' идва от allow и съответно връща положението обратно - копира /etc/hosts.orig ( така го кръстих в скрипта, но можеш да го смениш, с каквото ти е угодно ) върху /etc/hosts с рестрикциите в него, като така ги заличава и ограниченията отпадат.

Третият аргумент "-f" е, ако искаш да зададеш друг файл с друго местоположение от този, който си е по подразбиране ( /etc/restricted ). И по-добре е това да използваш, да не задръстваш /etc със странни неща. Но това е по желание разбира се.

Не съм го тествал, че тук не мога, но би трябвало да работи. Разбира се, трябва да го изпълниш със sudo защото писането и копирането в /etc иска права. Но предимството е, че само добавяш редове в /etc/restricted и си подменяш hosts с този файл когато поискаш, а резервното копие си седи за отмяна на ограниченията. Възможно най-простия е и на практика прави това, което и двете bash команди по-нагоре, но просто като добавиш една опция. Опростен вариант на проста шел команда.

Скрипта можеш да го сложиш на недостъпно място във файловата система или да му сложиш права само за теб, или пък да го сложиш в някоя флашка и от там да го изпълниш.

Код:
#!/usr/bin/env python3
#
# hosts.py


from argparse import ArgumentParser
import subprocess

parser = ArgumentParser()

group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('-r', '--restrict',
                   metavar='restrict',
                   action='store_true',
                   dest='restricted'
                   help='Restrict all domains in /etc/hosts by replasing it')
group.add_argument('-a', '--allow',
                   metavar='allow',
                   action='store_true',
                   dest='allowed'
                   help='Remove the restrictions by replasing /etc/host with its backup')

parser.add_argument('-f', '--file',
                    metavar='domains',
                    default='/etc/restricted', # Тук е името на hosts файла с рестрикциите, където да си добавяш нови, ако искаш. По подразбиране
                    dest='domains',
                    help='A replacement of /etc/hosts with the restricted domains')

args = parser.parse_args()

if args.restricted:
    # $ cp /etc/hosts /etc/hosts.orig && mv /etc/do
    proc = subprocess.run(['cp', '/etc/hosts', '/etc/hosts.orig', '&&', 'cp', domains, '/etc/hosts'])
    print(proc.returncode)
elif args.allowed:
    # $ cp /etc/hosts.orig /etc/hosts
    proc = subprocess.run(['cp', '/etc/hosts.orig', '/etc/hosts'])
    print(proc.returncode)



Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: 10101 в Feb 02, 2021, 17:09
Погледни това :

https://github.com/Ultimate-Hosts-Blacklist/Ultimate.Hosts.Blacklist има доста такива в github-a.
Отделно към това или без него можеш да си направиш регистрация в opendns https://www.opendns.com/home-internet-security/


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: 4096bits в Feb 02, 2021, 17:42
Той иска да ограничи няколко сайта.
Иначе съм ги гледал и аз тези списъци. Последния беше почти два мегабайта hosts файл.

Чудя се, дали наистина да не отделя време и да направя нещо по-удобно на curses


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: go_fire в Feb 02, 2021, 17:52
Че то нали нашия „швейцарски“ приятел имаше едни. Ама нямаха ncurses.


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: jet в Feb 02, 2021, 22:27
Поставяш в /etc/hosts например:

0.0.0.0        youtube.com
0.0.0.0        youtube.bg

Имай предвид, че домейните с youtube са не малко и може да се наложи да листнеш доста от тях тук. Един по един. С wildcards не става, така че ще трябва всеки един да се опише

По този метод го направих. Прежалих, че цялата система няма достъп до конкретните блокирани сайтове, и без това компютъра е изцяло детска стационарка и друг не го ползва. Ако ми се наложи да го ползвам, винаги през руута може да сложа коментари на дописваното от мен. Падна малко писане на домейни, но няма как. С шел-скрипт ми стана интересно, но първо, едва сега разбрах какво е cron, второ, това нещо се пуска в определени моменти, които трябва да посочвам, доколкото четох, и се отказах да се занимавам повече. Информативно изчетох инфото, като линкове, което включилите се тук ми посочиха. Накрая се спрях на най-простия метод с /etc/hosts. Благодаря на всички, които се включиха.
Отдолу под моя скрипт съм сложил и реда който да сложиш в крон-а
изпълняваш като роот:
crontab -e
пействаш редчето, съхраняваш файла и излизаш от редактора
правиш и един
chmod +x /root/stop_kids.sh

и си готов.

А за феновете на хост базираното блокиране на реклами, сваляте от тука файла:
https://winhelp2002.mvps.org/hosts.htm

например с:
wget https://winhelp2002.mvps.org/hosts.txt

обновява се от време на време.


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: go_fire в Feb 03, 2021, 13:20
4096, докато разглеждах предложението на 10101 и по-точно това:

https://github.com/topics/hosts

Открих:

https://github.com/jonhadfield/python-hosts

Това е някаква библиотечка, но предполагам може да ти е от полза за твоята цел.


п.п. Моето любимо премахване на Spybook се оказа, че го има на хранилище с много повече от моите адреси:

https://raw.githubusercontent.com/Macsch15/block-facebook-hosts/master/facebook.txt

Туко що го добавих към моя, като махнах моите редове. Така и не проверих в моя списък има ли някой липсващ, ама карай.


Титла: Re: Ограничаване на сайтове, Магея 7
Публикувано от: 4096bits в Feb 03, 2021, 15:56
4096, докато разглеждах предложението на 10101 и по-точно това:

https://github.com/topics/hosts

Открих:

https://github.com/jonhadfield/python-hosts

Това е някаква библиотечка, но предполагам може да ти е от полза за твоята цел.


п.п. Моето любимо премахване на Spybook се оказа, че го има на хранилище с много повече от моите адреси:

https://raw.githubusercontent.com/Macsch15/block-facebook-hosts/master/facebook.txt

Туко що го добавих към моя, като махнах моите редове. Така и не проверих в моя списък има ли някой липсващ, ама карай.
Благодаря! Ще погледна.
Аз си мислех нещо с добавяне на групи да направя, за да може да се включва и изключва всичко лесно и удобно. Преглеждането им, включване и изключване на отделни редове. Коментирането по-точно. На ncurses като съм си играл, само съм местил курсора със стрелките насам-натам, за прихващане на натиснат клавиш и подобни.