Linux для работы с банками

Безопасный онлайн-банк в Linux

Единожды мне пришлось увидеть как работает один антивирус в одной известной ОС (речь идет о Касперском в Windows 8.1, не сочтите за рекламу) с требующими особой безопасности (на его взгляд) страницами в интернете. Например, при открытии какой-либо страницы, подразумевающей операции с финансами, антивирус выдает всплывающее окно с предложением открыть эту страницу в безопасном браузере. При согласии с этим предложением открывается новое, отдельное окно браузера с незапертой в нем, упомянутой ранее ссылкой. Для пущей красоты это окно имеет отличный от остальных окон ОС цвет тени (Касперский может себе это позволить). В этом окне браузер, в какой-никакой мере я понял, использует отдельный профиль, так как ни закладок, ни истории посещений в нем нет. Как нет и никаких поставленных продолжений (здесь речь идет о браузере Firefox, но, думаю, при использовании любого иного браузера головка была бы схожей). Посмотрел я на это дело и…, мне понравилось! Новый, раздельный профиль для кризисных к безопасности страниц, минимум или отсутствие расширений, среди которых достаточно могут очутиться скрытые кейлоггеры и прочие подобные «заразы», даже «цветные» косметика мне пришлись по душе — отделяют важное окно. Поэтому я подумал, что подобное нужно безотлагательно организовать в Linux-based ОС (за изъятием только цветных окон, будем серьезнее).

Подобную конструкцию самое то применять со любого рода онлайн-банками, особенно в свете появляющихся абсолютно каждую неделю новостей о новом способе мошенничества в банковском секторе. Или для организации наращенного управления доступом локальных юзеров компьютера. Каждый, думаю, найдет применение «для себе». Не знаю как точно это реализовано у Касперского (поймем организацию безопасного онлайн скамейка), но в линуксе я это вижу так: создается отдельный пользователь для воплощения операций с банком, этому юзеру запрещается доступ к любому интернет-сайту, за исключением страниц из белого списка (домена/ов нужного банка), создается новый, отдельный профиль браузера для доступа к данным сайтам и, для комфорты, создается. desktop файл для запуска этого профиля браузера (или веб-обозреватель (от англ. web browser, МФА: [wɛb ˈbraʊ.zə(ɹ), -zɚ]; устар) от фамилии специально сделанного пользователя из-под обычного пользователя. Кроме того, доступ к интернет-сайтам из «белого перечня» нового пользователя блокируется для всех остальных пользователей, чтобы все операции с банчком велись только из аккаунта специального пользователя. Если иначе, то безопасности все это не добавит. Новоиспеченного пользователя (например bank) создаем командой:

# useradd — m bank

Пароль ему высокомерничать не станем, чтобы быстрее в дальнейшем запускать браузер из-под него.
Чтобы воспрепятствовать юзеру доступ ко всему, кроме «белых» сайтов воспользуемся встроенным в ядро Linux фаерволом netfilter, больше известного по утилите им управляющей — iptables. Настройка iptables далековато нетривиальна, но все же ее знание весьма много раз может пригодиться в будущем, да и просто поднимает на распорядок ваше понимание процесса службы ядра linux с сетевыми пакетами. Для начала досоздадим в папке /etc/iptables рабочую папку, например bank-online. d:

# mkdir /etc/iptables/bank-online. d

Дальше создаем в рабочей директории файл whitelist и записываем в него «разрешенные» домены (по одному в любую строку). Например:

#echo linux32.ru >> /etc/iptables/bank-online. d/whitelist

Когда строчка будет закомментирована, скрипт ее проигнорирует.
Теперь в эту же папку скопируйте вот этот script made-rules. sh:

#!/bin/bash
# определение неустойчивых
user=bank # имя пользователя
chain=BANK # названние новоиспеченной цепочки правил матрицы filter
rules_name=iptables. rules # имя файла законов iptebles
router=yes # присутствие роутера (yes или no)
router_ip=192.168.0.1 # IP роутера
# переход в рабочую папку
cd /etc/iptables/bank-online. d
# ввод отправной части (политик по умолчанию) файла (именованная область данных на носителе информации) $rules_name
echo «*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]» > ../$rules_name
# добавить новую цепочку $chain
echo «:$chain — [0:0]» >> ../$rules_name
# дозволить ответный входящий трафик (Телефонный трафик — в телекоммуникациях — большое количество телефонных бесед и попыток установления соединения, проходящих через коммутационной оборудования и/или телефонную сеть Транспортный)
echo «-A INPUT — m state —state RELATED, ESTABLISHED — j ACCEPT» >> ../$rules_name
# дозволить входящий на петлевой интерфейс трафик
echo «-A INPUT — i lo — j ACCEPT» >> ../$rules_name
# # дозволить входящий tcp трафик на порт
# echo «-A INPUT — p tcp —dport номер_порта — j ACCEPT» >> ../$rules_name
# перенаправить весь исходящий трафик (Телефонный трафик — в телекоммуникациях — большое количество телефонных разговоров и попыток установления соединения, проходящих через коммутационной оборудования и/или телефонную сеть Транспортный) пользователя $user в новую цепочку $chain
echo «-A OUTPUT — m owner —uid-owner $user — j $chain» >> ../$rules_name
# проверка наличия роутера и разрешение пользователю $user исходящего трафика на роутер
if [[ $router == yes ]]; then
echo «-A $chain — d $router_ip — j ACCEPT» >> ../$rules_name
fi
# определение IP-адресов доменов из белого списка, разрешение исходящего трафика на эти домены для пользователя $user и запрет исходящего трафика на эти домены для совершенно всех остальных пользователей
for i in `cat whitelist | grep — v «^#»`; do
for ip in `nslookup $i | grep Address | grep — v 192.168 | grep — v :[a-zA-Z0-9] | awk ‘‘`; do
echo «-A $chain — d $ip — j ACCEPT» >> ../$rules_name
echo «-A OUTPUT — d $ip — j DROP» >> ../$rules_name
done
done
# воспрещение юзеру $user всего остального исходящего трафика
echo «-A $chain — j DROP» >> ../$rules_name
# ввод завершающей строки
echo «COMMIT
» >> ../$rules_name

Читайте также:  Windows загружается без пароля

Этот скрипт станет генерировать файл /etc/iptables/iptables. rules, из какого iptables считывает правила при старте. Script достаточно комментирован, но на всякий случай коротко остановлюсь на некоторых моментах. В первой доли задаются необходимые переменные: имя нашего особого пользователя, имя новой цепочки правил, имя выходящего файла (iptables. rules) и наличие или неимение роутера. Тут все должно быть понятно помимо цепочки правил: мы создаем новую вереницу правил (BANK) и перенаправляем в нее весь исходящий трафик юзера bank. Сделано это для больше логичного и понятного управления трафиком отдельно взятого юзера. В следующей части в файл законов iptables. rules записываются политики по умолчанию:

:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

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

echo «-A INPUT — m state —state RELATED, ESTABLISHED — j ACCEPT» >> ../$rules_name

Она дозволяет входящий трафик, инициированный только как ответ на исходящий, то есть извне ваш компьютер будет недоступен пока вы сами не захотите открыть какой-нибудь сайт. Эта строка вместе с блоком, задающим общественно-политические деятели по умолчанию, значительно, на мой взгляд, увеличивает вашу безопасность в сети.
Следующей строчкой позволяем входящий трафик на петлевой (loopback) интерфейс, так как он необходим некоторым программам и сервисам для их верной работы:

echo «-A INPUT — i lo — j ACCEPT» >> ../$rules_name

Если нужно гарантировать работу приложения, слушающего определенный порт, то этот порт необходимо раскрыть для наружных подключений. Узнать какие порты «слушаются» в данный момент можно бригадой netstat — l. Дальше, узнав номер необходимого порта добавляем его в скрипт до завершающего COMMIT:

echo «-A INPUT — p tcp —dport номер_порта — j ACCEPT» >> ../$rules_name

В скрипте эта часть закомментирована, так как пойдет за рамки данной статьи, но кому необходимо — можно воспользоваться.
Оставшаяся часть script-a ясна по своим комментариям, далее его описывать не буду.
Делаем скрипт исполняемым:

# chmod +x /etc/iptables/bank-online. d/made-rules. sh

# /etc/iptables/bank-online. d/made-rules. sh

чтобы сгенерировать правила для iptables. Теперь чтобы бросить фаервол с этими правилами и добавить его в автозагрузку достаточно всего лишь ввести:

# systemctl start iptables
# systemctl enable iptables

Сходственным образом при изменении белого списка нужно будет запустить скрипт made-rules. sh и перезапустить системд сервис iptables для обновления правил.
Если после добавления в белый список какого-либо веб-сайта он всеже не обнаруживается, то с помощью утилиты tcpdump (ее необходимо предварительно установить) следующей бригадой можно поглядеть к каким еще сайтам обращается наш целевой сайт во время открытия:

Читайте также:  Восстановление параметров безопасности по умолчанию windows

# tcpdump — i eth0 host адрес_целевого_сайта

И добавить эти сайты в белый список. После этого сайт должен открываться. Синтаксис приведенной команды прост: ключ — i указывает на используемый сетевой интерфейс (в данном случае eth0), ключ host — на адрес целевого сайта. Вместо tcpdump может быть просто обратить внимание на статусную строку браузера. У Firefox, например, она находится в низу окна. В ней показываются сайты к которым идет обращение в данный момент. Просто прибавляйте по-очереди все эти сайтики в белый список и нужный сайт откроется. Теперь перейдем к пуску браузера (или веб-обозреватель (от англ. web browser, МФА: [wɛb ˈbraʊ.zə(ɹ), -zɚ]; устар) с он-лайн банком из-под обычного пользователя. Для этого воспользуемся утилитой sudo. Пакет sudo у вас должен быть установлен. Если вдруг нет, установите. Запуск приложения от имени другого пользователя возможен благодаря ключу — u и указанию нужного пользователя. Кроме этого потребуется представить еще и ключ — i для передачи нужных переменных окружения (в частности $HOME) для правильной работы браузера из нужного профиля. Также запуск любого X-приложения от имени другого пользователя требует передавания ему преимуществ доступа к вашему запущенному X-серверу. Достигается это с помощью команды xhost. То имеется две бригады в таком порядке:

$ xhost +
$ sudo — i — u bank firefox

Запустят браузер firefox (в этом примере) от пользователя bank. Так как мы не назначили пароль пользователю bank, то его пароль не запрашивается, но спрашивается пароль вашего обычного пользователя (из которого запустили эту команду). Чтобы этого выключить создадим файл bank-online с приведенными выше двумя командами, например в папке /home/user/.local/bin:

#!/bin/bash
xhost +
sudo — i — u bank firefox

Случим его исполняемым:

$ chmod +x /home/user/.local/bin/bank-online

Где user — имя вашего обычного пользователя. И в файл /etc/sudoers добавим такую строку:

# echo «user HOST_NAME= NOPASSWD: /home/user/.local/bin/bank-online» >> /etc/sudoers

user — опять же ваш пользователь (лицо или организация, которое использует действующую систему для выполнения конкретной функции), HOST_NAME — имя вашего компьютера (обратите внимание на знак = после HOST_NAME, он должен присутствовать).

После данной операции запуск этого скрипта приведет к пуску браузера от фамилии другого пользователя без запроса ввода пароля. В этом браузере перейти возможно станет только на разрешенные сайты, — одна или несколько логически сопряженных между собой веб-страниц; также место) или сайт. Также можно этот интернет-сайт назначить семейней страницей. Для удобства можно немного поднастроить профиль нового юзера (лицо или организация, которое использует действующую систему для выполнения конкретной функции): габарит и хинтинг шрифтов, пример. Сделать это можно утилитой lxappearance запустив ее вместо firefox в пригнанной выше бригаде запуска:

$ sudo — i — u bank lxappearance

Завершающим аккордом будет творение. desktop файла для скорого запуска онлайн банка. Тут вдаваться в подробности уже не буду, большая часть DE предлагают интуитивно удобопонятный инструментарий для создания desktop файлов (именованная область этих на носителе информации). Тем у кого нет DE можно по-старинке сделать его вручную в текстовом редакторе (у кого нет DE наилучше меня знают как его сделать). Но все это уже украшательства (вспоминая про цветные косметика).

Источник

RU Linux

Всё больше моих знакомых использует Webmoney и Яндекс.Деньги, привязывают дебетные карты к PayPal, пользуются интернет-банками для покупок в интернет-магазинах, оплаты хостинга и доменов, покупок на Ebay, оплаты коммунальных услуг, интернета, мобильной связи.

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

Читайте также:  Как проверить подлинность mac os

Подобными историями изобилует интернет, но случай, описанный в одном популярном блоге про партнёрские программы примечателен не только тем, что пропало 120000 руб., но и рекомендациями в комментариях. Четверо посоветовали использовать Linux для безопасной работы с деньгами. Использовать Linux для интернет-банкинга рекомендуют и сами банки.

Как постоянный пользователь Debian GNU/Linux на домашнем десктопе и ноутбуке + Fedora на всех десктопах в офисе хочу поделиться как у меня происходят электронноденежные дела.

Я использую WebMoney с помощью Keeper Light. Для этого в баузер устанавливается сертификат безопасности который надёжно идентифицирует вас как пользователя системы. Сертификат надо обновлять раз в год. Я однажды не успел это сделать и кошелёк заблокировали, но после прохождения процедуры восстановления сертификат новый выдали. В моем рабочем браузере Konqueror были какие-то проблемы то ли с установкой сертификата, то ли с работой Keeper Light, поэтому по началу я стал использовать Opera. Но после обновления Opera, кажется с 8 до 9, внезапно сертификат отказался работать. После этого случая я использую FireFox для работы с Webmoney Keeper Light под Linux.

Изредка использую PayPal, он прекрасно работает с Konqueror и вообще любым браузером по обычному HTTPS. Я привязал PayPal к зарплатной карте Viza Уралсиб-Югбанка. При оплате через PayPal деньги сами снимаются с карты и конвертируются в USD. Без проблем заплатил на Ebay за компьютерные комплектующие, которые реактивная китайская авиапочта доставила почти бесплатно в Россию за две недели. Оплачивал раз за онлайн-игрушку. К сожалению вывести деньги из PayPal в России не получится, можно только пополнять счет и тратить деньги.

Недавно стал клиентом Альфабанка. У них замечательный бесплатный интернет-банк под названием Альфа-клик. Реализован, как и PayPal, без всяких технологических изысков вроде ActiveX, не перегружен скриптами и прекрасно работает в Konqueror по HTTPS. При входе в Альфа-клик мне на сотовый приходит СМС-ка с одноразовым паролем. Этот метод защиты становится все более популярным и сейчас является чуть ли не обязательным во всех интернет-банках.

Существуют ещё так называемые интернет-банки на основе технологии ActiveX, которая работает только под Windows. Они часто используются для предоставления услуг интернет-банкинга для организаций и становятся причиной невозможности использования Linux на рабочих столах в бизнесе. Использование ActiveX оправдано, когда применяются такие меры защиты как HASP-ключи. Но такие решения в основном выполнены как самостоятельные десктопные приложения, работающие под Windows. Почему не достаточно обычного клиентского сертификата и HTTPS и надо выполнять шифрование с помощью отдельных компонентов, за порой нетривиальную и шаманскую установку которых надо платить банку деньги, для меня остается загадкой. Если кто знает ответ, поделитесь в комментариях. У нас в офисе интернет-банк с ActiveX успешно работает из Fedora в VirtualBox под Windows.

В организациях по сей день используются предки интернет-банков, называемые банк-клиентами. Это приложения под Windows, которые звонят в банк по DialUp-модему. О запуске таких программ под Linux мне ничего не известно.

В интернете есть целый ряд платных сервисов, на счету которых могут лежать деньги. С этих счетов также распространён вывод денег злоумышленниками в случае кражи паролей с помощью троянов или установки кейлоггеров. Справляя свои вебмастреские дела, я без проблем работаю с SAPE, AdSense, Яндекс.Директ под Linux в Firefox.

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

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

Источник

Оцените статью