25 нояб. 2011 г.

Как узнать версию CentOS

Очень просто :)

rpm -q centos-release

Просто команда uname -a на сервисах типа амазона не показывает почти ничего полезного.

Также:

cat /etc/redhat-release

lsb_release -a

24 нояб. 2011 г.

Ошибка апача: [warn] _default_ VirtualHost overlap on port 443, the first has precedence

Такая ошибка вылазит при перезагрузке или переконфигурировании апача.

Причина такой ошибки очень простая - в конфиге апача (httpd.conf, apache2.conf - смотря какой линукс у вас) не хватает строчки:

NameVirtualHost *:443

Добавьте - и будет вам счастье :)

Настройка mod_proxy в Apache

В общем, был такой таск: есть у нас локальная сетка и маршрутизатор Peplink. В локальной сетке на многих тазиках крутятся сайты, которые должны быть доступны извне. Как это сделать? Разносить по портам - не вариант, т. к. пользователю неудобно всё-таки набирать  URL типа блаблабла:8081. Решение - использовать HTTP-прокси, а на тазик с ним открыть в маршрутизаторе порты 80, 443. Для проксирования обычно используют nginx, но апач тоже отлично справляется с этой задачей.

Так сложилось, что тазик с прокси был Убунтой (клиент категорически н ехотел работать с другими дистрибутивами Linux), а "в Убунте всё не как у людей" (с) :) потому конфигурация её несколько отличается от других дистрибутивов. Но, приняв философию Убунты, я понял, что многие решения в ней очень даже удобны, хотя некоторые мне не нравятся - например, отсутствие пользователя root. Но это уже философия, грозящая холиваром, потому перейдем к делу :)

В убунте манипулирование апачем происходит с помощью глобальных команд: включение/выключение виртуал хостов - a2ensite / a2dissite с одним аргументом - пути к конфигу, в котором прописан виртуал хост. Включение/выключение модов или расширений происводится командами a2enmod / a2dismod.

В общем, алгоритм работы такой:

1) Нужно включить необходимые модули апача. Устанавливаем:

sudo apt-get install libapache2-mod-proxy-html libapache2-mod-gnutls

Разрешаем:

sudo a2enmod proxy
sudo a2enmod ssl
sudo a2enmod cache
sudo /etc/init.d/apache2 restart

2) Делаем конфиг виртуал хоста (по 1му файлу на 1 хост!) и помещаем его в /etc/apache2/sites-available. Пример HTTPS конфига проксирования на тазик с Confluence - это такая джавовская веб-морда для программистов и не только, работающая на Apache Tomcat (с портом 8444):

22 нояб. 2011 г.

Расширение EBS Volume на Amazon AWS

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

Заходим в AWS, например: https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Volumes

Тут у нас два пути: 1 - создаем снапшот со старого диска, затем разворачиваем его на новом (но придется вручную увеличивать его объем, т. к. он будет как у старого, а остаток пространсва - неразмеченным), 2 - создать пустой диск и скопировать, например rsync'ом данные со старого диска на новый.

18 нояб. 2011 г.

Установка и использование антивируса Clamav

Бывает, что rkhunter и chkrootkit недостаточно чтобы точно определить, есть ли зловредный руткит или типа того в вашей системе. Тут нам на помощь приходит антивирус для Linux - Clamav.

Установка. В зависимости от дистрибутива используем одну из следующих команд:

yum install clamav, urpmi clamav, apt-get install clamav, pacman -S clamav

Для обновления антивирусных баз юзаем команду:

freshclam

Для сканирования каталога:

clamscan -r <каталог>

 Также можно использовать следующие опции:

- управление информационными сообщениями
  • --verbose 
  • --no-summary (не выдавать итоговый отчёт) 
  • --infected (сообщать только об обнаруженных вирусах) 
  • --quiet (об обнаруженных вирусах также не сообщается!) 
  • --bell (звенеть при обнаружении вируса; звенит даже при --quiet) 
  • --debug 
  • --log=имя-файла (файл дополняется) - очень полезная штука, иначе вы не узнаете, что у вас заражено в принципе, если файлов много 
  • --stdout 
- действия при обнаружении вирусов
  • --move=имя-каталога (перемещать инфицированные файлы в указанный каталог; д.б. права на запись) 
  • --copy=имя-каталога (копировать инфицированные файлы в указанный каталог; д.б. права на запись) 
  • --remove (удалять файлы с вирусами; не советую)

Использование hosts.deny и hosts.allow

Бывают ситуации, когда надо заблокировать доступ злоумышленникам на наш компьютер. Если разбираться с правилами iptables не нужно, то самое простое решение - добавить ip злоумышленника в hosts.deny. А hosts.allow служит как раз для противоположной цели

Синтаксис этих файлов очень прост:

<служба или ALL>: <IP-адрес или имя хоста или подсеть>

Так, например, если мы хотим блокировать все smtp-пакеты, идущие к нашему серверу от mail.test.ru, нам необходимо ввести в файл hosts.deny следующую строчку:

smtp: mail.test.ru

Для ssh:

sshd: 210.123.134.56

А если мы хотим запретить подключение по ssh всем, кроме локальной сети, то:

/etc/hosts.deny
sshd: ALL

/etc/hosts.allow
sshd: 192.168.1.

В этом примере 192.168.1. значит 192.168.1.0..255
Всем удачи :)

14 нояб. 2011 г.

SCP - утилита копирования файлов по LAN/WAN

Часто возникает задача скопировать файл (например, конфиг) с одной Linux машины на другую.  Если надо скопировать 1-2 файла, то поднимать FTP сервер нет смысла - проще воспользоваться командой SCP, которая копирует файлы по протоколу SSH.

Пример копирования из машины-источника (назовем ее так) на нашу:

scp -P 230 root@192.168.1.5:/etc/ssl/server.key /etc/ssl/

10 нояб. 2011 г.

Установка SVN + mod-dav в Linux

Недавно был такой таск - установить на клиентский тазик связку svn + mod_dav для апача с соединением по HTTPS. ОС там была Ubuntu, а в ней настройка апача не совсем как везде :) Так что смотрите.

Пошагово делаем так:

1. Устанавливаем subversion:

sudo apt-get install subversion libapache2-svn apache2

2. Включаем ssl модуль для апача. Если нам ssl не нужен, то пропускаем пункты 2-4.

sudo a2enmod ssl

9 нояб. 2011 г.

Настройка шлюзов при VPN соединении - если при подключении к VPN пропадает интернет

Сегодня столкнулся с такой вот не совсем очевидной и в то же время простой проблемой: Управлял я Windows 2008 сервером по RDP. И мне понадобилось соединиться по VPN с другой сетью (PPTP). Создал я VPN подключение, включил его... И доступ по RDP пропал :) Фишка оказалась в том, что при включении RDP винда по умолчанию роутит все пакеты на шлюз VPN'a, а не на наш старый. Я уже думал открывать консоль и писать всякие там роуты, но нашел способ попроще.

Заходим в Панель управления, Цент управления сетями и общим доступом, Свойства адаптеров и вызываем параметры нашего VPN-соединения. Далее клацаем на вкладке Networking (как по-русски - не помню :) ), и вызываем свойства протокола TCP/IP.


7 нояб. 2011 г.

Подключение репозитория Epel к CentOS 6.x

Подключение репозитория Epel 6.7 к CentOS 6.x. Идем на сайт Эпеля, и скачиваем пакет или скармливаем установщику по URL

http://ftp.tlk-l.net/pub/mirrors/fedora-epel/6/i386/repoview/epel-release.html

rpm -Uvh http://ftp.tlk-l.net/pub/mirrors/fedora-epel/6/i386/epel-release-6-7.noarch.rpm