Автор — Ричард Босомворт (Richard Bosomworth)

У нас уже установлен LAMP комплекс, это очень хорошо, но нам конечно же нужно поместить туда данные. Также мы не хотим, чтобы другие люди могли разместить свои данные на комплексе, или получить доступ к нашим. Linux сервер изначально безопасен, впрочем не повредит улучшить некоторые вещи. Давайте настроим FTP и простой сетевой экран.*

Установка FTP

Мы собираемся использовать vsftpd. Введите в консоли:

sudo apt-get install vsftpd

Вы можете взять GUI-модуль vsftpd для Webmin, но я предпочитаю редактировать файл vsftpd.conf вручную. Для этого введите в консоли:

sudo nano /etc/vsftpd.conf

Я прочитал много руководств, в которых, похоже, рады работать с анонимным доступом. Меня, однако, это не устраивает, поэтому я всегда отключаю его. В зависимости от политики вашей системы вы можете ограничить доступ (с помощью chroot) для выбранных пользователей, чтобы предотвратить их перемещение в системе из мест, где они могут быть, туда, где они не должны находиться.

Для работы с FTP используются права доступа. Так как я использую только одну учетную запись и подключаюсь напрямую к /var/www, мой метод доступа следующий:

  • Разрешить доступ локальному пользователю (моя учетная запись) в vsftpd.conf.
  • Добавить пользователя (себя) в группу www-data. Для этого я использую Webmin.
  • Дать права владельца каталога /var/www группе www-data (я использую Webmin) и проверить «Files Inherit Group».
  • Установить путь назначения в ftp клиенте (например /var/www).

ВАЖНО: Убедитесь, что «umask» раскоментировано в файле vsftpd.conf, и выберите нужные вам настройки для загрузки файлов. Я решил, что значение 0002 для установки Wordpress наиболее подходя-щее — это дает права доступа 775.

Ваши требования могут отличаться, но описанное выше подходит мне. Перезапустите vsftpd и проверьте доступ с помощью вашего FTP клиента. Я использую Transmit — он прекрасен.

sudo /etc/init.d/vsftpd restart

Настройка Сетевого экрана

Это довольно легко в Webmin. Во вкладке Сеть откройте «Межсетевой экран» (firewall).

Выберите «Блокировать всё» кроме SSH и IDENT на внешнем интерфейсе.

В следующем окне нам нуж-но добавить правила доступа для FTP, Webmin, Sendmail и MySQL Admin.

Нажмите «Добавить пра-вило» под существующим списком.

Выберите «Принять».

Выберите сетевой протокол TCP.

Установите порт назначения TCP или UDP равным 21.

Нажмите «Создать».

Сделайте то же самое для портов 3306 (MySQL), 25 (Sendmail), 10000 (Webmin), и 80 (Web и phpMyAdmin).

Выберите «Активировать при загрузке» и нажмите «Применить конфигурацию». Если вы можете вернуться в Webmin, использовать поч-товые PHP скрипты и FTP и подключаться к БД с помощью MySQL Administrator, то у вас всё получилось.

СОВЕТ: Вам, возможно, потребуется перезапустить MySQL. Я использую Webmin для этого.

Почта в PHP

Вы, возможно, захотите чтобы пользователи отправ-ляли вам письма с вашего сайта. PHP уже имеет встро-енную функцию mail, но ее нужно привязать к транспорт-ному агенту (MTA) для пере-дачи. Другими словами, ей нужна программа или сервис, который будет отсылать почту. Тут мы можем использовать сервис, называемый (можете угадать?), да, Sendmail. Ниже о том как установить и настроить его — это очень просто.

Сперва мы установим Sendmail. Введите в консоли:

sudo apt-get install sendmail

Далее нужно настроить PHP, чтобы он знал, где находится SMTP-сервис (sendmail). Наберите в консоли следующее:

sudo nano /etc/php5/apache2/php.ini

Добавьте следующее в секцию mail function, вводя ваши собственные настройки по необходимости:

[mail function]
; Настройка для Linux систем
sendmail_path = /usr/sbin/sendmail -t
sendmail_from = <ваша_почтовая_учетная_запись@вашдомен.com>

И сохраните. Теперь ваши почтовые скрипты должны благополучно отсылать почту.