Pull to refresh
120
0.2
Evengard @Evengard

Немного: реверсер, администратор, .NET программист

Send message

Как распутать уроборос роутинга в Linux

Reading time 7 min
Views 13K
image

Описание проблемы


Ситуация: у нас имеется один интерфейс eth0, «смотрящий» в интернет, с IP-адресом 192.168.11.11/24 и шлюзом 192.168.11.1. Нам нужно организовать интерфейс vpn0, который будет через VPN соединяться с неким сервером, и весь исходящий с этой машины трафик должен идти через этот интерфейс vpn0.

Примечание: я оставляю за скобками детали работы с IPv6, поскольку там хватает своих особенностей. Рассматривается только ситуация с IPv4.

Итак, мы берём в руки программу для подключения в VPN-у — она соединяется с неким VPN-сервером по адресу 10.10.10.10 и поднимает нам интерфейс vpn0 например с таким адресом: 192.168.120.10/24, шлюз 192.168.120.1. Казалось бы, всё хорошо, пинги через vpn0 ходят, коннект есть, он стабильный, осталось только прописать нечто вроде

ip route add default dev vpn0 metric 1000

чтобы перенаправить все соединения через новый интерфейс и…

И всё благополучно падает. Пропадает интернет, отваливается VPN, отключается ssh (если вы по нему подключены к хосту). Если приложение VPN-а не выключит интерфейс при потере соединения, то извне вы до этого хоста до ребута больше не подсоединитесь.

Что случилось?
Total votes 22: ↑22 and ↓0 +22
Comments 15

Домашний DPI, или как бороться с провайдером его же методами

Reading time 16 min
Views 238K

Долгое время я терпел ограничения РосКомНадзора и соответствующие действия провайдеров по различным ограничениям доступа к сайтам - но с определённого момента устал, и начал думать как бы сделать так, чтобы было и удобно, и быстро, и при этом с минимумом заморочек после настройки... Хочу оговориться, что цель анонимизации не ставилась.

Вообще, эта проблема имеет несколько решений... Но я решил бороться с провайдером их же методом.

...При помощи NGINX!
Total votes 246: ↑245 and ↓1 +244
Comments 187

Классы в lua, или избавляемся от двоеточия

Reading time 4 min
Views 29K
Как всем известно, в lua нет как таковых классов и объектов. Однако есть метатаблицы и синтаксический сахар.
С помощью указанных механизмов достаточно просто реализовать подобие классов.
В итоге и получается нечто такое:
Самый простой класс
local MyClass = {} -- the table representing the class, which will double as the metatable for the instances
MyClass.__index = MyClass -- failed table lookups on the instances should fallback to the class table, to get methods

-- syntax equivalent to "MyClass.new = function..."
function MyClass.new(init)
  local self = setmetatable({}, MyClass)
  self.value = init
  return self
end

function MyClass.set_value(self, newval)
  self.value = newval
end

function MyClass.get_value(self)
  return self.value
end

local i = MyClass.new(5)
-- tbl:name(arg) is a shortcut for tbl.name(tbl, arg), except tbl is evaluated only once
print(i:get_value()) --> 5
i:set_value(6)
print(i:get_value()) --> 6

(взято с lua-users.org/wiki/ObjectOrientationTutorial)

Всё это конечно хорошо, даже при определённой сноровке можно реализовать наследование…
Но где public и private члены класса? Дефакто в этом примере они все public. Да ещё и надо помнить, где использовать двоеточие:
MyClass:myFunc()

а где просто одну точку:
MyClass.myOtherFunc()

А статические члены класса? Неужели придётся отказываться?
Вот я и не захотел отказываться, и начал колхозить...
Total votes 10: ↑5 and ↓5 0
Comments 13

Заметки о MODX Revo от новичка

Reading time 10 min
Views 34K

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

Введение


Итак, что же такое MODX (кстати, пишется именно так — MODX, а не как название хаба — MODx)? Если читать официальный сайт — то это CMS. Однако, это лишь часть правды. На самом деле, MODX находится примерно посередине между CMS и CMF. Впрочем, любой, кто заинтересовался бы MODX это быстро бы узнал из других статей, поэтому не буду останавливаться на этом пункте подробней.

Поскольку MODX находится посередине между CMS и CMF, то её не так легко освоить, как простую CMS, вроде Wordpress или Joomla. Пожалуй, эта статья написана в целях раскрытия некоторых тонкостей, которые кажутся неочевидными на первый взгляд.

Читать дальше →
Total votes 36: ↑26 and ↓10 +16
Comments 23

Beta-тест Bitcasa своими руками

Reading time 4 min
Views 5.6K
img

Небольшое введение


Некоторое время назад (а точнее 15 сентября 2011 года) на Хабре промелькнула статья — «Облачный» сервис Bitcasa может стать серьезным конкурентом Dropbox
Вот мне и стало интересно, что же это за Bitcasa такая. И, как любопытный человек, я сразу же выдал им аж три своих email-а для участия в предварительном тестировании.

И сегодня, наконец, свершилось… На все три ящика упало приглашение.

Что из этого вышло, смотрим дальше. Внимание! Трафик
Total votes 42: ↑37 and ↓5 +32
Comments 73

Объявлены даты окончательного отключения Google Wave

Reading time 1 min
Views 1.3K
Сегодня Google прислал письмо, в котором указал даты окончательного отключения Google Wave. Отключение будет производиться в два этапа:
1. Перевод всех волн в режим «только чтение» — 31/01/2012
2. Окончательное полное отключение сервиса — 30/04/2012
Google рекомендует сохранять все свои данные с помощью встроенной функции экспорта в pdf.

Оригинальный текст письма под катом:
Читать дальше →
Total votes 31: ↑24 and ↓7 +17
Comments 26

Information

Rating
2,043-rd
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity