двухфакторная аутентификация пользователей vpn посредством mikrotik и sms | savepearlharbor

Почему среди программистов из индии так много представителей высших каст?

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

«Доступ к качественному начальному образованию неодинаков во всех сообществах. Семьи на вершине кастовой иерархии, в основном, богаче, и могут позволить себе школы на английском языке с лучшими преподавателями, не считая простых бытовых удобств. В это время бедняки обучаются на родных языках»

Раджеш Рамачандран, старший преподаватель Университета Монаш, Малайзия.

 Это означает, что многие дети из доминирующей касты получают преимущество.

Аспирантка и ее брат были выпускниками в первом поколении в своей семье — до них никто высшего образования в их семье не получал. 

«Не говоря уже о том, чтобы научить меня, как поступить в IT, никто в моей семье не мог помочь мне с базовой математикой или английским языком в школьные годы»

Джиоти Лавания

Ее родители с трудом прошли среднюю школу. Это верно для многих семей далитов, объяснил Прашант Тамбе, общественный активист, основавший колледж информационных технологий и коммерции под названием Modern College в Нагпуре. «Многие из них грамотны в первом поколении; им никто не помогает дома», сказал Тамбе.

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

«Степень бакалавра можно получить на родном языке в ближайшем. А инженерные науки, в основном, преподаются на английском языке»

Прашант Тамбе

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

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

Как раз для обеспечения более широких возможностей в условиях такого неравенства, были разработаны квоты — школы или колледжи должны принимать определенное количество учащихся-далитов каждый год. Но система не всегда работает так, как задумано.

Престижные индийские технологические институты, или IITs, подпадают под утвержденную правительством квоту резервирования от 7,5% до 27% дл разных каст. Но квоты не обязательно обеспечивают разнообразие в этих элитных учреждениях.

В декабре 2020 года в ответ на заявку, поданную студенческой организацией Ambedkar Periyar Phule Study Circle, ИИТ Бомбей заявил, что 11 факультетов (из них 4 инженерных факультета) не приняли ни одного студента по квотам с 2022 по 2022 год. Два факультета вообще не принимали таких студентов. А некоторые заведения вообще не ответили на запрос.

Почему в it индии есть касты

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

После того, как Индия получила независимость в 1947 году, равноправие каст было закреплено в конституции, а правительство ввело систему резервирования.Это нужно было, чтобы предоставить далитам и другим кастам (которых сотни, если не тысячи, а не четыре) доступ к образованию и государственной работе, потому что их вообще никуда не брали.

В результате возможность трудоустройства в правительстве для представителей доминирующих каст (или «общей категории», которые составляют около 30% населения в целом) сократились примерно с 73% до примерно 50%. 

«Это подтолкнуло доминирующие касты работать в другой, быстрорустущей области —  ИТ-индустрии, на которую влияние власти правительства было гораздо менее слабым. Сектор по-прежнему остается в значительной степени нерегулируемым»

Амандип Сандху, технический писатель и автор. 

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

На ИТ, в которых весной 2021 года было занято около 4,5 миллионов человек, приходилось 8% ВВП Индии в 2020 году.

«В Индии работа в ИТ-секторе — это возможность подняться по экономической лестнице в пределах одного поколения»

Мурали Шанмугавелан, научный сотрудник некоммерческой исследовательской организации Data and Society. 

Поэтому рабочие места в сфере технологий пользуются большим спросом.

Казалось бы, IT — прогрессивная индустрия, в которой действуют глобальные законы относительного равенства, а значит кастовость должна исчезнуть хотя бы там?

Оказалось, что это вообще не так.

Технологии не помогли ввести низшие касты в общество и стереть границы. Границы в голове и они никуда не исчезли. Кастовая иерархия просто повторила себя в отрасли, потому что почти нет никакого регулирования — компании же частные.

В одном отчете 2022 года о кастах в индийском ИТ-секторе есть вывод, что «кастовая система не исчезает из индийского общества, скорее, она резко адаптируется к современным условиям».

И если вы думаете, что кастовость работает только в Индии, то вы ошибаетесь. Она переезжает вместе с ее носителями.

В США произошел случай, который недавно привлек внимание всего мира к этой проблеме. В июне 2020 года Калифорнийский департамент по вопросам справедливой занятости и жилья (прим: это не кривой перевод, он реально так называется) подал иск против американского технологического конгломерата Cisco, обвинив в дискриминации индийского инженера—далита. Притом в жалобе указали его имя как «Джон Доу», из-за его касты.

Инженер, иммигрировавший из Индии в США, утверждал, что двое его коллег из доминирующей касты (также индийских иммигрантов), преследовали его. Знаете, что ему ответили в компании? Что дискриминация по кастовому признаку — это нормально!

Осенью 2021 года дело было добровольно прекращено, а позже передано на рассмотрение на уровне штата, где оно все еще продолжается.

И если кажется, что это единичный случай, то нет — о таких случаях уже писали на Хабре.

Но даже несмотря на то, что это дело попало в заголовки газет в США, технологическая индустрия Индии по-прежнему молчит о кастовых предубеждениях. Анил Вагде — член Международного центра Амбедкар, базирующейся в США организации, которая выступает за демократию в индийском обществе и которая была принята в качестве amicus curiae, или «друга суда», в деле Cisco.

Ppp profile

Создаем профиль в котором устанавливаем idle-таймаут соединения. Время должно быть меньше чем указанное в следующем скрипте On Up, в противном случае, если авторизация не была произведена, то после удаления списка из address-list пользователь получит доступ на время равное разнице (idle-таймаут минус address-list timeout)

Далее на последней вкладке Script добавляем:

Смысл скриптов

Даже если вы пробились, вас вычислят

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

Хемант, сотрудник фармацевтической технологической компании, раньше работал в ченнайской фирме, которая разрабатывала ПО. Руководство компании было, в основном, из браминов (брахманов) — тех, кто находится на вершине кастовой иерархии. Как он там оказался?

«Моя фамилия может сойти за фамилию тамильского брамина, поэтому я не сталкивался с дискриминацией. Они узнали о моей касте, когда мы пошли на командные обеды, и я ел невегетарианскую пищу»

Хемант

Многие доминирующие кастовые сообщества придерживаются вегетарианства. Хемант сказал, что он не подвергался остракизму из-за своего выбора в еде, но он чувствовал, что с тех пор его коллеги воспринимали его по-другому. «Я больше не был частью стаи» — сказал он.

Его коллеги начали обедать без него.

Дополнение. Даже если неприкасаемый сможет отучиться, выучить английский до идеала и научиться программировать, он НИКОГДА не станет своим в индийском IT. Его/ее все равно вычислят и тогда начнется.

Чем-то похоже на кастовуюклассовую систему в Англии (неудивительно, сколько лет Индия была колонией). Там вы тоже никогда не станете своим среди аристократии, сколько бы денег вы ни заработали. Различия между классами, а в особенности, между аристократией и не аристократами, выражаются не только в поведении, акценте, но даже физически.

Дальше — больше, возникает «мохнатая рука»

«Большинство менеджеров по найму работают в ведущих учебных заведениях, и они, как правило, ищут выпускников аналогичных учебных заведений. Если вы где-то пересекались с ними в их карьере, они доверяют вам больше»

Тенможи Саундарараджан, исполнительный директор базирующейся в США организации по защите гражданских прав далитов Equality Labs.

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

«Но, если технологическая индустрия в значительной степени ограничивается городскими, англоговорящими кандидатами, то они просто переупаковали старые формы кумовства»

Шанмугавелан из Data and Society.

По словам Винода А.Дж., генерального секретаря Всеиндийского форума ИТ-работников, большая часть технического найма происходит через рефералов. «Именно так люди из одних и тех же сообществ поднимаются по карьерной лестнице».

Однако, если ситуация меняется и далит специально вербует далитов, это воспринимается по-другому. Чандру родился в семье далитов, занимает руководящую должность в одной из ведущих компаний-разработчиков ПО в Индии. Он намеревался нанять 6 человек для их офиса в центральном городе Пуна. «Я получил рекомендации от людей, которым я доверяю, и набрал их на основе их способностей»

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

Даже в технологических компаниях, которые нанимают более разнообразный персонал, наблюдается расслоение ролей. 

«В то время как выпускники IITs и других ведущих учебных заведений получают лучшие рабочие места [в транснациональных корпорациях и более сложные технические должности в известных компаниях], выпускники колледжей второго и третьего «сорта», как правило, попадают на более рутинные и низкопробные рабочие места»

Цитата Кэрол Упадхья из статьи Employment, Exclusion and ‘Merit’ in the Indian IT Industry

Куда же тогда принимают далитов?

Например, несколько крупных индийских компаний, предоставляющих программные услуги, предпочитают нанимать студентов из кампусов не «первого сорта». Как сказал Упадхье один менеджер по персоналу, им нужны «парни, которые могут просто сидеть и программировать, не задавая вопросов».

Остальных берут в обслуживающий персонал.

Задача 1

В процессе разработки данного решения была поставлена задача минимизировать количество usb-модемов – уменьшив стоимость владения, упростить администрирование, локализовать модемы в одном месте и тем самым улучшить ремонтопригодность системы.

Было решено использовать один роутер установленный на «надежном канале» как базовый SMS-шлюз. Единственное я не знал какова будет нагрузка на систему, справятся модемы и не заблокирует ли оператор. Поэтому я заложил возможность подключения нескольких модемов и дальнейшего разбиения системы на группы.

Задача 2

Предусмотреть возможность использования локальных сим-карт в зоне установки роутера.Пример: широкая филиальная сеть с несколькими магазинами в Казахстане. Отправка sms-сообщения из РФ будет стоить достаточно дорого. Данное решение позволяет сотрудникам из РК получать sms с локального номера.

Но в процессе размышлений оказалось, что решение уже было найдено и реализовано в Задаче 1.

Задача 3

Авторизация туннеля с мобильного устройства без необходимости физически находиться на авторизуемом устройстве.

Цель – возможность авторизовывать не только пользовательские туннели, но и любые vpn-соединения: Mikrotik->Mikrotik, Сервер->Mikrotik и т.д При этом пользователю, ответственному за данные туннели, необходимо просто перейти по ссылке из SMS сообщения, в которой также отображается какой туннель хочет авторизоваться.

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

Решение данной задачи уже однозначно подразумевало использование RouterOS API (или SSH). Победу одержало API, как наиболее простой вариант.

Личные истории

Технологическая индустрия Индии оценивается в 194 миллиарда долларов. Для сравнения «По оценке ассоциации РУССОФТ, размер ИТ-рынка России в 2020 г. достиг $34,1 млрд».

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

Rest of World опросил 35 работников технологической отрасли. Многие из них не решались делиться своими историями публично, опасаясь негативной реакции на своих рабочих местах или негативного влияния на их будущие карьерные перспективы.

«Кастовая дискриминация ощущается на более глубоком уровне. Не нужно ничего говорить, но небольшие действия, интонация или даже язык тела свидетельствуют о предвзятом отношении к неблагополучным кастам на рабочем месте»

Дхрува, технический работник из неблагополучной касты, работающий в крупной фирме edtech.

Кастовая дискриминация не обсуждается, но она есть. Например, вот история. Когда Хен Манодж (имя изменено) устроился на свою первую работу в технологической компании в Бангалоре в декабре 2022 года, все было хорошо. В первый же день босс прислал коробку шоколадных конфет, а коллеги рассказали ему о своих связях с Индийским технологическим институтом в Мадрасе, где они учились.

Но утром 20 января 2022 года что-то изменилось. Тимлид Маноджа поприветствовал его ухмылкой, а за обедом коллега небрежно заметил: «Я не знал, что ты парень из резервации»

Дополнение. В оригинале это «reservation guy». Как перевести — непонятно: «резервированный парень», «парень с квотами»? Я оставил «парень из резервации»

Резервации в Индии — это не то же самое, что в США.

В индийской ИТ-индустрии «резервирование» — это почти ругательное слово. 

Резервации — это скорее квоты для нацменьшинств, кастовых меньшинств, для исторически угнетенных людей. Квоты дают на образование или при приеме на работу. В некоторых штатах есть квоты и при продвижении на службе.

Манодж не сказал своим коллегам, что он далит, член самой угнетенной группы в традиционной кастовой системе Индии. 

Дополнение. Далиты — это неприкасаемые. Они даже в кастовую систему не входят, они, по факту, ниже. Над далитами буквально издеваются, а полиция и суды не принимают жалобы и заявления. Например в статье When It Comes to Dalit and Tribal Rights, the Judiciary in India Just Does Not Get It это описывается, а здесь — случай, когда брахман перерезал горло неприкасаемому из-за того, что тот вошел в одно помещение с брахманом и тем самым осквернил все вокруг. В 2022 году.

Настройка и код

Теперь перейдем от идейной части к настройке Mikrotik, коду и их описанию

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

«Поскольку высшие касты индусов составляют почти 67% выпускников инженерных и технологических вузов, неудивительно, что более 70% ИТ-персонала составляют высшую касту»

Кэрол Упадхья в своей статье 2007 года «Занятость, исключение и «заслуги» в индийской ИТ-индустрии»

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

Варун окончил университет в 2021 году и работает в небольшой фирме по разработке программного обеспечения в Гуруграме, учился в инженерном колледже в северном индийском штате Харьяна. Однажды его попросили рассказать о демонетизации во время групповой дискуссии.

Он замер на несколько минут, не в силах говорить. Нельзя сказать, что он не знал, что премьер–министр Нарендра Моди в попытке обуздать «черные деньги» запретил 86% банкнот страны в ноябре 2022 года. Однако он был более знаком с терминами демонетизации на хинди — notebandi или vimudrikaran.

После группового обсуждения проводятся личные интервью. Когда Тамбе, который позже основал Modern College, проводил собеседования, он «лично пригласил студентов из угнетенных каст прийти на собеседования. «Почти 90% не приходят на собеседования, поскольку боятся, что их знания английского языка не соответствуют требованиям».

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

Про обучение неприкасаемых в вузах

Поступление в ВУЗ рассматривается как билет в «лучшую» жизнь, поскольку эти колледжи входят в число ведущих инженерных институтов мира и ежегодно привлекают лучших рекрутеров со всего мира. Но даже если ученики-далиты преодолевают трудности своего раннего образования, чтобы поступить, они часто сталкиваются с кастовыми предрассудками.

  • 18 студентов-далитов в ведущих высших учебных заведениях Индии покончили с собой в период с 2007 по 2022 год, став жертвами дискриминации по кастовому признаку.

  • В 2021 году видеозапись, на которой доцент ВУЗа Харагпур оскорбляет студентов из резервации в подготовительном классе, вызвала возмущение по поводу того, как обращаются с меньшинствами в элитных учебных заведениях Индии.

  • Вагде, который был принят в Индийский институт менеджмента в Калькутте в 1996 году, сказал, что один профессор подозревал, что его первоначальный вклад в ключевой проект был не его собственным. «Они не могли поверить, что кандидат из низшей касты может это сделать»

Когда студентам из менее привилегированных слоев общества удается преодолеть многочисленные препятствия в получении высшего образования, они сталкиваются со следующим препятствием: поиском работы.

Серверная часть на php

Ниже приведен код. Он достаточно подробно комментирован, поэтому не буду писать лишний текст. Самое главное – заменить данные в $host и $ruid_data на свои.

index.php

<?php // ------------------------------------------------------------------------------// Copyright (с) 2020// Author: Dmitri Agababaev, [email protected]//// Copyright by authors for used RouterOS PHP API class in the source code files//// Redistributions and use of source code, with or without modification, are// permitted that retain the above copyright notice// ------------------------------------------------------------------------------ require_once('routeros_api.class.php'); // Адрес по которому доступен данный скрипт$host = 'http://synome.ru/';// МАССИВ ДАННЫХ ВСЕХ РОУТЕРОВ, А ТАКЖЕ РОУТЕРА ЯВЛЯЮЩЕГОСЯ SMS-ШЛЮЗОМ$ruid_data = array( // роутеры учавствующие в авторизации // пароль в md5 , глобальный ip-адрес, логин входа на роутер, пароль, SMS-шлюз через который происходит отправка SMS 'vrG7yYMbZ6' => array('mdpass' => '5568ba82f332494d9ff8754b51e7b28a', 'ip' => '10.10.0.1', 'login' => 'user_vpn', 'password' => 'kji&@11az', 'smsgw' => 'SMS_gw1'), // SMS-шлюзы // ip-адрес шлюза (глобальный или локальный если в одной сети с сервером), логин, пароль, порт USB-модема, канал USB-модема 'SMS_gw1' => array('ip' => '172.16.1.3', 'login' => 'sms2F', 'password' => 'skIU8w!0', 'port' => 'usb1', 'channel' => '0')); // ВХОДНЫЕ ПРОВЕРКИ ЗАПРОСОВif (!$_REQUEST) die('Request error'); // если запроса нет – сбросif (!$_REQUEST['ruid']) die('Request error'); // если не указан ruid - сбросif (!array_key_exists($_REQUEST['ruid'], $ruid_data)) die('Request error'); // если роутер не существует – сбросif ($_REQUEST['auth']) autorize(); // если запрос на авторизацию, то пускаем без пароля и проверяем авторизациюif (!ruid_auth()) die('Request error'); // проверяем пароль роутера для отправки SMSif ($_REQUEST['tel']) send_authcode(); // если задан номер телефона, отправляем SMS // ПРОВЕРКА НА НАЛИЧИЕ РОУТЕРА В СПИСКЕ РАЗРЕШЕННЫХ и пароля авторизацииfunction ruid_auth() { global $ruid_data; if (!$_REQUEST['pass']) return false; // если пароль не задан – сброс // проверяем md5-хэш пароля if (md5($_REQUEST['pass']) == $ruid_data[$_REQUEST['ruid']]['mdpass']) return true; return false;} // ФУНКЦИЯ ОТПРАВКИ ССЫЛКИ С КОДОМ АВТОРИЗАЦИИ ЧЕРЕЗ ROS APIfunction send_authcode() { global $ruid_data; global $host; $sms_gw = $ruid_data[$_REQUEST['ruid']]['smsgw']; // данные sms-шлюза // генерируем код авторизации $auth_code = substr(str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ123456789'), 0, 5); // подключаем класс $API = new RouterosAPI(); // Формируем сообщение отправляемое пользователю – только eng или транслит $message = 'To autorize user '.$_REQUEST['tel'].' connection open – '.$host.'?ruid='.$_REQUEST['ruid'].'&auth='.$auth_code; // если подключились отправляем SMS if ($API->connect($ruid_data[$sms_gw]['ip'], $ruid_data[$sms_gw]['login'], $ruid_data[$sms_gw]['password'])) { // Команда отправки SMS $ARRAY = $API->comm("/tool/sms/send", array( "port"=>$ruid_data[$sms_gw]['port'], "channel"=>$ruid_data[$sms_gw]['channel'], "phone-number"=>$_REQUEST['tel'], "message"=>"To autorize user ".$_REQUEST['tel']." connection open – ".$host."?ruid=".$_REQUEST['ruid']."&auth=".$auth_code,)); // если отправка не удалась и получили ошибку модема, то выполняем сброс питания usb для перезагрузки модема if($ARRAY['!trap']) { $API->comm("/system/routerboard/usb/power-reset"); die('Stop with error: '.$ARRAY['!trap'][0]['message'].' Making power reset of usb-port');} } $API->disconnect(); die($auth_code);} function autorize() { global $ruid_data; // подключаем класс $API = new RouterosAPI(); if ($API->connect($ruid_data[$_REQUEST['ruid']]['ip'], $ruid_data[$_REQUEST['ruid']]['login'], $ruid_data[$_REQUEST['ruid']]['password'])) { // если подключились отправляем команду $API->write('/ip/firewall/address-list/print', false); $API->write('?comment='.$_REQUEST['auth'], false); $API->write('=.proplist=.id'); // получаем ответ $ARRAYS = $API->read(); // ЕСЛИ ЗАПИСЬ НЕ СУЩЕСТВУЕТ В АДРЕС-ЛИСТЕ - СБРОС if (!$ARRAYS[0]) die('Request error'); // удаляем запись $API->write('/ip/firewall/address-list/remove', false); $API->write('=.id=' . $ARRAYS[0]['.id']); $READ = $API->read(); } $API->disconnect(); // ИНФОРМИРУЕМ ПОЛЬЗОВАТЕЛЯ ОБ УСПЕШНОЙ АВТОРИЗАЦИИ die(' <html> <body style="background-color: #282c34; color: #fff; height: 100vh; display: flex;"> <div style="margin: auto; max-width: 50%;"> <p style="font-size: 24pt; font-weight: bold; margin: -300px 0 50px;"> VPN-соединение установлено и авторизовано, можете продолжить работу </p> <p style="font-size: 14pt; color: #aaa;"> В случае недоступности сервисов обратитесь к вашему системному администратору<br/> </p> </div> </body> </html>');} ?>

RouterOS API class PHP используемый в коде можно взять на GitHub.

Благодарю за внимание. Буду рад любым комментариям.

Похожее:  Ошибка при проведении 3ds аутентификации мой налог

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *