Archive

Archive for April, 2009

Установка nginx на сервер с DirectAdmin

April 29th, 2009

Иногда бывает необходимо поставить nginx перед апачем на сервере с уже установленным DirectAdmin-ом. И тут есть несколько варинтов:

  • Перевесить апач на 127.0.0.1, а nginx на все внешние адреса. Но для этого прийдется править конфиги всех сайтов + темплейты для создания новых хостов в ДиректАдмине (шаблоны лежат тут $DIRECTADMIN_HOME/data/templates/). Так же этот вариант опасен тем, что если что-то пойдет не так, то сайты будут не доступны некоторое время.
  • Перевесить апач на другой порт, а nginx на 80. В этом варианте тоже прийдется править шаблоны.
  • Ну и самый удобный вариант это просто добавить новый ip на сервер, но не добавлять его в ДиректАдмин. Повесить на этот ип nginx и уже на него перевести днс-ы тех доменов, которые больше всего грузят сервер. После добавления ип-а и
    /etc/init.d/network restart

    не забыть сделать

    /etc/init.d/startips start

И в /etc/httpd/conf/httpd.conf заменить

Listen 80

на

Listen 1.1.1.1:80
Listen 1.1.1.2:80

Apache, nginx , ,

Создать диск в памяти (FreeBSD)

April 22nd, 2009

Иногда бывает необходимость создать виртуальный диск в памяти для размещения данных, к которым требуется быстрый доступ. Добрый человек подсказал готовый скрипт:

#!/bin/sh
DISKSIZE="256m"
case "$1" in
        start)
                /bin/echo -n "Starting memdisk "
                /sbin/mdconfig -a -t swap -s $DISKSIZE
                /bin/mkdir -p /mnt/md0
                /bin/chmod 777 /mnt/md0
                /sbin/newfs /dev/md0
                /sbin/mount /dev/md0 /mnt/md0
        ;;

        stop)
                /bin/echo -n "Shutting memdisk "
                /sbin/umount -f /mnt/md0
                /sbin/mdconfig -d -u md0
                /bin/rm -R /mnt/md0
        ;;

        restart)
                $0 stop
                $0 start
        ;;

        *)
                echo "Usage: $0 {start|stop}"
                exit 1
        ;;

esac

Естественно, надо убедиться, что диска md0 еще нет в системе.

FreeBSD ,

Фильтрация по GeoIP через .htaccess

April 16th, 2009

После установки GeoIP на Апач можно использовать следующие варианты для фильтрации трафика в .htaccess на основании гео-информации:

Для блокировки подключений из России и Китая

SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
Deny from env=BlockCountry

Перенаправление трафика из Китая на гугл

RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CN$
RewriteRule ^(.*)$ http://www.google.com$1 [L]

Apache ,

Сбросить пароль в MySQL

April 13th, 2009
echo "skip-grant-tables" >> /etc/my.cnf
service mysqld restart
mysql
UPDATE mysql.user SET PASSWORD=PASSWORD('5Z2LMG0xpa') WHERE user='root' AND host='localhost';
quit
Удалить строчку из /etc/my.cnf
service mysqld restart

mysql

Отключение SSLv2 в mod_ssl

April 8th, 2009

SSLv2 уже давно не обеспечивает приемлемого уровня безопасности и поэтому желательно отключить его в mod_ssl. Для этого в виртуалхосте апача надо прописать:

SSLProtocol -all +TLSv1 +SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM

Рестартуем Апач и проверяем:

/usr/bin/openssl s_client -state -debug -ssl2 -connect mysite.com:443

Должна появиться ошибка в невозможности хэндшейка.
А так должно нормально подключиться:

/usr/bin/openssl s_client -state -debug -ssl3 -connect mysite.com:443

Apache, безопасность ,

Сокрытие версии PHP и Apache

April 7th, 2009

В php.ini:

expose_php = off

В httpd.conf:

ServerTokens Prod
ServerSignature Off

Apache, php, безопасность ,

Пересылки всей почты на smarthost в sendmail (FreeBSD)

April 7th, 2009

В /etc/mail/ правим файл “имя хоста”.mc

define(`SMART_HOST', `mail.domain.com')
make all install restart

почта

Простое включение dummynet

April 2nd, 2009
sysctl net.inet.ip.fw.one_pass=0
echo "net.inet.ip.fw.one_pass=0" >> /etc/sysctl.conf
kldload dummynet
kldstat
echo 'dummynet_enable="YES"' >> /etc/rc.conf
echo 'firewall_enable="YES"' >> /etc/rc.conf
echo 'firewall_script="/usr/local/etc/ipfw.rules"' >> /etc/rc.conf

Файл ipfw.rules:

#!/bin/sh

ipfw -q -f flush
cmd="ipfw -q add "

$cmd 100 pipe 1 ip from any to 192.168.0.0/24
ipfw pipe 1 config bw 1Mbit/s

# all traffic
$cmd 1000 allow ip from any to any

Ограничиваем для каждого ip из подсети 192.168.0.0/24 канал до 1 мегабита.

Запускаем:

/etc/rc.d/ipfw forcestart &

FreeBSD

Базовая настройка IPtables, защита sshd от перебора пароля

April 1st, 2009
chkconfig iptables on
service iptables start
iptables -F
iptables -N SSH_CHECK
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_CHECK
iptables -A SSH_CHECK -m recent --set --name SSH
iptables -A SSH_CHECK -m recent --update --seconds 300 --hitcount 3 --name SSH -j DROP
/etc/init.d/iptables save

На 5 минут будет установлена блокировка ip-адреса подбирающего пароли к sshd через 3 попытки .

linux , ,