РосМусор: социальная сеть для свалок

Доброго времени суток.

Наткнулся в сети не давно на проект РосМусор, связанный с несанкционированными (чуть пальцы не сломал) свалками мусора. Проект судя по всему молодой, но развивающийся. Будем надеяться не загнется и не ослабеет его коннект :) Благо свалок и соц. активных людей в стране хватает.

Вот ссылка на РосМусор. Ходите, добавляйте, делайте страну чище!

Рекурсивное удаление папок

Доброго времени суток.

Столкнулся со следующей задачей.

Дано — выкачанный репозиторий, со служебными папками .svn, которые необходимо удалить. В результат надо получить проект, где нет следов SVN.

По сути задача — рекурсивное удаление папок .svn во всех каталогах.

Помогла команда для shell:

FOR /d /r . %d IN (.svn) DO @IF EXIST "%d" (RMDIR /S/Q "%d")

Спасибо этому ресурсу за решение. Команда быстро все папки пробежала и все необходимое удалила. Замечательно просто :)
Вот и все.

PHP

RE: PHP: фрактал плохого дизайна

Доброго времени суток.

Набрел на эту статью вчера, прочитал осмыслил и понял, что, являясь, вроде как, программистом PHP, согласен с автором в 80% его «каменей в огород» PHP.

Автор пишет многобукав, порой перегибает палку, но этот жизненный опус стоит того, чтобы его полностью прочитать.

Я имею опыт программирования на других языках и  могу с ним во многом согласиться. Самый большие камни на мой взгляд — это слабая типизированность PHP, которая в последующих версиях сойдет на нет, я надеюсь, и, мягко говоря, забавное поведение оператора ==. В остальном либо я не придал значение, либо на мой взгляд не является такой сильно большой проблемой для этого языка.

Всем желаю чистого кода :)

Установка MySQL на FreeBSD

Доброго времени суток.

Вот и познакомился я с FreeBSD :)  Знакомство началось с необходимости установки MySQL на рабочий сервер, где PHP  был собран без модуля MySQL, потому что он там собственно и не нужен был. Установка была произведена следующей коммандой:

cd /usr/ports/databases/mysql51-server
make && make install

У меня ставилось около часа, а то и больше, непривычно по сравнению с Linux, где ставится сразу пакет, а тут собирается из исходников. Сразу же ставится зависимый клиент для сервера. После установки надо добавить в /etc/rc.conf строку:

mysql_enable="YES"

Ну вроде установилось. Но пароль не спросила при установке. Оказалось пускает и так, без него… Интересно. Значит надо править таблицу пользователей. Запускаем MySQL и начинаем править:

$ mysql
USE mysql; // выбрали базу
DELETE FROM user WHERE User=''; // удалили пользователей типа гость
UPDATE user SET Password = PASSWORD('тут_новый_пароль');
                   //установили пароль для оставшегося пользователя (root)
FLUSH privileges; //обновили привелегии

После этого удаляться все пользователи с пустым именем, и появиться пароль у пользователя root. Далее можно либо обновить привилегии, либо тупо ребутнуть службу MySQL. Вуаля! У меня есть рабочий мускул, в который можно попасть только по паролю. Все как надо:)

А вот когда подключил mysql.so, тогда оказалось что PHP собран без требуемого модуля. Исправилось следующим путем:

cd /usr/ports/databases/php5-mysql
make install

После этих махинаций перезапускаем Apache и радуемся, что у нас все работает:)

Вроде как все. если нашли ошибки или неточности — пишите обязательно:)

SYN-Flood и как я с ним боролся

Доброго времени суток.

Столкнулся с SYN-Flood атакой на сервер. Опишу вкратце как с этим боролся. Конкретно при атаке, которую произвели на мой сервер симптомы были такие (помимо того, что была большая куча полуоткрытых SYN-RECV соединений с разных IP-адресов) — сайты на сервере перестали открываться по стандартному 80 порту.

Роль front-end выполняет nginx, back-end — apache. При этом, если открывать сайты по порту, который слушает apache, сайты открывались без проблем. SSL-соединения так же работали отлично. Все это сопровождается большим трафиком.

Можно конечно ограничить количество SYN пакетов (соединений) с одного IP-адреса. Но в моем случае так не получилось — все пакеты были с разных адресов. Решилось все частично (сменился тип атаки) установкой cookie на SYN:

sysctl net.ipv4.tcp_syscookie=1

Тут (журнал Хакер) есть некое руководство, как защитится от подобных атак. С некоторыми изменениями подходит для *nix систем (вся разница в наименовании системных настроек, на сколько я понял).

Единственный минус — после перезагрузки этот параметр встанет в 0 обратно. Так что надо еще занести в стандартную конфигурацию ядра.

Вот собственно и все метод рабочий.

Яндекс.Метрика