Настройка бесплатной СУБД PostgreSQL для работы в связке с 1С 8.х на платформе Windows Server 2012 х64. Объём БД более 250 Гб для мощного сервака. Конфигурация КА 1.1.80.1, 50 пользователей. Более 1 млн. проводок при закрытии месяца. Время закрытия месяца сравнимо с MSSQL и составляет в среднем 2 часа. Время отмены закрытия месяца - всего 10 минут! Ликвидированы зависания PostgreSQL. Всё за счет настроек файла postgesql.conf.
18 января 2018
15 января 2018
КАК ОГРАНИЧИТЬ ДОСТУП ПО SSHD НЕ ВЫШЕ УКАЗАННОГО КАТАЛОГА НА ПРИМЕРЕ UBUNTU
Статья посвящена тому, как настроить доступ пользователям SFTP таким образом, чтоб им был доступен нолько домашний (home) каталог.
Добавим следующие строки в конец файла /etc/ssh/sshd_config file:
Subsystem sftp internal-sftp
# This section must be placed at the very end of sshd_config
Match Group sftponly
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Это означает, что пользователь группы ‘sftponly’ будет chroot’d в своем домашнем каталоге, где только членам этой группы будет разрешен доступ к созданию процессов SFTP.
Теперь создадим группу sftponly:
$ groupadd sftponly
И добавим нашего пользователя в эту группу:
$ usermod steve -g sftponly
Чтоб запретить SSH shell доступ, выполним следущую команду::
$ usermod steve -s /bin/false
И зададим пользовотелю домашний каталог:
$ usermod steve -d /folder
И, в заключение, перезапустим SSH
$ service ssh restart
Теперь SSH часть должна быть в порядке, но вы должны убедиться, что права доступа к файлам выставлены правильно. If the chroot environment is in a user’s home directory both /home и /home/username должны быть под пльзователем root и наш пользователь должен иметь права 755 или 750.
В противном случае, every folder leading up to and including the home folder must be owned by root, otherwise you will get the following error after logging in:
Write failed: Broken pipe Couldn't read packet: Connection reset by peer
Оригинал - статья Restrict SFTP users to home folder
27 ноября 2017
Установка и настройка PHPBrew
PHPBrew - позволяет собрать и установить несколько различных версий PHP.
Установка зависимостей Ubuntu 14.04
В терминале выполняем команды:sudo apt-get update
sudo apt-get build-dep php5
sudo apt-get install php5 php5-dev php-pear autoconf automake curl libcurl3-openssl-dev build-essential libxslt1-dev re2c libxml2 libxml2-dev php5-cli bison libbz2-dev libreadline-dev
sudo apt-get install libfreetype6 libfreetype6-dev libpng12-0 libpng12-dev libjpeg-dev libjpeg8-dev libjpeg8 libgd-dev libgd3 libxpm4 libltdl7 libltdl-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install gettext libgettextpo-dev libgettextpo0
sudo apt-get install libicu-dev
sudo apt-get install libmhash-dev libmhash2
sudo apt-get install libmcrypt-dev libmcrypt4
sudo apt-get install mysql-server mysql-client libmysqlclient-dev libmysqld-dev
23 ноября 2017
Настройка DKIM в Zimbra
DKIM (DomainKeys Identified Mail) — это метод e-mail аутентификации, основанный на проверке подлинности цифровой подписи. DKIM необходим для того, чтобы почтовые сервисы проверяли отправителя и защищали получателя письма от мошеннических рассылок, которые производятся с подменой адреса отправителя.
Метод предусматривает шифрование заголовков исходящих сообщений с помощью закрытого ключа домена, и добавление открытой версии ключа в записи DNS домена, доступного всем. MTA сервера-получателя запрашивает для расшифровки заголовков входящих сообщений открытый ключ у DNS-сервера отправителя, а затем проверяет, действительно ли сообщение отправлено от заявленного источника.

DKIM стал доступен с версии Zimbra 8.0. Настройка подписи состоит из двух этапов:
Добавляем данные DKIM к домену, у которого еще нет существующей конфигурации DKIM:
Получаем:
Также можно обновить DKIM данные для домена:
Удалить DKIM данных для домена:
Извлечь сохраненные данных DKIM для домена:
Публичный ключ нужно добавить как TXT-запись в домен:
Обновите DNS, и проверьте результат выполнения команды:
Например:
Если ключ извлекается используйте
Если получили ошибку:
Это означает, что файла /opt/zimbra/conf/opendkim.conf не существует, создать его можно командой:
Если возникнет необходимость отозвать ключ подписи DKIM, установите пустой «р=» тег в записи TXT
По умолчанию создается 1024-битный ключ (зависит от версии ZCS), изменить размер можно параметром -b
P.S: Есть проблема с изменением body hash подписи dkim в письмах, содержащих кириллицу, из-за чего получаем dkim=neutral (body hash did not verify) или dkim=false
Решение найдено, возможно кому то еще пригодится:
Метод предусматривает шифрование заголовков исходящих сообщений с помощью закрытого ключа домена, и добавление открытой версии ключа в записи DNS домена, доступного всем. MTA сервера-получателя запрашивает для расшифровки заголовков входящих сообщений открытый ключ у DNS-сервера отправителя, а затем проверяет, действительно ли сообщение отправлено от заявленного источника.

DKIM стал доступен с версии Zimbra 8.0. Настройка подписи состоит из двух этапов:
Первый этап: генерация ключей и селектора
Добавляем данные DKIM к домену, у которого еще нет существующей конфигурации DKIM:
# su zimbra
$ /opt/zimbra/libexec/zmdkimkeyutil -a -d example.comПолучаем:
DKIM Data added to LDAP for domain example.com with selector ECAC22D2-DCA2-11E6-BA30-B554729FE32A
Public signature to enter into DNS:
ECAC22D2-DCA2-11E6-BA30-B554729FE32B._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs5OCY0sX04ziF+sOHt/1kq3A7iAzAjBjb4JteaoFzu1q2uBOiQS0uyaFeY6CgSgRRbvPnq8cWLG/XMU0tM9gSGtgtWDmHOs6/+QgKp6zRmetfsyABA2Y2U+XJlVURUE5ai3KIA/njt7IGZ5yeFsdZIKmhOCAOPGCovq10xkZXHdjRwiqxbCYGXv2m3o74BcWtOLPfEvexD5PYx"
"aTWFbelJpGlDN7WdBCE+ObpLGkJ9co/1sVOcd3c9SHfPq3jcBAFm7oPX2ak7Fb7cslVK77lA2hBgMYqI2Sh+T64o6R33dU++Ej7CuImmv7PAqVUn5MjYr05t3LK9dwWM8Cm6aJ/QIDAQAA" ) ; ----- DKIM key ECAC22D2-DCA2-11E6-BA30-B554729FE32A for example.comТакже можно обновить DKIM данные для домена:
$ /opt/zimbra/libexec/zmdkimkeyutil -u -d example.comУдалить DKIM данных для домена:
$ /opt/zimbra/libexec/zmdkimkeyutil -r -d example.comИзвлечь сохраненные данных DKIM для домена:
$ /opt/zimbra/libexec/zmdkimkeyutil -q -d example.comВторой этап: обновление DNS-записей
Публичный ключ нужно добавить как TXT-запись в домен:
$ORIGIN example.com.
ECAC22D2-DCA2-11E6-BA30-B554729FE32B._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs5OCY0sX04ziF+sOHt/1kq3A7iAzAjBjb4JteaoFzu1q2uBOiQS0uyaFeY6CgSgRRbvPnq8cWLG/XMU0tM9gSGtgtWDmHOs6/+QgKp6zRmetfsyABA2Y2U+XJlVURUE5ai3KIA/njt7IGZ5yeFsdZIKmhOCAOPGCovq10xkZXHdjRwiqxbCYGXv2m3o74BcWtOLPfEvexD5PYx"
"aTWFbelJpGlDN7WdBCE+ObpLGkJ9co/1sVOcd3c9SHfPq3jcBAFm7oPX2ak7Fb7cslVK77lA2hBgMYqI2Sh+T64o6R33dU++Ej7CuImmv7PAqVUn5MjYr05t3LK9dwWM8Cm6aJ/QIDAQAA" ) ; ----- DKIM key ECAC22D2-DCA2-11E6-BA30-B554729FE32A for example.comОбновите DNS, и проверьте результат выполнения команды:
# host -t txt SELECTOR._domainkey.DOMAINНапример:
# host -t txt ECAC22D2-DCA2-11E6-BA30-B554729FE32B._domainkey.example.com ns1.example.com Если ключ извлекается используйте
/opt/zimbra/common/sbin/opendkim-testkey, чтобы убедиться, что открытый ключ соответствует закрытому.$ opendkim-testkey -d example.com -s ECAC22D2-DCA2-11E6-BA30-B554729FE32B -x /opt/zimbra/conf/opendkim.confЕсли получили ошибку:
opendkim-testkey: /opt/zimbra/conf/opendkim.conf: configuration error at line 0Это означает, что файла /opt/zimbra/conf/opendkim.conf не существует, создать его можно командой:
$ zmprov ms `zmhostname` +zimbraServiceEnabled opendkim ./libexec/configrewrite opendkimЕсли возникнет необходимость отозвать ключ подписи DKIM, установите пустой «р=» тег в записи TXT
По умолчанию создается 1024-битный ключ (зависит от версии ZCS), изменить размер можно параметром -b
P.S: Есть проблема с изменением body hash подписи dkim в письмах, содержащих кириллицу, из-за чего получаем dkim=neutral (body hash did not verify) или dkim=false
Решение найдено, возможно кому то еще пригодится:
Код: Выделить всё
#su zimbra
zimbra@mail:$ /opt/zimbra/postfix/sbin/postconf -e disable_mime_output_conversion='yes'
zimbra@mail:$ zmmtactl restart10 ноября 2017
Микротик не отвечает на пинги через WAN, mangle настроен, интернет есть. Что может быть не так?
Если вы ищете руководство по настройке dual-wan failover на микротике, то среди задач вы будете решать, как сделать, чтобы при пинге через ISP1 микротик направлял бы ответ через шлюз GW1, а при пинге через ISP2 - соответственно, через GW2.
Штука в том, что даже если все правильно настроено, и NAT работает, и локальные клиенты в сеть ходят, и firewall вроде разрешает пинг снаружи, а снаружи к микротику не обратиться. Не пингуется и все тут.
Вы наверняка видели что-то вроде:
/ip firewall mangle
add chain=input action=mark-connection new-connection-mark=ISP1->Input passthrough=no dst-address=IP1 in-interface=ether1
add chain=output action=mark-routing new-routing-mark=ISP1 passthrough=no connection-mark=ISP1->Input
add chain=input action=mark-connection new-connection-mark=ISP2->Input passthrough=no dst-address=IP2 in-interface=ether2
add chain=output action=mark-routing new-routing-mark=ISP2 passthrough=no connection-mark=ISP2->Input
add chain=input action=mark-connection new-connection-mark=ISP1->Input passthrough=no dst-address=IP1 in-interface=ether1
add chain=output action=mark-routing new-routing-mark=ISP1 passthrough=no connection-mark=ISP1->Input
add chain=input action=mark-connection new-connection-mark=ISP2->Input passthrough=no dst-address=IP2 in-interface=ether2
add chain=output action=mark-routing new-routing-mark=ISP2 passthrough=no connection-mark=ISP2->Input
Т.е.:
1) если пришел пакет со стороны провайдера ISP1 (через интерфейс ether1) с конечным адресом нашего микротика IP1 (т.е. в input), то пометить это соединение меткой "ISP1->Input".
2) исходящий трафик, связанный с установленным ранее соединеним, помеченным меткой "ISP1->Input", маршрутизировать по правилам таблицы ISP1.
1) если пришел пакет со стороны провайдера ISP1 (через интерфейс ether1) с конечным адресом нашего микротика IP1 (т.е. в input), то пометить это соединение меткой "ISP1->Input".
2) исходящий трафик, связанный с установленным ранее соединеним, помеченным меткой "ISP1->Input", маршрутизировать по правилам таблицы ISP1.
Аналогично для входящих пакетов со стороны провайдера ISP2.
И все бы хорошо, если у вас есть маршрут по-умолчанию без указания таблицы маршрутизации.
Но у вас могут быть только такие дефолтные машруты (до 0.0.0.0/0):
/ip route
add distance=1 gateway=GW1 routing-mark=ISP1
add distance=1 gateway=GW2 routing-mark=ISP2
add distance=1 gateway=GW1 routing-mark=ISP1
add distance=1 gateway=GW2 routing-mark=ISP2
и ни одного маршрута по-умолчанию без указания routing-mark. Т.е. основная таблица маршрутизации пустая.
При пинге IP1 снаружи через ISP1 (input) из примера выше входящий пакет будет принят, промаркируется соединение (new-connection-mark=ISP1->Input). А вот ответ (output) никуда не уйдет, т.к. ответный пакет не попадет в output. Вообще. И промаркирован он не будет. И микротик не отправит его никуда.
Решить проблему можно по-разному.
1. prerouting вместо output
Любой пакет до того, как будет принято решение о его судьбе, проходит цепочку prerouting. И если заменить output на prerouting, то еще до попадания в output пакет будет промаркирован для маршрутизации через таблицу ISP1 (new-routing-mark=ISP1), далее будет принято верное решение о необходимости отправить пакет в output.
2. добавить маршруты по-умолчанию без указания таблиц маршрутизации
Например, как-то так:
/ip route
add distance=1 gateway=GW1 distance=10
add distance=1 gateway=GW2 distance=10
add distance=1 gateway=GW1 distance=10
add distance=1 gateway=GW2 distance=10
Или даже просто один из них:
/ip route add distance=1 gateway=GW1 distance=10
Не важно, будет этот маршрут доступен или нет, осноная таблица маршрутизации не будет пустой и микротик начнет искать замену этому маршруту. А если в основной таблице пусто - то и микротик делать ничего не будет и дело не дойдет до момента маркировки пакета в mangle -> output.
https://bozza.ru/art-282.html
08 ноября 2017
Два интернет провайдера на Mikrotik RouterOS
В этой статье рассмотрим настройку
роутера компании Mikrotik, с RouterOS на борту, для одновременной работы
с двумя провайдерами.
Устройства от латвийской компании MikroTik — гибкие в настройке, функциональные решения для домашних и корпоративных сетей. Операционную систему RouterOS можно так же установить на различные аппаратные платформы, включая x86.
Дано:

Порт 1 и 2 будем использовать под интернет провайдеров, а остальные под локальную сеть.
Теперь Вы можете подсоединить все патч-корды с соответствующими портами. Я же предпочитаю первоначальную настройку производить на отдельном ноутбуке, соединив LAN порт ноута с пятым портом роутера. Подключаться будем через программу Winbox. Скачать можно с самого роутера, введя в браузере адрес по умолчанию «192.168.88.1» или с mikrotik.com. Сразу можно скачать обновление для RouterOS — ветки Bugfix only. На момент написания статьи это была версия 6.34.6 (правки при 6.39.3).
Итак, запустим Winbox при подключеном роутере.
На вкладке Neighbors автоматически выполняется поиск всех видимых устройств на RouterOS в сети. Подключаемся по mac-адресу к найденному устройству пользователем admin с пустым паролем.

После входа появится окно описания конфигурации по умолчанию. Нажимаем «Remove Configuration»
Далее как минимум необходимо задать пароль для пользователя.
Рекомендуется создать своего пользователя, а встроенную учетную запись
отключить, что мы и сделаем. Идём в меню System -> Users и добавляем
пользователя, нажав на плюс (+). Name — на Ваш выбор, Group — права
пользователя ставим в full, Password — на Ваш выбор. Также можно
перечислить адреса, с которых разрешено подключаться к роутеру, в опции
Allowed Address. Жмём ОК. Встроенную учетную запись отключаем или
удаляем нажав на (x) или (-) соответственно. Переподключаемся под новым
пользователем.
Теперь определимся с сетевыми интерфейсами, перейдя в меню Interfaces. Как было описано выше, первый и второй порт роутера используем под wan порты, а остальное выпускаем в локальную сеть, указывая для портов с 3го по 4й в поле Master Port 5й порт. Для удобства к названию портов были приписаны описания (ether1-wan1, ether2-wan2, ether3-slave, ether4-slave, ether5-lan-master). Последний порт был выбран мастером не случайно. Если возникнет необходимость добавить еще один wan интерфейс, то мы просто уберем зависимость третьего порта от мастер-порта и настроим его под свои нужды. Необходимость переназначать мастер порт не возникнет, в отличии от варианта с присвоением роли мастер-порта третьему порту роутера.
При необходимости использовать wi-fi-интерфейс потребуется создать bridge интерфейс и добавить в него мастер-пор ethernet интерфейсов и wi-fi интерфейс (на своём оборудовании wi-fi я отключил, так как в нём не было необходимости). В данной статье используется так называемая switch-коммутация портов, которая обладает большей производительностью по сравнению с bridge-коммутацией. В приведенном роутере используется один switch-микроконтроллер на 5 портов. При наличии более одного switch-контроллера на каждый контроллер назначается один мастер порт, затем они объединяются в bridge, если есть необходимость объединить их в одно пространство. Подробнее о различиях способов коммутации портов можно прочитать здесь. Ниже приведен пример создания bridge-интерфейса и добавление в него мастер-интерфейса.
Теперь укажем ip адреса для интерфейсов. Переходим в меню IP -> Addresses и добавляем адреса, вписывая его в поле Address с маской и выбирая интерфейс в поле Interface. Адрес сети в поле Network можно не вводить т.к. он заполнится автоматически, но при изменении адреса не забудьте проверить это поле. При объединении свитч-группы портов и wifi интерфейса в bridge — ip адрес присваивается на bridge интерфейс. В моём случае адрес присваивается мастер-порту.
Т.к. у нас будет два wan-интерфейса и статические адреса, настраиваемые на интерфейсах вручную, то все маршруты мы напишем вручную. В случае настройки wan-интерфейса, например, на ppp подключение, то не забудьте убрать галочку ‘Add Default Route’.
В меню IP-> DNS укажем DNS-серверы и поставим галочку на Allow Remote Requests (если оно Вам надо). Тут же можно создать запись с именем нашего роутера, предварительно изменив его (имя) в меню System -> Identity.
В случае классической настройки роутера с одним ISP WAN далее следовало бы указать шлюз, добавить стандартные правила Firewall’а и правило NAT для преобразования адресов. Но так как мы имеем дела с двумя ISP, то следует сначала настроим Firewall и NAT, а так же пометим интерфейсы и трафик для корректной маршрутизации. Для каждого wan интерфейса создаём по правилу в IP -> Firewall на вкладке NAT. В поле Chain на вкладке General выбираем srcnat, Src.Address — пишем локальную сеть с маской, Out. Interface — выбираем wan интерфейс. Если провайдер выдает динамически изменяющийся ip адресс, то на вкладке Action в поле Action выбираем masquerade. При статическом IP адресе, как в текущем примере, выбираем Action — src-nat и в поле To Address пишем адрес wan интерфейса. Нажимаем ОК.


Теперь переходим на вкладку Filter Rules и добавляем набор
стандартных правил. В графической оболочке принцип настройки такой же
как и при добавления правила NAT — на вкладке General выбираем параметры
и цепочку, а на вкладке Action выбираем действие. Ниже привожу набор
команд для термина, из которых понятно что и как настроить в каждом
правиле. Так же можно скопировать и выполнить в окне терминала (кнопка
New Terminal) одним списком.

Для установленных и связанных соединений в цепочке forward добавлено правило fasttrack connection. Это правило позволит разгрузить процессор маршрутизатора, отключив (пропустив) дополнительную обработку пакетов в установленных и связанных соединениях. Подробнее на MikroTik Wiki.
В рассматриваемом примере в локальной сети находится сервер, с которым будет вестись работа извне. Для выполнения этой задачи необходимо чтобы ответы на запросы, пришедшие по какому-либо из двух wan-интерфейсов, отправлялись на тот же самый интерфейс.
Для выполнения поставленной задачи необходимо пометить соединения с провайдером и после направлять трафик по соответствующим маршрутам, а так же создать сами маршруты.
Сразу добавим статические маршруты до шлюзов каждого из провайдера, плюс по маршруту на провайдера для соединений с метками маршрутизации. Маршрут до гейтов провайдеров можно указать одним правилом с одним на всех значением Distance, таким образом получив своеобразную балансировку нагрузки по wan интерфейсам. [По резервированию и Check Gateway чуть позже]
В каждом маршруте для помеченных соединений я указывал IP адреса интерфейсов wan1 и wan2. В зависимости от типов настроенных соединений для wan’ов можно указывать IP интерфейса или сам интерфейс. Для статичных адресов метод с интерфейсами не заработал, так как адреса статикой были присвоены на бродкастные интерфейсы и с другой стороны wan интерфейса находятся медиаконвертеры провайдеров без proxy-arp на интерфейсах. В поле Routing Mark выбираем соответствующую метку.
В IP -> Firewall на вкладке Mangle создаём правила для двух провайдеров, которые будут помечать соединения идущие по цепочке forward с wan интерфейсов. На вкладке General в поле Chain выбираем forward, в поле In. Interface выбираем ether1-wan1, затем на вкладке Action выбираем mark connection, в поле New Connectio Mark пишем произвольную метку, например wan1-con. Аналогичным образом создаём правило для wan2. Следом создаем еще два правила на вкладке Mangle — для помеченных ранее соединений указываем метки для маршрутизации, чтобы помеченные ранее соединения продолжали работать через wan интерфейсы, через которые были установлены (соединения). На вкладке General в поле Chain выбираем prerouting, в поле Src.Address пишем 192.168.1.0/24 (если за маршрутизатором несколько подсетей, то удобно занести их в Firewall->Address Lists и затем указать созданый лист на вкладке Advanced в поле Src. Address List), в поле Connection Mark выбираем метку нашего соединения — wan1-con. Переходим на вкладку Action, в поле Action выбираем mark routing, в поле New Routing Mark пишем wan1-rt. Аналогично создаем правило для wan2, выбирая wan2-con и вписывая wan2-rt для Connection Mark и New Routing Mark соответственно.
Теперь подобным образом создаём пары правил для каждого интерфейса, чтобы корректно обрабатывать соединения извне с самим маршрутизатором (например SSH, WinBox, VPN). Для каждого wan выбираем Chain — input, Dst.Address — ip адрес wan интерфейса, In/Interface — wan интерфейс, Action — mark connection, New Connection Mark — текстовую марку, уникальную для каждого правила.


Теперь похожим образом добавляем помеченным маршрутам метку маршрутизации. Цепочка output, Connection Mark — присвоенная метка правилом выше для wan интерфейса. Action — mark routing, New Routing Mark — метка для наших маршрутов через wan интерфейсы.

Пометим
собственные соединения маршрутизатора (DNS запросы от маршрутизатора к
внешним серверам, проверка пакетов в System->Packages). Цепочка
output, Src.Address — адрес wan интерфейса, Action — mark connection,
New Connection Mark — уникальная текстовая метка для каждого wan
интерфейса.


И добавляем метку маршрутизации. Цепочка output, Src.Address — адрес wan интерфейса, Connection Mark — присвоенная метка правилом выше для wan интерфейса. Action — mark routing, New Routing Mark — метка для наших маршрутов через wan интерфейсы.


Вот и всё. Выпустив роутер в сеть проверяем доступность шлюзов провайдера — посмотрев на список маршрутов в колонке Gateway к адресу шлюза будет дописано reachable. Так же в списке появятся динамически созданные маршруты. Проверяя работу из локальной сети можно отключая интерфейсы wan в MikroTik’е или просто попеременно выдергивать по одному проводу из wan’ов. Активные соединения, установленные ранее через отключенный wan будут теряться, но перезапустив соединение (например обновив страницу в браузере) оно будет установлено через оставшийся активный wan.
В приведенном примере оба wan порта работают в подсетях одного провайдера и DNS серверы для подсетей общие. Если провайдеры разные, то скорее всего потребуется указать через какой интерфейс ходить до конкретного DNS сервера, так как к каждому DNS серверу может быть разрешен доступ только из сети соответствующего ему повайдера. Таким же образом можно принудительно пускать трафик до конкретных ресурсов через конкретный wan (например, если до ресурса во внешней сети соединение оптимально по скорости/стабильности через конкретного провайдера, или просто только из сети/ip-адреса этого провайдера разрешен доступ).
Перейдем в IP -> Firewall и на вкладке Address Lists создадим для каждого wan по группе адресов (over-wan1 и over-wan2) попутно добавляя необходимые адреса или подсети. Каждый последующий элемент добавляется с выбором группы адресов из списка в поле Name. Допустим есть некий сервис по адресу 110.110.110.1 до которого минимальные задержки у провайдера на wan1, а для сервиса по адресу 220.220.220.2 такая же история, но на wan2. В группу over-wan1 мы добавляем 110.110.110.1, а в over-wan2 добавляем 220.220.220.2. Так же в соответствующие группы нужно добавить адреса DNS серверов провайдера, если провайдеры разные. В приведенном примере добавляем только адреса сервисов.
Теперь переходим на вкладку Mangle и создаём по правилу на каждый список чтобы пометить маршруты. На вкладке General поле Chain = prerouting и внизу ставим галочку на Connection State — new. Далее на вкладке Advanced в поле Dst. Address List выбираем список адресов (over-wan1) и на вкладке Action в поле Action выбираем mark routing, в поле New Routing Mark выбираем метку (wan1-rt). Таким же образом создаём правило для следующего списка.



Теперь можно проверить доступность ресурсов из адресных списков запустив трассировку до узла. Соединение должно идти через шлюз определенного для выбранного wan провайдера.
Вот и всё на этом. Удачи Вам!
Устройства от латвийской компании MikroTik — гибкие в настройке, функциональные решения для домашних и корпоративных сетей. Операционную систему RouterOS можно так же установить на различные аппаратные платформы, включая x86.
Дано:
- локальная сеть 192.168.1.0/24 — роутер выступает в роли DNS сервера и шлюза. Адреса в локальной сети присваиваются вручную;
- сеть провайдера 1.1.1.0/29, шлюз — 1.1.1.6, DNS1 — 1.1.10.1, DNS2 — 1.1.10.2;
- сеть провайдера 1.1.2.0/29, шлюз — 1.1.2.6, DNS1 — 1.1.10.1, DNS2 — 1.1.10.2

Порт 1 и 2 будем использовать под интернет провайдеров, а остальные под локальную сеть.
Теперь Вы можете подсоединить все патч-корды с соответствующими портами. Я же предпочитаю первоначальную настройку производить на отдельном ноутбуке, соединив LAN порт ноута с пятым портом роутера. Подключаться будем через программу Winbox. Скачать можно с самого роутера, введя в браузере адрес по умолчанию «192.168.88.1» или с mikrotik.com. Сразу можно скачать обновление для RouterOS — ветки Bugfix only. На момент написания статьи это была версия 6.34.6 (правки при 6.39.3).
Итак, запустим Winbox при подключеном роутере.
На вкладке Neighbors автоматически выполняется поиск всех видимых устройств на RouterOS в сети. Подключаемся по mac-адресу к найденному устройству пользователем admin с пустым паролем.

После входа появится окно описания конфигурации по умолчанию. Нажимаем «Remove Configuration»
Терминал. Сброс настроек
Терминал. Управление учётными записями
Теперь определимся с сетевыми интерфейсами, перейдя в меню Interfaces. Как было описано выше, первый и второй порт роутера используем под wan порты, а остальное выпускаем в локальную сеть, указывая для портов с 3го по 4й в поле Master Port 5й порт. Для удобства к названию портов были приписаны описания (ether1-wan1, ether2-wan2, ether3-slave, ether4-slave, ether5-lan-master). Последний порт был выбран мастером не случайно. Если возникнет необходимость добавить еще один wan интерфейс, то мы просто уберем зависимость третьего порта от мастер-порта и настроим его под свои нужды. Необходимость переназначать мастер порт не возникнет, в отличии от варианта с присвоением роли мастер-порта третьему порту роутера.
Терминал. Настройка интерфейсов
При необходимости использовать wi-fi-интерфейс потребуется создать bridge интерфейс и добавить в него мастер-пор ethernet интерфейсов и wi-fi интерфейс (на своём оборудовании wi-fi я отключил, так как в нём не было необходимости). В данной статье используется так называемая switch-коммутация портов, которая обладает большей производительностью по сравнению с bridge-коммутацией. В приведенном роутере используется один switch-микроконтроллер на 5 портов. При наличии более одного switch-контроллера на каждый контроллер назначается один мастер порт, затем они объединяются в bridge, если есть необходимость объединить их в одно пространство. Подробнее о различиях способов коммутации портов можно прочитать здесь. Ниже приведен пример создания bridge-интерфейса и добавление в него мастер-интерфейса.
Терминал. Работа с bridge-интерфейсом
Теперь укажем ip адреса для интерфейсов. Переходим в меню IP -> Addresses и добавляем адреса, вписывая его в поле Address с маской и выбирая интерфейс в поле Interface. Адрес сети в поле Network можно не вводить т.к. он заполнится автоматически, но при изменении адреса не забудьте проверить это поле. При объединении свитч-группы портов и wifi интерфейса в bridge — ip адрес присваивается на bridge интерфейс. В моём случае адрес присваивается мастер-порту.
Терминал. Добавление IP-адресов
Т.к. у нас будет два wan-интерфейса и статические адреса, настраиваемые на интерфейсах вручную, то все маршруты мы напишем вручную. В случае настройки wan-интерфейса, например, на ppp подключение, то не забудьте убрать галочку ‘Add Default Route’.
В меню IP-> DNS укажем DNS-серверы и поставим галочку на Allow Remote Requests (если оно Вам надо). Тут же можно создать запись с именем нашего роутера, предварительно изменив его (имя) в меню System -> Identity.
Терминал. Идентификация и DNS серверы
В случае классической настройки роутера с одним ISP WAN далее следовало бы указать шлюз, добавить стандартные правила Firewall’а и правило NAT для преобразования адресов. Но так как мы имеем дела с двумя ISP, то следует сначала настроим Firewall и NAT, а так же пометим интерфейсы и трафик для корректной маршрутизации. Для каждого wan интерфейса создаём по правилу в IP -> Firewall на вкладке NAT. В поле Chain на вкладке General выбираем srcnat, Src.Address — пишем локальную сеть с маской, Out. Interface — выбираем wan интерфейс. Если провайдер выдает динамически изменяющийся ip адресс, то на вкладке Action в поле Action выбираем masquerade. При статическом IP адресе, как в текущем примере, выбираем Action — src-nat и в поле To Address пишем адрес wan интерфейса. Нажимаем ОК.


Терминал. Правило NAT
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# переходим на уровень IP -> Firewall -> Filter
/ip firewall filter
# разрешаем установленные и связанные соединения для цепочки input
add chain=input connection-state=established,related
# разрешаем ping для цепочки input
add chain=input protocol=icmp
# запрещаем недействительные соединения для цепочки input
add action=drop chain=input connection-state=invalid
# разрешаем доступ из локальной сети к роутеру
add chain=input src-address=192.168.1.0/24
# всё остальное запрещаем для цепочки input
add action=drop chain=input
# включим fasttrack для установленных и связанных соединений в цепочки forward
add action=fasttrack-connection chain=forward connection-state=established,related
# разрешаем установленные и связанные соединения для цепочки forward
add chain=forward connection-state=established,related
# разрешаем ping для цепочки forward
add chain=forward protocol=icmp
# запрещаем недействительные соединения для цепочки forward
add action=drop chain=forward connection-state=invalid
# разрешаем доступ из локальной сети в интернет
add chain=forward src-address=192.168.1.0/24
# всё остальное запрещаем для цепочки forward
add action=drop chain=forward
|

Для установленных и связанных соединений в цепочке forward добавлено правило fasttrack connection. Это правило позволит разгрузить процессор маршрутизатора, отключив (пропустив) дополнительную обработку пакетов в установленных и связанных соединениях. Подробнее на MikroTik Wiki.
В рассматриваемом примере в локальной сети находится сервер, с которым будет вестись работа извне. Для выполнения этой задачи необходимо чтобы ответы на запросы, пришедшие по какому-либо из двух wan-интерфейсов, отправлялись на тот же самый интерфейс.
Для выполнения поставленной задачи необходимо пометить соединения с провайдером и после направлять трафик по соответствующим маршрутам, а так же создать сами маршруты.
Сразу добавим статические маршруты до шлюзов каждого из провайдера, плюс по маршруту на провайдера для соединений с метками маршрутизации. Маршрут до гейтов провайдеров можно указать одним правилом с одним на всех значением Distance, таким образом получив своеобразную балансировку нагрузки по wan интерфейсам. [По резервированию и Check Gateway чуть позже]
В каждом маршруте для помеченных соединений я указывал IP адреса интерфейсов wan1 и wan2. В зависимости от типов настроенных соединений для wan’ов можно указывать IP интерфейса или сам интерфейс. Для статичных адресов метод с интерфейсами не заработал, так как адреса статикой были присвоены на бродкастные интерфейсы и с другой стороны wan интерфейса находятся медиаконвертеры провайдеров без proxy-arp на интерфейсах. В поле Routing Mark выбираем соответствующую метку.
Терминал. Добавляем маршруты
В IP -> Firewall на вкладке Mangle создаём правила для двух провайдеров, которые будут помечать соединения идущие по цепочке forward с wan интерфейсов. На вкладке General в поле Chain выбираем forward, в поле In. Interface выбираем ether1-wan1, затем на вкладке Action выбираем mark connection, в поле New Connectio Mark пишем произвольную метку, например wan1-con. Аналогичным образом создаём правило для wan2. Следом создаем еще два правила на вкладке Mangle — для помеченных ранее соединений указываем метки для маршрутизации, чтобы помеченные ранее соединения продолжали работать через wan интерфейсы, через которые были установлены (соединения). На вкладке General в поле Chain выбираем prerouting, в поле Src.Address пишем 192.168.1.0/24 (если за маршрутизатором несколько подсетей, то удобно занести их в Firewall->Address Lists и затем указать созданый лист на вкладке Advanced в поле Src. Address List), в поле Connection Mark выбираем метку нашего соединения — wan1-con. Переходим на вкладку Action, в поле Action выбираем mark routing, в поле New Routing Mark пишем wan1-rt. Аналогично создаем правило для wan2, выбирая wan2-con и вписывая wan2-rt для Connection Mark и New Routing Mark соответственно.
Теперь подобным образом создаём пары правил для каждого интерфейса, чтобы корректно обрабатывать соединения извне с самим маршрутизатором (например SSH, WinBox, VPN). Для каждого wan выбираем Chain — input, Dst.Address — ip адрес wan интерфейса, In/Interface — wan интерфейс, Action — mark connection, New Connection Mark — текстовую марку, уникальную для каждого правила.


Теперь похожим образом добавляем помеченным маршрутам метку маршрутизации. Цепочка output, Connection Mark — присвоенная метка правилом выше для wan интерфейса. Action — mark routing, New Routing Mark — метка для наших маршрутов через wan интерфейсы.

Пометим
собственные соединения маршрутизатора (DNS запросы от маршрутизатора к
внешним серверам, проверка пакетов в System->Packages). Цепочка
output, Src.Address — адрес wan интерфейса, Action — mark connection,
New Connection Mark — уникальная текстовая метка для каждого wan
интерфейса.

И добавляем метку маршрутизации. Цепочка output, Src.Address — адрес wan интерфейса, Connection Mark — присвоенная метка правилом выше для wan интерфейса. Action — mark routing, New Routing Mark — метка для наших маршрутов через wan интерфейсы.


Терминал. Помечаем соединения и маршруты
Вот и всё. Выпустив роутер в сеть проверяем доступность шлюзов провайдера — посмотрев на список маршрутов в колонке Gateway к адресу шлюза будет дописано reachable. Так же в списке появятся динамически созданные маршруты. Проверяя работу из локальной сети можно отключая интерфейсы wan в MikroTik’е или просто попеременно выдергивать по одному проводу из wan’ов. Активные соединения, установленные ранее через отключенный wan будут теряться, но перезапустив соединение (например обновив страницу в браузере) оно будет установлено через оставшийся активный wan.
В приведенном примере оба wan порта работают в подсетях одного провайдера и DNS серверы для подсетей общие. Если провайдеры разные, то скорее всего потребуется указать через какой интерфейс ходить до конкретного DNS сервера, так как к каждому DNS серверу может быть разрешен доступ только из сети соответствующего ему повайдера. Таким же образом можно принудительно пускать трафик до конкретных ресурсов через конкретный wan (например, если до ресурса во внешней сети соединение оптимально по скорости/стабильности через конкретного провайдера, или просто только из сети/ip-адреса этого провайдера разрешен доступ).
Перейдем в IP -> Firewall и на вкладке Address Lists создадим для каждого wan по группе адресов (over-wan1 и over-wan2) попутно добавляя необходимые адреса или подсети. Каждый последующий элемент добавляется с выбором группы адресов из списка в поле Name. Допустим есть некий сервис по адресу 110.110.110.1 до которого минимальные задержки у провайдера на wan1, а для сервиса по адресу 220.220.220.2 такая же история, но на wan2. В группу over-wan1 мы добавляем 110.110.110.1, а в over-wan2 добавляем 220.220.220.2. Так же в соответствующие группы нужно добавить адреса DNS серверов провайдера, если провайдеры разные. В приведенном примере добавляем только адреса сервисов.
Теперь переходим на вкладку Mangle и создаём по правилу на каждый список чтобы пометить маршруты. На вкладке General поле Chain = prerouting и внизу ставим галочку на Connection State — new. Далее на вкладке Advanced в поле Dst. Address List выбираем список адресов (over-wan1) и на вкладке Action в поле Action выбираем mark routing, в поле New Routing Mark выбираем метку (wan1-rt). Таким же образом создаём правило для следующего списка.



Теперь можно проверить доступность ресурсов из адресных списков запустив трассировку до узла. Соединение должно идти через шлюз определенного для выбранного wan провайдера.
Вот и всё на этом. Удачи Вам!
07 августа 2017
Установка Zimbra 8.6 на Ubuntu 14.04 Server x64
Описание:
Zimbra Collaboration Suite (ZCS) — программный продукт для автоматизации совместной деятельности рабочих групп, созданный компанией Zimbra, находящейся в Сан Матео, штат Калифорния, США. В сентябре 2007 года компания была куплена Yahoo![1], а в январе 2010 VMware объявила о покупке у компании Yahoo подразделения Zimbra. В июле 2013 была куплена компанией Telligent Systems[2]. Среди продуктов для работы с электронной почтой Zimbra вполне может соперничать с Microsoft Exchange[3], а по своим возможностям сравнивается с Google Docs и Google Apps[1].
Более полное описание по ссылке
Системные требования:
Для оценки и тестирование
- 64-битный процессор с частотой 1,5 ГГц Intel / AMD
• Требования к оперативной памяти:
• Для single-server, минимум требуется 8 Гб оперативной памяти.
• Для установи multi-server, обращайтесь в отдел продаж Zimbra для рекомендаций.
• 5 Гб свободного места на диске для программного обеспечения и журналов
• Место под временные файлы для установки и обновлений *
• Дополнительное дисковое пространство для хранения почты
Для производственной среды
- Intel / AMD 2.0 ГГц + 64 битный процессор
• Требования к оперативной памяти:
• Для установки single-server, минимум требуется 8 Гб оперативной памяти.
• Для установки multi-server, обращайтесь в отдел продаж Zimbra для рекомендаций.
• Место под временные файлы для установки и обновлений *
• 10 Гб свободного дискового пространства для программного обеспечения и журналов (SATA или SCSI для производительности и RAID / Mirroring для резервирование)
• Дополнительное дисковое пространство для хранения почты
* Временные файлы: Zimbra требует 5 Гб для /OPT / Zimbra, плюс дополнительное пространство для хранения почты. Разные дополнения еще порядка 100 мегабайт.
Общие требования:
- Настройка межсетевого экрана. Межсетевой экран должен быть отключен.
• RAID-5 не рекомендуется для установок с более 100 пользователями.
Шаг 1 — подключиться к серверу, получить привилегии суперпользователя и установить следующие необходимые пакеты.
| # apt-get install libgmp10 libperl5.18 unzip pax sysstat sqlite3 libaio1 (если есть DNS сервер) |
Понадобится только прописать mx-запись, для вашего почтового сервера.
Если DNS сервера нет, то можно установить BIND или воспользоваться DNSMASQ
| # apt-get install libgmp10 libperl5.18 unzip pax sysstat sqlite3 libaio1 dnsmasq (если нет DNS сервера) |
Шаг 2 — Настройка сети
Задаем статический IP адрес. Для этого отредактируем файл:
| # nano /etc/network/interfaces |
Настройка хоста и DNS-сервера
Шаг 3 – редактируем файл hostname and hosts
| # nano /etc/hostname |
Меняем имя хоста на ваш домен такого типа mail.youdomain.ru, в моем случае это mail.salf-net.ru
| # nano /etc/hosts |
Добавляем такую строку 10.90.2.10 mail.salf-net.ru mail
Шаг 4 – редактируем файл конфигурации Dnsmasq
| # nano /etc/dnsmasq.conf |
Добавляем такие строки
| server=10.90.1.254 (DNS сервер)
domain=salf-net.ru
mx-host=salf-net.ru, mail.salf-net.ru, 5
mx-host=mail.salf-net.ru, mail.salf-net.ru, 5
listen-address=127.0.0.1
|
Шаг 5 – Перезагружаем систему
| # reboot |
Проверяем настройку DNSMASQ
| # dig salf-net.ru mx |
Установка Zimbra
Шаг 6 — скачивание дистрибутива с официального сайта
| # wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz |
Шаг 7 — разархивирование дистрибутива
| # tar -xvf zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz |
Шаг 8 — Установка Zimbra
Заходим в директорию разархивированного дистрибутива.
| # cd zcs* |
Зупуск установки
| # ./install.sh |
На вопрос согласны ли мы с лицензией:
| Do you agree with the terms of the software license agreement? [N] |
Тут надо нажать: «Y» и подтвердить Enter.
На данном этапе, Zimbra проверит необходимые пакеты и попросит вас согласиться на их установку.
Далее выбираем необходимые нам пакеты:
Zimbra-ldap обязателен, если не используете сторонний ldap сервер.
Zimbra-DNSCache нам не требуется, потому что мы используем Dnsmasq.
Zimbra-Proxy мне тоже не нужен.
На запрос
| The system will be modified. Continue? [N] |
Нажимаем «Y»
Ожидаем некоторое время.
Шаг 9 — настройка «Zimbra-store»
Надо задать пароль администратора.
Выбираем 6 Enter
Потом 4 Enter
Вводим пароль администратора.
Теперь введем букву «r» и нажмем Enter.
В меню:
| *** CONFIGURATION COMPLETE — press «a» to apply |
И на запрос Select from menu, or press «a» to apply config (? -help) введем букву «a» и нажмем Enter.
На запрос
| Save configuration data to a file? [Yes] |
введем y и нажмем Enter.
Следующий вопрос
Следующий вопрос
| Save config in file: [/opt/zimbra/config.9020] |
нажимаем Enter (по умолчанию) или новое имя файла, в который будет сохранена конфигурация.
На запрос
На запрос
| The system will be modified — continue? [No] |
введем «y» и нажмем Enter.
Далее выбираем “a” для применения конфигурации и далее “y”
Шаг 10 — Проверяем работу сервисов
Заходим под пользователем zimbra:
| # sudo su zimbra |
Выполняем команду
| # zmcontrol status |
Вывод должен быть таким:
После этого можно зайти через вэб-интерфейс
https://mail.salf-net.ru:7071 для администрирования zimbra сервер
http://mail.server.ru или https://mail.salf-net.ru для входа в вэб-клиент.
Подписаться на:
Сообщения (Atom)































