Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Debian/Ubuntu - Как ограничить из сети доступ в Интернет по времени?

Ответить
Настройки темы
Debian/Ubuntu - Как ограничить из сети доступ в Интернет по времени?

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Приветствую всех!
У меня существует проблема: мои дети учатся в школе и никак не делают уроки пока я пропадаю на работе. Днем развлечения — игры, мультики, тик-ток, вацап, а вечером уроки до поздна, мелкий ноет, что не успевает. Короче — достали! Решил я поставить шлюз на debian и ограничить им доступ в Интернет. Чтобы по рабочим дням недели с 9:00 до 18:00 был доступ только к сетевому дневнику и другим образовательным ресурсам по списку, а в другое время — разрешено всё. Только как сделать — точно не знаю. Толи нужно использовать squid, толи через iptables? Думаю все-таки, нужно использовать правила таблицы, только какие — знаний не хватает. Помогите, пожалуйста, советом.

Отправлено: 07:26, 27-12-2020

 

Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


конечно же через squid

для iptables вам нужно будет как-то вычислять ip

Отправлено: 08:54, 27-12-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Dimon

Ветеран


Сообщения: 551
Благодарности: 13

Профиль | Отправить PM | Цитировать


olalo7,

Вариантов несколько:
  • можно поставить локальный DNS-сервер (например, dnsmasq) настроить систему использовать только этот локальный DNS и в нем уже разрешать или запрещать использование нужных адресов по времени;
  • подобный вышеуказанному подход, но на уровне файла hosts: в /etc/resolv.conf убрать все записи типа nameserver x.x.x., запретить в системе всякие NetworkManager'ы и resolvconf-службы, затем в /etc/hosts прописать соответствие имен сайтов их айпишниам. Чтобы адреса развязывались ТОЛЬКО у сайтов, прописанных в /etc/hosts и ТОЛЬКО через этот файл. Возможно надо будет подкорректировать nsswitch.conf. И по крону подменять файлы resolv.conf, когда можно все и когда можно только по списку;
  • можно попробовать через iptables ограничивать (см. скрипт ниже). тоже необходимо вручную прописать все нужные сайты (включая вспомогательные googleapis, jquery, userapi и пр.). По крону включаем и выключаем. Но, зато, обойти данный способ будет проблематично, ибо закрыто все, что не разрешено.
Первый вариант самый простой в плане настройки, второй - достаточно хлопотный, надо все вручную выявлять-прописывать, третий - нечто среднее между обоими способами.
Так же, как указали выше, возможна установка прокси-сервера, прописывание его в браузер, запрет системе ходить в инет БЕЗ прокси и настройка whitelist/blacklist. Отличный вариант.

Скрипт:

Код: Выделить весь код
#!/bin/bash

IPT="/sbin/iptables"
IN_A="$IPT -A INPUT"
OUT_A="$IPT -A OUTPUT"

##############################################

function printUsage {
echo -e "USAGE: $0 <stop|start|restart>\n"
}


function do_stop {
    echo "Stopping firewall (clearing all rules and open everything)"
    $IPT -F
    $IPT -t nat -F
    $IPT -t mangle -F
    $IPT -P INPUT ACCEPT
    $IPT -P OUTPUT ACCEPT
    $IPT -P FORWARD ACCEPT
}

function do_start {

    echo "Starting firewall (setting rules, closing all other, not allowed)"

###################### Insert firewall rules from here #######################
#                                                                            #
# !!!!!!!!!!!!!!!!!!!! Everyting is closed by default !!!!!!!!!!!!!!!!!!!!!! #
#                                                                            #
# Automatically only already opened connections for all are accepted.        #
# To open something you have to set INPUT _AND_ OUTPUT rules manually.       #
# Forward rules are set as usual.                                            #
#                                                                            #
##############################################################################

    $IN_A -i lo0 -j ACCEPT
    $OUT_A -o lo0 -j ACCEPT

    # SSH
    $IN_A -p tcp -m tcp --dport 22 -j ACCEPT
    $OUT_A -p tcp -m tcp --dport 22 -j ACCEPT

   # Allow inet ( DNS, HTTP(S))
    $IN_A -p udp -m udp --dport 53 -j ACCEPT
    $OUT_A -p udp -m udp --dport 53 -j ACCEPT

    # Here adding sites one by one with appropriate ports. See example below. 
    # IN and OUT chains have to be added
    # 
    $IN_A -p tcp -m tcp -m multiport -s thinkwiki.org --dports 443,80 -j ACCEPT
    $OUT_A -p tcp -m tcp  -m multiport -d thinkwiki.org --dports 443,80 -j ACCEPT

    $IN_A -p tcp -m tcp -m multiport -s vk.com --dports 443 -j ACCEPT
    $OUT_A -p tcp -m tcp  -m multiport -d vk.com --dports 443 -j ACCEPT



    # Allow ICMP
    $IN_A -p icmp -j ACCEPT
    $OUT_A -p icmp -j ACCEPT

#############################################################################
    # Allow all incoming traffic for connections etablished
    $IN_A -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    $OUT_A -m conntrack --ctstate ESTABLISHED -j ACCEPT


    # Drop all other
    $IPT -P FORWARD DROP
    $IPT -P INPUT DROP
    $IPT -P OUTPUT DROP
}

case $1 in
    stop) do_stop ;;
    start) do_start ;;
    restart) do_stop; sleep 1; do_start ;;
    *) printUsage; exit 1 ;;
esac

echo "done"
exit 0

-------
Патроны кончаются... Санитары близко... Всем пока


Отправлено: 20:11, 09-01-2021 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Существует функция родительского контроля - настроить её проще, чем извращаться со сквидом и дебианами.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 19:54, 11-01-2021 | #4



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Debian/Ubuntu - Как ограничить из сети доступ в Интернет по времени?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - Один из компов сети не синхронизируется по времени с сервером времени goodhash72 Программное обеспечение Windows 3 29-10-2013 16:14
Прочее - Как ограничить доступ к сети пользователям, входящим по RDP? SergiuZ Сетевые технологии 5 28-08-2013 17:19
2008 - Ограничить Интернет по сети в Server 2008 stranges Windows Server 2008/2008 R2 14 17-04-2011 18:24
[решено] Как ограничить доступ пользователей в интернет Xenia Microsoft Windows NT/2000/2003 14 02-03-2011 06:35
VPN/Firewall - Как ограничить доступ в интернет отдельному usery в локальной сети? ***De7c5*** Сетевое оборудование 5 22-04-2009 16:49




 
Переход