Журнал LinuxFormat - перейти на главную

LXF78:Вопрос? Ответ!

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(Вопрос-победитель!)
м (восстановление кавычек в коде AWB)
 
(не показаны 4 промежуточные версии 1 участника)
Строка 42: Строка 42:
  
 
Этим утром я просмотрел /var/log/messages и увидел, что кто-то пытается атаковать меня по 22-му порту. Там были сотни сообщений от sshd вида <br />
 
Этим утром я просмотрел /var/log/messages и увидел, что кто-то пытается атаковать меня по 22-му порту. Там были сотни сообщений от sshd вида <br />
`Invalid user <xxx> from :: ffff:195.90.196.20’.
+
'Invalid user <xxx> from :: ffff:195.90.196.20'.
  
 
На моей системе зарегистрированы только 2 пользователя, root и я (вряд ли хакеры могут угадать мое имя). Я использую сильные пароли, комбинируя буквы верхнего и нижнего регистра с цифрами, их нет ни в каком словаре.
 
На моей системе зарегистрированы только 2 пользователя, root и я (вряд ли хакеры могут угадать мое имя). Я использую сильные пароли, комбинируя буквы верхнего и нижнего регистра с цифрами, их нет ни в каком словаре.
Строка 142: Строка 142:
  
 
Параметр offline пресечет попытки Chrony синхронизироваться с Интернет-серверами. Команда allow задает диапазон IP-адресов, которым разрешено получать время с этого сервера. Установите пароль:  
 
Параметр offline пресечет попытки Chrony синхронизироваться с Интернет-серверами. Команда allow задает диапазон IP-адресов, которым разрешено получать время с этого сервера. Установите пароль:  
  echo >/etc/chrony.keys `1 somepassword’
+
  echo >/etc/chrony.keys '1 somepassword'
  
 
Теперь запустите демон с помощью init-скрипта: Ваш сервер будет раздавать компьютерам из домашней сети свое локальное время. Для корректного обновления локального времени лучше исправить Cron-задание, дописав в сценарий cron после соединения такие строки:
 
Теперь запустите демон с помощью init-скрипта: Ваш сервер будет раздавать компьютерам из домашней сети свое локальное время. Для корректного обновления локального времени лучше исправить Cron-задание, дописав в сценарий cron после соединения такие строки:
Строка 238: Строка 238:
  
 
'''Ответ:''' <br />
 
'''Ответ:''' <br />
Да, бондинг допускает избыточность: один хост подключается к сети через два независимых пути (интерфейса). В отличие от метода с виртуальным IP-адресом, бондинг создает «плавающий» виртуальный интерфейс. Под Red Hat Вам нужно ассоциировать два физических интерфейса с одним виртуальным, ‘bond0’, при помощи стандартных файлов сетевой конфигурации. Итак, '''ifcfg-eth0''' и '''ifcfg-eth1''' должны содержать следующее:
+
Да, бондинг допускает избыточность: один хост подключается к сети через два независимых пути (интерфейса). В отличие от метода с виртуальным IP-адресом, бондинг создает «плавающий» виртуальный интерфейс. Под Red Hat Вам нужно ассоциировать два физических интерфейса с одним виртуальным, 'bond0', при помощи стандартных файлов сетевой конфигурации. Итак, '''ifcfg-eth0''' и '''ifcfg-eth1''' должны содержать следующее:
 
  /etc/sysconfig/network-scripts/ifcfg-
 
  /etc/sysconfig/network-scripts/ifcfg-
 
  eth0
 
  eth0
Строка 355: Строка 355:
 
  grep: /usr/X11R6/lib/libGL.la: No such file or directory
 
  grep: /usr/X11R6/lib/libGL.la: No such file or directory
 
  /bin/sed: невозможно прочитать /usr/X11R6/lib/libGL.la: No such file or directory
 
  /bin/sed: невозможно прочитать /usr/X11R6/lib/libGL.la: No such file or directory
  libtool: link: `/usr/X11R6/lib/libGL.la’ is not a valid libtool archive
+
  libtool: link: '/usr/X11R6/lib/libGL.la' is not a valid libtool archive
 
  make[5]: *** [kcm_info.la] Ошибка 1
 
  make[5]: *** [kcm_info.la] Ошибка 1
  make[5]: Leaving directory `/opt/kde3.5/konstruct/kde/kdebase/work/kdebase-3.5.0/kcontrol/info’
+
  make[5]: Leaving directory '/opt/kde3.5/konstruct/kde/kdebase/work/kdebase-3.5.0/kcontrol/info'
 
  make[4]: *** [all-recursive] Ошибка 1
 
  make[4]: *** [all-recursive] Ошибка 1
  make[4]: Leaving directory `/opt/kde3.5/konstruct/kde/kdebase/work/kdebase-3.5.0/kcontrol’
+
  make[4]: Leaving directory '/opt/kde3.5/konstruct/kde/kdebase/work/kdebase-3.5.0/kcontrol'
 
  make[3]: *** [all-recursive] Ошибка 1
 
  make[3]: *** [all-recursive] Ошибка 1
  make[3]: Leaving directory `/opt/kde3.5/konstruct/kde/kdebase/work/kdebase-3.5.0’
+
  make[3]: Leaving directory '/opt/kde3.5/konstruct/kde/kdebase/work/kdebase-3.5.0'
 
  make[2]: *** [all] Ошибка 2
 
  make[2]: *** [all] Ошибка 2
  make[2]: Leaving directory `/opt/kde3.5/konstruct/kde/kdebase/work/kdebase-3.5.0’
+
  make[2]: Leaving directory '/opt/kde3.5/konstruct/kde/kdebase/work/kdebase-3.5.0'
 
  make[1]: *** [build-work/kdebase-3.5.0/Makefile] Ошибка 2
 
  make[1]: *** [build-work/kdebase-3.5.0/Makefile] Ошибка 2
  make[1]: Leaving directory `/opt/kde3.5/konstruct/kde/kdebase’
+
  make[1]: Leaving directory '/opt/kde3.5/konstruct/kde/kdebase'
 
  make: *** [dep-../../kde/kdebase] Ошибка 2
 
  make: *** [dep-../../kde/kdebase] Ошибка 2
  
Строка 379: Строка 379:
  
 
'''Вопрос:'''<br />
 
'''Вопрос:'''<br />
С cron’ом я вроде бы разобрался, но вот беда: как сделать так, чтобы я не видел его работы? А то каждый раз мне приходит письмо:
+
С cron`ом я вроде бы разобрался, но вот беда: как сделать так, чтобы я не видел его работы? А то каждый раз мне приходит письмо:
 
  From: root@crd.example.net
 
  From: root@crd.example.net
 
  Subject: cron: /home/user/script
 
  Subject: cron: /home/user/script

Текущая версия на 16:16, 27 апреля 2008

Если вы завязли в какой-то проблеме и чтение HOWTO не помогает, почему бы не написать нам? Наши эксперты помогут вам разобраться даже в самых сложных проблемах.

Содержание


[править] Безbashенному

Вопрос:
Я пытаюсь писать bash-скрипты с использованием утилит, требующих ввода с клавиатуры. Например, здесь без этого не обойтись:

update-alternatives --config xxx

Хотелось бы автоматизировать этот процесс с помощью параметра, передаваемого скрипту. На данный момент мое лучшее решение – записать в файл то, что нужно ввести с клавиатуры, запустить update-alternatives, направив поток ввода из этого файла, а затем удалить сам файл. Но должен быть другой путь. Как можно ввести параметр с клавиатуры, не записывая его во временный файл? Аноним, с форума LXF

Ответ:
Запомните закон Linux (и Unix): «Все на свете – файлы», включая стандартные потоки ввода и вывода. Для них предусмотрены дескрипторы: &0 для стандартного ввода stdin, а &1 – для стандартного вывода stdout (кстати, &2 – это поток ошибок, stderr) . Вот что Вам нужно:

echo «A» | update-alternatives --config xxx <&0

Здесь «А» – параметр, вводимый с клавиатуры. echo посылает его в stdout, далее канал (|) перенаправляет его следующей команде: &0 – дескриптор для stdin, а <&0 направляет ввод на команду.

Согласно другому неписаному закону Linux, «для любой задачи существуют как минимум два способа выполнения». Вместо &0, &1 и &2 Вы можете указать /dev/stdin, /dev/stdout и /dev/stderr соответственно. Версии с & короче набирать, но /dev будут понятнее, если Вы откроете свой скрипт через полгодика. НБ


[править] Вдохнуть Ethereal

Вопрос:
Только что приобрел ваш журнал и установил SUSE Linux на списанный компьютер, потому что очень хочу разобраться в Linux. Установка была очень простой, и руководства в журнале очень полезные. Однако я сетевой инженер, поэтому теперь хочу установить Ethereal [анализатор сети]. Поскольку я новичок в Linux и у меня очень мало опыта, не могли бы вы подсказать, что нужно скачать, чтобы скомпилировать и установить Ethereal в SUSE Linux? Линден Данлоп

Ответ:
Собрать из исходных текстов любую открытую программу очень легко. Однако у дистри бутивов вроде SUSE Linux есть замечательное свойство: большинство необходимого имеется на дисках или в репозитариях пакетов.

Для установки Ethereal запустите YaST из меню SUSE, перейдите на вкладку Программное обеспечение (Software) и выберите Управление программным обеспечением (Software Management). Теперь просто напечатайте «ethereal» в строке поиска, выберите найденные пакеты и нажмите Принять (Accept) для запуска установки. Если у программы есть какие-нибудь зависимости (другие программы или библиотеки), они установятся автоматически.

По умолчанию YaST знает лишь о тех пакетах, которые есть на установочных дисках. Вы можете добавить репозитарии с дополнительными пакетами, выбрав Источники установки (Installation Sources). Список зеркал SUSE можно найти на сайте http://www.opensuse.org/Mirrors_Released_Version. Выберите себе сервер и добавьте его в YaST, чтобы иметь доступ к самым свежим версиям пакетов. НБ


[править] Уловка-22

Вопрос:
Я уезжаю работать за границу на несколько месяцев и хотел бы иметь удаленный доступ к своей сети. Установил FreeNX на SUSE 9.3 и перенаправил пакеты с порта 22 на нужную машину на роутере Netgear. Теперь я без проблем могу соединяться со своей машиной, просматривать почту и запускать приложения.

Этим утром я просмотрел /var/log/messages и увидел, что кто-то пытается атаковать меня по 22-му порту. Там были сотни сообщений от sshd вида
'Invalid user <xxx> from :: ffff:195.90.196.20'.

На моей системе зарегистрированы только 2 пользователя, root и я (вряд ли хакеры могут угадать мое имя). Я использую сильные пароли, комбинируя буквы верхнего и нижнего регистра с цифрами, их нет ни в каком словаре.

Беспокоиться ли насчет этих атак? Можно ли предупредить sshd, чтобы он отклонял соединения после X неудачных попыток входа за N секунд, или лучше просто отследить злоумышленника и отклонять вообще все пакеты с его ip-адреса? Лео Палваст

Ответ:
Такие атаки – обычное дело, если Вы открываете миру порт 22 для внешнего ssh-доступа. Есть несколько приемов, уменьшающих вероятность проникновения злоумышленника. Сложные пароли – только первый шаг. Так как Вы используете SSH для удаленной пользовательской работы, root-доступ Вам скорее всего не нужен, вот и отключите его в /etc/ssh/sshd_config. Для этого найдите строку

PermitRootLogin yes

и замените yes на no. Если понадобится, сможете получить права суперпользователя через su, а вот взломщику для этого придется взломать уже два пароля – сначала Ваш пользовательский, затем пароль суперпользователя.

Или включите yes для without-password. root-доступ откроется, но только для того, у кого верный ssh-ключ. Посмотрите man-страницы для ssh и ssh-keygen, чтобы побольше узнать об этом. Вы можете потребовать проверки ключа для всех пользователей, но тогда придется скопировать ключ на все компьютеры, с которых Вы захотите иметь ssh-доступ – это не здорово. Решение сработает, если Вы заходите по ssh только со своего ноутбука.

Для включения этой опции найдите строку с «PasswordAuthentication» и приведите ее к такому виду:

PasswordAuthentication no

Еще Вы можете запускать ssh-сервер на каком-нибудь нестандартном порту, изменив строку «Port 22» в sshd_config и разрешив этот порт в nxclient и knx. Все эти методы позволят Вам сделать Вашу систему практически недосягаемой для хакеров.

Есть несколько программ, блокирующих IP-адреса, с которых пытаются подобрать пароли для SSH и других сервисов: http://breakinguard.sf.net, http://daemonshield.sourceforge.net или http://www.csc.liv.ac.uk/~greg/sshdfilter.


[править] Криптографомания

Вопрос:
У нас в офисе – внутренний почтовый сервер на Dovecot. Мы бы хотели обеспечить нашим сотрудникам шифрованный доступ к нему, чтобы они могли подключаться к серверу из дома, но беспокоимся о безопасности этого шага. Можете ли вы рассказать о том, как разрешить безопасное соединение через надежные email-протоколы? Мичил Гир

Ответ:
Шифрование базовых сервисов совсем не трудно, несмотря на то, что математические аспекты криптографии очень сложны для понимания. Нужно только создать SSL-сертификат и убедиться, что сервер работает с созданными нами сертификатами. Сертификат можно и купить, но вряд ли это будет оправдано в случае исключительно внутренних нужд. Будь это общедоступный сервис, Вам потребовался бы сертификат, распознаваемый большинством распространенных почтовых клиентов.

Для создания сертификата воспользуемся пакетом OpenSSL (http://www.openssl.org), который есть в большинстве дистрибутивов. Команда openssl сама по себе малопонятна, но есть простой интерактивный интерфейс, через который можно создать сертификат для Вас. Для этого имеется скрипт mkcert.sh, поставляемым вместе с Dovecot, но, имея дело с файлами OpenSSL, можно изготовить ключи и сертификаты другого вида.

От лица суперпользователя перейдите в директорию /etc/pki/tls/certs (/usr/share/ssl/certs для SUSE или /etc/ssl для Mandriva). Если наберете make в командной строке, получите напоминание о том, какие сертификаты будут созданы. Обычно сначала создается ключ, а затем на его основе генерируется сертификат. А вот команда make dovecot.pem создаст ключ и сертификат для Dovecot, оба в одном файле. Все, что Вам нужно – в ответ на подсказку ввести информацию (значения по умолчанию будут показаны в квадратных скобках). Самое важное из заполняемых полей – Common Name, тут следует вписать домен Вашего почтового сервера, а с остальными разобраться нетрудно.

Теперь перенесем созданный сертификат в директорию, указанную в файле конфигурации Dovecot – /etc/dovecot.conf, параметры ssl_cert_file и ssl_key_file – это те самые сертификат и ключ.

Просто скопируем файл с этой парой в /etc/pki/dovecot/dovecot.pem и в /etc/pki/dovecot/private/dovecot.pem, удалив при этом автоматически сгенерированные файлы. Уникальный сертификат готов – наслаждайтесь безопасным сервером Dovecot. КК


[править] Где модем?

Вопрос:
После месяцев сомнений я наконец набрался смелости установить SUSE 10. Установка прошла нормально, но система настойчиво считала, что я в локальной сети (хотя у меня никакой сети нет), да еще она не нашла мой модем.

Я испробовал все советы из вашего журнала и все, что нашел в различных форумах, однако без толку (честно говоря, многого из того, что мне советовали, я просто не понял). Я даже хотел удалить Linux с жесткого диска, но теперь уже долгое время я не могу загрузиться в Windows, потому что не запускается какой-то Grub.

Если вы сможете мне помочь, я попытаюсь еще раз. Если нет, то как я могу удалить SUSE Linux? Лес Вуд

Ответ:
Во-первых, важное замечание. Пока Вы не сообщите как можно больше информации о Вашей системе, мы будем блуждать в потемках. Чтобы помочь, мы должны знать конфигурацию компьютера, на который Вы устанавливаете Linux. Есть в Вашем компьютере сетевая карта? Если да, тогда понятно, почему SUSE думал, что Вы в сети. Решение этой ИСКЕ проблемы очень простое: запустите YaST, зайдите в Сетевое оборудование (Network Devices) > Сетевая карта (Network Card), выделите сетевой интерфейс и нажмите Удалить (Delete).

Теперь займемся модемом. Скорее всего SUSE его не распознает, потому что у Вас так называемый Winmodem. Это примитивные устройства, и большинство их функций перекладывается на центральный процессор и Windows-драйвер. Некоторые из них можно уговорить поработать в Linux, некоторые – нет, поскольку их изготовители не выкладывают спецификаций, которые нужны для создания драйвера.

Для начала определите, что у Вас за модем, с помощью утилиты Scanmodem, которая включена на диск этого журнала. Вставьте диск, запустите терминал и выполните такую команду:

sh /media/cdrom/Magazine/Answers/scanModem

Скрипт создаст директорию Modem с несколькими текстовыми файлами, содержащими информацию о Вашем модеме, о подходящем драйвере и о том, где его найти. Дополнительная информация имеется на сайте http://linmodems.org.

С другой стороны, можно приобрести обычный COM-модем (с некоторыми USB-моделями также возникают сложности). COM-модемы без проблем работают абсолютно в любой операционной системе.

Ваша проблема с удалением Linux не уникальна. Когда Вы установили его, в главную загрузочную запись прописался Grub, позволяющий выбрать загрузку Linux или Windows. Linux Вы стерли, а Grub остался, но необходимые ему файлы были удалены. Поэтому он и не может нормально запуститься. Если у Вас Windows 98, загрузитесь с аварийной дискеты или диска и запустите fdisk следующим образом:

fdisk /mbr

Если у Вас Windows XP, то вместо fdisk запустите fixmbr. НБ


[править] Синхронология

Вопрос:
У меня есть старый компьютер с Mandrake 8.2, который служит домашним сервером для шести компьютеров. Мы все еще на ISDN, поскольку в широкополосном Интернете для нас нет насущной необходимости. Последние несколько месяцев я использовал NTP для еженедельной синхронизации времени на сервере. Я создал простое задание в Cron, по которому сервер соединяется с Интернетом, синхронизирует время с помощью ntpdate, а затем разрывает соединение.

Следующий шаг – синхронизировать домашние компьютеры с сервером. Я не могу использовать для этого ntpdate (это ведь не демон), у меня работает ntpd. Я наконец разобрался, как его настроить – документация к NTP выглядит как диссертация по астрофизике, а не как руководство пользователя – и действительно могу синхронизировать компьютеры с сервером, но ntpd сам пытается синхронизироваться с Интернет-серверами каждые несколько минут, а так как соединения при этом нет, то он завершается аварийно.

Как можно настроить ntpd, чтобы он синхронизировался с Интернет-сервером только в заданное время? Или можно сделать так, чтобы для синхронизации времени использовалось мое задание с ntpdate, а сам ntpd раздавал на компьютеры локальное время сервера? Мэтью Вайз


Ответ:
Дизайн большинства NTP-серверов, включая ntpd и openntpd, рассчитан на постоянное подключение к Интернету. Поддержка связи с другими серверами времени является неотъемлемой частью алгоритма их работы, что делает их бесполезными в Вашем случае.

Для обеспечения сервиса синхронизации времени с непостоянным или вообще отсутствующим Интернет-доступом создан Chrony. Он содержит две программы: chronyd, демон, раздающий клиентам локальное время сервера, и chronyc, который служит для синхронизации локального времени сервера с другими серверами времени. Последнюю версию пакета можно взять с http://chrony.sunsite.dk. Вам придется скомпилировать его из исходных текстов, но это простой процесс и он отлично описан в файле INSTALL.

Документация довольно многословная, однако простой сервер настроить очень легко. Просто поместите в /etc/chrony.conf следующие строки, заменяя nnn.nnn.nnn.nnn IP-адресом Вашего сервера:

server nnn.nnn.nnn.nnn offline
server nnn.nnn.nnn.nnn offline
server nnn.nnn.nnn.nnn offline
keyfile /etc/chrony.keys
commandkey 1
driftfile /etc/chrony.drift
allow 192.168.1

Список доступных серверов можно получить следующей командой:

netselect -s 3 pool.ntp.org

Параметр offline пресечет попытки Chrony синхронизироваться с Интернет-серверами. Команда allow задает диапазон IP-адресов, которым разрешено получать время с этого сервера. Установите пароль:

echo >/etc/chrony.keys '1 somepassword'

Теперь запустите демон с помощью init-скрипта: Ваш сервер будет раздавать компьютерам из домашней сети свое локальное время. Для корректного обновления локального времени лучше исправить Cron-задание, дописав в сценарий cron после соединения такие строки:

/usr/local/bin/chronyc <<EOF
password somepassword
online
EOF

Проделайте это еще раз после разрыва соединения, заменив online на offline. НБ


[править] Порулить мышью

Вопрос:
У меня есть IntelliMouse с семью кнопками: 1 = левая, 2 = средняя, 3 = правая, 4 и 5 = колесо, 6 и 7 = дополнительные кнопки. Я хотел бы контролировать этими кнопками уровень громкости, а может, переключение песен в Amarok. Насколько я понимаю, все это можно сделать, исправив файл xorg.conf. Можете помочь? Тим

Ответ:
Для начала нужно убедиться, что все семь кнопок посылают события в X-сервер. Для этого запустите xev и покликайте по его окну всеми кнопками. Если нажатие распознано, Вы увидите что-то вроде этого:

ButtonRelease event, serial 31,
synthetic NO window
0x3600001,
root 0x5a, subw 0x0,
time
191458267, (86,1 1),1
root:(91,162), state 0x1 button 4, 10, same_screen YES

Если сервер не получает событий от дополнительных кнопок, отредактируйте xorg.conf. У Вас уже должна быть строка ZAxisMapping; просто поменяйте в ней две цифры последних номеров кнопок и добавьте строку Buttons, указав в ней количество кнопок. Вот как это выглядит для семикнопочной мыши:

Section «InputDevice»
Identifier «USBMouse»
Driver «mouse»
Option «Protocol» «auto»
Option «Device» «/dev/input/mice»
Option «Buttons» «7»
Option «ZAxisMapping» «6 7»
EndSection

Перезапустите X-сервер и снова попробуйте xev. Ваши дополнительные кнопки – это 4 и 5, а колесо теперь будет 6 и 7. Сопоставим мышиным событиям нужные действия. Для этого можно взять XbindKeys (http://hocwp.free.fr/xbindkeys). У XBindKeys очень простой файл конфигурации (~/.xbindkeysrc). Например, он может выглядеть вот так:

«firefox»
b:4

В данном случае при щелчке по кнопке 4 запустится Firefox. Для контроля любого KDE-приложения Вам нужно изучить DCOP (Desktop Communications Protocol). Запустите kdcop и посмотрите, какие команды принимает Amarok. Выполните эти команды из kdcop, и увидите, как их можно запустить из командной строки, скрипта или XBindKeys. Например, для перехода на следующую песню в Amarok нужно выполнить такую команду:

dcop amarok player next.

НБ


[править] Почто-man

Вопрос:
На моем компьютере установлена Fedora Core 4, и я хотел бы знать, можно ли посылать письма из Cron-задания через запущенный Sendmail-сервер. Это спасло бы меня от запуска второй копии Sendmail. Мэтт Уэлш

Ответ:
Несмотря на то, что для работы Sendmail или Postfix в Fedora Core 4 почти не требуется редактировать файлы конфигурации, Вы можете воспользоваться ESMTP или SSMTP для отправки почты через внешний почтовый сервер. Раньше я для этого пользовался SSMTP, однако сейчас, похоже, через Yum работает только ESMTP:

# yum install esmtp
# cat > /etc/esmtprc << «EOF»
hostname = mailserver:25
mda «/usr/bin/procmail -d %T»
EOF
#

Эта простая конфигурация будет пропускать почту через сервер mailserver на 25-м порту. Рекомендую прочесть man-страницы для esmtp и esmtprc для ознакомления со всевозможными опциями.

Если Sendmail по умолчанию является MTA (запустите alternatives --display mta, чтобы это выяснить), это можно исправить, выбрав ESMTP:

# alternatives --config mta

Команда отобразит меню для выбора MTA по умолчанию.

Наконец, если Вы намерены пропускать через Sendmail даже почту для удаленных ящиков (скажем, направив выход Cron на адреса @gmail.com), убедитесь, что Вы верно отредактировали /etc/mail/access.

Как я уже говорил, вместо ESMTP можно использовать SSMTP. Он не доступен через Yum, так что Вам нужно будет установить его вручную:

# cd /root
# wget ftp://ftp.debian.org/debian/
pool/main/s/
ssmtp/ssmtp_2.61.orig.tar.gz
# tar -xzvf ssmtp_2.61.orig.tar.gz
# cd ssmtp_2.61
# make
# make install

Скрипт устроит Вам небольшой допрос и установит SSMTP-сервер в /usr/local/sbin, а файл его конфигурации (ssmtp.conf) – в /usr/local/etc/ssmtp/. Проверьте в файле конфигурации строку mail: она должна указывать на Ваш Sendmail-сервер. Для получения детальной информации запустите man ssmtp и рассмотрите пример конфигурационного файла в директории ssmtp_2.61 (содержащей исходные коды).

Так как Вы устанавливали программу не через менеджер пакетов, а вручную, нужно добавить SSMTP в список доступных MTA:

# alternatives --install /usr/sbin/
sendmail mta /usr/
local/sbin/ssmtp 10

Теперь убедитесь, что SSMTP является MTA по умолчанию:

# alternatives --config mta

Не забудьте, что если Вы хотите пропускать почту для внешних адресов, то надо соответствующим образом настроить Sendmail. КК


[править] Бондинг

Вопрос:
У меня на компьютере под управлением Red Hat установлены две сетевые карты Ethernet, которые подключены к одному коммутатору (switch), и у меня один статический IP-адрес. Можно ли без виртуального IP настроить оба сетевых интерфейса как два параллельных пути, таким образом, чтобы в случае обрыва одной связи трафик переключался на другую? Тони

Ответ:
Да, бондинг допускает избыточность: один хост подключается к сети через два независимых пути (интерфейса). В отличие от метода с виртуальным IP-адресом, бондинг создает «плавающий» виртуальный интерфейс. Под Red Hat Вам нужно ассоциировать два физических интерфейса с одним виртуальным, 'bond0', при помощи стандартных файлов сетевой конфигурации. Итак, ifcfg-eth0 и ifcfg-eth1 должны содержать следующее:

/etc/sysconfig/network-scripts/ifcfg-
eth0
DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
/etc/sysconfig/network-scripts/ifcfg-
eth1
DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes

Теперь создайте файл сетевого интерфейса bond0, который должен содержать что-то вроде этого:

/etc/sysconfig/network-scripts/ifcfg-
bond0
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
TYPE=Ethernet
IPADDR=x.y.z.a
NETMASK=x.y.z.a

Этим вы ассоциировали два физических интерфейса с одним виртуальным.

Вам нужно настроить запуск бондинга при загрузке. Для этого добавьте следующие строки в /etc/modprobe.conf

alias bond0 bonding options
bonding mode=1 miimon=100
primary=eth0
install bond0 /sbin/modprobe eth0;
/sbin/modprobe eth1; /sbin/
modprobe bonding; /bin/true

mode=1 – активный/неактивный miimon=100 – период опроса сети в миллисекундах (100мс)

Теперь загрузите модуль бондинга и перезапустите сетевой init-скрипт. Выполните следующие команды от лица суперпользователя:

# modprobe bond0
# service network restart

Последнее, что осталось сделать – обновить конфигурацию iptables и заменить упоминания о реальных интерфейсах на виртуальный. КК


[править] Адский RPM

Вопрос:
Я пробовал установить OpenOffice.org с DVD номера LXF74. Разархивирование z-файла с DVD не обнаружило никакого ./configure, только RPM-файлы. Используя rpm в командной строке, я обнаружил порочный круг: CORE01 требует для установки пакеты CORE02-CORE08, а пакеты CORE02–CORE08 – CORE01.

У меня дистрибутив Mandrake 9.1, установленный с CD номера LXF41. Rpm я запускал из домашней директории, в которую скопировал пакеты. Джон

Ответ:
Как Вы запускали rpm? Если Вы пытались устанавливать пакеты по очереди, то понятно, почему у Вас ничего не вышло – они зависят друг от друга. Команда rpm может разрешить эту ситуацию, но только если Вы укажете все пакеты сразу:

rpm -Uhv *.rpm

Нужно лишь позаботиться, чтобы в директории, где Вы запускаете эту команду, не было других RPM-пакетов. НБ


[править] Примочки QuickTime

Вопрос:
Я установил SUSE 10.0 с DVD номера LXF74: система очень проста в установке и содержит бесплатный офисный пакет, однако я не смог найти подключаемый модуль QuickTime для Firefox. Пробовал Quicktime4Linux – но с тех пор, как вышел QuickTime 7, он больше не работает. На сайте Apple подразумевается, что у меня либо Windows, либо MacOS.

В любом случае, трудно поверить, что Apple не портировала модуль на Linux, ведь OS X использует ядро Linux. Если и вы не знаете альтернативного сайта с трейлерами, я оказываюсь в луже. Джефф Баркл

Ответ:
Подключаемый модуль Mplayer для Mozilla работает также и с Firefox (http://mplayerplugin.sf.net). Он позволит Вам просматривать мультимедиа-файлы прямо в браузере. И в формате QuickTime тоже – правда, не все. Множество новых трейлеров сжаты закрытым кодеком Sorensen, который не поддерживается ни одним открытым проектом – пока не будет взломан.

Есть и другой вариант: с помощью CrossOver Office (разновидность Wine) можно использовать Windows-модули в Linux-браузерах, а также запускать приложения Windows прямо из-под Linux. CrossOver Office доступен на http://www.codeweavers.сom/site/products/cxoffice. Стандартная версия стоит $39.95.

Между прочим, Mac OS X базируется не на ядре Linux, а на разновидности BSD [а если быть еще точнее – на микроядре Mach и некоторых пользовательских утилитах BSD, – прим. ред.]. НБ


[править] Promise неправ?

Вопрос:
Я использую CentOS (основанный на RHEL), и не могу заставить работать SATA-контроллер Promise, к которому присоединен 500-ГБ диск. Последняя версия драйвера работает только со старым ядром. Я писала письма в Promise 20–30 раз, и вместо помощи получила только стандартный электронный ответ.

А еще я планирую в скором времени купить ноутбук IBM, и хочу установить туда Linux. Можете ли вы сказать, какой дистрибутив поддерживает ноутбуки IBM лучше всего, со всякими там драйверами? Жанна

Ответ:
На моем компьютере установлен такой контроллер, и он нормально работает. На сайте выложены лишь старые версии драйвера по причине того, что новые версии теперь включены в ядро. Есть вероятность, что ядро было собрано без поддержки этого контроллера, а это значит, что Вам придется его пересобрать.

Если Вы никогда этого не делали, процесс может показаться сложным, но на самом деле все просто. Главное, не замещайте старое ядро, сохраните его наряду с новым, тогда у Вас будет резерв на случай сбоя. Есть множество HOWTO насчет компиляции ядра, например, http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html.

Что касается дистрибутива для ноутбука IBM, то сгодится любой: оборудование IBM поддерживается Linux лучше всего, так что выбор зависит только от Вашего личного вкуса. Многие дистрибутивы имеют LiveCD-версии, которые можно запустить без установки на жесткий диски и посмотреть, какой Вам симпатичнее. Рекомендую ознакомиться с рубрикой Distrowatch. НБ


[править] Редкостный RAID

Вопрос:
Имеется двухпроцессорый сервер Intel cо SCSI-контроллером Adaptec 7899 (использует драйвер aic7xxx.o), на котором установлен RedHat AS 2.1 с ядром ...smp-2.4.9-e27.i386. Имеется внешний дисковый RAID-массив фирмы CNSi Chapparal G6322. По-умолчанию, при загрузке сервера, внешний RAID-массив не определяется – это видно из файла /var/log/messages.

Как сделать возможным использование данного RAID-массива на Linux-сервере?

Доподлинно известно, что «прикрутить» внешний RAID-массив возможно (второй такой же сервер работает с этим Chapparal G6322). После тщательного поиска на работающем сервере обнаружил в исходниках ядра (явно изменённого – сравнивал) файл scsi_scan.c в котором имеется строка с CNSi Chapparal G6322.

Я понимаю, что можно сделать BACKUP системы с данного сервера и восстановить на «подопытном». Но это не выход т.к. всё равно ядро нужно обновлять, чтобы работал подправленный Oracle 9i. Николай Дмитриев

Ответ:
В первую очередь, я бы порекомендовал вам не использовать модифицированные ядра при работе с базами данных Oracle, так как при этом вы теряете сертификацию для платформы и техническую поддержку от Oracle и Red Hat. Далее, обновите версию ядра до последней на сегодняшний момент – kernel-smp-2.4.9-e.68.i686.rpm. Затем у вас не должно будет возникнуть проблем с самим SCSI-контроллером Adaptec 7899, который должен работать в RHEL 2.1 «из коробки». Скорее всего, вы столкнулись с известной особенностью RAID-массивов Chapparal связанной с нестандартной нумерацией LUN-ов. В RHEL версии 4 и выше вы могли бы попробовать воспользоваться утилитой scsi_id, но поскольку UDEV, через который работает данная утилита, не используется в RHEL 2.1, попробуйте воспользоваться ссылкой http://www.garloff.de/kurt/linux/scsidev/. При помощи скрипта rescan-scsi-bus.sh вы можете принудительно опросить шину на предмет подключенных устройств. Вызов скрипта нужно разместить в /etc/rc.d/rc.sysinit до момента проверки файловых систем утилитой fsck. АМ


[править] KDE без проблем

Вопрос:
У меня возникла такая проблема: уже четвертый раз не получается установить KDE 3.5. Пробовал и KDE 3.5.1, обе системы – с дисков журнала.

Каждый раз выдает в самом конце:

grep: /usr/X11R6/lib/libGL.la: No such file or directory
/bin/sed: невозможно прочитать /usr/X11R6/lib/libGL.la: No such file or directory
libtool: link: '/usr/X11R6/lib/libGL.la' is not a valid libtool archive
make[5]: *** [kcm_info.la] Ошибка 1
make[5]: Leaving directory '/opt/kde3.5/konstruct/kde/kdebase/work/kdebase-3.5.0/kcontrol/info'
make[4]: *** [all-recursive] Ошибка 1
make[4]: Leaving directory '/opt/kde3.5/konstruct/kde/kdebase/work/kdebase-3.5.0/kcontrol'
make[3]: *** [all-recursive] Ошибка 1
make[3]: Leaving directory '/opt/kde3.5/konstruct/kde/kdebase/work/kdebase-3.5.0'
make[2]: *** [all] Ошибка 2
make[2]: Leaving directory '/opt/kde3.5/konstruct/kde/kdebase/work/kdebase-3.5.0'
make[1]: *** [build-work/kdebase-3.5.0/Makefile] Ошибка 2
make[1]: Leaving directory '/opt/kde3.5/konstruct/kde/kdebase'
make: *** [dep-../../kde/kdebase] Ошибка 2

Из-за чего это? Подскажите, пожалуйста. Моя система: Mandriva 2006, AMD64 3000+; Abit KV8 Pro S754, 1,2Gb DDR400 RAM. Александр Сергеевич

Ответ:
Если для Вас не проблема выкачать из Интернета 200-300 Мбайт, то логичнее было бы обновить KDE из cooker-репозитория Mandriva Linux. В cooker довольно быстро появляются собранные пакеты самых свежих программ. Для того, чтобы обновить KDE из cooker, нужно добавить его в список репозиториев. Откройте Центр Управления Mandriva -> Управление программами -> Настройка источников. В менеджере источников нажмите кнопку «Добавить пользовательский» и введите в поле для URL ftp://ftp.free.fr/pub/Distributions_Linux/MandrivaLinux/devel/cooker/amd64/media/main. Подтвердите добавление источника и закройте центр управления. После этого обновить KDE можно командой urpmi kdebase.

Если же вы не имеете возможности скачать готовый пакет и намерены собрать KDE из исходных текстов, Вам следует установить пакет libMesaGLU1-devel, из-за отсутствия которого и происходит описанная Вами ошибка. АК


[править] Болтливый cron

Вопрос:
С cron`ом я вроде бы разобрался, но вот беда: как сделать так, чтобы я не видел его работы? А то каждый раз мне приходит письмо:

From: root@crd.example.net
Subject: cron: /home/user/script

А сценарий запускается каждые четыре минуты... Как быть? С форума LXF Russia

Ответ:
Чтобы cron не рассылал вам ежеминутный отчет о проделанной работе, отредактируйте свой файл crontab и укажите в качестве значения переменной окружения MAILTO пустую строку (MAILTO=»»). Имейте в виду, что отсутствие переменной MAILTO и пустая переменная MAILTO – это разные вещи. Кроме того, рекомендую Вам перенаправить стандартные потоки вывода и ошибок в /dev/null:

4 * * * * /home/user/script >/dev/null 2>&1

ВС


[править] Вопрос-победитель!

  • Редакция вместе с компанией Bitrix выбрали самый интересный вопрос месяца и поздравляют победителя с заслуженной наградой – сертификатом на 1000 рублей в LinuxCenter.ru

Вопрос:
Да где же оно?

Не могли бы вы подсказать мне хорошую программу-каталогизатор для CD под Linux? Что-нибудь наподобие программы WhereIsIt?, которую я когда-то видел под Windows. Основные требования: программа должна уметь сканировать компакт-диск и запоминать структуру каталогов, список всех файлов, с указанием их атрибутов – даты и времени создания и осуществлять удобный поиск по имени файла в своей базе. Также большим плюсом было бы запоминание не только имен файлов, но и содержимого архивов.

Я давно ищу подобную программу, и к сожалению ничего подобного так и не встречал. Сергей

Ответ:
Попробуйте программу Gwhere (http://www.gwhere.org/), которая упоминается в разде- ле HotPicks февральского номера Linux Format. Она удовлетворяет всем перечисленным вами требованиям и даже умеет осуществлять поиск внутри архивов, правда, для этого может потребоваться пересобрать ее из исходных текстов. Кстати, программа доступна не только для Linux, но и для Windows. СК

Комментарий редакции: нам было особенно приятно опубликовать эту пару «вопрос-ответ». Дело в том, что Сергей не только сам нашел решение поставленной им задачи быстрее, чем это сделали мы, но и не поленился описать его и отправить в журнал. За стремление к читательской взаимовыручке (в духе Open Source) и самостоятельность в решении задач мы с удовольствием награждаем Сергея почетным титулом автора «Вопроса месяца»!

Персональные инструменты
купить
подписаться
Яндекс.Метрика