Перейти к собственно контенту

Архив

Метка: Linux

В дополнение к статье Собственный Dynamic DNS сервер на базе Bind решил написать статью, для тех у кого есть домен c использованием Clouflare.com. В настройках CF получаем API Key. Допустим zone называется deathstar.name , мне нужно было для домашнего файлохранилища как и в предыдущей статье менять IP по крону ( метод получения внешнего немного изменен, но можно и использовать метод с предыдущей статьи )

Скрипт находится тут

ID всех записей можно узнать командой:

curl https://www.cloudflare.com/api_json.html   -d 'a=rec_load_all'   -d 'tkn=ВАШ API ключ'   -d 'email=deathstar@deathstar.name'   -d 'z=deathstar.name'

тут находим запись netdisk.deathstar.name и левее названия будет rec_id. Ставим в крон аналогично предыдущей статьи и радуемся.

Добавляем мультимедиа репозиторий и обновляем список пакетов:
echo "deb http://www.deb-multimedia.org wheezy main non-free" >> /etc/apt/sources.list
echo "deb-src http://www.deb-multimedia.org wheezy main non-free" >> /etc/apt/sources.list
apt-get update
apt-get install deb-multimedia-keyring # если вылезла ошибка то повторить
apt-get update

Переходим в каталог с исходниками:
cd /usr/local/src

Устанавливаем все необходимые зависимости
aptitude install -y libfaad-dev faad faac libfaac0 libfaac-dev libmp3lame-dev x264 libx264-dev libxvidcore-dev build-essential checkinstall

Устанавливаем все необходимые зависимости для сборки ffmpeg
apt-get build-dep ffmpeg

Скачиваем актуальный исходный код
apt-get source ffmpeg

Переходим в каталог с исходниками
cd ffmpeg-*

Задаем опции сборки:
./configure --enable-gpl --enable-nonfree --enable-libfaac --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib --enable-postproc --enable-swscale --enable-pthreads --enable-x11grab --enable-libdc1394 --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb

Делаем маленький фикс ))):
mkdir -p /usr/local/share/ffmpeg

Собираем .deb пакет:
checkinstall -D --install=no --pkgname=ffmpeg-full --autodoinst=yes -y

Если получили ошибку:
libavcodec/libx264.c:492: undefined reference to `x264_encoder_open_125'

то переходим на каталог выше, удаляем x264 и собираем из исходного кода и пытаемся повторить сборку ffmpeg:
cd ..
apt-get remove x264
git clone git://git.videolan.org/x264.git
cd x264
./configure --enable-static --enable-shared
make && make install
ldconfig
cd .. && cd ffmpeg*
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/src/x264/libx264.a ./configure --enable-gpl --enable-nonfree --enable-libfaac --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib --enable-postproc --enable-swscale --enable-pthreads --enable-x11grab (далее…)

В дополнение к этой статье  напишу как сделать несколько IP адресов на 3proxy:

 

Установка все как в предыдущей статье

( в CentOS : yum install -y 3proxy

Debian / Ubuntu: apt-get install 3proxy )

но конфиг уже выглядит иначе

# Name servers
nserver 8.8.8.8
nserver 8.8.4.4
# nscache is good to save speed, traffic and bandwidth
nscache 65536

# Here we can change timeout values

users user:CL:password

daemon

log /var/log/3proxy/3proxy.log
logformat «- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T»
archiver gz /bin/gzip %F
rotate 30

auth strong
allow * * * *

proxy -n -a -p3128 -i100.218.211.82 -e100.218.211.82 -p3128
proxy -n -a -p3128 -i142.218.209.164 -e142.218.209.164 -p3128
proxy -n -a -p3128 -i167.248.229.155 -e167.248.229.155 -p3128
proxy -n -a -p3128 -i162.211.209.142 -e162.211.209.142 -p3128
proxy -n -a -p3128 -i162.213.109.133 -e162.213.109.133 -p3128
proxy -n -a -p3128 -i162.219.302.124 -e162.219.302.124 -p3128

auth strong

flush

maxconn 32
socks -n -a -p3128 -i100.218.211.82 -e100.218.211.82 -p3128
socks -n -a -p3128 -i142.218.209.164 -e142.218.209.164 -p3128
socks -n -a -p3128 -i167.248.229.155 -e167.248.229.155 -p3128
socks -n -a -p3128 -i162.211.209.142 -e162.211.209.142 -p3128
socks -n -a -p3128 -i162.213.109.133 -e162.213.109.133 -p3128
socks -n -a -p3128 -i162.219.302.124 -e162.219.302.124 -p3128

setgid 65535
setuid 65535

Поставил тут на один из серверов с ОС Ubuntu, который дико брутили и ддосили программу fail2ban,накатал для нее фильтры под nginx, но в логах после запуска вижу следующее:

2012-09-02 00:32:55,872 fail2ban.jail : INFO Jail 'nginx-auth' started
2012-09-02 00:32:55,873 fail2ban.actions.action: ERROR iptables -N fail2ban-SSH
iptables -A fail2ban-SSH -j RETURN
iptables -I INPUT -p all -j fail2ban-SSH returned 400
2012-09-02 00:32:55,874 fail2ban.actions.action: ERROR iptables -N fail2ban-LIMIT
iptables -A fail2ban-LIMIT -j RETURN
iptables -I INPUT -p all -j fail2ban-LIMIT returned 400
2012-09-02 00:32:55,879 fail2ban.actions.action: ERROR iptables -N fail2ban-AUTH
iptables -A fail2ban-AUTH -j RETURN
iptables -I INPUT -p all -j fail2ban-AUTH returned 200

Причем вроде все работает как надо, но лог смущает. Чтобы избавиться от ошибки открываем файл /usr/bin/fail2ban-client
и перед строкой
beautifier.setInputCmd(c) вставляем строку
time.sleep(0.1) , то есть код выглядит уже вот так

def __processCmd(self, cmd, showRet = True):
beautifier = Beautifier()
for c in cmd:
time.sleep(0.1)
beautifier.setInputCmd(c)
try:
client = CSocket(self.__conf["socket"])
ret = client.send(c)

Перезапускаем fail2ban и смотрим лог:

2012-09-02 00:35:40,571 fail2ban.jail : INFO Creating new jail 'nginx-auth'
2012-09-02 00:35:40,571 fail2ban.jail : INFO Jail 'nginx-auth' uses poller
2012-09-02 00:35:40,672 fail2ban.filter : INFO Added logfile = /var/www/mobilmax/logs/nginx_access.log
2012-09-02 00:35:40,773 fail2ban.filter : INFO Set maxRetry = 1
2012-09-02 00:35:40,975 fail2ban.filter : INFO Set findtime = 600
2012-09-02 00:35:41,076 fail2ban.actions: INFO Set banTime = 604800
2012-09-02 00:35:42,489 fail2ban.jail : INFO Jail 'ssh' started
2012-09-02 00:35:42,593 fail2ban.jail (далее…)

В дополнение к статье по настройке почтового сервера на FreeBSD решил написать как настроить тоже самое, но на ОС CentOS 6.

Подключаем репозиторий Remi и Epel

rpm --import https://fedoraproject.org/static/0608B895.txt
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm
yum install yum-priorities
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

Приводим файл /etc/yum.repos.d/epel.repo к такому виду

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

и файл /etc/yum.repos.d/remi.repo к такому виду:

[remi]
name=Les RPM de remi pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
failovermethod=priority

[remi-test]
name=Les RPM de remi en test pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/test/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/test/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

Ставим MySQL , добавляем в атозагрузку и стартуем:

yum install mysql mysql-server
chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start

Установим пароь для root в MySQL следующей командой:

mysql_secure_installation

Устанавливаем nginx ( да да, как и в прошлый раз мы обойдемся без тяжеловесного Apache и сделаем все на NGINX + PHP-FPM ), добавим в автозагрузку и стартуем
yum install nginx
chkconfig --levels (далее…)