Проброс портов на D-Link DFL-210

Tuesday, 08 Mar 2011

В процессе войны с поганейшим агрегатом из всех что мне доводилось встречать, под названием D-Link DFL-210, возникла необходимость попасть в сеть клиента, при том, что VPN я поднять на нем пока не смог, ибо соединение устанавливается, но как то не понятно реализована внутренняя маршрутизация, хотя я настраивал точно по имеющимся в инете ФАКам, и после установления соединения, пингуется только внутренний интерфейс. Но это тема для другого разговора, а пока я быстро решил поднять на коленке проброс RDP на внутренний хост, с тем чтобы быстро решить необходимую мне задачу.

На D-Link сайте нашел веселые картинки, показывающие как и что сделать, но поскольку мне их публиковать ломы. то распишу руками.
1. Логинимся на рутер
2. Создаем объект на который будем пробрасывать порты:
Objects -> Address Book -> InterfaceAddresses -> Add IP4 Address
Name: Имя-сервера
Address: IP-адресс сервера

3. Создаем правила проброса портов:
Rules -> IP Rules -> Add IP Rule Folder -> Входим в новую папку и Add IP Rule (две штуки)

3.1. Правило проброса:
Вкладка General:
Action: SAT
Service: rdp
Source (interface/network): any/all-nets
Destination (interface/network): core/wan_ip
Вкладка SAT:
Включаем кнопочка на Destination IP
New IP Address: Имя-сервера (из п.2)
New Port: 3389
Включаем чекбокс: All-to-One Mapping: rewrite all destination IPs to a single IP

3.2 Правило прохождения пакета:
Вкладка General:
Action: Allow
Service: rdp
Source (interface/network): any/all-nets
Destination (interface/network): core/wan_ip

По версии D-Link на этой торжественной ноте можно говорить: Configuration -> Save and Activate, но у меня после этого канал поднимался где то на полторы минуты, после чего соединение висло, а рутер говорил что он был перезапущен из-за ошибки: “Could not establish bi-directional communication after configuration upload”. Зная как работает D-Link, я пришел к тому, что второе правило, которое гарантирует прохождение пакета- не отрабатывает тот самый пресловутый  bi-directional , который D-Link обещает всем выбравшим в действии правила Allow, для того чтобы не создавать два правила туда и назад. Но це оказалась не фича, а бага, поэтому я добавил третье правило:

Вкладка General:
Action: Allow
Service: rdp
Source (interface/network): wan/Имя-сервера (из п.2)
Destination (interface/network): any/all-nets

После этого коннект поднялся нормально, даже не смотря на ту же самую ошибку, которая так и осталась висеть в причине перезапуска, но уже не мешала стабильности соединения.

VN:F [1.9.13_1145]
Rating: 10.0/10 (3 votes cast)
VN:F [1.9.13_1145]
Rating: +3 (from 3 votes)

Разлочиваем 4Gb оперативной памяти в Windows 7 32бита

Monday, 29 Nov 2010

Прикупил я себе наконец то ноут, точнее не прикупил, а разжился, ну да не важно. вообщем отличная машинка HP ProBook 4320s, с Core i5 и 4мя гигами оперативки. На ней стояла 11 SuSe Linux, но меня она почему то совсем не возбудила, ибо после 10ки в которой я проработал года три до этого, выглядела убого, да и установлена была весьма специфически. Вообщем я её снес и решил поставить себе Windows 7. Вот тут то меня и ждали терзания из серии “не было у бабки проблем, купила бабка порося”. Ибо хотелось ставить 32битную версию, чтобы не иметь гимора с софтом и игрушками, но при этом не по-детски было жалко гига оперативки, который бы однозначно пропал в этом случае. На рабочую машину бы я поставил Server 2003, ибо его архитектура позволяет видеть более 3 гигов в 32битной версии, но поскольку 7 винда также базировалась на серверном ядре, я озадачился решением снятия искусственного ограничения от Microsoft, и как оказалось не напрасно. Тем более что 64битная винда забирает под свои процессы почти что в два раза больше памяти, так что выиграв гиг памяти я бы потерял 50% производительности, то есть в итоге еще и оказался бы в минусах.
Вообщем поставил я Windows 7, настроил все, и залез посмотреть что там пишет система. В свойствах компа была инфа 4GB (доступно 2,96Gb), что собственно и требовалось доказать. Попробовал для начала включить встроенную в винду поддержку PAE (Physical Address Extension)  которая как раз и была введена в винду для поддержки более 3Gb оперативной памяти, причем продолжая использовать 32битную адресацию, становится доступным память до 64Gb. Для этого запускаем msdos-promt и и в нем говорим следующее:
BCDEdit /set PAE forceenable
BCDEdit /set nolowmem on

После этого вроде как все должно начать летать и видиться, но у меня картина осталась той же самой, так что это не дало мне ни малейшего результата. После чего я решил таки рискнуть пропатчить систему найденным патчером для ядра.  Вкратце суть работы такова, на машине с процессором поддерживающим технологию PAE, данный патч  создает копию имеющегося  ntkrnlpa.exe после чего патчит его и по его мотивам создает новый файл ntkr128g.exe , который и грузит через скрипт AddBootMenu.cmd, который добавляет в boot-меню, так что при загрузке системы появится два типа загрузки – обычная и с поддержкой до 128GB . Для внесения изменений в систему запускаем патчик, говорим  ДА на тему внесения изменений, после чего в появившемся досовском окошке надо будет сказать Y, тем самым дав разрешение на вышеупомянутый патч. После этого система перегружается и при загрузке машина выдает 4GB (доступно 3,86Gb)

Для избавления от меню выбора идем в свойства «мой компьютер» там говорим Дополнительные параметры системы -> Загрузка и восстановление -> Параметры. Снимаем галку Отображать список операционных систем. Перегружаемся.

После всех этих манипуляций у меня появилась надпись в правом нижнем углу, гласившая  «Test Mode Windows 7 Build 7600» -не скажу что она мне доставляла неудобство, но чувство эстетического дискомфорта я все же при виде её испытывал, поэтому говорим WIN_окошко (что между правым Ctrl и Alt) + R и вбиваем  mcbuilder. Говорим ок, ждем выполнения и перезагружаем машину.

Собственно все- машина видит 4 гига, рапортует о том, что доступны 3.86Gb и главное что может пользовать эту область памяти для выполнения своих процессов- запустил три машины по 1.2Gb и все нормально шуршало- исключая хостовую операционку ибо она сама подтормаживала, как и должна была бы при использовании 256 метров.

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

VN:F [1.9.13_1145]
Rating: 9.2/10 (11 votes cast)
VN:F [1.9.13_1145]
Rating: +6 (from 8 votes)

VMware ESXi не понимает томов более 2TB

Sunday, 28 Nov 2010

Ставил у клиента сервак. Решили сделать из одного два, ибо шибко крутой прикупили клиенты, так чтобы не было избыточных мощностей, пришли к выводу что будет виртуализовывать и поднимать парочку. Собственно сконфигурил том в рейде, на 2.8 TB, запустил инсталлер VMware ESXi 4.1. Все поставилось быстренько, установил гипервизора, захожу в консоль, немного ковыряюсь с настройками сервера, и начинаю ставить Windows 2008.

Но тут возникает интересный момент- система видит единственный datastore размеров в 800Gb, и все. То есть в девайсах показывает что есть рейд контроллер, есть рейд массив на 2.8TB, но попытка обнаружения новых datastore не увенчивается успехом, так что в системе доступны только 800 гиг. Гуглю, лезу по форумам и обнаруживаю интересный момент, что VMware не может создавать хранилища больше двух террабайт, то есть у системы VMware и имеется ограничение на создание файлов размером более 2TB.

Чертыхаюсь, перегружаюсь- вижу что VMware видит том на аппаратном уровне, так что попытка разбить его на слайсы сразу будет увенчана неудачей. Собственно залезаю снова в рейдовский биос, сношу том и нарезаю его двумя кусками в 900Gb и 1900GB, после чего запускаю снова инсталлер. VMware видит оба куска, и я ставлю её на тот что  размером 900Gb. Все устанавливаю, загружаю систему, подключаюсь гипервизором- все замечательно: в системе два хранилища данных datastore, размерами в 900Gb и 1900Gb.

Резюме: Система виртуализации VMware ESXi не может создавать хранилища данных LUN размером превосходящие 2TB, в данном случае сказывают ограничения по размеру создаваемого файла. При этом если том превышает своими размерами 2TB, то система берет то количество дискового пространства, которое выходит за пределы 2TB и из них создает хранилище, отбрасывая 2TB за ненадобностью. В этой связи единственный способ борьбы- нарезка имеющегося дискового пространства массивами не превышающими 2TB, в этом случае VMware подхватывает их без проблем, и нарезанные массивы подключаются к настроенным системам, средствами VMware путем добавления новых дисков.

(more…)

VN:F [1.9.13_1145]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.13_1145]
Rating: 0 (from 0 votes)

После переезда сайта в Drupal открывается только первая страница

Saturday, 30 Oct 2010

Пришлось мне тут переносить один сайт на Drupal который моей конторе достался от одного разработчика- ue-бана. Вкратце, чел со своей конторой доил агентство как мог- выставив не высокие цены за разработку, вламывал в качестве работы над модулями в среднем от 10 до 24 часов за доработку стандартных модулей и прочее, при этом и грел их на хостинге. Когда я пришел и попросил объяснить собственно что к чему – чувак занял совершенно хамскую позицию. При том что агентство зачем то хостилось через него и когда ему сказали что платить за дедик 9к контора не хочет (он грузил меня конфигурациями которых у хостера нет в принципе), впал в неистовство, которое только усугубилось когда у него не получилось меня грузить на айтишные темы. Итогом стала его заява- забирайте все сайты сами как есть. После чего начал срать по мелочам- типо делай бэкап базы сам с фтп, при первом копировании системы оказалось что почему то переписалось все, кроме папок модулей, в подпапках modules, в третий раз сделали мне несколько бэкапов базы, причем помимо того что два снимка отличаются вдвое, еще и сайт перестал открываться.

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

Собственно для начала можно попытаться открыть ссылочку хостнейм/?q=admin/settings/clean-urls и зайти оттуда админом, но вероятнее всего ничего не получится, но если по этому адресу высветится такая панель логина- то это оно самое.
Для начала проверяем .htaccess на предмет записи вида:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>

Если оно есть и все равно ничего не работает, то вооружаемся кофием и идем в phpMyAdmin, где ищем по базе строчку clean_url, скорее всего она находится в табличке variable со значение s:1:”1″; которое мы меняем на значение s:1:”0″; после чего очищаем кэш всем табличкам начинающимся с префикса cache_ выбрав Очистить или TRUNCATE. После этого все начинает открываться, но без использования чистых ссылок, то есть в виде /?q=имя страницы
Собственно теперь последний момент- идем в админку и снова включаем чистые ссылки в настройке сайта: Administer > Site configuration > Clean URL.

VN:F [1.9.13_1145]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.13_1145]
Rating: +2 (from 2 votes)

Проблема с экспортом конфигурации на R65

Tuesday, 12 Oct 2010

Клиенты  попытались перенести шлюз Check Point R65 с одной машины на другую,  и получили не приятные проблемы в виде сообщения при попытке подтянуть конфигурацию с помощью утилиты upgrade_import.  Ошибка которую выводит консоль гласит: Error: Exported and imported machines are not cluster compatible.

Старый сервер однопроцессорный, второй двухпроцессорный.

Стали выяснять, оказалось что помимо R65 Adv Routing клиент устанавливает также HFA70, то есть получается что утилита upgrade_import на старой машине и новой различается версиями.  Собственно не смотря на поучения нашего продакта, который полез в глубины кластеризации шлюзов, посоветовал клиентам попробовать использовать одинаковые версии утилиты upgrade_import.

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

VN:F [1.9.13_1145]
Rating: 8.7/10 (3 votes cast)
VN:F [1.9.13_1145]
Rating: 0 (from 2 votes)

Управление автоповторами в Exim

Friday, 24 Sep 2010

На одном из почтарей под управлением exim возникала постоянно ситуация, когда при отправке письма на широковещательный внутренний адрес компании alloffice@odminblog.ru, в случае переполнения ящиков одного или нескольких пользователей, письмо ничинало отсылаться каждые 15 минут, после чего количество забитых ящиков еще больше увеличивалось и почтарь впадал в ступор. Возникало не из-за того что я первоначально криво все настроил, а из-за того что пользователи имея ящики по 200 метров не запаривались на их очистку, в добавок к чему сыпали мейлами по 15-20 мегабайт.

В этой связи возникла задача переписать стандартное правило автоповторов для exim. Для этого открываем конфигурационный файл и идем в самый его конец, в секцию RETRY. Там мы видим следующие строки:

########################################
#                      RETRY CONFIGURATION                           #
########################################
begin retry
# Domain               Error       Retries
*                 refused_A   F,2h,20m;
*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h

Это стандартное правило автоповторов для exim, и оно всегда имеет две звездочки, для того чтобы описать общее правило для всех доменов и ошибок, не описанных отдельным полем. Об этом описании мы поговорим позже, а в данной записи получается что в случае любой ошибки для любого домена повтор отправки будет осуществляться каждые 15 минут в течении двух часов, после чего с интервалами от одного часа до 16 часов, с множителем в 1,5, после чего в течении 4 дней попытка будет осуществляться каждые 6 часов. После истечения времени автоповтора exim отбивает адрес доставки и скитывает отправителю отлуп.

Само правило автоповтора создается по следующему шаблону:
<Domain><Error><Retries>
Первым пункт может включать как имя домена, так и, для сужения задачи, адрес получателя.
Второй пункт описывает специфическую ошибку, которые бывают следующих типов:
auth_failed – при неудачной аутентификации в случае отправки на хост из списка  hosts_require_auth
data_4xx   – при ошибке которая получается для команды smtp диалога DATA, или сразу же после команды
mail_4xx   – при ошибке которая получается для команды smtp диалога MAIL.
rcpt_4xx    – которая получается для команды smtp диалога RCPT
Также в этих трех ошибках, ошибка может задаваться полным номером, для сужения правила применения автоповтора.
lost_connection – при неожиданном закрытии SMTP-сессии со стороны сервера
refused_MX – при отказе в соединении к хосту определенному как почтовый сервер по данным из MX записи
refused_A – при отказе в соединении к хосту полученному не из MX записи
refused – при любом отказе в соединении
timeout_connect_MX – при таймауте попытки соединения с хостом определенномв MX-записи
timeout_connect_A – при таймауте попытки соединения с хостом полученным не из MX-записи
timeout_connect – при таймауте любой попытки соединения
timeout_MX – при таймауте во время соединения или в процессе SMTP-сессии с хостом, полученным из MX-записи
timeout_A – при таймауте во время соединения или в процессе SMTP-сессии с хостом, полученным не из MX-записи
timeout – при таймауте во время соединения или в процессе SMTP-сессии
tls_required – в сессии соединения сервер должен был использовать TLS (сервер определен в списке  hosts_require_tls), но либо TLS не был предложен, либо сервер прислал ответ 4xx на команду STARTTLS
quota  – при локальной доставке транспортом “ appendfile ” была превышена квота почтового ящика пользователя
quota_<time> – при локальной доставке транспортом “ appendfile ” была превышена квота почтового ящика, и к почтовому ящику не обращались время равное <time>
Также после этого поля возможно определить отправителя, тем самыв сузив правило автоповтора, например для приоритезации руководства компании:
senders=<address list>
Тогда правило автоповтора будет выглядеть
kremlin.ru  rcpt_452  senders=”mainperson@odminblog.ru”  G,8h,10m,

Третий пункт отпределяет само правило автоповтора:
<letter>,<cutoff time>,<arguments>
Буквой задает алгоритм вычисления правила автоповтора:
F – повторять автоповтор с определенным интервалом. Первое число определяет в течении какого периода осуществлять автоповтор, второе задает интервал.
G -  повторять автоповтор в геометрически увеличивающихся интервалах. Первое число определяет максимальное значение для интервала, второе начальное значение интервала, третье число множитель, используемый для увеличения интервала при каждом повторении.Если первое число не задано, то интервал увеличивается до значения параметра retry_interval_max, который не может быть больше 24h.
H – повторять отправку повтора со случайными интервалами. Используемые аргументы – такие же как для  G. Для каждого повтора, предыдущий интервал умножается на фактор, для получения максимума следующего интервала. Минимальный интервал – первый аргумент параметра, и актуальный интервал выбирается случайным образом из диапазона между ними.
Если в поле правила автоповтора ничего не задано, то сразу после неудачной попытки отправки, генерируется рикошет и уходит в сторону отправителя.

Исходя из всего вышеописанного создаем новое правило автоповторов:
####################################################
#                      RETRY CONFIGURATION                           #
####################################################
begin retry
# Domain               Error       Retries
alloffice@odminblog.ru    *
odminblog.ru    quota
*                 refused_A   F,2h,20m;
*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h

По этому правилу на все ошибки препятствующие доставки на адрес alloffice@odminblog.ru будет генерироваться рикошет, а при переполнении ящика кого либо из пользователей домена odminblog.ru также будет генерироваться рикошет

VN:F [1.9.13_1145]
Rating: 10.0/10 (2 votes cast)
VN:F [1.9.13_1145]
Rating: 0 (from 0 votes)

Удаленное X-подключение к серверу CentOS

Wednesday, 25 Aug 2010

Возникла некая необходимость управлять сервером шуршащим под CentOS, из винюка, причем не абы как, а через X-терминал. Поковырявшись, решили делать через Xming- бесплатный продукт, который можно скачать в инете в версии 6.9.0.31, на данный момент. За версию 7.5 дяди хочут бабла в размере 10 евриков, так что нам этот вариант не катит.

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

Схема работы простая: есть юниксовый сервер UNIX-Server под управлением CentOS на котором крутится X-клиент/сервер; есть виндовая машинка Win-XP на которой поднимается X-сервер Xming с помощью которого мы подключаемся к клиентской части UNIX-Server и по идее должны получить картинку с X-терминалом на рабочем столе виндовой машины.

Для начала скачиваем и устанавливаем на нашу Win-XP рабочую станцию X-сервер  Xming, откуда нить с инетовского зеркала, благо их предостаточно разбросано по инету. После установки пробуем настроить работу через Xdmcp.  Это специфический незашифрованный протокол, используемый для аутентификации и подключения Х-сервера к Х-клиенту.  Поскольку он не является закрытым, то его не рекомендуется использовать в открытых сетях, но это ограничение убирается при использовании сторонних средств шифрования. Ибо это наше первое знакомство, то не будем запариваться на безопасность и попробуем хотя бы запустить данный сервис.

Для этого на UNIX-Server открываем файло  /usr/share/config/kdm/kdmrc и в разделе [Xdmcp] проверяем, чтобы активность равенства Enable=true
После этого добавляем в файлы следующие поля:

/etc/gdm/custom.conf
[xdmcp]
Enable=true

/etc/X11/fs/config
# no-listen = tcp

Настроиваем логин: K Menu -> System -> Login Screen
Во вкладке Remote, меню Style выставляем  Same as Local
Во вкладке Security, ставим галку Allow local system administrator login

Перегружаем Х-сервер
# /etc/rc.d/init.d/xfs restart
после чего переходим к настройке виндового сервера. Запускаем приложение XLaunch, в котором выбираем
One Window -> Open session via XDMCP -> в Connect to host прописываем IP адрес UNIX-Server и ставим галку Use indirect connect (народ пишет, что её надо снять но в нашем случае заработало только с ней) -> можем оставить пустыми, либо прописать свойства терминала Х, например в Remote font server наш IP UNIX-Server, а в Additional parametrs for Xming строку инициализации десктопа без кавычек “-screen 0 800×600″ ->  Готово

Если все настроили правильно, то на выходе получаем консоль с приглашением нашего X-терминала.

VN:F [1.9.13_1145]
Rating: 6.3/10 (4 votes cast)
VN:F [1.9.13_1145]
Rating: +2 (from 2 votes)