необходимо быть корнем изменение владелец "внешних" файлов. Если Вы не способный получить корневой доступ Вы могли бы попытаться изменить полномочия файлов через php.
Попытайтесь выполнить сценарий PHP в своем браузере, владелец сценария должен быть апачским пользователем.
... может кто-нибудь откуда-то в Интернете легко подделать запрос, чтобы веб-сервер принял его, думая, что он исходит от 127.0.0.1, если сервер слушает только 127.0.0.1 ?
Возможно, но крайне маловероятно. Подумайте об этом так: когда процесс прослушивает порт, привязанный к 127.0.0.1, входящий IP-пакет достигнет процесса, только если адрес назначения пакета - 127.0.0.1. Если ваш злоумышленник не разрушил каждый маршрутизатор между собой и вашим сервером, такой пакет никогда не будет перенаправлен на ваш сервер, поскольку 127.0.0.1 обычно не является маршрутизируемым адресом.
Но предположим, что произойдет немыслимое, и поддельный пакет на 127.0.0.1 поступает на ваш сервер. В этом случае, пакет должен был прийти через сетевой интерфейс, который не является интерфейсом обратной связи ( lo
). Поскольку по соглашению все легитимные пакеты, предназначенные для 127.0.0.0/8, должны поступать через интерфейс lo
, легко идентифицировать и блокировать поддельные пакеты на 127.0.0.0/8 с помощью простого iptables
правило:
-A INPUT -d 127.0.0.0/8 ! -i lo -j DROP
Если вы изменили адрес привязки на 127.0.0.1, этого должно быть достаточно, чтобы предотвратить удаленный доступ с любой другой машины. Если вы попытаетесь подключиться, вы получите соединение отклонено . Это будет выглядеть (с точки зрения удаленных машин) точно так же, как процесс остановлен и порт закрыт.
Для дополнительной безопасности вы можете добавить правило (я) iptables, чтобы заблокировать эти порты с удаленных адресов.