На главную | Поиск
Вы находитесь в Хранилище файлов Белорусской цифровой библиотеки

Что поправить в свеже-проинсталлированном Linux

Текст будет пополняться. Я знаю единственный дистрибутив Linux, который можно было использовать сразу, не ковыряясь в его конфиг-файлах, в пользовательском окружении, и т.п. - Slackware 1.0 образца 1994 года. Все последующие релизы Slackware, а тем паче RedHat перед употреблением требуют хирургического вмешательства.

RedHat 5.1

From: Сергей Богомолов. Глючит, сил нет. Но мой SoundBlaster только в нем работает. From: Дмитрий Волошин Глючный. From: Максим Мошков Глюки, а какие - сам не пойму, вроде и не впомнишь на что жаловаться. А на firewall я опять поставил 4.2 (с заплатками, естественно). From: Юрий Васильевич Коваленко 1.) если не установил LILO именно с этого дистрибутива (а у меня на машине есть еще и RH-4.2) rc.sysinit не может найти модули. 2.) После установки в resolv.conf появилась только одна строка с одним словом "search", информацию о сети просил узнать по bootp. Следствия - ругань на неправильный формат файла и отсутствие доступа к nameserver. 3.) При сборке ядра 34-1 из /updates ручками пришлось делать link asm - asm-i386 4.) Glint завис при появлении в /updates директории (/jpeg). Это то, что вспомнилось сразу, особенно яркие впечатления от 1 пункта. По сравнению с 4.2 - очень сыро, очень плохо реагирует на любой шаг в сторону от представлений авторов об конфигурации машины. RH-4.2 использую 5 часов в сутки на он лайн обработке эксперимента, 5.0 и 5.1 не внушают доверия для этой цели, жду 5.2.

RedHat 5.0

From: Сергей Кузовков Установил RedHat 5.0 - нет графической конфигурялки для Иксов, пропала удобная программа statnet, а программа GhostView при выборе пункта "print" вместо имени принтера требует теперь ввести команду печати...

Несовместимый cpio

Архив cpio -ov в RedHat 5.0 не читается на других платформах. А совместимый cpio -ovca - НЕ ЧИТАЕТСЯ на самом Linux!!! Снести "родной" cpio, и заменить его "старым" из 4.2 В явной форме задавать ключ -H crc

RedHat 4.2, 5.0

Проблема: Инсталляция по NFS - наглухо зависает. "Permition denied" Лечение: Вы ведь этот дистрибутив сftpили? А право "execute", которое ftp сбросил, восстановить не забыли? cd redhat ; chmod -R a+x .

fstab: Пропал диск C:, где дискетки A:, B:

Проблема: Как работать с досовскими дискетами? RedHat предполагает, что настоящий unixоид пользуется дискетками формата ext2, и не встречается с FAT-овскими досовскими флоппи. Проблема: Не подключаются досовские разделы жесткого диска. Потому что инсталлятор "забыл" сделать mount-point для них. Проблема: Что делать с CDROM-ом? Лечение: Создать соответствующие каталоги mkdir /a mkdir /b mkdir /cdrom mkdir /dos mkdir /dosd В файле /etc/fstab добавить/исправить строчки: /dev/fd0 /a msdos defaults,user,umask=000,noauto 0 0 /dev/fd1 /b msdos defaults,user,umask=000,noauto 0 0 /dev/cdrom /cdrom iso9660 defaults,user,ro,exec,dev,suid,noauto 0 0 /dev/hda1 /dos msdos defaults,user,umask=000 0 0

startx: Экономим один виртуальный терминал и немного памяти

Проблема: После запуска X, startx занимает один виртуальный терминал, и оставляет за собой два sleeped процесса. Лечение: В файле /usr/bin/X11/startx исправить строчку xinit $clientargs -- $serverargs на exec xinit $clientargs -- $serverargs &

lpd: удаленная печать - permition denied

Проблема: RedHat host по умолчанию не дозволяет печатать на своем принтере удаленным lpr клиентам. Лечение: (вообще-то так оно и должно быть - security) В файл /etc/hosts.lpd вписать все хосты, которым дозволено печатать.

RedHat: отсутствует pcnfsd

Проблема: PC с клиентами NFS не получают доступ к сетевому диску. Лечение: то, что нужно вписать в /etc/exports хотя-бы такую строчку / (rw) это, полагаю, особого удивления вызывать не должно. Но, в RedHat не входит демон pcnfsd ! Скомпилируйте pcnfsd из исходников, или возьмите его из RedHatовского Contrib'а или из Slackware, и добавьте запуск rpc.pcnfsd в файл активизации nfsserver'а /etc/rc.d/rc3.d/S60nfs daemon rpc.mountd daemon rpc.nfsd + daemon rpc.pcnfsd echo

profile: Проблемы с кирилицей из-за кривого окружения

Проблемы: vi рисует русские буквы восьмиричными кодами. less рисует русские буквы шестнадцатеричными кодами. Bash не позволяет ввести в командной строке русских букв и мерзко пищит при этом. Лечение: В /etc/profile добавьте команды LC_CTYPE=iso_8859_1 export LC_CTYPE # Это спасает русские буквы в VI LC_LOCALE=iso_8859_1 export LC_LOCALE # Это спасает русские буквы в VI LESS="-e -r -X" export LESS # Чтоб less русские буквы не калечил

/etc/inittab: RedHat стирает экран перед выводом Login:

Проблема: перед тем, как вывести приглашение login, стирается экран. Кстати, из-за этого сбрасывается русский алфавит и перекодировку koi2alt приходилось восстанавливать ручками echo -e '\033(K' Лечение: В /etc/inittab поправить строчки запуска getty (добавить "--noclear") 1:12345:respawn:/sbin/mingetty --noclear tty1 . . .

profile: Как расправиться с неудобным приглашением bash

Проблема: Приглашение командного интерпретатора bash во первых невразумительно, а во вторых в разных окошках оно разное. Лечение: Приглашение задается переменной окружения PS1. Наивен, кто считает, что достаточно установить ее в своем пользовательском .profile . Увы, следы кривого окружения надо выкорчевывать с корнем. В файлах /etc/profile /etc/skel/.bashrc $HOME/.profile добавьте/исправьте команду PS1='\u@tty2:\w/\$ ' export PS1 Файл /etc/bashrc уничтожьте. Все что было в нем разумного (IMHO - ничего в нем разумного нет) верните на свое законное место в /etc/profile

/etc/skel: Лажовое пользовательское окружение

Проблема: Выставляется безумное значение переменной PS1. Не отрабатывается пользовательский .profile Лечение: Удалить в домашнем каталоге файлы .bash_logout .bash_profile Исправить файл .bashrc на PS1='\u@tty2:\w/\$ ' export PS1 Чтобы прекратить "осчаствливливание" всех своих юзеров, проделать ту же операцию в каталоге /etc/skel Продолжение следует. Рекомендую так же посмотреть: Начало работы в системе ()

Команда man по завершении просмотра стирает экран с мануалом

Проблема: Команда man по завершении просмотра стирает экран с мануалом Называется "а у тебя ведь хорошая память? Isn't it?" Лечение: man использует для просмотра команду less. У less есть ключ "-X" - "не деинициализировать экран по окончании. Поэтому добавьте его к дефолтным ключам в переменную окружения LESS в своем профайле. LESS="-e -r -X" export LESS Лечение: другой метод - поправить в описании терминала строку деинициализации (ах, как там она называется?), и убрать из нее команду стирания экрана.

crontab: масса излишних работ

crontab root'а лежит у RedHat в нестандартном месте - /etc/crontab . Может быть для БОЛЬШОГО много пользовательского internet-сервера и нужен такой огромный список планируемых работ, но все равно, рекомендую на него посмотреть, сократить частоту запуска раз эдак в 10, а кое-что совсем закомментировать. Конкретно: сократить частоту atrun 0,10,20,30,40,50 * * * * root /usr/sbin/atrun # Trim log files увеличить размер при котором log-файл удаляется с 16 до 256kb Если используется uucp то добавить чистку uucp-ишых log-файлов. В Redhat Linux ежедневно пускается команда updatedb, создающая индекс для locate. Однако в этот индекс попадают файлы только из корневого каталога. Лечение: исправить ключи команды updatedb в файле /etc/cron.daily/updatedb.cron с --localpaths='' --netpaths='/' на --localpaths='/' --netpaths=''

Конфигурация XDM

Поставляемый с RedHat файл Xsession неработоспособен. Поправьте в /etc/X11/xdm/Xsession нижний фрагмент текста на примерно такой: ################## moshkow ############################# sysprofile=/etc/profile profile=$HOME/.profile [ -f "$sysprofile" ] && . $sysprofile [ -f "$profile" ] && . $profile [ -f "$resources" ] || resources=$HOME/.Xdefaults [ -f "$resources" ] || resources=$HOME/.Xresources [ -f "$startup" ] || startup=$HOME/.xinitrc [ -f "$startup" ] || startup=$HOME/.xsession [ -f "$startup" ] || startup=/usr/lib/X11/xinit/xinitrc if [ -f "$startup" ]; then xrdb -load "$resources" exec sh "$startup" fi ################## moshkow #############################

Разное. Нерешенные проблемы

После перекомпиляции ядра ВСЕ модули, пришедшие с дистрибутивом перестают работать. Их остается только уничтожить. Но iBCS уничтожать жалко - а он скомпилирован почему-то под версию ядра 2.0.13 вместо 2.0.18. Приходится искать исходник iBCS и перекомпилировать.

* SECURITY *

Штатная поставка sendmail 8.7.5 имеет security hole - локальный юзер имеет возможность получить root права. Штатная поставка sendmail 8.7.5 неработоспособна вообще - примерно четверть всех писем недоставляется по причине delivery errors Единственный метод лечения - upgrade до версии 8.8.5, у которого этот bug залечен Поставляемый с RedHat 3.0 mount имеет security hole - локальный юзер имеет возможность получить root права. Произведите update на исправленную версию, ftp://ftp.redhat.com/pub/redhat/redhat-3.0.3/i386/updates/RPMS/mount-2.5k-1.i386.rpm или снимите setuid-бит с команд mount/umount # chmod u-s /bin/mount /bin/umount

Несколько рекомендаций по безопасности

Вольный перевод с #www.corbina.net/~ppinpro/alx/gen-rule.html Если ваш дистрибутив старее 3-5 месяцев - смело выкидывайте его на свалку. Он содержит массу известных всему миру security holes и не имеет массы полезных утилит. Обязательно перекомпилируйте ядро, выкинув из него все не нужные сейчас дравера. Не забудьте сделать chmod 400 /vmlinuz. Добавьте в /etc/lilo.conf возможность загрузки предыдущego ядра. Отредактируйте /etc/inetd.conf. Закомментируйте в нем ВСЕ строчки, которых не понимаете. Если что-то осталось незакомментированно, поместите строку ALL : ALL в файл /etc/hosts.deny И индивидуальные строчки разрешений на доверенные хосты в файле /etc/hosts.allow ВСЕ версии sendmail, кроме САМОЙ СВЕЖЕЙ позволяют взломать ваш компьютер из сети. Уничтожте файл со старой версией. wu-ftp демон ненадежен и опасен. Никто не поклянется, что в нем исправлены все security holes.

Конфигурирование tcp-wrapper'а

По умолчанию все сервисы в /etc/inetd.conf открыты. Рекомендуется ограничить доступ к своей машине, оставив его только доверенным хостам и своей локальной сети. Перекрыть доступ снаружи на узловую машину: В файл /etc/hosts.deny вставить строчку ALL : ALL Открыть доступ на узловую машину с машин локальной сети 195.0.1.0 В файл /etc/hosts.allow вставить строчки ALL : \ 127.0.0.1 ALL : \ 195.0.1.0/255.255.255.0

А какой версии sendmail на вашей машине?

Date: 10 апр 97 Кстати CERT советует ставить Sendmail 8.8.5. Более ранние версии позволяют удаленно выполнять любые команды от имени суперпользователя на вашей машине.

httpd: дырявые cgi-скрипты

Штатная поставка Apach-httpd имеет cgi-скрипт /home/httpd/cgi-bin/phf который позволяет выполнять произвольные команды на вашей машине от имени юзера nobody

Securные параметры ядра

При реконфигурации ядра не забудьте взвести флажки: > * Drop source routes pakets [Y] Drop packets that have a source route flag set. This stops simpliest redirection attacks and should be always set to yes. > * always defragment [Y] Reassemble packet from fragments first and only after that apply firewalling rulesets. Unless you have a really good reason not to do this ( and I am yet to hear one ), it should be set t yes.

Имеющий доступ к консоли Linux может стать суперюзером

0. Загрузка со своей загрузочной дискеты 1. Booting to single-user mode LILO: linux single Debian обходит это поправками в /etc/initab, а RedHat - пропускает # What to do in single-user mode. ~~:S:wait:/sbin/sulogin 2. Указать альтернативную программу init LILO: linux init=/bin/bash 3. Задать другой root-partition LILO: linux root=/dev/hda1 Если создать в отдельной партиции всю положенную для корня структуру, то можно будет с нее загрузиться. Эту возможность можно получить, например, если /tmp монтируется в отдельную партицию. Или машина поддерживает UMS­ DOS и имеет досовский раздел. Лечение Закрыть паролем BIOS-setting и отключить возможность загрузиться с дискеты. Закрывайте возможность перехвата LILO-prompt A workaround can be achieved by using PASSWORD and RESTRICT options in /etc/lilo.conf. Внимание: /etc/lilo.conf должен быть root.root 600, чтоб никто не смог этот пароль подсмотреть.

kerneld and ifconfig загрузят любой kernel-модуль

Команда /sbin/ifconfig module-name позволяет _любому_ пользователю загрузить модуль из каталога /lib/modules используя kerneld. Лечение: Пока не залечено в промышленном масштабе. Отключайте kerneld или явно указывайте модули, которые можно грузить, уберите все лишние модули доставшиеся вам после инсталляции.

* ПРОЧЕЕ *

/etc/rc.d : Лишние команды при начальной загрузке

Проблема: при начальной загрузке запускается большое количество излишних сервисов (что особенно нервирует на домашних standalone машинах) Лечение: Зайти в каталог /etc/rc.d/rc3.d и переименовать "лишние" файлы: mv S45pcmcia s45pcmcia . . .

/etc/sysconfig/network-scripts/ : Некорректные установки статического роутинга

Если пытаться устанавливать статический роутинг сетей через "control-panel -- Network" - то не работает. Лечение: Либо добавить команды route add -net network.address gw your-host в файл /etc/rc.d/rc.local Либо исправить в конце /etc/sysconfig/network-scripts/ifup-routes grep "$1 " /etc/sysconfig/static-routes | while read device args; do route add -$args $device done на grep "$1 " /etc/sysconfig/static-routes | while read device args; do route add -$args # $device ########## done

/etc/sysconfig/network-scripts/ : Некорректные скрипты

From: Roman (mrv@fia.volga.ru) Проблема: Припекло установить два PPP интерфейса. пользовался стандартной конфигурялой в иксах. Глюк - при выставлении у одного интерфейса признака Default gateway, таблица роутинга строится с двумя default Лечение: Анализ показал - при запуске демона PPPD, если ему явно не указать отказ от Default gateway, то по умолчанию он поставится сам. Необходимо в файле /etc/sysconfig/network-scripts/ifup-ppp найти строку: if [ "${DEFROUTE}" = yes ] ; then opts = "$opts defaultroute" fi И добавить в нее: if [ "${DEFROUTE}" = yes ] ; then opts = "$opts defaultroute" else opts = "$opts -defaultroute" fi Проблема: При использовании Alias на сетевые карты не отрабатывается Static-route Пример: Есть адаптер eth0 , делаем алиас на него eth0:0 При попытке постройки статического роутинга в файле /etc/sysconfig/static-routes для сети на интерфейсе eth0:0 после перезагрузки компьютера ничего не произойдет. Лечение: Готового решение пока нет, но причина в скрипте который инициализирует запуск сети В нем анализ интерфейсов в файле /etc/sysconfig/static-routes идет до знака "двоеточие" Лечение2: Кардинальное - горбатого могила исправит. Выкинуть GUI-control-panel и конфигурить руками и вставлять команды под'ема интерфейсов и роутинга в /etc/rc.d/rc.local

Расположение ядра /vmlinuz или /boot/vmlinuz ?

Проблема: заморочки с ядром. С инсталляции рабочее ядро кладется в /boot/vmlinuz и /etc/lilo.conf затачивается под него, а при перекомпиляции, по команде make zlilo ядро забрасывается в /vmlinuz Лечение: Поправить /etc/lilo.conf ручками, и сказать lilo

Настраиваемые параметры ядра

На сильно загруженных системах начинается игра в нехватку: cannot fork try again, no more filedescriptors, no more pty... Лечение: Увеличьте настраиваемые параметры и перекомпилируйте ядро. Число псевдотерминалов (а следовательно число xterm'ов, телнетов...) /usr/src/linux/include/linux/tty.h #define NR_PTYS 256 /* этот параметр трогать не рекомендуется */ И не забудьте mknod для большего числа pty Максимальное число процессов /usr/src/linux/include/linux/tasks.h #define NR_TASKS 4090 /* On x86 Max 4092, or 4090 w/APM configured */ #define MAX_TASKS_PER_USER (NR_TASKS/2) #define MIN_TASKS_LEFT_FOR_ROOT 16 Число файлдескрипторов и открытых файлов. /usr/src/linux/include/fs.h #define NR_FILE 4096 #define NR_INODE 3072

Update RedHat 3.0.3 --> 4.0

Нормально можно поставить RedHat с CD или по NFS. А вот с локального жесткого диска... #$%^#$&&^)#%$@$&^*%%^ а еще он стер мой файл /etc/hosts, /etc/httpd/conf/*, переименовал /etc/sendmail.cf, /etc/lilo.conf Короче, я-то поставил. А Вы?

Update RedHat 4.0 --> 4.1

1. Во время установки в самом конце спрашивается: "Keep current network setting" Я сказал "No", машина неожиданно сделала re­ boot, и потом ей было не здорово. Во второй раз я сказал ей "Keep" 2. После update на начальной загрузке появляется сообщение klog-daemon: ws unknown action Причина: В файле syslog.conf разрезалось несколько строчек. news.=crit /var/log/news/ne ws.crit ^^^ склеить 3. В sendmail 8.8.5 не удается по нормальному настроить uucp- delivering. Несмотря на Smart-relay-host, он тем не менее пытается сделать на адреса DNS-resolving. Отключить не удалось, FEATURE(nodns) не помогла. Пришлось взять старый uucp_without_dns sendmail.cf из-под slackware 2.0

Продолжение следует: xdm, uucp, startx-win95...

Присылайте свои советы/замечания/дополнения по поводу всего вышесказанного Максим Мошков. moshkow@ipsun.ras.ru

Last-modified: Thu, 02 Nov 2000 10:49:32 GMT
World LibraryРеклама в библиотекеБиблиотека не предназначена для детей! Проект Либмонстра, партнеры БЦБ - Украинская цифровая библиотека и Либмонстр Россия https://database.library.by