Как известно, вирусы бывают разных типов, и Linux защищен от каждого типа по-разному. Причем защита варьируется от дистрибутива к дистрибутиву.
Если интересно - вот статья из Википедии
http://en.wikipedia.org/wiki/Linux_malwareСамым очевидным вектором вирусной атаки являются дыры в старых версиях программ, которые зачем-то лезут в сеть, или "торчат" наружу каким-нибудь портом.
В частности, наибольший фактор риска для обычного пользователя - это браузер, особенно с установленными проприетарными плагинами типа Flash. Чем старее браузер, чем больше риск.
Следующий фактор - установка софта из исходников без проверки подлинности источника. Проверяйте контрольную сумму архивов, или даже gpg подпись. При установке пакетов из подписанных репозитариев этот фактор исключен, если вы доверяете тому, кто подписывает пакеты.
Потом идут различные атаки на сервисы - web, mysql, php, etc. Для домашней машинки это может быть неактуально, но формально это тоже атака. Но тут нужна квалификация, чтобы грамотно защититься, настроить firewall, идентификацию по ключам, etc.
Несмотря на то, что избавиться от дырок в программах нельзя, можно намеренно уменьшить получаемый от взлома ущерб. Как правило, удаленный взлом (=заражение вирусом-червем) используется, чтобы выполнить на взламываемой машине какой-нибудь вредоносный код.
Защита может строиться как на усложнении выполнения атаки - неисполняемый стек, рандомизация адресов системных библиотек, рандомизация расположения самого исполняемого кода (PIE), проверки переполнения стека (stack smashing), так и для того, чтобы успешная атака не нанесла значительный вред.
Для минимизации вреда используются такие технологии, как разделение привилегий, помещение сетевых сервисов в специальное окружение (chroot, VPS/VE, виртуализация), шифрование данных, использование вместо паролей хешей и другие методы.
Эти технологии приводят к тому, что если в программе обнаружена "дыра", то злоумышленник (или вирус), воспользовавшись этой дырой, получает минимальный доступ к системе. Не надо обольщаться, природа современного программирования такова, что даже этот минимальный доступ к системе может использоваться для заражения компьютера. В каждом дистрибутиве могут быть свои пути.
Из-за большого количества различных дистрибутивов Linux, написание универсального вируса, поражающего если не все, то хотя бы значительную долю компьютеров в Сети, дело весьма кропотливое и требующее серьезной квалификации взломщика. Сейчас написание такого вируса, на мой взгляд, экономически невыгодно. Проще и выгоднее вести узконаправленные атаки, на отдельные машины со строго заданным набором программ, чем изобретать способ атаковать все Linux-машины.
Обычному пользователю пока остается лишь посоветовать, в зависимости от уровня паранойи, следующие действия:
1) Не сидеть под рутом. Используйте su -/sudo для административных задач
2) Чаще обновлять софт, если есть стабильный доступ в интернет. Не пренебрегайте обновлением ядер - в них постоянно закрывают уязвимости. Для дистрибутивов ALT - добавьте в список репозитариев updates - и регулярно выполняйте apt-get update && apt-get dist-upgrade
3) Сконфигурируйте firewall так, чтобы соединения по сети происходили по возможности только с разрешенных компьютеров. Например, доступ по ssh можно ограничить для узкого круга админов. Доступ к БД - только для разрешенных машин и т.п. Если вы веб-разработчик, проверяйте IP при доступе в "админку" сайта.
4) Храните важные личные данные, которые могут быть интересны злоумышленнику, в зашифрованном виде. Придумывайте хороший пароль. Не храните пароль в открытом виде в каком-нибудь файле на компьютере.
5) Запускайте браузер (особенно firefox, как наиболее популярный и уязвимый браузер) в chroot. Вы таким образом лишитесь всяких вкусных возможностей вроде закачки различных файлов в интернет через браузер, но зато, если произойдет заражение, пострадают только личные данные, находящиеся в этом самом chroot.