12 декабря 2011 г.

Русские буквы в консоли Ubuntu 11.10 Server

Если установит Ubuntu 11.10 server, то из коробки она вместо русских букв в консоле показывает квадратики. Лечится это так:
В консоле пишем:
sudo dpkg-reconfigure console-setup

В появившемся мастере выбираем:
UTF-8
пятый пункт
16
VGA
на вопрос консоли вводим:
/dev/tty[1-6]

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

sudo nano /etc/rc.local

перед exit0 дописываем:

setupcon

Сохраняемся и перезагружаем сервер. Все должно работать.

3 декабря 2011 г.

SAMBA в Ubuntu 11.10 Server (Общие папки)

Столкнулся с задачей организовать файл сервер.

Клиенты Windows 7 Pro должны заходить под логином и паролем и иметь свою домашнюю папку на сервере, к которой имею доступ я и сам клиент и общую шару.

Как оказалось это дело пяти минут, когда разобрался. Итак, приступим.

Первым делом устанавливаем пакеты и если понадобятся. то и все зависимости.

sudo apt-get install samba samba-common libcups2

Теперь останавливаем SAMBA сервер если он запущен.

sudo /etc/init.d/smbd stop

Создадим общую папку на сервере:

mkdir -p /home/shares/forall
chown -R root:users /home/shares/forall/
chmod -R ug+rwx,o+rx-w /home/shares/forall/


Осталось самое важное - настройка конфига smb.conf

sudo nano /etc/samba/smb.conf

В разделе [GLOBAL] указываем:

# имя рабочей группы
workgroup = WORKGROUP
# адрес сервера имен Windows, чтобы сервер отображался в сетевом окружении
wins support = yes
wins server = 192.168.0.1
#нужно чтобы клиенты на Linux могли подключится к SAMBA
security = user


Найдите далее секцию [homes] и закомментируйте все строчки в ней символом # вначале строки

В конце файла пишем:
[forall]
comment = All Users Shares
path = /home/shares/forall
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
writable = yes

[homes]
comment = Home Directories
browseable = no
valid users = %S
writable = yes
create mask = 0700
directory mask = 0700


Все. Нажимаем Ctrl+O чтобы сохранить изменения. Enter чтобы подтвердить и Ctrl+X чтобы выйти.

Теперь необходимо еще проверить входит ли ваш пользователь в группу users и добавить остальных пользователей.

Чтобы проверить в какие группы входит наш пользователь вводим:

sudo id my_login

где my_login ваш логин в системе.
Если в списке групп нет группы users, то добавим себя в нее

sudo usermod -a -G ftp my_login

Теперь добавим еще одного пользователя ivan в систему

sudo useradd ivan -m -G users

и зададим ему пароль посложнее. Если вы не хотите чтобы этот пользователь входил на сервер, то не сообщаем ему пароль или пропустите этот шаг:

sudo passwd ivan

Осталось создать пароли пользователей для Samba:

sudo smbpasswd -a my_login

и для созданного пользователя:

sudo smbpasswd -a ivan

Пароль должен отличаться от пароль пользователя в системе.
Ну и перезапускаем Samba сервер:

sudo /etc/init.d/smbd restart

На этом все закончилось.
В windows переходим по адресу:
\\ip_сервера\ или сразу в общую папку \\ip_сервера\forall
В качестве логина и пароля указываем либо своего, либо созданного пользователя.

26 мая 2011 г.

Skype не работает или Как починить скайп

Сегодня 26 мая 2011 года по всему миру перестал работать скайп. Вроде еще как-то работает на Android и MacOS. Пользователи Windows и Linux не могут запустить Skype. Сайт http://www.skype.com работает нестабильно. Вот что там написано в те редкие разы когда все же удается пробиться к ним:

Skype engineers are working on the problem, the company said. But the fix may take “a few hours,” and advanced features like video calling might not be available until after that.



So what went wrong? The company says the problem has to do with its “supernodes” — a crucial part of its peer-to-peer networking system. Almost any computer in the network can be a Skype supernode, and these act like directories for the service, telling Skype things like who is online. Skype says a problem with some versions of Skype took a bunch of supernodes down, meaning that people weren’t able to log on as normal.


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

Пока найдено следующее решение.

под W7 заставить работать можно удалив файл
shared.xml из папки C:\Users\%username%\AppData\Roaming\Skype

Или, если XP, то удалив его тут: C:\Documents and Settings\%username%\Application Data\Skype

Для Linux
rm ~/.Skype/shared.xml

Для MacOS
rm ~/Library/Application\ Support/Skype/shared.xml

10 мая 2011 г.

Раздаем интернет в офисе или 3proxy Часть третья "SOCKS и FTP"

Если вы читали мои предыдущие посты, то это значит что у Вас уже есть рабочий HTTP прокси сервер и сейчас мы к нему добавим SOCKS и FTP чтобы наши пользователи могли ходить в интернет через шифрованный канал и имели доступ по протоколу передачи файлов (FTP - File Transfer Protocol).

Делается это очень просто. Добавьте в файл 3proxy.cfg строки

socks -p1080
ftppr -p2121

Таким образом мы запустили SOKCKS на порту 1080, а фтп на порту 2121

П.С. Если кому что не понятно - спрашивайте в комментах, постараюсь помочь.

8 мая 2011 г.

PHP автоматическая конвертация в UTF-8 с автоопределением кодировки

Часто спрашивают как избавится от крякозябель, иероглифов, ромбиков и знаков вопросов вместо текста.
Меня всегда выручала эта функция на PHP которая переводит в UTF-8 кодировку любой текст, причем исходная кодировка определяется автоматически. Пользуйтесь. Может кому тоже будет полезна.


mb_convert_encoding ($str, "UTF-8", mb_detect_encoding($str));

6 апреля 2011 г.

Раздаем интернет в офисе или 3proxy Часть первая "Инсталляция"

Задача:
В офис заходит витая пара с 2мбит'ным инетом. Необходимо его раздать на 10 машин. Так же хочется иметь возможность считать трафик по пользователям, устанавливать им лимиты, ограничивать скорость, трафик, запрещать некоторые сайты. Все компьютеры объединены в локальную сеть. Есть сервер с двумя сетевыми картами.
Все это можно сделать разрешив использовать подключение к интернету для всех (расшарить подключение по локальной сети которое идет к провайдеру). Делается это следующим образом в WinXP выбираем Пуск-Сетевое окружение. В правой части окна нажимаем Отобразить сетевые подключения. Выбираем подключение, которое идет к провайдеру и нажимаем на нем правую клавишу мыши - Свойства. Переходим на закладку Дополнительно и отмечаем галочкой пункт Разрешить другим пользователям сети использовать подключение к Интернету данного компьютера. Все.
Из минусов - интернет мы конечно всем дали, но вот о никаком контроле и ограничении пользователей речи быть не может.
Чтобы получить все плюшки, необходим прокси-сервер. Их существует великое множество (Squid, UserGate, CCProxy, 3Proxy). Все без проблем находятся поисковиком. Рассмотрим их немножко поподробнее:
Squid - проект с открытыми исходниками, и бесплатный. Имеет версии под Windows и Linux. Позволяет очень гибко контролировать и управлять каналом в интернет. Из минусов - сложен в настройке,  как и большинство программ портированных с Linux. Все делается через конфигурационные файлы и об интерфейсе вам придется тут забыть. Все ручками.

UserGate - уже платное решение, но с удобным интерфейсом и не менее богатыми настройками чем вышеописанный прокси. Я не стал его даже устанавливать по той лишь причине что планируется перевод сервера на Linux и нет желания разбираться потом в другой программе и платить за него, зная что потом снесу тоже не хочется.

CCProxy - идеальное решение, если вы не имеете опыта администрирования и настройки прокси. Все удобно и понятно, но возможностей мало, бесплатен только если им пользуется менее 10 клиентов и работает только под Windows

3proxy - это то что нужно!!! Маленький (несколько килобайт), кросплатформенный, позволяет гибко управлять каналом, бесплатный, открыты исходники. Из минусов нет графического интерфейса для настройки, но это компенсируется тем, что все настройки делаются в одном файле, причем очень логично и не запутанно как в том же SQUID.  Автор из России и с удовольствием помогает в официальном форуме программы.
Выбор очевиден.

Под сервер взят старенький комп в Windows XP. Решение не самое лучшее, но пока пойдет.
Итак:
  1. Идем на сайт http://www.3proxy.ru и скачиваем последнюю версию. Так же советую прочитать How-To(На русском) на сайте программы и многие вопросы отпадут сами собой.
  2. Распаковываем скачанный архив в каталог например c:\3proxy
  3. Создаем в каталоге файл c:\3proxy\3proxy.cfg. Это файл конфигурации прокси. Теперь настроить наш прокси-сервер. 
Открываем файл в блокноте и пишем следующие строчки:
monitor "с:\3proxy\bin\3proxy.cfg"
Это чтобы в будущем изменения в настройках применялись сразу после сохранения файла конфигурации

internal 192.168.0.1
external 82.209.xx.xx

где после internal идет ip сервера в локальной сети, а после external ip выданный провайдером.
 Теперь укажем DNS сервера. Я использую сервера, которые бесплатно предоставляет Google. Вы можете использовать их же или указать сервера своего провайдера, тогда придется заменить 8.8.8.8 на первичный DNS сервер провайдера, а 8.8.4.4 на вторичный соответственно
nserver 8.8.8.8
nserver 8.8.4.4



укажем размер DNS кэша
nscache 1152000
и разрешим кэширование DNS
dnspr

Чтобы иметь статистику по пользователям скажем серверу чтобы вел логи по дням и хранил только последние 30 шт. Чтобы было проще потом их анализировать укажем формат записи логов такой же как использует прокси-сервер SQUID. Это даст нам возможность использовать любой лог-анализатор, который работает с squid
logformat "L%C - %U [%d/%o/%Y:%H:%M:%S %z] ""%T"" %E %I %O %N/%R:%r"
log С:\3proxy\logs\3proxy.log D
rotate 30


Теперь об авторизации на прокси. 3Proxy позволяет авторизовать клиентов по ip, логину/паролю или через Домен Windows (только для сервера на Windows). Мы будем использовать первый вариант.
allow * 192.168.0.1
allow * 192.168.0.10
allow * 192.168.0.11
allow * 192.168.0.12

deny *

Вместо ip указываем ip своих машин которым нужен интернет и последней строчкой запрещаем интерет всем, кто не прошел авторизацию.

Если вы хотите ограничить объем потребляемого трафика и иметь on-line статистику по количеству потребляемого трафика клиентами, то добавим следующие строчки:
counter "С:\3proxy\3proxy.3cf" D "С:\3proxy\traf\traf"
здесь мы создаем счетчики
countin "1/Server" M 50000 * 192.168.0.1 * * *
countin "2/User" M 900000 * 192.168.0.10 * * *
countin "3/User2" M 900000 * 192.168.0.11 * * *
countin "4/User3" M 900000 * 192.168.0.12 * * *

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

Указываем что мы используем авторизацию по ip

auth iponly
и запускаем прокси на порту 3128
proxy -p3128 -n -t
Почти все. Еще немного и будем проверять, но прежде еще укажем настройки админки
admin -p8080
Запускаем админку на порту 8080. Я сознательно пропускаю авторизацию для админки, сейчас в нее может попасть любой. После того как настройка будет закончена и все заработает позаботьтесь об авторизации сами или удалите вообще эти строки.
Сохраняемся и закрываем файл.
       4. Открываем командную строку. Пуск-Выполнить пишем cmd и Ок.
       5. С трепетом в душе запускаем наш прокси командой.
c:\3proxy\3proxy.exe c:\3proxy\3proxy.cfg
Если вы сделали что-то неправильно в конфигурационном файле, то программа вам сообщит ошибку и номер строки.
       6. Запускаем браузер и в его настройках устанавливаем галочку использовать прокси-сервер и указываем ip и порт. По моим конфигам это 192.168.0.1 и 3128 соответственно. Если вы что-то меняли, то подставьте свое.
       7. Проверяем работу сервера пробуя перейти на любой сайт. сли сайт открылся все ок.
       8. Идем в папку c:\3proxy\log  и смотрим лог файл. Там должны появится записи о посещении нами веб сайта.
Перейдя по адресу http://192.168.0.1:8080 мы попадаем в админку, в которой можно посмотреть счетчики трафика, содержимое конфига и запущенные службы.

       9. Если все работает устанавливаем 3proxy как сервис Windows и забываем про него. Для этого в командной строке пишем:
C:\3proxy\3proxy.exe --install
       10. Перезагружаем компьютер и идем настраивать браузеры клиентов.

В следующих частях я научу вас ограничивать скорость пользователям, мы запустим SOKS5 сервер, научимся пользоваться портмапингом, почтой за проксей, поднием ftp прокси и установим анализатор логов.

2 апреля 2011 г.

Как быстро установить ОС+Софт на одинаковые системники

Любой сис.админ (а именно этим я сейчас и зарабатываю) часто сталкивается с такой проблемой.
Начальство все-таки разорилось и закупило несколько новых системников для своего офиса. Вам, по должностным обязанностям необходимо установить и настроить на них весь софт и установить их на рабочие места.
Устанавливать ОС, софт, производить настройку системы повторяя одно и тоже от компьютера к компьютеру бесит неимоверно. Вроде особо не напрягаешься, но в тоже время и отойти от них на долго не можешь. А если надо обновить еще несколько программы через интернет (привет Касперский с его огромными базами и Windows Update). У мня например свежая Windows 7 захотела еще обновлений на 600 Мб. И так можно продолжать еще долго...
 Есть несколько способов установить ОС и софт почти в автоматическом режиме:

  1. Использовать установку по сети в сочетании с автоматической установкой программ
  2. Создать образ  диска одного компьютера сразу после всех установок и настроек и клонировать его.
Первый вариант я отмел по двум причинам:
  • Мне пришлось все равно обновлять систему и тащить лишнее 600Мб для каждой машины, а этого делать не хотелось.
  • Для автоматической установки программ потребовалось бы написать скрипт, а это опять время, сэкономить которое и есть сия цель
  •  Этот вариант требует DHCP сервер, который почему-то не захотел работать в моей сети (возможно конфликт с уже существующим и реально работающим DHCP сервером).
Поэтому был выбран второй вариант, с созданием образа свеженькой системы и клонированием его на остальные машины (благо конфигурация у всех одинаковая).
Итак запустив установку Windows на первый компьютер с LiveCD я отправился искать бесплатную программу для клонирования жесткого диска. После просмотра программ из первой десятки выдачи гугла я остановился на CloneZilla.
CloneZilla - это созданный на основе ядра  Linux загрузочный диск, который умеет создавать образ выбранного диска или просто клонировать винчестер. Плюсом является то, что возможно писать образ на USB винт или флешку, по протоколу SAMBA (Общие папки windows), NFS (Общие папки Linux).
C официального сайта можно скачать как версию для LiveCD так и программу, которая создаст LiveUSB. Мне лично о душе второй вариант.

Поскольку в моей сети уже работал файловый сервер на 2Тб, то я заливал образ именно на него. Настройки вполне логичные: указать ip машины и файлового сервера, удаленную папку для образа ну и всякие маски, шлюзы.

Сделав клон свеженькой установленной и настроенной операционной системы (даже диски разбивать вручную не надо, если клонировать полностью диск) я приступил к установке Windows на остальные машины. Подключил их все к свитчу, загрузил по очереди с флешки и показал откуда брать образ для раскатки на диске. Примерно 10-15 минут ожидания и у меня уже готовый парк машин для дальнейшей установки по рабочим местам.

П.С. Кто-то скажет что проще было-бы установить из сети, но во-первых у меня это не получилось из-за проблем с DHCP и второе, когда понадобится быстро переустановить ОС на одном из этих ПК, то это не займет у вам больше 10-15 минут. Я оценил это, когда комп передавался от одного сотрудника другому и надо было все почистить от старого.