Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В

..pdf
Скачиваний:
92
Добавлен:
24.05.2014
Размер:
3.66 Mб
Скачать

Глава 6. Безопасность и оптимизация ядра

101

* I2C support

*

I2C support (CONFIG_12C) [N/y/m/?] <Enter>

*

*Mice

Bus Mouse Support (CONFIG_BUSMOUSE) [N/y/m/?] <Enter>

Mouse Support (not serial and bus mice) (CONFIG_MOUSE) [Y/m/n/?] <n>

*Joysticks

*

*Input core support is needed for gameports

*Input core support is needed for joysticks

QIC-02 tape support (CONFIG_QIC02_TAPE) [N/y/m/?] <Enter>

*Watchdog Cards

Watchdog Timer Support (CONFIG_WATCHDOG) [N/y/?] <Enter>

Intel i8x0 Random Number Generator support (CONFIG_INTEL_RNG) [N/y/m/?]

<Enter>

/dev/nvram support (CONFIG_NVRAM) [N/y/m/?] <Enter>

Enhanced Real Time Clock Support (CONFIG_RTC) [N/y/m/?] <Enter>

Double Talk PC internal speech card support (CONFIG_DTLK) [N/y/m/?] <Enter>

Siemens R3964 line discipline (CONFIG_R3964) [N/y/m/?] <Enter> Applicom intelligent fieldbus card support (CONFIG_APPLICOM) [N/y/m/?]

<Enter>

*Ftape, the floppy tape device driver

*

Ftape (QIC-80/Travan) support (CONFIG_FTAPE) [N/y/m/?] <Enter> /dev/agpgart (AGP Support) (CONFIG_AGP) [Y/m/n/?] n

Direct Rendering Manager (XFree86 DRI support) (CONFIG_DRM) [Y/n/?] <n> ACP Modem (Mwave) support (CONFIG_MWAVE) [N/y/m/?] <Enter>

*

* Multimedia devices

*

Video For Linux (CONFIG_VIDEO_DEV) [N/y/m/?] <Enter>

*

* File systems

*

Quota support (CONFIG_QUOTA) [N/y/?] <y>

Kernel automounter support (CONFIG_AUTOFS_FS) [N/y/m/?] <Enter> Kernel automounter version 4 support (also supports v3) (CONFIG_AUTOFS4_FS) [Y/m/n/?] <n>

Reiserfs support (CONFIG_REISERFS_FS) [N/y/m/?] <Enter>

Ext3 journalling file system support (EXPERIMENTAL) (CONFIG_EXT3_FS) [N/y/m/?] <y>

JBD (ext3) debugging support (CONFIG_JBD_DEBUG) [N/y/?] <y> DOS FAT fs support (CONFIG_FAT_FS) [N/y/m/?] <m>

MSDOS fs support (CONFIG_MSDOS_FS) [N/y/m/?] <m>

VFAT (Windows-95) fs support (CONFIG_VFAT_FS) [N/y/m/?] <m> Compressed ROM file system support (CONFIG_CRAMFS) [N/y/m/?] <Enter>

Virtual memory file system support (former shm fs) (CONFIG_TMPFS) [Y/n/?]

<Enter>

Simple RAM-based file system support (CONFIG_RAMFS) [N/y/m/?] <Enter> ISO 9660 CDROM file system support (CONFIG_IS09660_FS) [Y/m/n/?] <m> Microsoft Joliet CDROM extensions (CONFIG_JOLIET) [N/y/?] <y> Transparent decompression extension (CONFIG_ZISOFS) [N/y/?] <Enter> Minix fs support (CONFIG_MINIX_FS) [N/y/m/?] <Enter>

FreeVxFS file system support (VERITAS VxFS(TM) compatible) (CONFIG_VXFS_FS) [N/y/m/?] <Enter>

NTFS file system support (read only) (CONFIG_NTFS_FS) [N/y/m/?] <Enter>

102 Часть 1. Инсталляция операционной системы Linux на сервере

OS/2 HPFS file system support (CONFIG_HPFS_FS) [N/y/m/?] <Enter> /proc file system support (CONFIG_PROC_FS) [Y/n/?] <Enter>

/dev/pts file system for Unix98 PTYs (CONFIG_DEVPTS_FS) [Y/n/?] <Enter> ROM file system support (CONFIG_ROMFS_FS) [N/y/m/?] <Enter>

Second extended fs support (CONFIG_EXT2_FS) [Y/m/n/?] <Enter>

System V/Xenix/V7/Coherent file system support (CONFIG_SYSV_FS) [N/y/m/?]

<Enter>

UDF file system support (read only) (CONFIG_UDF_FS) [N/y/m/?] <Enter> UFS file system support (read only) (CONFIG_UFS_FS) [N/y/m/?] <Enter>

*

* Network File Systems

*

Coda file system support (advanced network fs) (CONFIG_CODA_FS) [N/y/m/?]

<Enter>

NFS file system support (CONFIG_NFS_FS) [Y/m/n/?] <n> NFS server support (CONFIG_NFSD) [Y/m/n/?] n

SMB file system support (to mount Windows shares etc.) (CONFIG_SMB_FS) [N/y/m/?] <Enter>

NCP file system support (to mount NetWare volumes) (CONFIG_NCP_FS) [N/y/m/?] <Enter>

*

* Partition Types

*

Advanced partition selection (CONFIG_PARTITION_ADVANCED) [N/y/?] <Enter>

*

Native Language Support

*

Default NLS Option (CONFIG_NLS_DEFAULT) [ISO8859-l] (NEW) <Enter> Codepage 437 (United States, Canada) (CONFIG_NLS_CODEPAGE_437) [N/y/m/'?] (NEW) <Enter>

Codepage 737 (Greek) (CONFIG_NLS_CODEPAGE_737) [N/y/m/?] (NEW) <Enter> Codepage 775 (Baltic Rim) (CONFIG_NLS_CODEPAGE_775) [N/y/m/?] (NEW) <Enter>

Codepage 850 (Europe) (CONFIG_NLS_CODEPAGE_850) [N/y/m/?] (NEW) <Enter> Codepage 852 (Central/Eastern Europe) (CONFIG_NLS_CODEPAGE_852) [N/y/m/?] (NEW) <Enter>

Codepage 855 (Cyrillic) (CONFIG_NLS_CODEPAGE_855) [N/y/m/?] (NEW) <Enter> Codepage 857 (Turkish) (CONFIG_NLS_CODEPAGE_857) [N/y/m/?] (NEW) <Enter> Codepage 860 (Portuguese) (CONFIG_NLS_CODEPAGE_860) [N/y/m/?] (NEW) <Enter>

Codepage 861 (Icelandic) (CONFIG_NLS_CODEPAGE_861) [N/y/m/?] (NEW) <Enter>

Codepage 862 (Hebrew) (CONFIG_NLS_CODEPAGE_862) [N/y/m/?] (NEW) <Enter> Codepage 863 (Canadian French) (CONFIG_NLS_CODEPAGE_863) [N/y/m/?] (NEW)

<Enter>

Codepage 864 (Arabic) (CONFIG_NLS_CODEPAGE_864) [N/y/m/?] (NEW) <Enter> Codepage 865 (Norwegian, Danish) (CONFIG_NLS_CODEPAGE_865) [N/y/m/?] (NEW) <Enter>

Codepage 866 (Cyrillic/Russian) (CONFIG_NLS_CODEPAGE_866) [N/y/m/?] (NEW)

<y>

Codepage 869 (Greek) (CONFIG_NLS_CODEPAGE_869) [N/y/m/?] (NEW) <Enter> Simplified Chinese charset (CP936, GB2312) (CONFIG_NLS_CODEPAGE_936) [N/y/m/?] (NEW) <Enter>

Traditional Chinese charset (Big5) (CONFIG_NLS_CODEPAGE_950) [N/y/m/?] (NEW) <Enter>

Japanese charsets (Shift-JIS, EUC-JP) (CONFIG_NLS_CODEPAGE_932) [N/y/m/?] (NEW) <Enter>

Korean charset (CP949, EUC-KR) (CONFIG_NLS_CODEPAGE_949) [N/y/m/?] (NEW)

<Enter>

Thai charset (CP874, TIS-620) (CONFIG_NLS_CODEPAGE_874) [N/y/m/?] (NEW)

<Enter>

Hebrew charsets (ISO-8859-8, CP1255) (CONFIG_NLS_IS08859_8) [N/y/m/?] (NEW) <Enter>

Глава 6. Безопасность и оптимизация ядра

103

Windows CP1250 (Slavic/Central European Languages) (CONFIG_NLS_CODEPAGE_1250) [N/y/m/?] (NEW) <Enter>

Windows CP1251 (Bulgarian, Belarusian) (CONFIG_NLS_CODEPAGE_1251) [N/y/m/?] (NEW) <y>

NLS ISO 8859-1 (Latin 1; Western European Languages) (CONFIG_NLS_IS08859 1) [N/y/m/?] (NEW) <Enter>

NLS ISO 8859-2 (Latin 2; Slavic/Central European Languages) (CONFIG_NLS_IS08859_2) [N/y/m/?] (NEW) <Enter>

NLS ISO 8859-3 (Latin 3; Esperanto, Galician, Maltese, Turkish) (CONFIG_NLS_IS08859 3) [N/y/m/?] (NEW) <Enter>

NI.S ISO 8859-4 (Latin 4; old Baltic charset) (CONFIG_NLS_IS08859_4) [N/y/m/?] (NEW) <Enter>

NLS ISO 8859-5 (Cyrillic) (CONFIG_NLS_IS08859_5) [N/y/m/?] (NEW) <y> HIS ISO 8859-6 (Arabic) (CONFIG_NLS_IS08859_6) [N/y/m/?] (NEW) <Enter>

NLS ISO 8859-7 (Modern Greek) (CONFIG_NLS_IS08859_7) [N/y/m/?] (NEW) <Enter>

NLS ISO 8859-9 (Latin 5; Turkish) (CONFIG_NLS_IS08859_9) [N/y/m/?] (NEW)

<Enter>

NLS ISO 8859-13 (Latin 7; Baltic) (CONFIG_NLS_IS08859_13) [N/y/m/?] (NEW)

<Enter>

NLS ISO 8859-14 (Latin 8; Celtic) (CONFIG_NLS_IS08859_14) [N/y/m/?] (NEW)

<Enter>

NLS ISO 8859-15 (Latin 9; Western European Languages with Euro) (CONFIG_NLS IS08859 15) [N/y/m/?] (NEW) <Enter>

NLS K018-R (Russian) (CONFIG_NLS_K018_R) [N/y/m/?] (NEW) <Enter>

NLS K018-D/RU (Ukrainian, Belarusian) (CONFIG_NLS_K018_U) [N/y/m/?] (NEW)

<Enter>

NLS UTF8 (CONFIG_NLS_UTF8) [N/y/m/?] (NEW) <Enter>

*

* Console drivers

*

VGA text console (CONFIG_VGA_CONSOLE) [Y/n/?] <Enter>

Video mode selection support (CONFIG_VIDEO_SELECT) [N/y/?] <Enter>

*

*Sound

*

Sound card support (CONFIG_SOUND) [Y/m/n/?] <n>

*

*USB support

*

Support for USB (CONFIG_USB) [Y/m/n/?] <n>

*

*USB Controllers

*

*

*USB Device Class drivers

*

*SCSI support is needed for USB Storage

*USB Human Interface Devices (HID)

*

*

* Input core support is needed for USB HID

*

*

*USB Imaging devices

*USB Multimedia devices

*Video4Linux support is needed for USB Multimedia device support

104

Часть 1. Инсталляция операционной системы Linux на сервере

*USB Network adapters

*USB port drivers

*

*

*USB Serial Converter support

*USB Miscellaneous drivers

*

*

* Kernel hacking

*

Kernel debugging (CONFIG_DEBUG_KERNEL) [N/y/?] <Enter>

*

*Graecurity

*

Grsecurity (CONFIG_GRKERNSEC) [N/y/?] <y>

Security level (Low, Medium, High, Customized) [Customized] <Enter>

*

* Buffer Overflow Protection

*

Openwall non-executable stack (CONFIG_GRKERNSEC_STACK) [N/y/?] <y> Gee trampoline support (CONFIG_GRKERNSEC_STACK_GCC) [N/y/?] <Enter> Read-only kernel memory (CONFIG_GRKERNSEC_KMEM) [N/y/?] <y>

*

Access Control Lists

*

Grsecurity ACL system (CONFIG_GRKERNSEC_ACL) [N/y/?] <y> ACL Debugging Messages (CONFIG_GR_DEBUG) [N/y/?] <y>

Extra ACL Debugging Messages (CONFIG_GR_SUPERDEBUG) [N/y/?] <Enter> Denied capability logging (CONFIG_GRKERNSEC_ACL_CAPLOG) [N/y/?] <y> Path to gradm (CONFIG_GRADM_PATH) [/sbin/gradm] <Enter>

Maximum tries before password lockout (CONFIG_GR_MAXTRIES) [3] 2

Time to wait after max password tries, in seconds (CONFIG_GR_TIMEOUT) [30] <Enter>

*

Filesystem Protections

*

Proc restrictions (CONFIG_GRKERNSEC_PROC) [N/y/?] <y>

Restrict to user only (CONFIG_GRKERNSEC_PROC_USER) [N/y/?] <y> Additional restrictions (CONFIG_GRKERNSEC_PROC_ADD) tN/y/?] <y> Linking restrictions (CONFIG_GRKERNSEC_LINK) [N/y/?] <y>

FIFO restrictions (CONFIG_GRKERNSEC_FIFO) [N/y/?] <y> Secure file descriptors (CONFIG_GRKERNSEC_FD) [N/y/?] <y>

Chroot-jail restrictions (CONFIG_GRKERNSEC_CHROOT) [N/y/?] <y> Restricted signals (CONFIG_GRKERNSEC_CHROOT_SIG) [N/y/?] <y> Deny mounts (CONFIG_GRKERNSEC_CHROOT_MOUNT) [N/y/?] <y>

Deny double-chroots (CONFIG_GRKERNSEC_CHROOT_DOUBLE) [N/y/?] <y>

Enforce chdir("/") on all chroots (CONFIG_GRKERNSEC_CHROOT_CHDIR) [N/y/?]

<y>

Deny (f)chmod +s (CONFIG_GRKERNSEC_CHROOT_CHMOD) [N/y/?] <y> Deny mknod (CONFIG_GRKERNSEC_CHROOT_MKNOD) [N/y/?] <y>

Deny ptraces (CONFIG_GRKERNSEC_CHROOT_PTRACE) [N/y/?] <y>

Restrict priority changes (CONFIG_GRKERNSEC_CHROOT_NICE) [N/y/?] <y> Capability restrictions within chroot (CONFIG_GRKERNSEC_CHROOT_CAPS) [N/y/?] <Enter>

Secure keymap loading (CONFIG_GRKERNSEC_KBMAP) [N/y/?] <y>

*

Kernel Auditing

*

Single group for auditing (CONFIG_GRKERNSEC_AUDIT_GROUP) [N/y/?] <Enter> Exec logging (CONFIG_GRKERNSEC_EXECLOG) [N/y/?] <Enter>

Глава 6. Безопасность и оптимизация ядра

105

Log execs within chroot (CONFIG_GRKERNSEC_CHROOT_EXECLOG) [N/y/?] <y> Chdir logging (CONFIG_GRKERNSEC_AUDIT_CHDIR) [N/y/?] <Enter> (Un)Mount logging (COHFIG_GRKERNSEC_AUDIT_MOUNT) [N/y/?] <Enter>

IPC logging (CONFIG_GRKERNSEC_AUDIT_IPC) [N/y/?] <y>

Ptrace logging (CONFIG_GRKERNSEC_AUDIT_PTRACE) [N/y/?] <Enter> Signal logging (CONFIG_GRKERNSEC_SIGNAL) [N/y/?] <y>

Fork failure logging (CONFIG_GRKERNSEC_FORKFAIL) [N/y/?] <y> Set*id logging (CONFIG_GRKERNSEC_SUID) [N/y/?] <Enter>

Log set*ids to root (CONFIG_GRKERNSEC_SUID_ROOT) [N/y/?] <y> Time change logging (CONFIG_GRKERNSEC_TIME) [N/y/?] <y>

*

*Executable Protections

*

Exec process limiting (CONFIG_GRKERNSEC_EXECVE) [N/y/?] <y> Dmesg(8) restriction (CONFIG_GRKERNSEC_DMESG) [N/y/?] <y> Randomized PIDs (CONFIG_GRKERNSEC_RANDPID) [N/y/?] <y>

Altered default IPC permissions (CONFIG_GRKERNSEC_IPC) [N/y/?] <Enter> imit uid/gid changes to root (CONFIG_GRKERNSEC_TTYROOT) [N/y/?] <y>

Deny physical consoles (tty) (CONFIG_GRKERNSEC_TTYROOT_PHYS) [N/y/?] <Enter>

Deny serial consoles (ttyS) (CONFIG_GRKERNSEC_TTYROOT_SERIAL) [N/y/?] <y> Deny pseudo consoles (pty) (CONFIG_GRKERNSEC_TTYROOT_PSEUDO) [N/y/?] <Enter>

Fork-bomb protection (CONFIG_GRKERNSEC_FORKBOMB) [N/y/?] <y>

GID for restricted users (CONFIG_GRKERNSEC_FORKBOMB_GID) [1006] <Enter> Forks allowed per second (CONFIG_GRKERNSEC_FORKBOMB_SEC) [40] <Enter> Maximum processes allowed (CONFIG_GRKERNSEC_FORKBOMB_MAX) [20] 33 Trusted path execution (CONFIG_GRKERNSEC_TPE) [N/y/?] <y>

Glibc protection (CONFIG_GRKERNSEC_TPE_GLIBC) [N/y/?] <y>

Partially restrict non-root users (CONFIG_GRKERNSEC_TPE_ALL) [N/y/?] <y> GID for untrusted users: (CONFIG_GRKERNSEC_TPE_GID) [1005] <Enter> Restricted ptrace (CONFIG_GRKERNSEC_PTRACE) [N/y/?] <y>

Allow ptrace for group (CONFIG_GRKERNSEC_PTRACE_GROUP) [N/y/?] <Enter>

*

*Network Protections

*

Randomized IP IDs (CONFIG_GRKERNSEC_RANDID) [N/y/?] <y>

Randomized TCP source ports (CONFIG_GRKERNSEC_RANDSRC) [N/y/?] <y> Randomized RPC XIDs (CONFIG_GRKERNSEC_RANDRPC) [N/y/?] <y>

Altered Ping IDs (CONFIG_GRKERNSEC_RANDPING) [N/y/?] <y> Randomized TTL (CONFIG_GRKERNSEC_RANDTTL) [N/y/?] <y> Socket restrictions (CONFIG_GRKERNSEC_SOCKET) [N/y/?] <y>

Deny any sockets to group (CONFIG_GRKERNSEC_SOCKET_ALL) [N/y/?] <y> GID to deny all sockets for: (CONFIG_GRKERNSEC_SOCKET_ALI_GID) [1004]

<Enter>

Deny client sockets to group (CONFIG_GRKERNSEC_SOCKET_CLIENT) [N/y/?]

<Enter>

Deny server sockets to group (CONFIG_GRKERNSEC_SOCKET_SERVER) [N/y/?]

<Enter>

*

Syactl support

*

Sysctl support (CONFIG_GRKERNSEC_SYSCTL) [N/y/?] <Enter>

*

*Miscellaneous Features

*

Seconds in between log messages (minimum) (CONFIG_GRKERNSEC_FLOODTIME) [30] <Enter>

BSD-style coredumps (CONFIG_GRKERNSEC_COREDUMP) [N/y/?] <y>

***End of Linux kernel configuration.

***Check the top-level Makefile for additional configuration.

***Next, you must run 'make dep'.

106

Часть 1. Инсталляция операционной системы Linux на сервере

Компиляция ядра

Компиляция ядра с монолитной и модульной архитектурами осуществляется следующим образом.

Шаг 1 Перейдите в каталог, где находятся исходные коды ядра:

[root@drwalbr /]# cd /usr/src/linux-2.4.х/

Шаг 2 Сформируйте дерево зависимостей в соответствии с выбранными параметрами конфигурации, т. е.

определите, что нужно компилировать, а что нет:

[root@drwalbr linux-2.4.x]# make dep

Шаг 3 Удалите старые объектные модули:

[root@drwalbr linux-2.4.x]# make clean

ЗАМЕЧАНИЕ Команда make clean удаляет все объектные модули и заставляет пересобираться ядро «с нуля», т. е. с заново создаваемыми объектными модулями. Использование этой команды необходимо, если ядро компилируется впервые после замены объектной библиотеки, транслятора или компоновщика. Если вы путем перебора нескольких вариантов конфигурации ядра пытаетесь получить ядро, надежно работающее с некоторым экзотическим оборудованием, в использовании команды make clean нет необходимости. Ее использование только увеличит время, затраченное на поиск оптимальной конфигурации ядра.

Шаг 4 Скомпилируйте новое ядро:

[root@drwalbr linux-2.4.x]# make bzImage

Шаг 5 Если вы используете ядро с модульной архитектурой, скомпилируйте новые модули ядра:

[root@drwalbr linux-2.4.x]# make modules [root@drwalbr linux-2.4.x]# make modules_install

Инсталляция ядра

Инсталляция нового ядра осуществляется следующим образом.

Шаг 1

Скопируйте файл /usr/src/linux-2.4.x/arch/i386/boot/bzlmage из исходного дерева ядра в каталог/boot и переименуйте его:

[root@drwalbr linux-2.4.x]# cd /usr/src/linux/

[root@drwalbr linux]# cp arch/i386/boot/bzlmage /boot/vmlinuz-2.4.х

Шаг 2

При компиляции ядра в каталоге /usr/src/linux-2.4.x создан новый файл System.map, используемый рядом программ (klog, ps и lsof). Для того, чтобы эти программы могли найти и использовать информацию, содержащуюся в файле, необходимо скопировать его в каталог /boot:

[root@drwalbr linux]# cp System.map /boot/System.map-2.4.x

Шаг 3

Восстановите ранее удаленные символьные ссылки vmlinuz и System.map:

[root@drwalbr linux]# cd /boot/

[root@drwalbr /boot]# ln -fs vmlinuz-2.4.х vmlinuz [root@drwalbr /boot]# ln -fs System.map-2.4.х System.map

Шаг 4 Удалите ссылку на каталог, в котором находились модули старого ядра:

[root@drwalbr /boot] # rm -f module-info

Удалите файл initrd.2.4.18-5asp.img:

[root@drwalbr /boot] # rm -f initrd.2.4.18-5asp.img

Этот файл содержит начальный образ загрузочного диска и используется системой до того, как диск станет доступным. Он используется на системах со SCSI дисками. В нашем случае он может быть удален,

Глава 6. Безопасность и оптимизация ядра

107

т. к. все опции поддержки SCSI жестко «вкомпилированы» в ядро с монолитной конфигурацией, а на системе, где установлено ядро с модульной архитектурой – диск с IDE контроллером.

Шаг 5 Создайте каталог, в котором будут храниться заголовочные файлы ядра, необходимые для после-

дующей компиляции программ-приложений:

[root@drwalbr /]# mkdir -p /usr/src/linux/include

[root@drwalbr /]# cd /usr/src/linux-2.4.х/

[root@drwalbr linux-2.4.х]# cp -r include/asm-i386 ../linux/include/ [root@drwalbr linux-2.4.х]# cp -r include/linux ../linux/include/

[root@drwalbr linux-2.4.х]# cd ../

[root@drwalbr /]# rm -rf /usr/src/linux-2.4.х/

Настройка загрузчика

После инсталляции нового ядра необходимо настроить загрузчик LILO, чтобы он мог загружать новое ядро.

Настройка загрузчика осуществляется следующим образом.

Шаг 1

В файле lilo.conf необходимо отредактировать строки "image=…" и "label=…". Для этого выполните следующие действия:

[root@drwalbr /]# vi /etc/lilo.conf boot=/dev/sda

map=/boot/map

install=/boot/boot.b

timeout=00

default=linux restricted

password=SecReTn0e_Sl0V0 image=/boot/vmlinuz label=linux-2.4.х-grsec read-only

root=/dev/sda5

Шаг 2 Для того, что бы внесенные изменения вступили в силу, выполните команду:

[root@drwalbr /]# /sbin/lilo Added linux *

Загрузчик GRUB после инсталляции нового ядра не нуждается в настройках. Для проверки правильности настройки загрузчика выполните:

[root@drwalbr /]# vi /boot/grub/grub.conf default 0

timeout 00

title linux-2.4.18

kernel (hd0,0)/vmlinuz ro root=/dev/sda5

Файл /etc/modules.conf

Файл /etc/modules.conf является дополнительным конфигурационным файлом, влияющим на процессы загрузки модулей ядра. Он используется программами depmod и modprobe. После каждого обновления ядра с модульной архитектурой необходимо проверить, правильно ли отражена в этом конфигурационном файле необходимая информация о модулях, загружаемых ядром.

В рассматриваемом примере файл modules.conf был создан автоматически. В него были записаны следующие строки:

alias SCSI_hostadapter aic7xxx alias ethO eeprolOO

alias ethi eeprolOO

alias parport_lowlevel parport_pc alias usb-controller uhci

Указанный файл может быть использован для передачи параметров и присвоения загружаемым модулям алиасов (альтернативных имен).

108

Часть 1. Инсталляция операционной системы Linux на сервере

Если конфигурационный файл /etc/modules.conf отсутствует или если любая директива в нем не переопределена (значение по умолчанию можно посмотреть в каталоге /lib/modules, содержащем модули, откомпилированные для текущей версии ядра), то файл /etc/modules.conf можно удалить:

[root@drwalbr /]# rm -f /etc/modules.conf

Проверка работоспособности нового ядра

Шаг 1 Для проверки работоспособности нового ядра перезагрузите систему:

[root@drwalbr /]# reboot

Шаг 2 После перезагрузки проверьте версию нового ядра:

[root@drwalbr /]# uname -a

Linux dev 2.4.18-grseс-1.9.4 #l Mon Dec 23 17:14:55 EDT 2002 i686 unknown

ЗАМЕЧАНИЕ Если система не загрузилась или ядро не поддерживает необходимые возможности и/или нужные устройства, то анализируются и исправляются допущенные ошибки, система загружается с помощью загрузочной дискеты, и повторяются все операции по конфигурированию, компиляции и инсталляции нового ядра.

Создание аварийной загрузочной дискеты для ядра с монолитной архитектурой

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

ЗАМЕЧАНИЕ Создание аварийной загрузочной дискеты для ядра с модульной архитектурой описано в начале главы.

Аварийная загрузочная дискета для ядра с монолитной архитектурой создается следующим образом.

Шаг 1 Вставьте в дисковод и отформатируйте дискету с помощью следующей команды:

[root@drwalbr /]# fdformat /dev/fd0H1440

Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB Formatting . . . done

Verifying . . . done

Шаг 2

Скопируйте существующий файл vmlinuz из /boot каталога на дискету:

[root@drwalbr /]# cp /boot/vmlinuz /dev/fd0H1440 cp: overwrite '/dev/fdOH1440'? <y>

Шаг 3 Определите корневой раздел:

[root@drwalbr /]# rdev /dev/sda5/

Шаг 4

Установите корневой раздел (в примере это /dev/sda5/, определенный на предыдущем шаге):

[root@drwalbr /]# rdev /dev/fd0H1440 /dev/sda5

Шаг 5 Установите к корневому разделу доступ "только для чтения":

[root@drwalbr /]# rdev -R /dev/fd0H1440

Шаг 6

Если в системе используется ядро с монолитной архитектурой, можно удалить пакеты mkbootdisk и dosfstools, предназначенные для создания аварийных загрузочных дискет в системах с модульной архитектурой ядра:

[root@drwalbr /]# rpm -e mkbootdisk dosfstools

Шаг 7

После установки в BIOS загрузки с дискеты система перезагружается:

[root@drwalbr /]# reboot

Глава 7. Псевдофайловая система /proc

109

Глава 7

Псевдофайловая система /proc

В этой главе:

1. Утилита sysctl

2.Настройка параметров подсистемы виртуальной памяти

3.Настройка параметров подсистемы IPv4

4.Установка запрета ответа на ping-запросы

5.Установка запрета ответа на широковещательные ping-запросы

6.Запрет на использование сервером информации об источнике пакета

7.Включение защиты от SYN-атак

8.ICMP-переадресация

9.Сообщения об ошибках сети

10. Включение защиты от атак, основанных на фальсификации IP-адреса 11. Включение регистрации Spoofed, Source Routed и Redirect пакетов 12. Включение пересылки пакетов

110

Часть 1. Инсталляция операционной системы Linux на сервере

Псевдофайловая система /proc используется как интерфейс для доступа к структурам данных ядра. Большинство каталогов в каталоге /proc имеют названия в виде десятичных чисел, совпадающих с идентификатором соответствующего процесса, выполняемого в системе. Файловая система /proc отображает информацию о центральном процессоре, IDE и SCSI-устройствах, прерываниях, портах ввода-вывода, памяти, модулях, разделах, PCI-платах и др. При этом следует учитывать, что, на самом деле, не существует ни подкаталогов /proc, ни файлов в них. В этом легко убедится, посмотрев каталог /proc на машине, в которой установлены две операционные системы Linux и Windows с помощью программы для просмотра файловых систем Еxt2 и Еxt3, например, ext2viewer из Windows. Каталог /proc будет пустым. Содержимое этого каталога можно рассматривать как некоторые временные файлы, существующие только во время работы системы. Большинство из этих файлов доступны только для чтения и, следовательно, не могут быть изменены. Изменение параметров ядра осуществляется путем редактирования конфигурационного файла /etc/sysctl.conf, используемого утилитой sysctl, либо непосредственным вызовом утилиты. В этой главе рассматриваются некоторые параметры, конфигурирующие виртуальную память и TCP/IP.

Утилита sysctl

Утилита sysctl – интерфейс, который позволяет изменять некоторые параметры ядра без его перекомпиляции. Более подробная информация об этой утилите может быть получена с помощью команды:

[root@karlnext /]# man 8 sysctl

Эта утилита позволяет считывать и изменять параметры настройки ядра. Для просмотра всех переменных выполните:

[root@karlnext /]# sysctl –a

Для просмотра некоторой переменной, например, fs.file-max, выполните:

[root@karlnext /]# sysctl fs.file-max fs.file-max = 8192

Для установки значения некоторой переменной, например, fs.file-max, выполните:

[root@karlnext /]# sysctl -w fs.file-max=16384 fs.file-max = 16384

Изменения, внесенные с помощью команды sysctl, действуют только до перезагрузки системы. Для того, чтобы внесенные изменения сохранились после перезагрузки, необходимо изменить соответствующие параметры в конфигурационном файле /etc/sysctl.conf.

Настройка параметров подсистемы виртуальной памяти

В каталоге /proc/sys/vm находятся файлы, используемые для настройки и отображения подсистемы виртуальной памяти ядра. Будьте очень осторожны и внимательны при выполнении приведенных ниже рекомендаций.

Приведенных здесь примеры протестированы и прекрасно работают на серверах с объемом оперативной памяти 256, 384 и 512 МБайт. При меньшем объеме памяти мы не гарантируем работоспособности приведенных ниже настроек и рекомендуем использовать настройки по умолчанию.

Для просмотра файлов в каталоге /proc/sys/vm выполните:

[root@karlnext /]# ls –l /proc/sys/vm

 

Янв 12 10:38 bdflush

-rw-r--

r--

1

root

root

0

-rw-r--

r--

1

root

root

0

Янв 12 10:38 kswapd

-rw-r--

r--

1

root

root

0

Янв 12 10:38 max_map_count

-rw-r--

r--

1

root

root

0

Янв 12 10:38 max-readahead

-rw-r--

r--

1

root

root

0

Янв 12

10:38 min-readahead

-rw-r--

r--

1

root

root

0

Янв 12

10:38 overcommit_memory

-rw-r--

r--

1

root

root

0

Янв 12

10:38 page-cluster

-rw-r--

r--

1

root

root

0

Янв 12

10:38 pagetable_cache

Файл /proc/sys/vm/bdflush содержит настройки демона ядра bdflush и может быть использован для повышения производительности файловой системы. Файл /proc/sys/vm/bdflush содержит значения (приведены значения по умолчанию) следующих 9 параметров:

[root@karlnext /]# cat /proc/sys/vm/bdflush

30

500

0

0

500

3000

60

20

0

Соседние файлы в предмете Информатика