среда, 1 февраля 2012 г.

Нюансы Hakintosh

Что касается обновлений...
Софт обновляется отлично, никаких проблем не возникало. А, вот, после системных обновлений Мас ОС может перестать загружаться, в прошлый раз у меня перестала видеть загрузочное устройство, поэтому, прежде, чем устанавливать системные обновления, сделайте резервную копию вашей рабочей системы.

Еще один нюанс выполз после попытки клонировать раздел Мас ОС с помощью утилиты Acronis, а затем с помощью Pmagic. Да, помнится, еще и виндовый диспетчер дисков запускал.
В общем, не знаю, какая именно из софтин посчитала нужным внести поправку в таблицу разделов, но загружаться Мас ОС перестала с сообщением "...still waiting root device". Т.е. загрузчик перестал понимать маковский раздел.
Будьте бдительны :)

А, вот, совсем недавно, буквально вчера, обновился до 10.7.3 [таймзоны обновились :) ]
Система завелась, все отлично, только звук потерялся, ну, и то, потому что руками заменял соответсвующий kext под свое устройство.
Вернул нужный kext в системный каталог рестартанул систему, звук появился, так что бэкапиться и экспериментировать! :)

вторник, 24 января 2012 г.

Заводим Nvidia Geforce Gt440 под Mac OS X 10.7

Установил Nvidia Geforce Gt440 на Mac, а он не стартует. Доходит дело до яблока и останов.
Загрузился с параметрами
GraphicsEnabler=No -x

Почитал, что пишут впереди идущие. На удивление помогло первое попавшееся решение:

1. Скачал Natit.kext.zip
2. Распаковал в /Systsm/Library/Extensions/
3. Запустил Kext Utility
4. После завершения ее работы вернул параметры в /Extra/org.chameleon.Boot.plist


Kernel
mach_kernel
Kernel Flags
npci=0x2000 darkwake=0 PCIRootUID=1 UseKernelCache=Yes -v
GraphicsEnabler
Yes
Timeout
2
Legacy Logo
Yes
EthernetBuiltIn
Yes

5. Перезагрузился и обрадовался - система завелась.

По поводу производительности сказать пока что ничего не могу, т.к. в 3D не играю.

Производительность системы перекрывает мои потребности, наслаждаюсь ).

понедельник, 23 января 2012 г.

Hakintosh - это просто

Вот так... Увлечение nix-системами вынесло меня в бурную реку Мас ОС Х.
После приблизительно недели изучения предметной области могу себе сказать: Мас на ПК - это просто.
Конечно, самое важное, это найти хороший положительный опыт тех, кто уже топтал тропинки в этом направлении.
Оригинал статьи, которая меня вдохновила...

Железо:
Процессор: Intel Core i7-2600
Материнская плата: GIGABYTE H67M-D2-B3
Оперативная память: 4 Гб (2x2) DDR3 1333 МГц Kingston
Жёсткие диски: обычный HDD на 1000 Гб (SATA)
Видео: на базе NVIDIA GeForce 8800GTS
Звуковой адаптер встроенный: ALC889

Для материнской платы GIGABYTE H67M-D2-B3 есть готовый DSDT, любезно предоставленный на http://www.tonymacx86.com/

Система Mac OS X 10.7 устанавливалась методом tonymacx86. В системе практически нет ничего неродного, кроме загрузчика Chimera драйвера для сетевой карты Realtek и драйвера для встроенного звука ALC8XX HDA.

Для подготовки флешки изначально использовалась Mac вот отсюда.

Оригинальный образ Mac OS X 10.7 был также скачан с rutracker.org

Флешку подготавливал по этой статье.

Если загружаться с флешки не удается, можно использовать rBoot или iBoot все с того же tonymacx86.com

Всё работает абсолютно стабильно и супер быстро. Всё железо (видео, звук, проводная сеть и пр.) работает идеально, режим сна работает без проблем. Работать в системе очень комфортно. Отзывчивость системы моментальная – никаких подтормаживаний, ожиданий и пр. Сделал действие и мгновенное получаешь результат.

P.S.
Когда применял MultiBeast, выбирал следующие параметры:

UserDSDT
SystemUtilites
ALC8xxHDA Rollback
NullCPUPowerManaement
Lnx2MacsRealtek (отдельно, при повторной установке, иначе выдавало ошибку)
64BitGraphicsEnable=No (пока не установил внешнюю видеокарту, послу установки поменять на Yes)
PCIRootUIDFix
iMac11.1
OSx86Software

Есть еще несколько параметром, кторые помогут при начальной загрузке Мас:
-x безопасный режим
-v
PCIRootUID=1

Устройство загрузки /dev/disk0S2

На всякий случай:
bash-3.2# cat /Extra/org.chameleon.Boot.plist




Kernel
mach_kernel
Kernel Flags
npci=0x2000 darkwake=0 PCIRootUID=1 UseKernelCache=Yes -v -x
GraphicsEnabler
No
Timeout
2
Legacy Logo
Yes
EthernetBuiltIn
Yes



bash-3.2# cat /Extra/smbios.plist




SMfamily
iMac
SMproductname
iMac11,1
SMboardproduct
Mac-F2268DAE
SMserial
W895154Z5RU
SMbiosversion
MultiBeast.tonymacx86.com



Вот, пожалуй и все, что мне нужно запомнить об установке Mac OS.

понедельник, 9 мая 2011 г.

Устанавливаем Apache, PHP и MySQL на Ubuntu

Оригинал...

Устанавливаем Apache
Открываем терминал, и выполняем:

sudo apt-get install apache2

Все зависимости подтянутся автоматически.

После запуска Apache2 можно открыть браузер и проверить работу сервера перейдя на страницу http://localhost
Устанавливаем PHP
В терминале выполняем:

sudo apt-get install php5 libapache2-mod-php5

и перезапускаем сервер командой:


sudo invoke-rc.d apache2 restart

Устанавливаем MySQL
В терминале выполняем:

sudo apt-get install mysql-server


В процессе установки необходимо будет задать пароль пользователя root для MySQL.

Это можно сделать и после установки:

sudo mysqladmin -u root password новый_пароль



Перезапускаем Apache2:

sudo invoke-rc.d apache2 restart

Все должно работать. Для проверки PHP можно сделать следующее:

sudo nano /var/www/test.php

или

sudo gedit /var/www/test.php

Пишем и сохраняем:

<?php phpinfo(); ?>

В браузере переходим по ссылке http://localhost/test.php, где вы увидите всю информацию о PHP.
Для удобной работы с базами данных ставим phpMyAdmin:

sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

Все готово. phpMyAdmin доступен по ссылке:

http://localhost/phpmyadmin/index.php

Если возникнут проблемы с phpMyAdmin – перезапустите Apache.

среда, 2 марта 2011 г.

SBS на базе Ubuntu Server - Файловый сервер (Samba) + сетевая печать

Оригинал статьи находится здесь.

Устанавливаем Samba и дополнительные пакет

$ sudo apt-get install samba samba-doc libcups2 libkrb5-3 winbind \\
                       smbclient samba-common-bin 
 

В конфигурационном файле Samba, созданном по умолчанию, нужно сделать несколько изменений. Так что откройте в редакторе файл /etc/samba/smb.conf, просмотрите его и сделайте настройки в соответствии со следующим примером. Большую часть примера можно скопировать без всяких изменений, но задайте для переменной WORKGROUP имя домена Windows (вы даже можете оставить его значение равным WORKGROUP), а для переменной FILESERVER укажите имя хоста вашего сервера Linux:

[global]
   workgroup = WORKGROUP
   netbios name = FILESERVER
   server string = %h server (Samba, Ubuntu)

   passdb backend = tdbsam
   security = user
   username map = /etc/samba/smbusers
   name resolve order = wins bcast hosts
   domain logons = yes
   preferred master = yes
   wins support = yes

   ## Use CUPS for printing
   printcap name = CUPS
   printing = CUPS

   ## Set default logon
   logon drive = H:
   #logon script = scripts/logon.bat
   logon path = \\\\fileserver\\profile\\%U

   ## User management scripts
   add user script = /usr/sbin/useradd -m %u
   delete user script = /usr/sbin/userdel -r %u
   add group script = /usr/sbin/groupadd %g
   delete group script = /usr/sbin/groupdel %g
   add user to group script = /usr/sbin/usermod -G %g %u
   add machine script = /usr/sbin/useradd -s /bin/false/ -d /var/lib/nobody %u
   idmap uid = 15000-20000
   idmap gid = 15000-20000

   ## Settings to sync Samba passwords with system passwords
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\\snew\\sUNIX\\spassword:* %n\\n *Retype\\snew\\s UNIX\\spassword:* %n\\n .
   passwd chat debug = yes
   unix password sync = yes

   ## Set the log verbosity level
   log level = 3

[homes]
   comment = Home
   valid users = %S
   read only = no
   browsable = no

[printers]
   comment = All Printers
   path = /var/spool/samba
   printable = yes
   guest ok = yes
   browsable = no

[netlogon]
   comment = Network Logon Service
   path = /home/samba/netlogon
   admin users = Administrator
  valid users = %U
   read only = no

[profile]
   comment = User profiles
   path = /home/samba/profiles
   valid users = %U
   create mode = 0600
   directory mode = 0700
   writable = yes
   browsable = no

В следующей закомментированной строке:

#logon script = scripts/logon.bat

определяется скрипт Windows, который будет выполняться на рабочей станции Windows всякий раз, когда пользователь будет входить в систему. Это, действительно, может быть весьма удобно, если вы хотите для всех компьютеров в сети применять стандартные настройки; вы можете задать, как будет отображаться диск сервера, настроить принтеры или сконфигурировать прокси-сервер. Если у вас есть скрипт logon.bat, то раскомментируйте эту строку.

Создайте директории для хранения профилей и информации о входе в домен:
$ sudo mkdir -p /home/samba/netlogon
$ sudo mkdir /home/samba/profiles
$ sudo mkdir /var/spool/samba
$ sudo chmod 777 /var/spool/samba/
$ sudo chown -R root:users /home/samba/
$ sudo chmod -R 771 /home/samba/

Сделайте так, чтобы Samba увидела вашу новую конфигурацию:
 
$ sudo /etc/init.d/smbd restart

Чтобы включить сервис WINS (Windows Internet Name Service), откройте в редакторе файл  
/etc/nsswitch.conf и найдите следующую строку:
 
hosts: files dns

Замените ее строкой:
 
hosts: files wins dns

Поскольку ваш файл-сервер будет контроллером домена (DC) для вашего домена Windows, вы должны указать компьютеры, которые будут входить в домен. Откройте файл /etc/hosts и добавьте в него все сервера и рабочие станции:
192.168.0.10 server1
192.168.0.101 workstation1
192.168.0.102 workstation2
...
192.168.0.107 workstation7

В Windows как правило, есть специальный пользователь с именем Administrator, который аналогичен пользователю root в Linux, так что добавьте пользователя root в базу данных паролей Samba и создайте для него псевдоним. Это позволит вам использовать имя пользователя Administrator при добавлении новых компьютеров в домен Windows:
$ sudo smbpasswd -a root
$ sudo sh -c "echo 'root = Administrator' > /etc/samba/smbusers"

Чтобы убедиться, что к этому моменту все работает, используйте команду smbclient и сделайте запрос к Samba:
$ smbclient -L localhost -U%

В выданном результате будет указана подробная информация о нескольких стандартных сервисах, таких как netlogon и ADMIN, а также будут перечислены машины, зарегистрированные в домене:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.21b]

        Sharename       Type      Comment
        ---------   ----      -------
        netlogon        Disk      Network Logon Service
        IPC$            IPC       IPC Service (fileserver server (Samba, Ubuntu))
        ADMIN$          IPC       IPC Service (fileserver server (Samba, Ubuntu))
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.21b]

        Server               Comment
        ---------            -------
        FILESERVER           fileserver server (Samba, Ubuntu)

        Workgroup  Master
        ---------            -------
        WORKGROUP            FILESERVER
Отобразите несколько стандартных групп, используемых в доменах Windows, в эквивалентные группы в Linux:
$ sudo net groupmap modify ntgroup="Domain Admins" unixgroup=root
$ sudo net groupmap modify ntgroup="Domain Users" unixgroup=users
$ sudo net groupmap modify ntgroup="Domain Guests" unixgroup=nogroup

Чтобы предоставить пользователям возможность аутентификации в домене, их нужно прописать в контроллере домена. Этот процесс необходимо повторять для каждого пользователя, но сейчас просто создайте одного пользователя, сначала добавив пользователя в Linux и затем установив пароль для этого пользователя в Samba. Этого пользователя также потребуется поместить в группу users, которая только что была сделана псевдонимом группы Windows Domain Users:
$ sudo useradd jon -m -G users
$ sudo smbpasswd -a jon

Теперь пользователю предоставлена возможность аутентификации на рабочих станциях в вашем домене, но в нем еще ничего не открыто для совместного доступа.

Открываем общий доступ

Начните просто с добавления ресурса, к которому могут иметь доступ все пользователи. Во-первых, создайте директорий, для которого откройте общий доступ и укажите для этого директория соответствующие права доступа:
$ sudo mkdir -p /home/shares/public
$ sudo chown -R root:users /home/shares/public
$ sudo chmod -R ug+rwx,o+rx-w /home/shares/public

Каждый ресурс, для которого открыт общий доступ, должен быть сконфигурирован в Samba. Откройте файл /etc/samba/smb.conf и добавьте к концу файла следующие записи:
[public]
  comment = Public Share
  path = /home/shares/public
  valid users = @users
  force group = users 
  create mask = 0660
  directory mask = 0771
  writable = yes

Каждый раз, когда вы меняете конфигурацию, вам нужно перезапускать Samba:
$ sudo /etc/init.d/smbd restart

Добавленный фрагмент позволяет всем пользователям группы @users получать доступ к ресурсу с полными привилегиями на запись. Во многих случаях это, вероятно, не то, что вам нужно. Если совместный доступ разрешено получать только определенным пользователям, то используйте, например, следующую строку:

valid users = jon,kyle,bill

Чтобы управлять большим количеством пользователей, вы можете создать новую отдельную группу, установить для нее соответствующие права для общего доступа и указать эту группу в конфигурации Samba. Тогда у вас появится возможность добавлять пользователей в эту группу и удалять их из нее без перенастройки или перезагрузки Samba:

valid users = @authors

Вы также можете создать совместный доступ только для чтения, задав для параметра writable значение no:

writable = no

Другим типичным сценарием является предоставление общего доступа на чтение/запись для некоторых пользователей, а для всех других - только для чтения:

valid users = @authors,@editors
  read list = @authors
  write list = @editors

В Samba есть огромный спектр возможностей для задания различных вариантов доступа, так что для получения более подробной информации смотрите http://samba.org/samba/docs/.


Общий доступ к принтерам

Если у вас есть принтеры, которые вы хотите сделать доступными для ваших рабочих станций Windows через Samba, то сначала выполните настройки принтера для того, чтобы принтеры работали локально, а затем используйте команду cupsaddsmb чтобы сообщить Samba, что надо открыть к ним доступ.
Чтобы открыть общий доступ ко всем принтерам, наберите:
 
$ sudo cupsaddsmb -a

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

$ sudo cupsaddsmb laserjet

Настройка принтера

Убедитесь, что принтер подключен и запустите его в Ubuntu.
В Ubuntu для управлениями принтерами и очередями заданий на печать используется система CUPS, Common Unix Printing System. Систему CUPS можно сконфигурировать с помощью различных инструментов, в том числе с помощью менеджера GNOME CUPS, а также с помощью его собственного встроенного веб-интерфейса, который работает через порт 631.

Веб интерфейс CUPS

Менеджер GNOME CUPS предоставляет быстрый доступ к основным параметрам настройки, но для того, чтобы по-настоящему управлять системой CUPS, вам следует воспользоваться встроенным веб интерфейсом. Для того, чтобы увидеть огромный спектр имеющихся возможностей, откройте веб браузер и укажите в нем адрес http://localhost:631.

Все отлично, но сразу выполз нюанс: а как быть, если на сервере у меня нет X11 и я хочу админить CUPS с удаленного хоста.
Нужно снести несколько изменений в /etc/cups/cupsd.conf:

В секцию

# Only listen for connections from the local machine.
Listen localhost:631
Listen /var/run/cups/cups.sock

Добавляем строку для интерфейса локальной сети:


Listen 10.137.131.253:631

Аналогично правим следующие секции:

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow From 10.137.131.*
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Encryption Required
  Order allow,deny
  Allow From 10.137.131.*
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow From 10.137.131.*
</Location>
 

После этого делаем рестарт CUPS

/etc/init.d/cups restart

Теперь можно зайти на web-интерфейс по соответствующему ip в локальной сети:
http://10.137.131.253:631 

Совместное использование локальных принтеров

Вы можете, указав настройку Shared ("Общий"), разрешить другим компьютерам вашей локальной сети использовать принтер, подключенный локально.
Для того, чтобы увидеть определения (настройки — прим.пер.) ваших принтеров, откройте с помощью текстового редактора файл /etc/cups/printers.conf. Каждый принтер определяется в отдельном блоке, причем все настройки, касающиеся этого принтера, указываются в произвольном порядке внутри этого блока. Найдите среди существующих настроек следующий вариант:

Shared no

Замените его на вариант:

Shared yes

После того, как вы измените файла printers.conf, перезапустите планировщик CUPS:

$ sudo /etc/init.d/cupsys restart

Задаем квоты для принтера

В CUPS реализована очень простая схема квот, которая позволит вам ограничивать количество страниц, распечатываемое за указанный период, но эта схему можно применять принтерам, а не к пользователям.
С помощью текстового редактора откройте файл /etc/cups/printers.conf и добавьте два настроечных параметра: PageLimit, в котором указывается максимально допустимое количество печатаемых страниц, и QuotaPeriod, в котором задается период в секундах, в течение которого действует ограничение. Для того, чтобы задать ограничение в 200 страниц в течение недели, вам нужно указать следующие настройки

QuotaPeriod 604800
PageLimit 200

Один день равен 86 400 секундам, одна неделя равна 604 800 секундам, а один месяц равен 2 592 000 секундам.
Вы также можете указать параметр KLimit, определяющий объем данных в килобайтах, которые принтеру разрешено принять. Этот вариант может оказаться полезным в случае, если вы хотите, чтобы на конкретные принтеры не посылались очень большие задания печати.

Подсказка

После того, как вы измените файл printers.conf, перезапустите CUPS.
Есть прием, с помощью которого можно обойти ограничение, позволяющее задавать квоты для принтеров, это - сконфигурировать один и тот же принтер несколько раз, каждый раз с новый именем и новыми настройками доступа, и связать эти настройки с тем же самым устройством. После этого квота для каждого "принтера" будет отслеживаться индивидуально, так что вы можете подключить каждого пользователя к отдельному виртуальному принтеру и, таким образом, задать индивидуальные квоты для пользователей.

 

вторник, 22 февраля 2011 г.

NAS + NAT + torrent-daemon на eBox 2300sx под debian-6.0.0-i386-netinst

Итак, имеем eBox2300sx
Хотим на основе него получить маршрутизатор для домашней сети (NAT), систему сетевого хранения данных (NAS), а также независимую от основного компьютера качалку торрентов (torrent-daemon).

Заметим, что высокая скорость загрузки нам не нужна, а удобство инсталляции - приветствуется.

Поэтому берем debian-6.0.0-i386-netinst.iso , записываем на компакт, подцепляем usb-cdrom к нашему девайсу, в биосе меняем параметны загрузки на usb-cdrom.
После появления графической картинки, жмякаем tab и добавляем параметр linux pnpbios=off

Производим стандартную установку debian.

Установка дополнительных пакетов.
Логинимся под рутом и ставим следующие пакеты
apt-get install mc samba sockstat transmission-daemon console-cyrillic
dpkg-reconfigure locales
К стати, transmission-daemon уже должен был запуститься, проверяем
sockstat |grep 9091
должны увидеть такую строку
debian-t transmission-da      1083     tcp4   *:9091                    *:*                       LISTEN

Настройка проста – тормозим демона: sudo /etc/init.d/transmission-daemon stop
Открываем файл настроек: sudo gedit /etc/transmission-daemon/settings.json.
Указываем пользователя в поле "rpc-username": "your_username", пароль в поле "rpc-password": "my_strong_password",, а также либо добавляем свой ip-адрес в поле "rpc-whitelist": "127.0.0.1",, либо отключаем whitelist: "rpc-whitelist-enabled": 0,
Собственно базовая настройка и закончена, стартуем демона: sudo /etc/init.d/transmission-daemon start – можно скачивать торренты. Кроме вышеуказанных настроек там тоже есть чего «поднастроить», как, например, папку, куда по-умолчанию складываем закачанные файлы, порт, по которому работаем, включаем или выключаем шифрование траффика и т.д.

Настраиваем samba

конфигурационный файл находится в /etc/samba/smb.conf 
Раскомментируем строку

security = user
 
Теперь для того чтобы создать samba-юзера  надо сделать следующее:
Сначала создать пользователя в Ubuntu
# adduser <username>
а потом создать samba-пользователя
# smbpasswd -a <username>
 
Открыть доступ на какую-нибудь папку
 
# chmod 777 /media/torrents
и запишем в конец конфигурационного файла /etc/samba/smb.conf следующий текст
[torrents]
    comment = Torrents
    path = /media/torrents
    valid users = mkrylov
    create mode = 0777
    directory mask = 0777
    available = yes
    browsable = yes
    public = yes
    writable = yes
Перезапуск samba после изменения конфиг. файла.
# /etc/init.d/samba restart
 
Подключаем usb-hdd и смотрим, как он определился (у меня это был sdb)
 
root@nas:~# dmesg |grep sd
[    9.598718] sd 0:0:0:0: [sda] 7847280 512-byte logical blocks: (4.01 GB/3.74 GiB)
[    9.606841] sd 0:0:0:0: [sda] Write Protect is off
[    9.606897] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    9.607999] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[    9.623837]  sda: sda1 sda2 < sda5 >
[    9.669432] sd 0:0:0:0: [sda] Attached SCSI disk
[   16.220748] sd 2:0:0:0: [sdb] 976773168 512-byte logical blocks: (500 GB/465 GiB)
[   16.228301] sd 2:0:0:0: [sdb] Write Protect is off
[   16.228357] sd 2:0:0:0: [sdb] Mode Sense: 2f 08 00 00
[   16.228388] sd 2:0:0:0: [sdb] Assuming drive cache: write through
[   16.256774] sd 2:0:0:0: [sdb] Assuming drive cache: write through
[   16.256906]  sdb: sdb1
[   16.354354] sd 2:0:0:0: [sdb] Assuming drive cache: write through
[   16.354486] sd 2:0:0:0: [sdb] Attached SCSI disk
[   21.426662] Adding 212984k swap on /dev/sda5.  Priority:-1 extents:1 across:212984k
[   21.958471] EXT3 FS on sda1, internal journal
[   52.873833] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
Создаем папку для торрнетов
mkdir /media/torrents
chmod 777 /media/torrents
Добавляем в fstab сроку на автомонтирование нашего usb-hdd
/dev/sdb1       /media/torrents ntfs    defaults,umask=000      0       0
Можно проверить
# mount -a
# df -h
должны увидеть свой usb-hdd
root@nas:~# df -h
Файловая система      Разм  Исп  Дост  Исп% смонтирована на
/dev/sda1             3,5G  724M  2,6G  22% /
tmpfs                  54M     0   54M   0% /lib/init/rw
udev                   49M  120K   49M   1% /dev
tmpfs                  54M     0   54M   0% /dev/shm
/dev/sdb1             466G   79M  466G   1% /media/torrents
Поднимаем NAT...
Ага, а как же мы будем маршрутизировать трафик, ведь у нас единственный ethernet-интерфейс...
А, собственно, вот так... открываем /etc/network/interfaces и добавляем туда следующие строки:
 
auto eth0:0
iface eth0:0 inet static
    address 192.168.0.1
    netmask 255.255.255.0
    network 192.168.0.0
    broadcast 192.168.0.255

Сохраняем его, перезапускаем сеть
# /etc/init.d/networking restart
Теперь у нас есть еще один интерфейс, который будет смотреть в локальную сеть.
 
Запускаем NAT
 
touch /etc/iptables.up.rules
и пишем в него
 
# Generated by iptables-save v1.4.4 on Sat May 15 17:43:56 2010
*nat
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.0.0/24 ! -d 192.168.0.0/24 -o eth0 -j MASQUERADE
COMMIT
# Completed on Sat May 15 17:43:56 2010
# Generated by iptables-save v1.4.4 on Sat May 15 17:43:56 2010
*mangle
:PREROUTING ACCEPT [4439:309956]
:INPUT ACCEPT [2044:164373]
:FORWARD ACCEPT [2116:125292]
:OUTPUT ACCEPT [17435:1241285]
:POSTROUTING ACCEPT [3240:299687]
COMMIT
# Completed on Sat May 15 17:43:56 2010
# Generated by iptables-save v1.4.4 on Sat May 15 17:43:56 2010
*filter
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Sat May 15 17:43:56 2010
 
В файл /etc/rc.local добавляем следующие строки
echo '1' > /proc/sys/net/ipv4/ip_forward
iptables-restore < /etc/iptables.up.rules
Похоже, что все!

вторник, 15 февраля 2011 г.

SBS на базе Ubuntu Server - квотирование трафика SAMS

1. Устанавливаем необходимые пакеты и зависимости для работы SAMS’а:
aptitude install apache2 apache2-mpm-prefork php5 libapache2-mod-php5 php5-cgi php5-common php5-mysql mysql-server mysql-client squid libpcre3 php5-gd libpcre3-dev libmysqlclient15-dev gcc make

Идем сюда и скачиваем пакет libmysqlclient15off, устанавливаем его
dpkg -i libmysqlclient15off.deb
(это все потому, что он находится в репозитариях, не упомянутых в sources.list).
Также, возможно, потребуется установить дополнительные пакеты:
squidguard – для использования редиректора squidguard
php5-ldap – для авторизации пользователей в Active Directory | LDAP
php-fpdf – для генерации pdf отчетов.


2. По завершению установки всех необходимых пакетов следует редактировать файл /etc/php5/apache2/php.ini
В нем необходимо изменить параметры на те, что указаны ниже:
1) safe_mode = On
2) safe_mode_exec_dir = “/usr/share/sams/bin”
3) disable_functions = “chdir,dl,ini_get_all,popen,proc_open,passthru,pcntl_exec”
и создаем директорию html в  /var/www/


3. Конфигурация, компиляция и установка SAMS:
Скачиваем отсюда sams-1.0.5(2).tar.bz2 
./configure --with-httpd-locations=/var/www
  make
  make install
После этого рекомендуется заменить init скрипт sams, на скрипт специально измененный для Debian: 
   cp ./etc/samsd.debian /etc/init.d/samsd
   update-rc.d samsd defaults

4. Альтернативный способ - установка из пакетов
Скачать установщик SAMS’а с и весь необходимый набор, для этого делаем следующее (на момент написания статьи это были самые новые пакеты)
wget http://nixdev.net/release/sams/debian/lenny/sams_1.0.5_i386.deb
wget http://nixdev.net/release/sams/debian/lenny/sams-web_1.0.5_all.deb
wget http://nixdev.net/release/sams/debian/lenny/sams-doc_1.0.5_all.deb

4.1. Скачав deb-пакеты, начнем установку.
1) dpkg -i sams_1.0.5_i386.deb
2) dpkg -i sams_1.0.5_i386.deb (это не опечатка, необходимо запускать два раза). Во время второго запуска возможно выйдет информация о правке init-скрипта.
3) dpkg -i sams-web_1.0.5_all.deb
4) dpkg -i sams-doc_1.0.5_all.deb

4.2. Правка init- скрипта:
   nano /etc/init.d/sams
   изменяем в открывшемся файле значение false на true в строке “SAMS_ENABLE=false”

5Создание БД:
Для работы SAMS необходимо создать пользователя sams в БД MySQL:
mysql -u root -p
  GRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY "yourpassword";
  GRANT ALL ON squidlog.* TO sams@localhost IDENTIFIED BY "yourpassword";
Где:

yourpassword - пароль

После этого имя пользователя и пароль надо сохранить в файле конфигурации SAMS /etc/sams.conf:

MYSQLUSER=sams - Имя пользователя MySQL, от имени которого будет работать SAMS
MYSQLPASSWORD=yourpasswd - Пароль пользователя в MySQL

Создаем базы SAMS в MySQL
Для этого перемещаемся в каталог ./mysql  (в случае установки из пакетв - в каталог /usr/share/sams/mysql)и там даем команды:
cd ./mysql
  mysql -u root -p < sams_db.sql
  mysql -u root -p < squid_db.sql

6) Правим конфик sams
Имя пользователя и пароль необходимо прописать в конфигурационном файле самса (/etc/sams.conf)
MYSQLUSER=sams – имя пользователя MySQL, от имени которого будет работать SAMS
MYSQLPASSWORD=yourpasswd – пароль пользователя в MySQL

7. Перезагружаем сервер
или sudo /etc/init.d/samsd restart

8. Настройка SAMS:

  • Теперь web-интерфейс SAMS доступен по адресу  http://localhost/sams/
  • Для доступа к web-интерфейсу используйте следующие логин/пароль: admin/qwerty
  • Т.к. пароль администратора и аудитора установлен по умолчанию - рекомендуется сразу сменить его через web-интерфейс
  • После этого необходимо настроить параметры работы samsdaemon: тип авторизации пользователей, частота парсинга логов и реконфигурации squid, и прочее
  • После этого можно создавать пользователей и запускать samsd
9. По завершению настроек не забываем запустить реконфигурацию SQUID’а.

10. Примечание.
В моем случае возникла интересная ситуация, пока что до конца не разобрался, т.к. не освоил PHP. Суть в следующем: после установки samsa web-интерфейс доступен по соответствующему адресу, но не отображаются 2 раздела - "Настройки WEB интерфейса" и "Администрирование SAMS".
Анализ /var/log/apache2/error.log показал на Fatal Error при выполнении функции GetHostName() в файлах /usr/local/share/sams/src/configtray.php и /usr/local/share/sams/src/webconfigtray.php.
Заремарил функции в этих файлах - все заработало. На данный момент более грамотного решения не искал