Автор Тема: Настройки класса школы - обмен файлами (через samba) и интернет ученикам (squid)  (Прочитано 5495 раз)

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 964
Для Rieta

Пусть есть компютерный класс.
Компьютеры учеников и учителя свичем/хабом соединены в локальную сеть.
Установлен линукс (пусть альт 5 легкий, хотя особо не важно) на все компы.
В компе учителя 2 сетевухи. Одна соединина с свичем/хабом класса, на другую сетевуху приходит интернет.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 964
Прокси сервер сквид - раздадим инет классу - чтоб был у всех, а не только у учителя.
Итак на учительском 2 сетевухи.
Пусть одна имеет IP 10.86.9.228 и смотрит в интернет, вторая имеет IP 192.168.1.13 и смотрит в класс.
На ученических компах IP 192.168.1.X
Комп учителя пингует учеников, компы учеников пингуют учителя по IP 192.168.1.13
У учителя есть интернет.

Действия от рута
На компе учителя ставим прокси-сервер сквид - в терминале
su-
apt-get install squid


Настройка сквида это файл /etc/squid/squid.conf
Все что связано с IP адресами выделил так
#######################################################

файл большой и не влезает - прикрепил в архиве
squid.conf.tar.gz

Таким образом прокси сервер будет слушать сетевушку 192.168.1.13 (которая смотрит в класс) и отвечать на 81 порту
Проверим что по умолчанию включен
/sbin/chkconfig --list squid

Видим на каких уровнях прокси включен... Нужно чтоб был включен на 3 и 5...
Хорошо...
Далее перестартанем прокси-сервер
service squid stop
service squid start

Если не ругается и написал на страрт ОК, то все хорошо... надо настраивать компы учеников...


На ученических
Настроим глобальный прокси:
правим файл
/etc/sysconfig/network
Дописываем в конце файла IP и порт прокси сервера

HTTP_PROXY=http://192.168.1.13:81
HTTPS_PROXY=https://192.168.1.13:81
FTP_PROXY=ftp://192.168.1.13:81

Перегружаем компьютер - проверяем...
Должно работать...

Если надо чтобы учитель мог разрешать/запрещать доступ, то настраиваем сквид таким образом чтоб он не стартовал по умолчанию
chkconfig --level 12345 squid off

Ставим программу управлялку
Необходимые файлы в архиве SquidDriver.tar.gz.
Файлы располагать так
/usr/share/applications/SquidDriver.desktop
/usr/local/bin/SquidDriver
/usr/share/icons/SquidDriver.xpm
Для работы управлялки должны быть установлены пакеты tk и tcl
apt-get install tk tcl

теперь от рута запуская /usr/local/bin/SquidDriver
можно стартовать и выключать проксик.

Для того чтоб это мог делать учитель надо сделать кое-какие настройки в sudo
Путь юзера, которому разрешено управлять прокси-сервером имеет логиг
megauser
Еще надо знать имя компьютера
hostname

Пусть имя выдал
ychitel.linux

Вызываем программу для правки правил sudo
visudo

Попадаем в страшный и ужасный редактор vi который имеет два режима - портить текси и бибикать :)
Переходим в режим правки - кнопка INSERT идем курсором в конец файла и дописываем
megauser ychitel = NOPASSWD: /etc/init.d/squid
Нажимаем ESC и выходим из режима правки в командный режим
Вписываем
:q!
для выхода без сохранения - если что-то напортачили..
Для выхода с сохранением вписываем
:wq


Добавим в группу squid
mcedit /etc/group
squid:x:23:megauser

Тепер по идее юзер с логином megauser может из меню запустить программу и включать/выключать прокси сервер - т.е. доступ учиникам в интернет.
« Последнее редактирование: 17.08.2014 18:11:21 от YYY »

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 964
Так...
Теперь самба :)
Пусть у учителя будут расшарены 2 каталога которые будут доступны ученикам по сети.
Один каталог только для чтения.
Другой для чтения и записи.
Действbя на компе учителя от рута
Установка самбы
su-
apt-get install samba

Проверяем что самба по умолчанию включена на 3 и 5 уровнях
chkconfig --list smb
Правим конфиг самбы.
Конфиг находится здесь  /etc/samba/smb.conf

файл прикрепляю в архиве smb.conf.tar.gz


В переменной interfaces прописывается интерфейс на котором самба работает...

Создаем каталоги
su-
mkdir /home/_share
mkdir /home/_share/ro
mkdir /home/_share/pub
chmod 777 /home/_share/ro
chmod 777 /home/_share/pub
echo 123 > /home/_share/ro/flag.file
echo 123 > /home/_share/pub/test.txt

Файл flag.file нужен для того чтоб коннектились нормально ученики.
Удалять его нельзя !
Файл test.txt просто так чтоб тестировать - его можно и удалить потом...

Теперь останавливаем и запускаем самбу
service smb stop
service smb start



Все... теперь настройки учеников.
На компе учеников надо сделать следующее:
От рута создаем каталоги
su-
mkdir /mnt/smb
mkdir /mnt/smb/ro
mkdir /mnt/smb/pub
chmod 777 /mnt/smb/pub


Теперь надо внести правки в файл крона
mcedit /etc/crontab
вписываем чтоб раз в минуту выполнял - в конце, после "раз в месяц" добавим:
*/1 * * * * root run-parts /etc/cron.min
далее f2 сохранить и f10 выход
создаем каталог
mkdir /etc/cron.min
теперь в каталог /etc/cron.min надо добавить файл который будет исполнятся
echo   > /etc/cron.min/samba
chmod +700 /etc/cron.min/samba

В файл /etc/cron.min/samba вписываем
#!/bin/sh

if [ -e /mnt/smb/ro/flag.file ]; then

echo share - ok

else

echo connect to share 'ro'
smbmount //192.168.1.13/ro /mnt/smb/ro -o guest,codepage=cp866,iocharset=utf8,dmask=0777,fmask=0666,ro
echo connect to share 'pub'
smbmount //192.168.1.13/pub /mnt/smb/pub -o guest,codepage=cp866,iocharset=utf8,dmask=0777,fmask=0666,rw

fi

echo "try_connect">/tmp/try
или так :)
#!/bin/bash

SMBIP="192.168.1.13"

if [ "$1" == "stop" ]; then

    echo "try stop share !"
    umount /mnt/smb/ro
    umount /mnt/smb/pub
    echo "share - stop !"
    umount -f /mnt/smb/ro
    umount -f /mnt/smb/pub

else   
    echo "try seek flag"

    if [ -e /mnt/smb/ro/flag.file ]; then

echo "share - ok. see flag"

    else

echo "not see flag"
echo "in mount smb=" `mount | grep $SMBIP -c`

if [ `mount | grep $SMBIP -c` -gt 0 ]; then
    echo "try unount"
    umount -f /mnt/smb/ro
    umount -f /mnt/smb/pub
else

        echo "connect to share 'ro'" #>>/tmp/123
        smbmount //$SMBIP/ro /mnt/smb/ro -o guest,codepage=cp866,iocharset=utf8,dmask=0777,fmask=0666,ro,ttl=10000
    echo "connect to share 'pub'" #>>/tmp/123
    smbmount //$SMBIP/pub /mnt/smb/pub -o guest,codepage=cp866,iocharset=utf8,dmask=0777,fmask=0666,rw,ttl=10000

fi #if [ `mount |

    fi #if [ -e /mn

fi

#echo `date` >>/tmp/123


строка echo "try_connect">/tmp/try
только для тестирования - как заработает - можно удалить.
Таким образом ученики зайдя в
/mnt/smb/ro и /mnt/smb/pub
должны попасть на учительский.
А учитель может кидать файлы в
/home/_share/ro
/home/_share/pub
Из плюсов того что через крон - стартуют ученические быстро, ученические можно включить до учительского, а минус что соединяет шару не сразу а через минуту.
Минусы метода вообще - учительский выключать последним в классе - иначе медленно ученические вырубаются и учительский лучше не перегружать :)

« Последнее редактирование: 07.10.2011 23:53:54 от YYY »

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 964
С удовольствием выслушаю предложения и замечания от гуру :)

Оффлайн igorigor76

  • Завсегдатай
  • *
  • Сообщений: 651
... - стартуют ученические быстро, ученические можно включить до учительского...

... - учительский выключать последним в классе - иначе медленно ученические вырубаются ...

Интересно, как нибудь можно уменьшить тайм аут ожидания подключения/отключения к SAMBA ресурсу?

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 964
... - стартуют ученические быстро, ученические можно включить до учительского...
... - учительский выключать последним в классе - иначе медленно ученические вырубаются ...
Интересно, как нибудь можно уменьшить тайм аут ожидания подключения/отключения к SAMBA ресурсу?
Вот тут кое-какие советы есть
http://www.linuxforums.org/forum/servers/56711-adjust-timeout-samba.html
но как понимаю ключа типа --timeout=10 нет.
Ну и вообще решение через  smbmount  мне не нравится... CIFS себя лучше ведет... Но это единственное что сработало... Может тут вина в том что переоптимизировал машины и все службы повырубил (зато сейчас альт 5 грузится заметно быстрее ХР :)
Ну а то что вырубается долго.... В принципе пока он висит на проверке шар самбы (ну если учительский вырублен вперед) можно питание рубильником вырубать - альту не плохеет - все остановлено :) А вот когда нетерпеливые учителя вырубали винду... она бывало и не грузилась...

Оффлайн Nagohak

  • Завсегдатай
  • *
  • Сообщений: 306
С удовольствием выслушаю предложения и замечания от гуру :)
Отличная статейка.
Ну я думаю с самбой так не очень удобно. Лучше замутить что нить под сервачек, и там расшарить и монтировать в папки. У мня на сервере созданы 2 папки с кабинетами в них папки (User1-Комьютер1 ит.д.) Ну и каждая папка монтируется ученику в документы. Ну а на учительской монтируется папка кабинета.

Плюсом еще сделан типа "Файло обменник", расшарены 2 папки 1-Завучи и т.д. и 2-Для учителей. Вход по логину с паролем. Учителя имеют доступ только к себе, а завучи имеют в обе папки. Очень удобно чтобы не бегать с 4 на 1 этаж, чтобы передать документ. Ну а сообщают о том что что-то кинули кому либо в папку на поднятом сервере jabber.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 964
Сервер это хорошо...
Но у меня нет вообще лишних машин..
Сейчас на одну (п2) собираю запчасти что найду  - буду шлюзик делать на школу - с фильтрацией чтоб... и (если потянет) с clamav  - а то виндовые машинки есть...

А это я просто для класса описал...
в настройках скида был косяк - исправил вроде :(

Оффлайн bsdlinux

  • Завсегдатай
  • *
  • Сообщений: 809
А разве в Мастере(КДесктоп) squid не стоит ? На скриншотах что-то с КДЕ - отсюда и вопорос .

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 964
А разве в Мастере(КДесктоп) squid не стоит ? На скриншотах что-то с КДЕ - отсюда и вопорос .
На скриншоте кусок от icewm на школьном-5-лайт :)