Предотвращение привязки службы к интерфейсу
Иногда может возникнуть желание ограничить службу прослушиванием только определенного интерфейса. Например, Apache может быть настроен на прослушивание не всех доступных интерфейсов, а только определенного интерфейса. Этого можно добиться также с помощью директивы Listen, помещаемой в файл настройки с указанием IP-адреса интерфейса:
Listen 192.168.0.23:80
При использовании элементов Virtual Host интерфейсы привязки можно указывать на основе виртуальных узлов:
<VirtualHost 192.168.0.23> </VirtualHost>
У вас даже могут быть службы, которые «слушают» TCP-порт, но не должны этого делать. Серверы баз данных, такие как MySQL, зачастую работают совместно с Apache и при этом, как правило, устанавливаются на одном сервере. Соединения, приходящие с той же машины, на которой установлен MySQL, используют для связи сокеты домена в файловой системе. Таким образом выясняется отсутствие необходимости в том, чтобы MySQL «слушал» ТСР-сокет. Для этого необходимо либо использовать при запуске MySQL параметр —skip-networking, либо указать его в разделе [mysqld] файла my.cnf:
[mysqld] skip-networking
Еще одной программой, которую можно найти «слушающей» порт, является XII server (по умолчанию «слушает» порт 6000). Этот порт традиционно используется для того, чтобы удаленные клиенты подключались к XII-серверу с тем, чтобы получать собственное окно, а также доступ к клавиатурному вводу и перемещению мыши. Однако после появления SSH и XII-перенаправления в этом больше нет необходимости. Когда XII-перенаправление включено в ssh, любой клиент, которому необходимо подключиться к XII-серверу, получит канал через SSH-co-единение, и для этого вовсе не нужно «прослушивать» TCP-порт. Для того чтобы сервер X Windows прекратил «прослушивание» этого порта, необходимо всего лишь добавить в команду, используемую для запуска сервера, параметр -nol isten tcp. Это может оказаться довольно сложным: определение файла, управляющего запуском сервера, может быть очень трудоемкой задачей. Обычно необходимые команды можно найти в /etc/XII. При использовании gdm откройте файл gdm.conf и найдите подобную команду:
command=/usr/XHR6/bin/X
После этого просто добавьте в конец строки -nolisten tcp.
При использовании хdm найдите файл под названием Xservers и поищите в нем строку, подобную следующей:
:0 local /usr/XHR6/bin/X -nolisten tcp
Кроме того, если вы не используете управляемый дисплей, а для старта XII-сервера используете команду startx или аналогичную, то можно просто добавить -nolisten tcp в конец команды startx. Чтобы гарантировать передачу параметра в процесс ХП-сервера, укажите его через несколько дефисов:
$ startx — -nolisten tcp
После старта XII запустите терминал и с помощью Isof или netstat просмотрите «слушателей». Порт 6000 теперь никто не должен слушать.