Linux. Cистема безопасности
Linux. Cистема безопасности
Если ваш компьютер работает под управлением Linux, если он постоянно включен и все время соединен с Internet, и на нем, к тому же, хранится важная информация, думаю, вы явно не хотели бы, чтобы доступ к ней имел еще кто-нибудь, кроме вас. Кроме того, весьма нежалательно, чтобы ваша машина была использована для проникновения в другие системы. Для того, чтобы этого избежать, необходимо обезопасить свою машину, т.е. скрыть информацию, хранящуюся на ней, и не дать использовать ее системные ресурсы тем, кому это не позволено.
Сразу после установки стоит настроить поддержку iptables на http://www.netfilter.org в ядре. Iptables позволяет блокировать входящий и исходящий трафик. Это очень важно, поскольку компьютер постоянно соединен с сетью и, следовательно, открыт для нападения извне. Конфигурирование ядра — процедура не для начинающих: для этого потребуется скачать исходные тексты ядра, корректно сконфигурировать и установить его. Если вы никогда не делали этого раньше, то вам следует прочитать Linux Kernel HOWTO на http://www.tldp.org/HOWTO/Kernel-HOWTO.html, попрактиковаться в компиляции ядра и лишь затем попытаться сконфигурировать iptables.
Следующий шаг — настройка LIDS на http://www.lids.org — Linux Intrusion Detection System (Система Обнаружения Вторжений). LIDS состоит из заплаты на ядро и двух утилит — lidsconf и lidsadm. Назначение этой системы состоит в повышении уровня безопасности путем наложения ограничений на доступ к файлам и процессам и выдачи предупреждения, когда производится попытка преодолеть эти ограничения. Особенно привлекательно то, что с помощью LIDS можно ограничить даже права root'а! Такое ограничение может существенно уменьшить ущерб, нанесенный злоумышленником, завладевшим паролем root'а. Лучше всего использовать LIDS для наложения ограничений на доступ к исполняемым файлам, файлам журналов в каталоге /var/log и файлам конфигураций в каталоге /etc. А исполняемые файлы пометить как READONLY (доступ только на чтение) так, чтобы никто, включая root, не мог удалить или изменить их. Файлам журналов стоит присвоить атрибут APPEND (дополнение в конец файла), таким образом программы смогут добавлять записи в журналы, но не смогут изменять или удалять существующие записи.
Далее уменьшаем количество запущенных сервисов. Чем меньше сервисов крутится на машине, тем меньше шансов у злоумышленника проникнуть в нее. Дистрибутивы имеют тенденцию к увеличению количества демонов, запускаемых по умолчанию, что отрицательно сказывается на безопасности. Останавливаем telnet, FTP, named и семейство сервисов R*. Стоит завести правило отключать все, что не нужно, и вас перестанет волновать необходимость их обновления в случае появления исправлений ошибок в безопасности. Для оставшихся сервисов надо устанавливать заплаты по мере их появления. Если вдруг выявляется уязвимость в каком-либо сервисе, останавливаем его до тех пор, пока не появится соответствующая заплата.
После того, как все ненужные сервисы будут остановлены, необходимо дать команду "netstat -l", которая выдаст на экран список всех открытых сетевых портов. Сделаем это лишь для того, чтобы лишний раз убедиться, что ничего не пропустили. Если что-то и было упущено из виду на предыдущих шагах, то эта команда позволит увидеть упущения.
После установки необходимо периодически запускать утилиту chkrootkit ( http://www.chkrootkit.org ), которая выдаст предупреждение в случае, если на машине появится какой-либо rootkit. Rootkit — это набор программ, с помощью которых взломщик может скрыть свое присутствие. Этот набор содержит зараженные (измененные) версии самых разнообразных утилит — таких, как ps, ifconfig и др. Если взломщик установит rootkit, то потом он сможет использовать взломанную систему как только пожелает. Определить наличие rootkit'ов в системе можно только при очень детальном ее исследовании. Вы можете попробовать скачать и просмотреть различные rootkit'ы (только в учебных целях!) с packetstorm ( http://packetstorm.decepticons.org/UNIX/penetration/rootkits/ ).
Для файлов, загруженных из Internet, надо проверять контрольную сумму с помощью утилиты md5sum ( http://www.gnu.org/software/textutils/textutils.html ). Большинство сайтов, которые выкладывают файлы для загрузки, указывают и их контрольные суммы. Эта простая проверка дает уверенность в том, что вы скачали то, что вам нужно. Конечно, есть небольшая вероятность того, что и файл, и контрольная сумма поддельные, но такие случаи достаточно быстро обнаруживаются и устраняются администраторами сайтов.
Никакая защита не может гарантировать абсолютную безопасность вашего компьютера. Даже если вы не думаете, что вашу машину кто-нибудь когда-нибудь пытался или попытается взломать, полной уверенности в этом у вас нет.
Итак, если ваш компьютер будет взломан, то в первую очередь идите на The Coroner's Toolkit ( http://www.porcupine.org/forensics/tct.html ). TCT — это набор утилит, которые помогут определить характер взлома и объем повреждений. Вы их просто запускаете и ждете, пока они занимаются сбором информации с жесткого диска. Это довольно мощный инструмент. Однако для новичка он чрезвычайно сложен, так что готовьтесь к длительному изучению документации, если у вас нет опыта общения с TCT. На главной страничке внизу имеется несколько ссылок на различные документы, так что лучше всего начать оттуда.
Еще стоит сходить на Honeynet Project ( http://www.honeynet.org ). Группа добровольцев-профессионалов в рамках данного проекта занимается исследованием инструментария, мотивов и тактики взломщиков и публикует результаты исследований с целью поднять общую культуру безопасности на более высокий уровень. На этом сайте ежемесячно публикуется информация о реальных взломах и предлагается прислать свой вариант исследования вторжения. В архивах этого сайта можно найти достаточно большое количество подобных рецензий, представленных высокопрофессиональными специалистами в области компьютерной безопасности.
По умолчанию передаваемые по сети данные никак не защищены. Ваша информация может быть перехвачена в сети кем угодно, и вы ничего не можете с этим поделать. Попробуйте запустить утилиту traceroute, чтобы увидеть наглядный пример. Подайте команду "traceroute www.google.com" — и увидите все серверы, через которые проходят ваши данные по пути к www.google.com .
Всякий раз, когда вам предстоит войти в систему на каком-либо сайте, используйте протокол https. HTTPS использует SSL (Secure Sockets Layer) для шифрования передаваемых данных. Если этого не делать, то пароль может быть перехвачен взломщиком.
Для нужд удаленного администрирования лучше пользоваться ssh и scp ( http://www.openssh.com ). Эти две программы прекрасно заменяют telnet и FTP. Они просты в установке и работают аналогично вышеуказанным программам. После их установки можно открывать соответствующие порты в настройках iptables так, чтобы иметь возможность соединения с машиной извне.
Для шифрования электронной почты лучше использовать GnuPG ( http://www.gnupg.org ). Если вы отправляете кому-либо закрытую информацию, то используйте для шифрования открытый ключ данного субъекта. Также просите их использовать для шифрования ваш открытый ключ при передаче вам закрытой информации. Все это даст уверенность в том, что вашу почту не прочитает никто, кроме вас. Надеюсь, вышеописанные действия помогут вам обезопасить вашу работу в Сети.
По материалам Rob Tougher
Подготовил X-Stranger
Если ваш компьютер работает под управлением Linux, если он постоянно включен и все время соединен с Internet, и на нем, к тому же, хранится важная информация, думаю, вы явно не хотели бы, чтобы доступ к ней имел еще кто-нибудь, кроме вас. Кроме того, весьма нежалательно, чтобы ваша машина была использована для проникновения в другие системы. Для того, чтобы этого избежать, необходимо обезопасить свою машину, т.е. скрыть информацию, хранящуюся на ней, и не дать использовать ее системные ресурсы тем, кому это не позволено.
Сразу после установки стоит настроить поддержку iptables на http://www.netfilter.org в ядре. Iptables позволяет блокировать входящий и исходящий трафик. Это очень важно, поскольку компьютер постоянно соединен с сетью и, следовательно, открыт для нападения извне. Конфигурирование ядра — процедура не для начинающих: для этого потребуется скачать исходные тексты ядра, корректно сконфигурировать и установить его. Если вы никогда не делали этого раньше, то вам следует прочитать Linux Kernel HOWTO на http://www.tldp.org/HOWTO/Kernel-HOWTO.html, попрактиковаться в компиляции ядра и лишь затем попытаться сконфигурировать iptables.
Следующий шаг — настройка LIDS на http://www.lids.org — Linux Intrusion Detection System (Система Обнаружения Вторжений). LIDS состоит из заплаты на ядро и двух утилит — lidsconf и lidsadm. Назначение этой системы состоит в повышении уровня безопасности путем наложения ограничений на доступ к файлам и процессам и выдачи предупреждения, когда производится попытка преодолеть эти ограничения. Особенно привлекательно то, что с помощью LIDS можно ограничить даже права root'а! Такое ограничение может существенно уменьшить ущерб, нанесенный злоумышленником, завладевшим паролем root'а. Лучше всего использовать LIDS для наложения ограничений на доступ к исполняемым файлам, файлам журналов в каталоге /var/log и файлам конфигураций в каталоге /etc. А исполняемые файлы пометить как READONLY (доступ только на чтение) так, чтобы никто, включая root, не мог удалить или изменить их. Файлам журналов стоит присвоить атрибут APPEND (дополнение в конец файла), таким образом программы смогут добавлять записи в журналы, но не смогут изменять или удалять существующие записи.
Далее уменьшаем количество запущенных сервисов. Чем меньше сервисов крутится на машине, тем меньше шансов у злоумышленника проникнуть в нее. Дистрибутивы имеют тенденцию к увеличению количества демонов, запускаемых по умолчанию, что отрицательно сказывается на безопасности. Останавливаем telnet, FTP, named и семейство сервисов R*. Стоит завести правило отключать все, что не нужно, и вас перестанет волновать необходимость их обновления в случае появления исправлений ошибок в безопасности. Для оставшихся сервисов надо устанавливать заплаты по мере их появления. Если вдруг выявляется уязвимость в каком-либо сервисе, останавливаем его до тех пор, пока не появится соответствующая заплата.
После того, как все ненужные сервисы будут остановлены, необходимо дать команду "netstat -l", которая выдаст на экран список всех открытых сетевых портов. Сделаем это лишь для того, чтобы лишний раз убедиться, что ничего не пропустили. Если что-то и было упущено из виду на предыдущих шагах, то эта команда позволит увидеть упущения.
После установки необходимо периодически запускать утилиту chkrootkit ( http://www.chkrootkit.org ), которая выдаст предупреждение в случае, если на машине появится какой-либо rootkit. Rootkit — это набор программ, с помощью которых взломщик может скрыть свое присутствие. Этот набор содержит зараженные (измененные) версии самых разнообразных утилит — таких, как ps, ifconfig и др. Если взломщик установит rootkit, то потом он сможет использовать взломанную систему как только пожелает. Определить наличие rootkit'ов в системе можно только при очень детальном ее исследовании. Вы можете попробовать скачать и просмотреть различные rootkit'ы (только в учебных целях!) с packetstorm ( http://packetstorm.decepticons.org/UNIX/penetration/rootkits/ ).
Для файлов, загруженных из Internet, надо проверять контрольную сумму с помощью утилиты md5sum ( http://www.gnu.org/software/textutils/textutils.html ). Большинство сайтов, которые выкладывают файлы для загрузки, указывают и их контрольные суммы. Эта простая проверка дает уверенность в том, что вы скачали то, что вам нужно. Конечно, есть небольшая вероятность того, что и файл, и контрольная сумма поддельные, но такие случаи достаточно быстро обнаруживаются и устраняются администраторами сайтов.
Никакая защита не может гарантировать абсолютную безопасность вашего компьютера. Даже если вы не думаете, что вашу машину кто-нибудь когда-нибудь пытался или попытается взломать, полной уверенности в этом у вас нет.
Итак, если ваш компьютер будет взломан, то в первую очередь идите на The Coroner's Toolkit ( http://www.porcupine.org/forensics/tct.html ). TCT — это набор утилит, которые помогут определить характер взлома и объем повреждений. Вы их просто запускаете и ждете, пока они занимаются сбором информации с жесткого диска. Это довольно мощный инструмент. Однако для новичка он чрезвычайно сложен, так что готовьтесь к длительному изучению документации, если у вас нет опыта общения с TCT. На главной страничке внизу имеется несколько ссылок на различные документы, так что лучше всего начать оттуда.
Еще стоит сходить на Honeynet Project ( http://www.honeynet.org ). Группа добровольцев-профессионалов в рамках данного проекта занимается исследованием инструментария, мотивов и тактики взломщиков и публикует результаты исследований с целью поднять общую культуру безопасности на более высокий уровень. На этом сайте ежемесячно публикуется информация о реальных взломах и предлагается прислать свой вариант исследования вторжения. В архивах этого сайта можно найти достаточно большое количество подобных рецензий, представленных высокопрофессиональными специалистами в области компьютерной безопасности.
По умолчанию передаваемые по сети данные никак не защищены. Ваша информация может быть перехвачена в сети кем угодно, и вы ничего не можете с этим поделать. Попробуйте запустить утилиту traceroute, чтобы увидеть наглядный пример. Подайте команду "traceroute www.google.com" — и увидите все серверы, через которые проходят ваши данные по пути к www.google.com .
Всякий раз, когда вам предстоит войти в систему на каком-либо сайте, используйте протокол https. HTTPS использует SSL (Secure Sockets Layer) для шифрования передаваемых данных. Если этого не делать, то пароль может быть перехвачен взломщиком.
Для нужд удаленного администрирования лучше пользоваться ssh и scp ( http://www.openssh.com ). Эти две программы прекрасно заменяют telnet и FTP. Они просты в установке и работают аналогично вышеуказанным программам. После их установки можно открывать соответствующие порты в настройках iptables так, чтобы иметь возможность соединения с машиной извне.
Для шифрования электронной почты лучше использовать GnuPG ( http://www.gnupg.org ). Если вы отправляете кому-либо закрытую информацию, то используйте для шифрования открытый ключ данного субъекта. Также просите их использовать для шифрования ваш открытый ключ при передаче вам закрытой информации. Все это даст уверенность в том, что вашу почту не прочитает никто, кроме вас. Надеюсь, вышеописанные действия помогут вам обезопасить вашу работу в Сети.
По материалам Rob Tougher
Подготовил X-Stranger
Компьютерная газета. Статья была опубликована в номере 08 за 2003 год в рубрике soft :: linux