пятница, 5 июня 2015 г.

Создание собственных NS в ISP Manager

ВАЖНО: для успешного создания NS в ISP Manager нужно не менее 2 ip. Убедитесь, что вы добавили все IP из письма с данными от сервера/впс в разделе Списки IP-адресов. Если у вас всего один IP, то вы можете либо использовать free dns сервисы или dns регистратора, либо заказать второй IP через систему тикетов (раздел Биллинг)

  1. Добавляем домен (на котором создадим собственные ns1 и ns2) в раздел www-домены. (если уже туда добавлен, то не нужно ещё раз).
  2. Заходим в "настройка" -> "настройка dns". Там в графе "dns-сервера" прописываем ns1.вашдомен.ru. ns2.вашдомен.ru. (через пробел и после каждого dns точка обязательна). Ставим галочку "изменить для всех доменов" и нажимаем OK.
  3. Заходим в раздел "доменные имена" и дважды кликаем по домену, на котором создавали dns. Находим там ip-адреса для ns1 и ns2.
  4. Прописываем у регистратора для этого домена dns-сервера ns1.вашдомен.ru и ns2.вашдомен.ru с указанием их ip-адресов (это обязательно).
  5. По прошествии времени (до 24-х часов) вы сможете добавлять другие сайты в www-домены в панели и прописывать у них созданные dns-сервера. (уже без ip-адресов).

Более подробно можете изучить документацию на сайте разработчика http://ru.ispdoc.com/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2_%D0%B8%D0%BC%D0%B5%D0%BD_%D0%B2_ISPmanager.

понедельник, 1 июня 2015 г.

Linux Malware Detect

Поиск вирусов на сайте при помощи Linux Malware Detect


Содержание

 [убрать

Введение

Linux Malware Detect (LMD) или maldet - это специализированный инструмент для поиска вирусов, спам-скриптов, веб-шеллов и прочего вредоносного кода в файлах сайтов. Он может создавать отчеты и лечить инфицированные файлы.

Установка

Установка для CentOS и Debian одинакова:
cd /root
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
tar -zxvf maldetect-current.tar.gz
cd maldetect-1.4.2/
./install.sh
Установочный скрипт кладет исполняемый файл в /usr/local/maldetect/maldet и делает на него символическую ссылку /usr/local/sbin/maldet. Также скрипт создает файл /usr/lib/libinotifytools.so.0. Создается ежедневное cron-задание в /etc/cron.daily/maldet
Сразу же обновляются базы сигнатур.
Конфигурационный файл: /usr/local/maldetect/conf.maldet
Удаление программы с сервера:
rm -rf /usr/local/maldetect/  /etc/cron.daily/maldet /usr/local/sbin/maldet /usr/local/sbin/lmd

Использование

Запуск сканирования стандартных путей, если у вас установлена панель управления ISPmanager:
maldet -a /var/www/*/data/www
Сканировать только файлы, измененные за последние 5 дней:
maldet -r /var/www/*/data/www 5
По завершении сканирования будет выведено общее количество просканированных файлов, количество инфицированных и количество излеченных файлов. Также будет выведен номер отчета, который можно посмотреть командой, например:
maldet --report 040515-0743.23617
Обновить базы сигнатур:
maldet -u
Переместить найденные зараженные файлы в карантин (в каталог /usr/local/maldetect/quarantine):
maldet -q 040615-0925.31477
Вытащить файлы из карантина:
maldet -s 040615-0925.31477
Пробовать очистить зараженные файлы от вредоносных вставок кода:
maldet -n 040615-0925.31477
Добавить вредоносный код в базу сигнатур maldet:
maldet -c badfile.php

Настройка

Настроим автоматический запуск maldet по ежедневному расписанию cron.
Правим конфиг /usr/local/maldetect/conf.maldet:
# если хотим получать уведомления на почту
email_alert=1
email_subj="maldet alert from $(hostname)"
email_addr="ваша@почта.com"
# помещать файлы в карантин
quar_hits=1
# используем движок clamav для ускорения поиска
clamav_scan=1
Вносим изменения в crontab-файл для того, чтобы сканировались директории с сайтами при установленном ISPmanager:
vi /etc/cron.daily/maldet
Удаляем строки после:
if [ "$(ps -A --user root -o "comm" | grep inotifywait)" ]; then
       /usr/local/maldetect/maldet --alert-daily >> /dev/null 2>&1
else
Вставляем:
       # стандартные пути ISPmanager
       if [ -d "/var/www" ]; then
               /usr/local/maldetect/maldet -b -r /var/www/?/data/www 2 >> /dev/null 2>&1
       fi
fi

Проверка файлов сайтов без установки Linux Malware Detect на сервер

cd /root
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
tar -zxvf maldetect-current.tar.gz
cd maldetect-1.4.2/files
Устанавливаем значение переменной для разрешения запуска скрипта от пользователя:
vi conf.maldet
public_scan=1
Изменяем каталог, куда должна устанавливаться программа, на текущий каталог. Правим скрипт maldet:
vi maldet
Меняем
inspath=/usr/local/maldetect
на
inspath=$PWD
Запускаем maldet прямо из директории /root/maldetect-1.4.2/files:
./maldet -h

четверг, 7 мая 2015 г.

Мастер-класс по интеграции Битрикс с 1С

Вывод на странице производителя еще и списка его товаров (Битрикс)

Добавить справочник "Производители" в "Управление торговлей" 10


1) Открыть конфигуратор.
2) Конфигурация -> Открыть конфигурацию.
3) Справочники -> Правая кнопка -> Добавить справочник.
4) Откроется форма нового справочника -> Наименование (пишем) мегапрайсПроизводителиНоменклатуры
5) Закладка данные -> Длина кода 11
6) Готово! Справочник готов. Вы получили первый опыт конфигурирования 1С!

Теперь нужно добавить реквизит в номенклатуре.
1) Справочники -> Ищем Номенклатура.
2) Раскрываем -> Реквизиты -> Добавить
3) Внизу на щелкаем на Новый1 -> Свойства
4) Наименование -> мегапрайсПроизводитель
5) Тип (жмем кнопку выбора) -> Ищем и выбираем Справочники -> мегапрайсПроизводители
6) Готово!

Для вывода в форму списка (чтобы в справочнике было видно поле, можно делать сортировки и всегда работать с этим полем):
1) Там же в справочнике номенклатура Формы
2) ФормаСписка -> Щелкаем.
3) Открывается форма -> На ней правой кнопкой Размещение данных.
4) Ставим галочку на мегапрайсПроизводитель. ОК
5) Готово!

Вы все сделали! Нажимаем теперь кнопку F5 для принятия изменений (в базе никого не должно быть). На все вопросы надимаем ОК.
ГОТОВО! Теперь вы можете полноценно работать с производителями номенклатуры в своей базе.
Справочник и реквизит дадут больше возможностей работать со всеми вашими задачами.

Почему не через механизм дополнительных свойств? Через доп. реквизиты в 1С очень туго работать.
1) Для целей загрузки номенклатуры, поиски через доп реквизиты требуют сложных алгоритмов написания программ загрузки
2) Доп. свойства будут тормозить загрузку
3) Их неудобно просматривать
4) Доп. свойства не видны в обычных списках (а встроенные можно добавлять прям в справочник и ничего тормозить не будет, плюс там же сразу можно будет по нету отбирать и так далее). Для автозапчастей Производитель не подходит в качестве дополнительного реквизита.
5) Встроенный реквизит легко доступен для отборов и группировок. особенно если этот реквизит используется на каждом шагу.
6) Отчеты и обработки будут работать в 1000 раз быстрее с встроенным реквизитом.

среда, 6 мая 2015 г.

Bitrix. Товара Нет в наличии

галочка - Уменьшать количество при заказе
галочка - является "Торговым каталогом"
В настройках компоненты каталога товаров нужно пометить базовый тип цен для показа.




понедельник, 27 апреля 2015 г.

Восстановление пароля администратора HostCMS

v 5.0


Для восстановления пароля администратора в случае его утери необходимо иметь доступ к PhpMyAdmin или другому веб-интерфейсу для администрирования СУБД MySQL. Подключитесь к СУБД, выберите нужную базу данных в левом поле. В открывшемся списке таблиц выберите обзор таблицы "users_table". В столбце "User_name" найдите пользователя с Вашим логином и нажмите для него "редактировать". В открывшемся окне для поля "users_password" введите значение 21232f297a57a5a743894a0e4a801fc3, которое соответствует паролю "admin". Авторизируйтесь в системе с использованием Вашего логина и пароля admin, после чего обязательно измените пароля для этого логина.

Проль от базы тут modules/core/config/database.php


v 6.0

В корень кинуть  файл restore_password.php:

<?php
/**
 * Изменение пароля пользователя admin
 *
 * Порядок использования:
 * 1) Загрузите файл http://www.hostcms.ru/download/install/restore_password.php
 * 2) Разместите файл restore_password.php в корне сайта и вызовите http://адрес_сайта/restore_password.php
 * 3) Запомните выведенные логин и пароль.
 *
 * УДАЛЕНИЕ ФАЙЛА:
 * После выполнения файл пытается удалиться самостоятельно, если этого не произошло,
 * удалите файл restore_password.php с сайта вручную.
 */

require_once('bootstrap.php');

$login = 'admin';
$password = Core_Password::get();

$oUser = Core_Entity::factory('User')->getByLogin($login);
if ($oUser)
{
$oUser->password = Core_Hash::instance()->hash($password);
$oUser->save();

?><p>New login is <b><?php echo htmlspecialchars($login)?></b></p><?php
?><p>New password is <b><?php echo htmlspecialchars($password)?></b></p><?php
}
else
{
?><p>User not found</p><?php
}

Core_File::delete(CMS_FOLDER . 'restore_password.php');



пятница, 17 апреля 2015 г.

open_basedir, ISPMANAGER и BITRIX

open_basedir, ISPMANAGER и BITRIX:

При настройки производительности сайта, работающего на нашем любимом битриксе, возникла маленькая проблема, а именно - на сервере установлена панель ISPManager которая по умолчанию прописывает open_basedir для переменных окружения php. Оговорюсь сразу эта переменная нужна для обеспечения безопасности на хостинге, где много пользователей. А когда пользователь один, то этой особенностью можно пожертвовать и получить чуть ли не двух кратный рост производительности. 

Ну а теперь по существу как отключить эту фенечку :D 
Все описанное справедливо для сервера на базе FreeBSD 

1. Заходим в php.ini и проверяем чтобы safe_mode. Он должен быть в состоянии off 


safe_mode = Off


2. Ищем строку ;open_basedir = 
и меняем ее на 

open_basedir = none


3. Сохраняем файл php.ini 

4. Заходим в конфиг apache (httpd.conf), находим php_admin_value open_basedir "путь к сайту" на 

php_admin_value open_basedir none


5. Сохраняем httpd.conf 

6. перегружаем apache 

apachectl restart


Вот и все. Теперь лезем в битру, запускаем тест производительности и радуемся :D 

Так же эта директива помимо виртуального хоста в может быть включена еще для директории глобально в secure.conf 
Так что на всякий пожарный смотрим там тоже и правим по надобности.

воскресенье, 5 апреля 2015 г.

Asterisk iptables

В этой статье рассматривается простой пример конфигурации iptables для работы с Asterisk Проверим установлено ли IPTables
[root@localhost ~]# rpm -q iptables iptables-1.3.5-5.3.el5_4.1 Посмотрим текущие правила используя команду -L
[root@localhost ~]# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT icmp -- anywhere anywhere ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination Настройка общих правил. Создадим новые правила # iptables -P INPUT ACCEPT Эта команда разрешит все входящие подключения что позволит нам избежать блокировки нашего соединения, если конфигурирование производится через ssh. # iptables -F Данная команда сбросит все текущие правила по умолчанию и применит только созданное нами правило. # iptables -A INPUT -i lo -j ACCEPT Это простое правило разрешает все подключения на адаптер loopback. Интерфейс loopback определяется системой как lo и по умолчанию имеет адрес 127.0.0.1 Команда -А добавляет новое правило в конец заданной цепочки INPUT. Опция -i вместе именем интерфейса lo разрешает все виды трафика через заданный интерфейс. Опция -j указывает на цель данного правила ACCEPT, принять все подключения. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT Некоторые части этого правила уже вам знакомы. Далее присутствует опция -m которая используется для загрузки модуля state. Модуль state проверяет состояние пакета и определяет является ли он новым-NEW, уже созданным-ESTABLISHED или новым, но связанным-RELATED с уже установленным соединением. Состояние ESTABLISHED указывает на то, что пакет принадлежит уже установленному соединению через которое пакеты идут в обоих направлениях. Признак NEW подразумевает, что пакет открывает новое соединение или пакет принадлежит однонаправленному потоку. Признак RELATED указывает на то что пакет принадлежит уже существующему соединению, но при этом он открывает новое соединение. iptables -A INPUT -p tcp --dport 22 -j ACCEPT Это правило добавляется к цепочке INPUT и говорит, что все пакеты, приходящие по протоколу TCP (-p tcp), на порт 22 (–dport 22), должны быть приняты(-j ACCEPT). Используется для подключения по ssh c портом по умолчанию. Если вам требуется открыть доступ к веб серверу цепочка будет выглядеть также, за исключением номера порта. iptables -A INPUT -p tcp --dport 80 -j ACCEPT Хочу заметить, что php приложения являются очень уязвимым местом часто используемым для взлома Asterisk. iptables -P INPUT DROP Помните, первое правило? Когда мы устанавливаем политику по умолчанию для входных цепей принять? Это правило меняет политику по умолчанию для входных цепочек обратно в DROP, что и требуется, если вы хотите на самом деле блокировать трафик поступающий на ваш сервер. iptables -P FORWARD DROP Запретим маршрутизацию трафика iptables -P OUTPUT ACCEPT Разрешим весь исходящий трафик. service iptables save Сохраним созданные правила. Правила для Asterisk Рассмотрим правила для SIP, RTP, IAX, AMI iptables -A INPUT -p udp -m udp --dport 5060 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 5061 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 4569 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 5038 -j ACCEPT Если вы используете TCP: iptables -A INPUT -p tcp -m tcp --dport 5060 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 5061 -j ACCEPT iptables -A INPUT -p udp -m udp –dport 5060 -j ACCEPT – это правило разрешает инициацию SIP подключений к вашему серверу Asterisk от удаленных пользователей или провайдера. Если у вас нет удаленных пользователей, а например только sip транк от провайдера, хорошая идея разрешить инициацию только с определенных ip адресов или сетей. iptables -A INPUT -p udp -m udp -s 123.123.123.123 --dport 5060 -j ACCEPT iptables -A INPUT -p udp -m udp -s 192.168.0.0/24 --dport 5060 -j ACCEPT Первое правило разрешает соединение только с адреса 123.123.123.123, второе только с адреса 125.125.125.125. Третье из сети 192.168.0.XXX для ваших локальных абонентов. iptables -A INPUT -p udp -m udp –dport 10000:20000 -j ACCEPT – Данное правило разрешает RTP трафик. Кода иницировано SIP соединение по порту 5060 голосовые потоки направляются на порты из указанного диапазона. Хочу также заметить что многие АТС используют для инициации SIP соединения и для RTP трафика разные интерфейсы. Т.е. если адрес SIP сервера вашего провайдера 123.123.123.123, то RTP трафик, к примеру, может исходить с ip адреса 123.123.123.124 и т.п. Диапазон rtp портов задается в файле /etc/asterisk/rtp.conf. iptables -A INPUT -p udp -m udp –dport 4569 -j ACCEPT – Разрешает подключения по протоколу IAX. В отличие от SIP для инициации соединения и для голосовых пакетов RTP используется один и тот же порт. iptables -A INPUT -p tcp -m tcp –dport 5038 -j ACCEPT – Разрешает подключения к Asterisk Manager Interface. service iptables save Сохраним новые правила в debian и ubuntu добавили пакет iptables-persistent который использует iptables-save/iptables-restore #service iptables-persistent Usage: /etc/init.d/iptables-persistent {start|restart|reload|force-reload|save|flush} Фильтрация по именам сканеров iptables -I INPUT -p udp --dport 5060 -m string --string "friendly-scanner" --algo bm -j DROP iptables -I INPUT -p udp --dport 5060 -m string --string "sip-scan" --algo bm -j DROP iptables -I INPUT -p udp --dport 5060 -m string --string "sundayddr" --algo bm -j DROP iptables -I INPUT -p udp --dport 5060 -m string --string "iWar" --algo bm -j DROP iptables -I INPUT -p udp --dport 5060 -m string --string "sipsak" --algo bm -j DROP iptables -I INPUT -p udp --dport 5060 -m string --string "sipvicious" --algo bm -j DROP Настройка IPtables в несколько кликов Смотрите также: NAT, SIP и Asterisk Asterisk + Fail2Ban iptables, asterisk artikle/iptables.txt · 

1061: служба в настоящее время не может принимать команды? - есть ответ - Вопросы и ответы



  1. netsh wlan stop hostednetwork
  2. перезагрузка
  3. включить общий доступ (к vpn)
  4. netsh wlan start hostednetwork 

пятница, 3 апреля 2015 г.

Настройка VPN подключения l2tp на сервере Centos 6.5

Инсталляция необходимого ПО


# yum install -y xl2tpd
# chkconfig --level 345 xl2tpd on


Настройка 


# cp /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.bkp
# nano /etc/xl2tpd/xl2tpd.conf
[global]
access control = yes
auth file = /etc/ppp/chap-secrets

[lac moyvpn]
lns = vpn.domen.ru
redial = yes
redial timeout = 10
require chap = yes
require authentication = no
name = имя_пользователя
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
require pap = no
autodial = yes
tunnel rws = 8
tx bps = 100000000
flow bit = no


# cp /etc/ppp/options.xl2tpd /etc/ppp/options.xl2tpd.bkp
# nano /etc/ppp/options.xl2tpd
asyncmap 0000
name имя_пользователя
remotename L2TP
ipparam moyvpn
connect /bin/true
mru 1460
mtu 1460
nodeflate
nobsdcomp
persist
maxfail 0
nopcomp
noaccomp
noauth
novj
novjccomp
noipx
nomp
refuse-eap
refuse-pap
unit 0


# cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bkp
# nano /etc/ppp/chap-secrets
имя_пользователя * пароль *


# service xl2tpd start


Ждем получения ip адреса (по разному от сразу до 3-х минут).

# less /var/log/messages
Jan  5 21:00:07 gateway pppd[7958]: local  IP address 95.31.31.8
Jan  5 21:00:07 gateway pppd[7958]: remote IP address 85.21.0.243


Появляется интерфейс ppp0

# ifconfig ppp
ppp0      Link encap:Point-to-Point Protocol
          inet addr:95.31.31.8  P-t-P:78.107.1.154  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1460  Metric:1
          RX packets:3 errors:0 dropped:0 overruns:0 frame:0
          TX packets:87540191 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:30 (30.0 b)  TX bytes:39058515021 (36.3 GiB)


Таблица маршрутизации выглядит следующим образом.

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
bras409-l0.msk. *               255.255.255.255 UH    0      0        0 ppp0
192.168.2.0     *               255.255.255.0   U     0      0        0 eth1
10.111.0.0      *               255.255.248.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
link-local      *               255.255.0.0     U     1003   0        0 eth1
default         10.111.0.1      0.0.0.0         UG    0      0        0 eth0


Получаю данные о присвоенном Default Gateway
# eth0_gw=`/sbin/route -n | awk '/^0.0.0.0/ {print $2}'`
# echo $eth0_gw
10.111.0.1


Получаю данные о присвоенном нам сервере авторизации L2TP
# vpn_server=`/sbin/route -n | awk '/ppp0/ {print $1}'`
# echo $vpn_server
85.21.0.243



Возможно, что предварительно нужно прописать маршруты до dns и до l2pt сервера.
Последний раз когда настраивал, прокатило и без них.

route add -host 85.21.192.3 gw $eth0_gw
route add -host 213.234.192.8 gw $eth0_gw
route add -host 85.21.192.5 gw $eth0_gw

# route del default
# route add default dev ppp0
# route add -host $vpn_server gw $eth0_gw


Вот что получилось. (Поднят ppp интерфейс и по умолчанию пакеты отправляются ему).
При этом маршрут до L2TP сервера должен быть прописан. (Иначе, сервер не знает где ему авторизовываться, интерфейс ppp падает, все перестает работать).

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
85.21.0.243     10.111.0.1      255.255.255.255 UGH   0      0        0 eth0
85.21.0.243     0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
10.111.0.0      0.0.0.0         255.255.248.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0


Пинг пошел.

# ping ya.ru
PING ya.ru (93.158.134.3) 56(84) bytes of data.
64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=1 ttl=55 time=3.91 ms
64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=2 ttl=55 time=4.00 ms


Остается только настроить NAT.

-----------------------------------------------------

Если нужно добавить статические маршруты, можно это сделать в файле:
# vi /etc/sysconfig/network-scripts/route-eth0

10.0.0.0/8 via 10.111.0.1
62.205.179.146 via 10.111.0.1
85.21.79.0/24 via 10.111.0.1
85.21.90.0/24 via 10.111.0.1
85.21.52.198 via 10.111.0.1
85.21.52.254 via 10.111.0.1
85.21.138.3 via 10.111.0.1
83.102.146.96/27 via 10.111.0.1
83.102.237.231 via 10.111.0.1
195.14.50.1 via 10.111.0.1
195.14.50.3 via 10.111.0.1
195.14.50.16 via 10.111.0.1
195.14.50.26 via 10.111.0.1
85.21.192.3 via 10.111.0.1
213.234.192.8 via 10.111.0.1
85.21.192.5 via 10.111.0.1

Split / разбить dump

//Разбить дамп по 50000 строк for i in `ls *.sql`; do split -d -l 50000 -a 4 --additional-suffix=.sql $i "$(basename "$i" .sq...