Налаштовуємо сервер під себе
Сьогодні буду розповідати про налаштування сервера на Linux (зокрема, під CentOS 5.3), а також про мінімальні кроки, що вживаються для захисту сервера.
Для чого потрібен свій VPS / VDS? Щоб налаштувати їх під свої потреби.
Скажу відразу, що я не сис. адмін, я програміст. І всі ці справи осягав сам. Так що якщо у сис. адмінів будуть якісь повчання - буду тільки радий вислухати.
Для чого я використовую свій сервер? З них зручно парсити все і вся, канал дозволяє; можна вішати скільки влізе на сервак сайтів, ніяких тобі обмежень; вішаю контент дора на серваках, щоб не розміщувати їх на «чужих» сайтах Вообщем, роби що хочеш, став софт який хочеш, але і налаштовувати / захищати, як правило, доведеться все самому ( «unmanaged сервери»).
Що ж я зазвичай ставлю на сервер:
- apache нема на дефолтний порт;
- nginx - як легкий фронтенд і розвантажник апача, відмінно віддає статику;
- іноді proftpd - FTP-сервер, якщо планується використовувати сервер для декількох користувачів;
- якщо планується ісопльзовать бази даних, то mysql;
- php, як mod_php до Апач;
- для моніторингу сервера / групи серверів (навантаження, стан сервісів, зняття кількості трафіку з eth0, оповіщення на mail і jabber) ставлю Zabbix;
- потихеньку захищаємося від брутфорса - SSHGuard або fail2ban.
Тепер по кожному пункту трохи детальніше.
Практично будь-які CMS-ки під сплоги, динамічні Дори, велика кількість доргенов та інше добро працює на PHP, - apache, як веб-сервер використовується найчастіше. Я ніколи не використовую всякі yum і apt-get, а волію збирати все з Сорс вручну, так мені надійніше.
Разом з Апачем відразу ставимо і PHP, причому не раджу ставити гілку 5.3.X, тому що в ній багато функцій, які використовуються в популярних доргенов / CMSках, вважаються застарілими. Тому ставимо 5.2.X як mod_php, правимо httpd.conf так, як написано в how to. Після всього цього не забиаем перезавантажити апач.
Багато хто не ставлять сервіси для моніторингу для своїх систем. Ну і погано. Зате ті, хто ставлять, завжди в курсі того, що відбувається з серваке і вдень і вночі. А знати це дуже важливо - дивитися сплески активності (може, хто ДДОС, парсит і т.д.), моніторити зміни конфігов (може, хто проліз на сервер і додав ще одного рута ?!), моніторити стану всіх сервісів.
У Zabbix можна встановлювати тригери - умови, при яких настає певна дія. Наприклад, у мене стоїть тригер на зміни в файлі / etc / passwd. Якщо хтось надумає додати нового користувача, то мені тут же прийде повідомлення в Jabber про це.
SSHGuard, fail2ban та інше подібне
Ще кілька порад.
Не дозволяйте підключатися руту по SSH. Для цього створіть свого користувача, під яким ви будете підключатися по SSH. Потім через цього користувача вже можна буде отримати права привілейованого користувача. Як це зробити - розписано тут.
А ще намагайтеся не ставити FTP-серер без необхідності. Якщо потрібен доступ по FTP, то використовуйте SFTP - логін / пас від SSH підключення. Для цього підійти FileZilla або WinSCP. Це безпечніше (НЕ просніфают) і, в той же час, не треба встановлювати зайвий сервіс на сервак.
Сервер у мене гнали пару раз, але все вдавалося повернути на свої місця. Так що не нехтуйте цими елементарними порадами з безпеки, а то можна в один момент все швидко втратити.
Якщо ви сумніваєтеся в своїх адміністраторських здібностях, то можна поставити панель Webmin - вона безкоштовна, досить легка в освоєнні. Адмін сервер з нею набагато простіше