LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В
..pdfГлава 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 |