Безопасная работа под Linux

Carding

Professional
Messages
2,831
Reputation
17
Reaction score
2,034
Points
113
Всё что описано ниже - это мой личный опыт использования линуха в рабочих целях.
Уверен, что мой подход к безопасности неоптимален. Но большинство пренебрегает и такими мерами.
Если эта статья поспособствует росту моего контакт-листа в джаббе и сократит контакт в асе - значит я писал не зря.
Лирику выкинул, оставил только практические рекомендации.


VPN
openvpn 2.0.8-16
Выбор между openvpn и pptp по-моему очевиден. Естественно, если вам важна ваша безопасность.
Установка и настройка клиента openvpn не отличаются особой сложностью.
Скачиваете последнюю версию исходников, и банальная последовательность "./configure", "make", "make install" в большинстве случаев всё решает.
Если вдруг у вас в системе нет ssl - тогда предварительно придётся его установить (в моём случае: openssl_0.9.8d-17).
На первых порах использование openvpn бывает омрачено отсутствием гуё-вого интерфейса, но это дело привычки. Запуск осуществляется примерно так:
Code:
/usr/sbin/openvpn --config /home/user/job-disk/vpn/config.ovpn --daemon
Где:
"/usr/sbin/openvpn" - путь к исполняемому файлу (у вас может отличаться);
"--config /home/user/job-disk/vpn/config.ovpn" - тут мы указываем, где лежит конфиг конкретного сервиса ВПН;
"--daemon" - этой опцией мы запускаем впн как демон (по виндовому - сервис), в результате он не будет занимать нам терминал и выводить кучу не интересных сообщений о подключении к серверу.
Вовсе не обязательно каждый раз вбивать в терминале длинную команду запуска. Достаточно прописать всё в маленький скриптик.
При использовании openvpn под линухом я столкнулся со следующими проблемами:
Во-первых, openvpn работает с устройством tun (/dev/net/tun), доступ к которому по умолчанию имеет только рут. Не целесообразно это менять. Достаточно прописать в скриптике запуск openvpn с правами суперпользователя:
Code:
sudo /usr/sbin/openvpn --config /home/user/job/vpn/config.ovpn --daemon
Потом просто подредактируйте свой sudo, или лучше - каждый раз при запуске вводите рут-пароль.
Во-вторых, под опенвпн ваш провайдер (xDSL, кабельный, спутниковый) перестаёт воспринимать вас как своего клиента и его ДНС-серверы, которые автоматически прописываются у вас в файле /etc/resolv.conf, не хотят вам нахаляву резолвить имена. Поэтому придётся поискать в сети адреса бесплатных серверов, например тут: ###.opennic.unrated.net/public_servers.html, ###.tech-faq.com/public-dns-servers.shtml.
А затем самим прописать их в resolv.conf, предварительно удалив записи о ДНС вашего провайдера. Этим кстати решается и проблема их скрытия. В консоли:
Code:
echo "nameserver 217.115.138.24
nameserver 199.166.29.3
" > /etc/resolv.conf
Это тоже можно добавить в скриптик запуска openvpn.
После этих манипуляций ВПН должен работать без проблем.

КРИПТО-КОНТЕЙНЕР
truecrypt 4.3-0

Для создания крипто-диска я пользуюсь truecrypt. Поводов предпочесть ему какой-нибудь проприетарный софт я пока не имел. Программа также консольная. Запуск диалога создания крипто-диска:
Code:
truecrypt -c
Вопросы простые. Существенным является только выбор хеш- и крипто-алгоритмов. В сети можно найти много размышлений по поводу взлома различных алгоритмов, не знаю, правда это или домыслы, ясно одно - и Blowfish и Whirlpool в этом контексте не упоминались ни разу. Поэтому я их и выбрал.
Монтирование диска осуществляется командой:
Code:
truecrypt -u /home/user/disk /home/user/job
Где:
"/home/user/disk" - путь к файлу крипто-контейнера;
"/home/user/job" - директория, к которой мы монтируем крипто-контейнер.
Эту команду также имеет смысл прописать в скриптик.
Итого, скрипт, обеспечивающий запуск ВПН и монтирование файла крипто-контейнера будет выглядеть примерно так:
Code:
#! /bin/sh

truecrypt -u /home/user/disk /home/user/job

sudo /usr/sbin/openvpn --config /home/user/job/vpn/config.ovpn --daemon

echo "nameserver 217.115.138.24
nameserver 199.166.29.3
" > /etc/resolv.conf
Назвать его можно кратенько, например job, и положить в соответствующую папку bin (например: /home/usr/bin).
В итоге, перед началом работы вам достаточно будет набрать в консоли:
Code:
job
Затем ввести пароль на крипто-контейнер и пароль рута для запуска ВПН.
Получается намного быстрее, чем кликанье мышкой по окошкам.
В скриптик также можно дописать всю ту рутину, которую вы делаете перед началом работы. Например запуск мессенджера, браузера, и т.п.
Для обеспечения столь же быстрого окончания работы, необходимо создать скриптик, который будет: останавливать ВПН, размонтировать крипто-диск и приводить в первоначальное состояние resolv.conf.
Он будет выглядеть примерно так:
Code:
#! /bin/sh

sudo start-stop-daemon -K --exec /usr/sbin/openvpn
sleep 2s

truecrypt -d

echo "bla-bla-bla
" > /etc/resolv.conf
Где:
"sudo start-stop-daemon -K --exec /usr/sbin/openvpn" - используется маленькая программка start-stop-daemon для остановки конкрентного демона, демон определять можно например по расположению его исполняемого файла. Установка start-stop-daemon, если её до сих пор у вас нет, абсолютно банальна.
"sleep 2s" - даём небольшую паузу, чтобы демон успел остановится.
"truecrypt -d" - размонтируем все крипто-диски в системе (хотя можно указать и какой-то конкретный диск).
"echo "bla-bla-bla
" > /etc/resolv.conf" - ну а тут мы возвращаем предыдущее содержимое resolv.conf на место.
Назвать его можно, например, stop и кинуть рядом с job.
Естественно, этот скриптик, как и предыдущий, можно редактировать по своему усмотрению.
И да, не забудьте сделать оба файла (job и stop) исполняемыми.

ШИФРОВАНИЕ ОБЩЕНИЯ
gpg 1.4.5
gpg2 1.9.22
gpgme 1.1.2
libgpg-error 1.4
KGpg 1.2.2
PSI 0.10-3
Для безопасной переписки и общения, как мне кажется, наиболее оптимально использовать open-source реализацию PGP - GPG.
Обычно, все необходимые для функционирования GPG пакеты устанавливаются вместе с ситемой. Но и при отдельной установке никаких проблем не должно возникнуть.
В KDE под GPG есть очень удобный gui, называется KGpg. Благодаря ему, настройка и использование GPG под KDE в комментариях не нуждается, всё очевидно и просто.
Для использования gpg вам нужно будет создать пару ключей - public и private. Первый вы можете отсылать всем, с кем общаетесь. Им будет шифроваться всё то, что вам хотят передать ваши коллеги (письма, сообщения мессенджера, файлы). Расшифровать их можно будет только используя ваш private ключ. Так что, его следует особо бережно хранить.

Как мне кажется, наиболее безопасным и дружелюбным протоколом общения является jabber. Ну а лучшим мессенджером на его основе - PSI. Простой и симпатичный интерфейс, поддержка всех особенностей протокола jabber. При использовании PSI я столкнулся лишь с двумя проблемами:
а) PSI не даёт возможности выбора директории, в которой следует хранить логи переписки. Наименее трудозатратным способом заставить его сохранять логи именно в криптоконтейнер является создание на месте папки с логами (расположена: /home/user/.psi/profiles/default/history) символической ссылки, которая бы вела в папку, где смонтирован крипто-контейнер (/home/user/job/). Например так:
Code:
ln -s /home/user/job/history /home/user/.psi/profiles/default/history
Таким образом история сообщений будет сохраняться на крипто-диск, если вы конечно не забудете его смонтировать перед началом работы.
б) для использования GPG шифрования общения в PSI необходимо отметить в KGpg опцию "Use GnuPG agent", т.к. без этого при соединении с сервером не вызывается диалог ввода пароля от вашего секретного ключа, соответственно, соединение не происходит.

Для обеспечения безопасного общения в PSI необходимо:
- отметить "use SSL encryption", "ignore SSL warnings";
- убрать галку с опции "Allow plaintext login";
- указать PSI каким private ключом вы будете пользоваться для расшифровки сообщений;
- выслать вашему собеседнику public key, который является парным вашему private ключу;
- получить от собеседника его public key и назначить этот ключ его контакту в PSI (Assign OpenPGP key);
- нажать на значок замка в окошке чата.
Ваш собеседник, естественно, должен сделать то же самое.

Небольшое замечание: при использовании некоторых jabber-серверов в настройках PSI нужно вручную прописывать хост и порт используемого сервера.

СОКСИФИКАЦИЯ
proxychains 3.1
В качестве программы-соксификатора я выбрал консольную ProxyChains. Её последние версии без багов соксифицируют почти весь необходимый софт (за исключением KDE-шного браузера Konqueror). Она лишена многих избыточных функций, но всё необходимое в ней присутствует.
Настройка программы и добавление соксов осуществляются путём редактирования файла proxychains.conf. В абсолютном большинстве случаев, достаточно просто дописать в его конец строчку вида:
Code:
socks5 123.123.123.123 12345

Где:
"socks5" - определяет вид сокса или прокси (socks4, socks5, proxy);
"123.123.123.123 12345" - IP и порт используемого сокса.
Запуск программы осуществляется так:
Code:
proxychains firefox

Где после proxychains указывается приложение (или полный путь к исполняемому файлу), которое необходимо соксифицировать.

Пожелания, исправления и конструктивная критика приветствуются.
 
Top