\documentclass[russian,notitlepage,a4paper]{article}
\usepackage[koi8-r]{inputenc}
\usepackage{babel}

\title{Основные правила компьютерной безопасности}

\begin{document}

\section{Введение.}
Человек устроен таким образом, что задумывается о вопросах безопасности только
после того, как почувствовал на себе последствия небрежного отношения к этой проблеме.

Применительно к компьютерной безопасности, зачастую только авария системы либо
потеря важных данных заставляет вспомнить о том, что этого можно было легко избежать,
следуя несложным правилам:
\begin{itemize}
	\item Своевременно обновляйте программное обеспечение. Авторы дистрибутива
	прилагают максимум усилий к выявлению и исправлению ошибок, затрагивающих
	безопасность системы. Подпишитесь на список рассылки {\it security-announce@altlinux.ru},
	чтобы быть вовремя проинформированным о новых версиях программ,
	исправляющих ошибки в сфере безопасности.
	\item Следуйте разумной политике в использовании паролей для пользователей.
	Не используйте пароли, про которые утилита {\it passwd} сообщает, что они плохие.
	\item Не работайте привилегированным пользователем.
	\item Не запускайте те сервисы, которыми никто не будет пользоваться.
	\item Следуйте основным правилам сетевой безопасности:
	\begin{itemize}
		\item Настройте firewall между своим компьютером и остальной сетью,
		а также между корпоративной сетью и интернетом.
		\item Используйте защищенные протоколы для передачи данных, такие как
		{\it IPSEC} ({\it IP Security}) и {\it SSH} ({\it Secure Shell}).
		\item Не используйте электронную почту для передачи конфиденциальной
		информации; если использование электронной почты для этих целей
		необходимо, например, ввиду отсутствия технической возможности применения
		защищенных протоколов передачи данных, то воспользуйтесь {\it GnuPG} для
		подписи и шифрования почтовых сообщений.
		\item Используйте различные пароли к локальным ресурсам и ресурсам,
		расположенным на удаленных серверах с тем, чтобы пароли к локальным
		ресурсам не покидали пределов локальной сети.
	\end{itemize}
\end{itemize}

\section{Почему нельзя работать с правами root.}
Ни для кого не секрет, что Linux является многопользовательской операционной системой.
Это значит, что она разработана в расчете на одновременную работу нескольких пользователей.
При этом всякая будничная работа под Linux, не являющаяся системным администрированием,
может и должна выполняться непривилегированными пользователями.
Этому правилу необходимо следовать для того, чтобы
\begin{itemize}
	\item вероятность того, что Ваша случайная ошибка испортит всю систему,
	была сведена к минимуму;
	\item вероятность того, что возможные ошибки в используемых Вами программах
	испортят всю систему, была сведена к минимуму.
	\item К сожалению, немалая часть ПО написана безграмотно с точки зрения security.
	Запуская такие программы непривилегированным пользователем,
	Вы тем самым автоматически усложняете процедуру вторжения
	в Вашу систему потенциальных взломщиков.
\end{itemize}

\section{Настройка sudo.}
{\it Sudo} - это программа, разработанная в помощь системному администратору
делегировать те или иные привилегированные ресурсы пользователям,
с ведением протокола работы. Основная идея - делегировать пользователям
как можно меньше прав, но при этом ровно столько, сколько необходимо для
решения поставленных задач.

{\it Sudo} предоставляет возможность пользователям выполнять команды
от имени root'а либо других пользователей. Правила, используемые {\it sudo}
для принятия решения о предоставлении доступа, находятся в файле {\it /etc/sudoers}.
Язык написания правил для {\it sudo} и примеры использования подробно
изложены в {\it sudoers(5)}. Кроме того, пример правил, предоставляющих
пользователям, являющимися членами группы {\it rpm}, возможность устанавливать,
обновлять и удалять пакеты в системе, приведен в файле
{\it /usr/share/doc/sudo-1.6.3p6/rpm.sudoers}.

Для редактирования файла {\it /etc/sudoers} следует использовать программу {\it visudo},
которая проверяет синтаксис и тем самым позволяет избежать ошибок в правилах.

В большинстве случаев грамотная настройка {\it sudo} делает работу root'ом ненужной.

\section{Настройка firewall.}
Firewall является, пожалуй, наиболее важной компонентой в системе защиты
внутренней сети от вторжений извне и регулирования доступа пользователей
внутренней сети к внешним ресурсам.

Создание firewall'а начинается с определения политики безопасности в той сети,
для которой он разрабатывается. Для этого:
\begin{enumerate}
	\item определите используемые сервисы;
	\item определите группы пользователей;
	\item определите, к каким сервисам какие группы должны иметь доступ;
	\item объявите все остальные формы доступа запрещенными.
\end{enumerate}

Как только политика безопасности сети определена, можно приступать к 
созданию правил для конкретного firewall'а. В случае ядра из серии 2.2
синтаксис правил называется {\it ipchains}, а для ядра из серии 2.4 -
{\it iptables}.

Сами правила можно создавать как вручную, так и с помощью вспомогательных
утилит конфигурирования, например, {\it gfcc}.

Рекомендации по построению политики безопасности сети, а также
подробную документацию по {\it ipchains} и {\it iptables} можно найти в
\begin{itemize}
	\item {\it ipchains(8)}, {\it iptables(8)}
	\item {\it /usr/share/doc/ipchains-1.3.10/}
	\item {\it /usr/share/doc/HOWTO/HTML/en/Firewall-HOWTO.html}
\end{itemize}

\section{Secure Shell.}
Одна из самых распространенных задач, возникающих при работе в сети -
удаленный shell-доступ к другим компьютерам и предоставление такого доступа.

Для решения этой задачи используется ставший уже традиционным протокол {\it SSH}
({\it Secure Shell}). В отличие от устаревших протоколов, таких как {\it telnet} и
{\it rsh}/{\it rlogin}/{\it rcp}, которые передают данные прямым текстом и подвержены
обыкновенному прослушиванию и различным атакам, {\it SSH} реализует соединение с
удаленным компьютером, защищающее от
\begin{itemize}
	\item прослушивания данных, передаваемых по этому соединению;
	\item манипулирования данными на пути от клиента к серверу;
	\item подмены клиента либо сервера путем манипулирования IP-адресами,
	DNS либо маршрутизацией.
\end{itemize}

В дополнение к отличным характеристикам в области обеспечения безопасного
клиент-серверного соединения, {\it SSH} обладает следующими возможностями:
\begin{itemize}
	\item сжатие передаваемых данных;
	\item туннелирование каналов внутри установленного соединения,
	а также туннелирование соединений с X-сервером;
	\item широкая распространенность: существуют реализации $SSH$ для
	самых различных аппаратных платформ и операционных систем.
\end{itemize}

{\it OpenSSH} - это входящая в дистрибутив реализация {\it SSH}, поддерживающая версии
{\it 1.3}, {\it 1.5} и {\it 2.0} протокола {\it SSH}, и распространяемая на условиях лицензии {\it BSD}.
Эта реализация включает в себя
\begin{itemize}
	\item клиентские программы - {\it ssh}, {\it scp} и {\it sftp} - используются
	для запуска программ на удаленных серверах и копирования файлов по сети;
	\item серверные программы - {\it sshd}, {\it sftp-server} - используются
	для предоставления доступа по протоколу {\it SSH};
	\item вспомогательные программы: {\it make-ssh-known-hosts}, {\it rescp}, {\it ssh-keygen},
	{\it ssh-add}, {\it ssh-agent}, {\it ssh-copy-id}, {\it ssh-keyscan}.
\end{itemize}
Подробная информация по использованию этих программ содержится
в прилагаемых к ним {\it man}-страницах.

\end{document}
