Home

Emmet для sublime. Добавление Package Control.

Каждый Веб-разработчик всегда в поиске упрощения своего рабочего места. Эта статья посвящена начинающим верстальщикам которые часто работают с HTML и CSS, при этом пользуются Sublime Text 2 или 3.
Плагин «Emmet» облегчит работу с самым популярным текстовым редактором. Помимо Соблайма, Эммет может работать и с другими редакторами, такими как — Notepad++, Coda, Eclipse, TextMate, и Adobe DreamWeaver.
Процесс установки Emmet для Sublime
Когда я устанавливал плагин Эммет на свой редактор, то у меня возникла проблема, для установки мне нужна была вкладка «Package Control» которая должна была находится в «Preferences», ее там небыло, если и у вас нет, то читайте ниже.
Как добавить Package Control в Sublime Text 3

Очень просто и быстро. В редакторе жмите Ctrl+ или View -> Show console а если у вас русифицированный Соблайм то Вид -> Показать/скрыть консоль. После этого откроется панель ввода, вставьте в нижнюю строку код.

SUBLIME TEXT 2

import urllib2,os,hashlib; h = 'df21e130d211cfc94d9b0905775a7c0f' + '1e3d39e33b79698005270310898eea76'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); open( os.path.join( ipp, pf), 'wb' ).write(by) if dh == h else None; print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation')

SUBLIME TEXT 3

import urllib.request,os,hashlib; h = 'df21e130d211cfc94d9b0905775a7c0f' + '1e3d39e33b79698005270310898eea76'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

Установка package control в Sublime

Нажмите Enter и перезапустите ваш редактор.

Установка плагина Emmet для Sublime Text

Теперь у нас есть Пакет управления в Саблайме и можно переходить к установки Эммета. Тут тоже делов на минуту. Как вы уже наверное поняли, нужно нажать на «Preferences» (Глобальные параметры) или Ctrl + Shift + P и в самом низу кликнуть на Package Control, у вас всплывет окно, нажимайте на «Install Package» (Установить Пакет) на шестой строке.

После этого всплывет еще одно окно где нужно ввести слово «Emmet», появится много предложений и словосочетаний, нажать нужно на самую первую надпись.

Установка emmet

Вот и все, когда откроется вкладка «Package Control Messages» с содержимым о том что плагин установлен, можно все закрыть, перезапустить и пользоваться!

Как работает плагин Emmet

Приведу пару примеров «Emmet горячие клавиши». Например при написании ul без <> и нажатия Tab будет автоматически развернут полный список.

Горячие клавиши ul и ui

Таким же методом можно написать div.class для назначения класса.

Горячие клавиши div.class

Для первоначального создания страницы достаточно добавить ! и нажать Tab.

Горячие клавиши doctype

 

Интересные варианты использования SSH.

1. Запускай команды быстро

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

$ ssh user@host df -h

А так — перезагрузить ее:

$ ssh user@host sudo reboot

2. Составляй списки команд и запускай их разом

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

$ ssh user@host "`cat file.txt`"

3. Редактируй удаленные файлы локальным редактором

Чтобы отредактировать файл на удаленной машине, не требуется заходить на нее и использовать консольный редактор. На самом деле файл можно открыть в твоем любимом текстовом редакторе на локальной машине (gvim зaменяем на свой редактор):

$ gvim scp://user@host//путь/к/файлу

4. Копируй содержимое удаленного файла в буфер обмена

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

$ ssh user@host cat /путь/к/файлу | xclip

А так можно скопировать вывод команды:

$ ssh user@host uname -a | xclip

5. Сравнивай удаленный и локальный файл без копирования

Похожий прием можно использовать для сравнения двух файлов:

$ ssh user@host cat /путь/к/удаленному/файлу | diff /путь/к/локальному/файлу -

6. Работай с удаленными файлaми с помощью локального файлового менеджера

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

$ sudo apt-get install sshfs

Создать каталог для подключения «сетевого диcка»:

$ mkdir remote_files

И подключить его:

$ sshfs user@host:/home/user ~/remote_files/

Теперь все файлы удаленного каталога /home/user будут видны в каталoге ~/remote_files/ и с ними можно работать, как с обычными.

7. Используй tmux

Сложные действия на удаленнoй машине редко ограничиваются одной консолью. Обычно мы открываем сразу несколько SSH-соeдинений, в которых запускаем различные команды, копируем текст из одной в другую, одновременно следим за выполнением нескольких операций. Однако держать открытыми несколько сессий совсем не обязательно, хватит и одной, в которой запущен tmux.

Утилита tmux — еще одно детище команды OpenBSD. Она позволяет запустить внутри одной SSH-сессии неограниченное количество кoнсолей, с которыми можно работать одновременно, в том числе сразу с несколькими на одном экране. Но самое главное — tmux поддерживает функцию detach/attach, позволяющую отключиться от текущей сессии tmux, закрыть SSH-соединение, подключиться к машине уже с другого компа и возобновить сессию tmux со всеми открытыми консолями и их содержимым.

Tmux в режиме разделения экрана
Tmux в режиме разделения экрана

Tmux доступна в репозиториях почти всех популярных дистрибутивов. Устанавливать и запускать ее слeдует на удаленной машине, но перед тем как начать использовать, придется прочитать документацию (или шпаргалку).

8. Копируй ключи быстро

Хоть и копирование публичного ключа на удаленный сервер — задача проcтая, но она требует выполнения нескольких действий вручную. Если тебя это напрягает, скопировать ключ можно в автоматическом режиме:

$ ssh-copy-id user@host

При этом не обязательно копировать основной ключ, с помощью флага -i можно указать любой другой:

$ ssh-copy-id -i ~/my_key.pub user@host
Копируем ключ
Копируем ключ

9. Создай постоянное соединение с машиной

Если в течение дня ты часто подключаешься к одной машине, в том числе на несколько минут или секунд (чтобы просто запустить одну команду, например), есть смысл создать с ней постоянное соединение. Твой комп будет держать соединение открытым и использовать его для каждого подключения к машине. Это намного быстрее и экономичнее с точки зрения трафика и нагрузки на процессор.

Добавь следующие строки в ~/.ssh/config:

Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster no

А затем создай соединение:

$ ssh -MNf user@host

10. Используй специальную версию SSH для неустойчивых соединeний

SSH не рассчитан на работу в условиях неустойчивого интернет-соединения, поэтому не умеет адекватно реагировать на потерю пакетов. Фактически, если соединение оборвется, SSH просто повиснет и будет находиться в таком состоянии, пока не закончится тайм-аут. До тех пор пока ты используешь надежное оптоволоконное соединение, это не проблема, но как только попадаешь в условия жесткой российской глубинки, где даже 3G может быть экзотикой, SSH превратится в невыносимо тупой инструмент.

Решить проблему можно с помощью autossh. Это обертка над SSH, которая умеет проверять жизнеспособность канала. Autossh создает дополнительное SSH-соединение с сервером и непрерывно шлет по нему heartbeat-пакеты. Если пакет не доходит до адpесата, autossh считает канал мертвым и перезапускает SSH-соединение.

Пользоваться очень просто:

$ sudo apt-get install autossh
$ autossh -M5000 user@host

По умолчанию тайм-аут между посылкой heartbeat-пакетов составляет десять минут, что слишком много. Для уменьшения тайм-аута пропиши его в переменную AUTOSSH_POLL перед запуском autossh (значение в секундах):

$ export AUTOSSH_POLL=10

Есть вариант еще лучше: mosh. Это специально оптимизированная для неустойчивых и низкоскоростных соединений версия SSH, работающая по протокoлу UDP. Mosh позволяет получить быстрое и отзывчивое соединение даже на очень медленнoм канале и из коробки умеет поднимать упавшее соединение и даже пeреключать клиента с одного IP на другой (при переключении с Wi-Fi-соединения на мобильное, нaпример) без перезапуска сессии.

У mosh всего один недостаток: он требует установки не только на локальную машину, но и на удаленную. Зато после этого ничего настраивать не нужно, достаточно использовать команду mosh вместо ssh. Более того, mosh уже встроен в SSH-клиенты JuiceSSH для Android и Blink для iOS.

11. Открывай порт SSH, только когда он нужен

Открытый SSH-порт твоего сервера рано или поздно станет целью многочислeнных ботов, которые будут бесконечно к нему подключаться и пытаться подобрать пароль, даже если ты отключил аутентификацию по паролю. Бороться с ботами можно двумя способами: либо установить fail2ban и автоматически отшибать особо надоедливых, либо открывать порт только тогда, когда это необходимо.

Если ты подключаешься к серверу нечасто, второй вариант практически идеален. Идея в том, что на сервер устанавливается специальный демон, который слушает указaнные порты и в случае соединения с этими портами в определенном порядке откроет 22-й порт. Другой порядок соединения будет закрывать порт.

Техника называется port knoking и реализуется с помощью демона knockd. Устанoви демон на сервер:

$ sudo apt-get install knockd

И настрой его, добавив в файл /etc/knockd.conf следующие строки:

[options]
    logfile = /var/log/knockd.log
[openSSH]
    sequence = 3000,4000,5000
    seq_timeout = 5
    command = /sbin/iptables -A INPUT -i eth0 -s %IP% -p tcp --dport 22 -j ACCEPT
    tcpflags = syn
[closeSSH]
    sequence = 5000,4000,3000
    seq_timeout = 5
    command = /sbin/iptables -D INPUT -i eth0 -s %IP% -p tcp --dport 22 -j ACCEPT
    tcpflags = syn

Перезапусти демон:

$ sudo /etc/init.d/knockd restart

Теперь используй следующую команду для подключения к серверу:

$ knock <host> 3000 4000 5000 && ssh user@host && knock <host> 5000 4000 3000

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

Стучимся в порты
Стучимся в порты

12. Защитись от брутфорса

Установка fail2ban — второй метод защиты от ботов, подбирающих пароли. Это демон, который непрерывно мониторит логи различных сетевых служб (Apache, vsftpd, SSH…) на предмет слишком частых попыток аутентификации и блокирует IP-адреса тех, кто делает это наиболее активно (три неудачные попытки подряд — в бан на десять минут).

Красота fail2ban в том, что он не требует настройки и начинает работать сразу после установки. Все, что надо сделать, — это инсталлировaть пакет:

$ sudo apt-get install fail2ban

13. Измерь скорость соединения

С помощью SSH легко измерить скорость соединения с машиной. Для этого можно использовать утилиту pv (pipe viewer). Она предназначена для измерения скорости передачи данных через пайпы (|). Объединив ее с SSH, можно получить достаточно точный бенчмарк скорости соединения:

$ yes | pv | ssh user@host "cat > /dev/null"
Измеряем скорость соединения
Измеряем скорость соединения

14. Используй SSH как SOCKS-прокси

SSH очень легко превратить в SOCKS-прокси, который будет пересылать твои данные между локальной машиной и SSH-сервером через зашифрованный канал. Все, что для этого нужно сделать, — запустить SSH-клиент с флагом -D, после которого указать номер SOCKS-порта (флаг -C включает принудительнoе сжатие трафика):

$ ssh -D 9999 -C user@host

15. Обходи файрволы

В дополнение к SOCKS-прокси в SSH есть функция прозрачного «проброса портов». Работает она так: на локальной машине открывается порт. Трафик, переданный на этот порт, прозрачно проксируется через удаленную машину и направляется на указанный хост:порт. Для примера: дoпустим, твой начальник заблокировал доступ к xakep.ru на уровне корпоративного файpвола. Но ты можешь обойти это ограничение, используя удаленный SSH-сервeр:

$ ssh -L8080:xakep.ru:80 user@host

Теперь все подключения к localhost:8080 будут перенаправляться на xakep.ru:80.

16. Соxрани настройки подключения к хостам

Если ты работаешь с большим количеством хостов под именем разных юзеров с использованием разных ключей, то ты существенно упростишь свою жизнь, если создашь для этих хостов шорткаты. Например, следующие строки ~/.ssh/config описывают два хоста:

  • example.com, SSH-сервер на котором «висит» на порту 2222, а в качестве ключа используется ~/my_key.pem;
  • 192.168.33.10, с SSH-сервером на стандартном порту, юзeром root и принудительным отключением аутентификации с помощью ключа.
    Host server1
      HostName example.com
      Port 2222
      User user
      IdentityFile ~/my_key.pem
    
    Host server2
      HostName 192.168.33.10
      User root
      PubkeyAuthentication no

Теперь, чтобы подключиться к example.com, нет нужды набирать длинную команду

$ ssh -i ~/my_key.pem user@example.com -p 2222

Можно использовать шорткат:

$ ssh server1

17. Подключайся к удаленной машине через другую машину

Допустим, у тебя есть доступ к host1, но нет доступа к host2 (он за файрволом, например), но доступ к host2 есть у host1. Тогда подключиться к host2 с твоей машины можно так:

$ ssh -t user@host1 ssh user@host2

18. Копируй файлы с удaленной машины на другую машину через свою

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

$ ssh root@host1 "cd /кoпируемый/каталог/ && tar -cf - ." | ssh root@host2 "cd /куда/копировать/ && tar -xf -"

19. Запускай графический софт

Linux/BSD используют клиент-серверную оконную систему X Window System, изначально разработанную для запуска графических приложений на мейнфрейме с выводом картинки на экран тонкого клиента. Поэтому она из коробки позволяет запускать приложения на удаленной машине так, чтобы их вывод был перенаправлен на локальную. А SSH умеет форвардить протокол X, так что его можно использовать для запуска не только консольных, но графических приложений:

$ ssh -X user@host firefox

20. Слушай музыку с удаленной машины

Немного надуманный, но в целом довольно интересный трюк:

$ ssh user@host "cat /home/user/music/*.mp3" | mpg123 -

Своего рода интернет-радио для одного.

Пара консольных команд

Посмотреть свой внешний ip из консоли:

# curl ifconfig.co

Посмотреть прогноз погоды на 3 дня:

# curl  wttr.in/Siant-Petersburg
Weather for City: siant-petersburg

\   /     Clear
.-.      10 °C
― (   ) ―   ↓ 0 km/h
`-’      10 km
/   \     0.0 mm
Собственно вывод погоды более детальный и красивый.

Так же про фазу луны можно узнать:

# curl -4 wttr.in/Moon

 

——.
. .   `—.
.       . `-.
@@@@@      `-.
@@@@@@@   .    \
@@@@@@@       . \.
@@@@@@@   O      \
@@@@@@@@@@      \
@@@@@@@@@@@@|
@@@@@@@@@@  @@  \  New Moon +
@@@@@@@ @@@    |  7 11:55:00
.  @@   . @@@@@@@  |  First Quarter —
@@@   @@@@@@  |  0 14:50:58
. @@@@   @@@  o  /
@@   .                    |
O    .     o   .            /
.    .                     /
.      .   .-. /’
`-‘             /
o    O   .   .-‘
.    .-‘
.      .—‘
——‘

 

Оригинал красивее и цветной.

Zimbra. Установка сертификата Comodo SSl.

Используем командную строку

  • 1. Получаем от Comodo файлы в формате crt, либо в zip архиве. Или качаем их по следующей ссылке —https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/620/1/
  • 2. Помещаем их на Zimbra сервер. Должны быть вот такие файлы:
    • AddTrustExternalCARoot.crt
    • COMODORSAAddTrustCA.crt
    • COMODORSADomainValidationSecureServerCA.crt
    • my_domain_com.crt files
  • 3. Объединяем CA сертификаты в один файл.
 cat AddTrustExternalCARoot.crt COMODORSAAddTrustCA.crt COMODORSADomainValidationSecureServerCA.crt > /tmp/commercial_ca.crt
  • 4. Копируем SSL сертификат в /tmp/commercial.crt.
 cp my_domain_com.crt /tmp/commercial.crt
  • 5. Проверяем полученные сертификаты на соответствие:
/opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/commercial.key /tmp/commercial.crt /tmp/commercial_ca.crt 
** Verifying /tmp/commercial.crt against /opt/zimbra/ssl/zimbra/commercial/commercial.key
Certificate (/tmp/commercial.crt) and private key (/opt/zimbra/ssl/zimbra/commercial/commercial.key) match.
Valid Certificate: /tmp/commercial.crt: OK
  • 6. Прописываем сертификат в систему.
/opt/zimbra/bin/zmcertmgr deploycrt comm /tmp/commercial.crt /tmp/commercial_ca.crt 
** Verifying /tmp/commercial.crt against /opt/zimbra/ssl/zimbra/commercial/commercial.key
Certificate (/tmp/commercial.crt) and private key (/opt/zimbra/ssl/zimbra/commercial/commercial.key) match.
Valid Certificate: /tmp/commercial.crt: OK
** Copying /tmp/commercial.crt to /opt/zimbra/ssl/zimbra/commercial/commercial.crt
** Appending ca chain /tmp/commercial_ca.crt to /opt/zimbra/ssl/zimbra/commercial/commercial.crt
** Importing certificate /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt to CACERTS as zcs-user-commercial_ca...done.
** NOTE: mailboxd must be restarted in order to use the imported certificate.
** Saving server config key zimbraSSLCertificate...done.
** Saving server config key zimbraSSLPrivateKey...done.
** Installing mta certificate and key...done.
** Installing slapd certificate and key...done.
** Installing proxy certificate and key...done.
** Creating pkcs12 file /opt/zimbra/ssl/zimbra/jetty.pkcs12...done.
** Creating keystore file /opt/zimbra/mailboxd/etc/keystore...done.
** Installing CA to /opt/zimbra/conf/ca...done.
  • 7. Перезапускаем сервис.
zmcontrol restart

Использование веб-интерфейса (Admin Console)

Получаем от Comodo следующие файлы:

    • AddTrustExternalCARoot.crt
    • COMODORSAAddTrustCA.crt
    • COMODORSADomainValidationSecureServerCA.crt
    • my_domain_com.crt files

Переходим по пунктам Home > Configure > Certificates и нажимаем на Install Certificate

Zimbra-ssl-adminconsole-001.png

Выбираем сервер для установки SSL сертификата:

Zimbra-ssl-adminconsole-002.png

Выбираем Install the commercial signed certificate

Zimbra-ssl-adminconsole-007.png

Нажимаем кнопку Next

Zimbra-ssl-adminconsole-008.png

Добавляем файлы по одному, как показано на картинке:

Zimbra-ssl-adminconsole-009.png

Выбираем кнопку Install и SSL сертификат будет установлен

Zimbra-ssl-adminconsole-010.png

Перезапускаем Zimbra сервисы от пользователя zimbra в командной строке:

zmcontrol restart

Теперь возвращаемся в веб-интерфейс смотрим на установленный сертификат

Zimbra-ssl-adminconsole-011.png

Установка chan_dongle

Модуль chan_dongle необходим для работы с модемами Huawei:

  • K3715
  • E169 / K3520
  • E155X
  • E175X
  • K3765

Описываемая в данной статье версия является форком основного проекта, но основной проект не развивается с 2013 года и поддерживает только Asterisk 11. Впрочем, есть еще один форк той версии, что используется в данной статье. В связи с этим гарантировать работу модуля невозможно. Со списком известных багов можно ознакомиться по этой ссылке, но не ожидайте, что автор их исправит, так как этот список не обновлялся с 2011 года. Даже сам автор предупреждает, что модуль работает как попало и может назвонить вам куда нибудь и тем самым сожрать все ваши деньги или натворить еще что-то. Так что пожалуйста, прежде чем читать дальше, еще раз подумайте, стоит ли связываться с этим модулем. На сегодняшний день это единственный модуль, способный заставить дружить недорогие GSM-модемы с Asterisk и, скорее всего, у Вас нет выбора.

This channel driver is in alpha stage.
I am not responsible if this channel driver will eat your money on your SIM card or do any unpredicted things.

Модемы должны быть разлочены, проверка PIN-кода на SIM-карте должна быть отключена. Также необходимо обязательно отключить на модемах функции CR-ROM и CARDREADER, оставив модем только в режиме модема. Для этого необходимо подключиться к модему консолью и дать следующую АТ-команду:

Также желательно отключить на модеме ожидание вызова:

Установите необходимые для сборки chan_dongle пакеты

Далее загружаем форк chan_dongle под Asterisk 13, разархивируем, собираем, устанавливаем. Не обращаем внимание на строчку «automake: error: no ‘Makefile.am’ found for any configure output» — это не является ошибкой

Копируем конфигурационный файл dongle.conf

Перезапускаем Asterisk, смотрим, загрузился ли модуль

Далее необходимо сделать так, чтобы модемам при подключении назначался верный владелец (чтобы Asterisk имел к ним доступ). Для этого создадим файл /etc/udev/rules.d/92-dongle.rules со следующим содержимым

Затем перезапустим службу udev

Теперь при подключении устройства типа ttyUSB, система автоматически назначит ему владельца asterisk и группу dialout.

Идентификация по IMSI или IMEI

В Файле /etc/asterisk/dongle.conf описываются все устройства. Синтаксис файла — общепринятый в Asterisk. Например, я опишу модем, в котором установлена SIM-карта оператора Киевстар:

Идентификация устройства производится по imsi и imei. Можно идентифицировать устройство только по одному из параметров. imsi — это идентификатор SIM-карты, imei — это идентификатор терминала. Если Вам важно идентифицировать устройства по SIM-картам, тогда Вы можете указать только imsi номера этих SIM-карт (написаны на картах), если же важно идентифицировать по терминалам, тогда указывайте imei терминала (написан на модеме).

Все входящие вызовы с такого устройства будут обработаны контекстом from-dongle из файла extensions.conf или extensions.ael.

Исходящие вызовы через данный модем необходимо направлять на Dongle/GSM1

Также в описании устройства можно указать exten=+79123456789. В таком случае все входящие вызовы будут иметь указанный exten. В некоторых случаях это возможно понадобится.

Если идентификация по IMEI / IMSI не работает

В последней версии chan_dongle обнаружение устройств выполняется либо по идентификатору терминала (модема) — IMEI, либо по идентификатору абонента (SIM-карты) — IMSI. Если же по каким-то причинам Вам необходимо идентифицировать устройство по порту USB-контроллера, то используйте расширенную конфигурацию udev для присвоения псевдонимов портам, а затем эти псевдонимы можно использовать для определения модемов в dongle.conf.

Для привязки модемов по номеру порта контроллера USB, нужно определить адреса этих портов. Извлеките все модемы из сервера, затем запустите

Вставляйте по одному модему и записывайте адреса портов контроллера, которые относятся к каждому из них. Затем в файл /etc/udev/rules.d/92-dongle.rules допишите псевдонимы для каждого из модемов, указав адреса контроллеров в качестве ID, подобно следующему:

Как видно из примера, необходимы только два порта, вместо четырех.

Теперь в файле /etc/asterisk/dongle.conf вместо идентификации по IMEI и/или IMSI укажите идентификацию по портам USB следующим образом:

Однако этот метод определения модемов не является рекомендуемым, т.к. при случайной смене USB-порта либо вообще ничего не будет работать, либо Ваши вызовы пойдут не туда куда планировалось. Настоятельно рекомендуется использовать идентификацию по IMEI / IMSI.

На этом установка полностью завершена.

Установка Zimbra Open Source Edition

Рассмотрим установку Zimbra Open Source Edition 8 на CentOS 6.5 x64


Установим CentOS 6.5 как описано в статье:

Сделаем начальные настройки над ОС
Установим текстовый редактор nano и файловый менеджер mc

yum install nano mc -y

Обновил систему(обязательное действие перед установкой Зимбры)

yum update -y

Настроим статический интерфейс отредактировав файл ifcfg-eth0

nano /etc/sysconfig/network-script/ifcfg-eth0

Добавим или отредактируем следующие строки

ONBOOT=yes # Инициализировать интерфейс при загрузке
BOOTPROTO=none # DHCP или NONE(статический)
IPADDR=10.1.1.5
NETMASK=255.255.255.0
GATEWAY=10.1.1.1
DNS1=10.1.1.2
DNS2=10.1.1.3
IPV6INIT=no # отключаем инициализацию IPv6

Потребуется обязательно отключить SELinux
Отредактируем файл /etc/selinux/config

nano /etc/selinux/config

Приведем его к следующему виду

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing — SELinux security policy is enforced.
#     permissive — SELinux prints warnings instead of enforcing.
#     disabled — No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted — Targeted processes are protected,
#     mls — Multi Level Security protection.
SELINUXTYPE=targeted

Если у вас уже установлен nc (он же netcat) удаляем его.

yum remove nc

И заместо него ставим

yum install nc which

Установим sysstat

yum install sysstat

Изменим настройки сети

nano /etc/sysconfig/network

Приведем к виду

NETWORKING=yes
NETWORKING_IPV6=no
IPV6INIT=no
HOSTNAME=zimbra.nikmc.ru #Свое имя сервера

Далее исправим hosts

nano /etc/hosts

Приведем его к виду

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
10.1.1.5 zimbra.nikmc.ru

Не забываем заменить zimbra.nikmc.ru на свое имя сервера и IP 10.1.1.5 на свой!

Далее отключаем поддержку IPv6
Допишем строку отключения в файл /etc/sysctl.conf

nano /etc/sysctl.conf

И добавим строку

########disable ipv6#####
net.ipv6.conf.all.disable_ipv6 = 1

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

sysctl -p

Отключим службы

chkconfig sendmail off
chkconfig ip6tables off
chkconfig iptables off
chkconfig postfix off

Перезагрузимся

reboot

Выполним команду

lsmod | grep ipv6

Должна вернуть 1 строку с похожими значениями, если отличается повторяем шаг отключения IPv6

ipv6                  322442  180

Если на предыдущем шаге все получилось, тогда идем дальше.
Проверим не занят ли у нас 25 порт

netstat -na

Проверим имя сервера

hostname

Должно вернуть

zimbra.nikmc.ru

На этом подготовка сервера для установки Zimbr’ы закончена!

Установка  Zimbra Collaboration 8 Open Source Edition
Скачаем дистрибутив c официального сайта.
Загрузим на сервер в директорию /tmp

Распакуем

cd /tmp
tar xvzf zcs-*.tgz

Произведем установку

cd zcs-*
./install.sh —platform-override

Установщик выполнит проверку требуемых пакетов и выдаст лицензионное соглашение.
Соглашаемся с лицензией

…………
Do you agree with the terms of the software license agreement? [N] y
…………

Далее выбираем пакеты Zimbr’ы, которые хотим установить

…………
Select the packages to install :
Install zimbra-ldap [Y]
Install zimbra-logger [Y]
Install zimbra-mta [Y]
Install zimbra-snmp [Y]
Install zimbra-store [Y]
Install zimbra-apache [Y]
Install zimbra-spell [Y]
Install zimbra-memcached [N]
Install zimbra-proxy [N]
Checking required space for zimbra-core
checking space for zimbra-store
…………

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

…………
Install anyway [N]Y
The system will be modified. Continue? [N]Y
…………

Меняем доменное имя на то, которое нам надо:

…………
Change domain name? [Yes]Y
Create domain: <nikmc.ru>
…………

Система предупредит что не находит MX записи на DNS сервере. Проигнорируем и продолжим.

После установки мы попадем в меню первоначальной настройки. Здесь настройки менять не обязательно, за исключением создания пароля администратора.
Для этого сделаем следующие действия:

  • Нажмем 3 для перехода в меню zimbra-store.
  • В пункте 3 увидим имя учетки админина «admin@nikmc.ru».
  • Нажмем 4 для создания пароля администратора.
  • Нажмем R для выхода в предыдущее меню.
  • Для применения конфигурации нажмем A.

 

*** CONFIGURATION COMPLETE — press ‘a’ to apply
Select from menu, or press ‘a’ to apply config (? — help) a

Zimbra спросит сохранить данные в файл, мы согласимся.

Save configuration data to a file? [Yes]Yes
Save config in file: [/opt/zimbra/config.xxxxx]
Saving config in /opt/zimbra/config.xxxx…done.
The system will be modified — continue? [No]Yes

По окончанию установщик предложит оповестить разработчика о успешной установке.

You have the option of notifying Zimbra of your installation.
This helps us to track the uptake of the Zimbra Collaboration Suite.
The only information that will be transmitted is:
The VERSION of zcs installed (7.1.1_GA_3196_CentOS5)
The ADMIN EMAIL ADDRESS created (admin@yourdomain.com)
Notify Zimbra of your installation? [Yes] No
…………
Configuration complete — press return to exit
…………

Configuration complete!

Все сервер готов.
Перейдем по адресу https://10.1.1.5 для пользователей или https://10.1.1.5:7071 для панели администрирования.

Настройка чтобы был доступ и по https и http.

Сменим текущего пользователя на zimbra:

su zimbra

Доступность панели можно настроить с помощью утилиты zmtlsctl у нее есть несколько режимов. Нам же нужна доступность как по http так и по https, для этого используется параметр both:

zmtlsctl both

Теперь надо перезапустить демон mailboxd:

zmmailboxdctl stop
zmmailboxdctl start

Теперь Zimbra доступна как по http так и по https.

bash: killall: command not found

Понадобилось прибить большое количество процессов.

Но команды killall не обнаружилось.

Решение простое.

Для дебианоподобных дистров

apt-get install psmisc

для CentOS/Fedora

yum install psmisc

для openSuSE

zypper in psmisc

CommuniGate Pro + Asterisk (SIP)

Задача: Завести пользователей CommuniGate в IP-PBX на базе Asterisk как внутренних абонентов, дать возможность совершать исходящие и входящие звонки и пр.

Решение:
1. Для начала необходимо создать SIP-абонентов в Asterisk. Подробно рассказывать об этом не буду, тем более что схема действий может отличаться в зависимости от конфигураций.
2. В CommuniGate включаем (если еще не включена) поддержку PBX для нужных нам доменов.
3. В CommuniGate заходим в «Установки» -> «Маршрутизатор» и добавляем строчку вида:

	Signal:<(3-8d)@*> = gatewaycaller{*}#pbx

здесь 3-8 = минимальное и максимальное количество цифр в набираемом номере.
4. Если необходимо разрешить принимать звонки через Pronto!, заходим в нужном пользователе в «Настройки»->»Настройки Pronto!» -> «Входящие звонки» и устанавливаем значение «Включены»
5. Заходим в нужном пользователе в «Real-Time» -> «RSIP» и вводим настройки регистрации этого пользователя на сервере Asterisk:

	Имя = Asterisk
	Периодичность = 50s
	Имя входа = login
	Имя хоста = asterisk_ip
	Имя Аутентификации = login
	Пароль = password
	Куда оставляем пустым

здесь login и password = логин и пароль пользователя на сервере Asterisk, asterisk_ip = IP-адрес сервера Asterisk.
6. Заходим в нужном пользователе в «Real-Time» -> «ТФОП» и вводим настройки регистрации для исходящих вызовов:

	Местный код Города делаем пустым
	Код Скорой Помощи делаем пустым
	Домен шлюза -> {gw1=asterisk_ip}
	Адрес шлюза -> {gw1=asterisk_ip}
	Номер звонящего -> {gw1=login}
	Имя на шлюзе -> {gw1=login}
	Пароль для Шлюза -> password
	Тарифный план оставляем пустым

здесь login и password = логин и пароль пользователя на сервере Asterisk, asterisk_ip = IP-адрес сервера Asterisk.
7. Выполняем пункты 4-6 для всех пользователей.

АТ-команды для модемов Huawei

Инструкция по настройке модема с помощью AT-команд

Управление 3G-модемом происходит при помощи AT-команд. Даже родное программное обеспечение от оператора использует эти команды в фоновом режиме. Все вы прекрасно знаете, что при подключении модема к компьютеру, система определяет сразу несколько устройств: модем, CD-ROM, Flash-карта (не во всех модемах). Все эти интерфейсы виртуальны и используется пользователем по мере надобности. Иногда возникает необходимость отключить Cd-rom и флешку, например, не все роутеры исправно работают с модемами у которых эти опции включены. Иногда требуется включить режим только модем. Для этого потребуется программа Hyper terminal, встроенная в операционную систему Windows XP. Для Windows Vista и Windows 7 её необходимо скачать. Я предлагаю вам более удобный вариант для общения с модемом — программу Huawei Modem Terminal.
Вставляем модем Huawei в USB-порт и запускаем программу. Далее в программе вверху выбираем ваше устройство «HUAWEI Mobile Connect — 3G PC UI Interface» и жмем Connect. После этого требуется проверить отвечает ли нам модем. Для этого внизу в строке введите команду AT и нажмите Enter. Должно появиться что-то типа того:
Send: AT
Recieve: AT
Recieve: OK
Если все произошло именно так, то модем отвечает и мы можем подавать ему команды, список которых приведен ниже:
Команды для модемов типа Huawei E1550:
AT^U2DIAG=0 (девайс в режиме только модем)
AT^U2DIAG=1 (девайс в режиме модем + CD-ROM)
AT^U2DIAG=255 (девайс в режиме модем + CD-ROM + Card Reader) — не поддерживается Huawei E1750
AT^U2DIAG=256 (девайс в режиме модем + Card Reader, можно использывать как обычную флешку, отказавшись от установки драйверов модема).
AT^SYSCFG=2,2,3fffffff,0,2 (включение 2G,3G)
Команды для модема Huawei E1750:
AT^U2DIAG=0 (девайс в режиме только модем)
AT^U2DIAG=1 (девайс в режиме модем + CD-ROM)
AT^U2DIAG=6 (девайс в режиме только сетевая карта)
AT^U2DIAG=268 для E1750 (девайс в режиме модем + CD-ROM + Card Reader)
AT^U2DIAG=276 для E1750 (девайс в режиме сетевой карты + CD-ROM + Card Reader)
AT^U2DIAG=256 (девайс в режиме модем + Card Reader), можно использовать как обычную флешку, отказавшись от установки драйверов модема.
Команды для модемов Huawei E367, E352, E392, E353 и E171:
AT^SETPORT?  — Отображение текущей конфигурации
AT^GETPORTMODE  — Отображение в настоящее время активный режим
AT^SETPORT=»A1,A2;1,2,3,7,A1,A2″  — Установить конфигурацию по умолчанию
AT^SETPORT=»A1,A2;1,16,3,2,A1,A2″  — Установить конфигурацию по умолчанию для модема E171 (новая ревизия)
AT^SETPORT=»A1,A2;1,2,3,7,A1,A2,4,5,6,A,B,D,E» — Тоже сброс по умолчанию (на некоторых модемах)
AT^SETPORT=»A1,A2;1,2,3,7″  — Отключить CD-ROM и карту памяти
AT^SETPORT=»A1,A2;1,2,3,A2″  — Отключает NDIS и CD-ROM — остаётся только модем и флешка
AT^SETPORT=»A1,A2;1,2,3″  — Режим «Только модем»
AT^SETPORT=»A1;1,2″  — Отключает вообще всё кроме модема и служебного интерфейса
AT^SETPORT=»A1,A2;2,7″  — Отключить CD-ROM + карту памяти + модем  установить в Win7 только NDIS режим.
AT^SETPORT=»A1;2,7″  — CD-ROM + NDIS
Команды для модема Huawei E369:
AT^SETPORT? – вывод на экран текущей конфигурации.
AT^GETPORTMODE — вывод на экран активного режима в настоящее время.
AT^SETPORT = «A1, A2, 1,2,3,7, A1, A2» – установка конфигурации по умолчанию.
AT^SETPORT = «A1, A2, 1,2,3,7″ — устройство в режиме Modem + Network Card.
AT^SETPORT=»A1,A2;1,2,3,A2» — устройство в режиме Modem + Card Reader.
AT^SETPORT = «A1, A2, 2,7″ — устройство в режиме Network Card.
AT^SETPORT=»A1,A2;1,2,3» — устройство в режиме Modem (работает быстрее и стабильнее).
AT^SETPORT = «A1, 2,7» — Network Card + CD-ROM.
AT^SETPORT = «A1, A2, 1,2,3,7, A1, A2, 4,5,6, A, B, D, E» — сброс настроек по умолчанию.
Команды для модема Huawei E3131:
AT^SETPORT=»A1,A2;1,16,3,2,A1,A2″ — (Установить конфигурацию по умолчанию)
AT^SETPORT=»A1,A2;1,2,3,16,A1,A2″ — (режим для работы модема с Android 4.0 (иногда работает))
AT^SETPORT=»A1,A2;1,16,3,2″ — (девайс в режиме «модем + сетевая карта»)
AT^SETPORT=»A1,A2;1,2,3,A2″ — (девайс в режиме «модем + Card Reader»)
AT^SETPORT=»A1,A2;1,2,3,A1″ — (девайс в режиме «модем + CD-ROM»)
AT^SETPORT=»A1,A2;1,2,3″ — (девайс в режиме «только модем»)
AT^SETPORT=»A1,A2;2,16″ — (девайс в режиме «сетевая карта»)
AT^SETPORT=»A1,A2;2,16,A1″ — (девайс в режиме «сетевая карта + CD-ROM»)
Команды для модема Huawei E3272:
AT^SETPORT=»A1,A2;10,12,16,A1,A2″ — Конфигурация по умолчанию
AT^SETPORT=»A1,A2;10,12,16,A2″ — Конфигурация по умолчанию, отключить CD
AT^SETPORT=»A1,A2;10,12,16″ — Конфигурация по умолчанию, отключить CD + SD
AT^SETPORT=»A1,A2;10,12″ — Конфигурация по умолчанию, отключить NDIS + CD + SD
AT^SETPORT=»A1;10,12,13,14,16,A1,A2″ — Включает: все COM порты + NDIS + CD + SD
AT^SETPORT=»A1;10,12,13,14″ — Включает: все COM порты, отключает: NDIS + CD + SD
AT^SETPORT=»A1;10,12,13,14,16″ — Включает: все COM порты + NDIS, отключает: CD + SD
AT^SETPORT=»A1;10,12,13,14,A2″ — Включает: все COM порты + SD, отключает: NDIS + CD
Команды для активации предпочтительных режимов сети (для E1750, E1820, E1550 и похожим моделей):
at^hspa=0 — режим wcdma
at^hspa=1 — режим hsdpa
at^hspa=2 — режим hspa
at^hspa=3 — режим hspa+
at^hspa=4 — сбалансированный режим. На некоторых форумах пишут, что кое-какие виды модемов с таким параметром лучше держут соединение.
Если на предыдущие команды появилось ERROR, то стоит попровать эти:
AT^HSDPA=1 — режим HSDPA
AT^HSDPA=0 — выключено
AT^HSUPA=1 — режим HSUPA
AT^HSUPA=0 — выключено
Внимание! Команды для активации предпочтительных режимов сети сбрасываются после отключения модема от питания.
Команды для разблокировки 3G-модема от конкретного оператора:
AT^CARDUNLOCK=»nck md5 hash»  — Сброс попыток к 10
AT^CARDLOCK=»nck code»  — Снятие блокировки
AT^CARDLOCK?  — Проверить блокировку и количество попыток в ответ модем выдаст:
CARDLOCK: A,B,0
A ->  2- означает, что симлока нет, 1-если модем залочен
B ->  количество оставшихся попыток разблокировки. У нового модема = 10

Восстанавливаем пароль к маршрутизатору / коммутатору Cisco

У Cisco на каждое сетевое устройство имеется подробная документация по восстановлению пароля. Но есть и общие рецепты. Для сброса пароля на маршрутизаторе достаточно будет проделать следующие действия:

  1. Перезагрузить устройство.
  2. Нажать комбинацию клавиш Ctrl + Break в первые 20-40 секунд зaгрузки.

Далее выполняем команды в консоли.

Read More «Восстанавливаем пароль к маршрутизатору / коммутатору Cisco»

Добавление драйверов USB 3.0 в образ Windows 7

Операционная система Windows 7 не имеет в своём составе драйверов для USB-контроллеров третьего поколения. Таким образом, при установке системы USB-накопитель с дистрибутивом ОС приходится подключать к более медленному порту USB 2.0. Однако нынешние ПК построены на базе весьма мощных процессоров и твердотельных накопителей, поэтому пропускная способность интерфейса USB 2.0 может стать узким местом при установке системы. Последнее особенно актуально для тех, кто часто (пере)устанавливает Windows 7 на компьютерах своих друзей и знакомых. Современные же ноутбуки зачастую оснащаются исключительно портами USB 3.0, вследствие чего установка Windows 7 на них становится попросту невозможной. В данной теме будет описана интеграция драйверов на контроллер USB 3.0 в установочный дистрибутив Windows 7.

 

Что нам потребуется:

Оригинальный ISO-образ Windows 7

В руководстве рассматривается интеграция драйверов в стандартный (оригинальный) дистрибутив Windows 7.

На торрентах в большом количестве лежат готовые «народные сборки» Windows 7, в том числе и такие, где уже интегрированы драйвера на контроллеры USB 3.0. Вы вправе скачивать и устанавливать именно их, однако в этом случае все возникающие вопросы (не устанавливается, не видит флэшку, не загружается, не активируется…) следует адресовать авторам этих сборок. Разбирать чужие косяки очень долго и утомительно, поверьте. И за то время, что у вас уйдет на исправление (доработку) чужого дистрибутива, можно будет десять раз успеть самостоятельно всё сделать и установить систему.

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

Где взять оригинальный дистрибутив Windows 7
Легко находится через любой поисковик по ключевой фразе «Windows 7 MSDN». Для тех, кто знает что такое магнет-ссылки: 49217A65DB5B075AFA9F2D5D1227877A4AFDB714

Read More «Добавление драйверов USB 3.0 в образ Windows 7»

Сбрасываем пароль администратора у openfire.

Я забыл пароль от админки. Не записал, о чем пожалел. Пришлось восстанавливать.
И в этом нет ничего сложного. Но этот способ я опробовал, если база крутиться на mysql.
mysql> SELECT * FROM ofUser WHERE username='admin';
+----------+---------------+-------------------+---------------+---------------+-----------------+------------------+
| username | plainPassword | encryptedPassword | name          | email         | creationDate    | modificationDate |
+----------+---------------+-------------------+---------------+---------------+-----------------+------------------+
| admin    | NULL          | df8d8aa53e956defc | Administrator | admin@com.com | 001248259155800 | 0                | 
+----------+---------------+-------------------+---------------+---------------+-----------------+------------------+
1 row in set (0.00 sec)

mysql> _

Мы видим, что пароль есть и он зашифрован. Меняем шифрованный пароль на открытый.

Code:
mysql> UPDATE ofUser SET plainPassword='newpass', encryptedPassword=NULL WHERE username='admin';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM ofUser WHERE username='admin';
+----------+---------------+-------------------+---------------+---------------+-----------------+------------------+
| username | plainPassword | encryptedPassword | name          | email         | creationDate    | modificationDate |
+----------+---------------+-------------------+---------------+---------------+-----------------+------------------+
| admin    | newpass       | NULL              | Administrator | admin@com.com | 001248259155800 | 0                | 
+----------+---------------+-------------------+---------------+---------------+-----------------+------------------+
1 row in set (0.00 sec)

mysql> _

Теперь у нас есть доступ в админку джаббер-сервера.