Подкаталог /proc/sys

Задача этого каталога - сообщать о различных параметрах ядра и позволять замену некоторых из них в реальном режиме времени. В противоположность всем другим файлам каталога /proc, некоторые файлы этого каталога могут быть записаны, но только под root

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

  1. Разрешение роутинга: Даже если заданное по умолчанию ядро от Mandrake Linux может роутить, вы должны явно позволить ему это делать. Для этого нужно под root напечатать следующее:

    $ echo 1 >/proc/sys/net/ipv4/ip_forward

    Замените 1 на 0, если вы хотите запретить роутинг.

  2. Предотвращение подмены IP: имитация IP состоит в том, чтобы заставить интерфейс поверить в то, что пакет, пришедший из мира, является его собственным, вышедшим из него пакетом. Эта техника очень часто используется кракерами [23], но вы можете заставить ядро предотвращать такие вторжения. Вам только нужно написать:

    $ echo 1 >/proc/sys/net/ipv4/conf/all/rp_filter

    и все типы таких атак становятся невозможными.

  3. Увеличение размера таблицы открытых файлов и таблицы inode: Размер таблицы открытых файлов и таблицы inode является динамическим под GNU/Linux. Значений по умолчанию обычно достаточно, но они могут быть недостаточными если ваша машина - нагруженный сервер (например, сервер баз данных). Реально, первым препятствием может стать тот факт, что процессы больше не смогут открывать файлы по той причине, что таблица полна, поэтому вам нужно увеличить ее размер. В то же время вам нужно будет увеличить и размер таблицы inode. Вот две строчки, которые решают эту проблему:

    $ echo 8192 >/proc/sys/fs/file-max
    $ echo 16384 >/proc/sys/fs/inode-max

Чтобы это выполнялось при каждой загрузке системы, вы можете добавить все эти строки в /etc/rc.d/rc.local и таким образом избежать их набора каждый раз заново, но есть и другое решение, состоящее в том, чтобы заполнить файл /etc/sysctl.conf, смотрите sysctl.conf(5).



[23] Но не хакерами!