пятница, 25 июля 2014 г.



Использование NMAP для быстрого обнаружения большого количества хостов в сети.

Установка NMAP в CentOS 6.5

#yum install nmap

Использование NMAP

NMAP предназначен в первую очередь для сканирования хостов в сети с целью обнаружить открытые порты, работающие сервисы на портах и пр. В нашей задаче это не нужно. Нужно просто определить, какие IP адреса в сети доступны, а какие нет.

Создадим файл, содержащий сети для опроса:
#touch /root/IP-Target

Занесем туда несколько сетей:
# echo "10.200.72.0/24" >> /root/IP-Target
# echo "10.200.16.0/24" >> /root/IP-Target
# echo "10.200.71.0/24" >> /root/IP-Target


Выполним сканирование методом обычного ICMP пинга:
#nmap -sn -iL /root/IP-Target
Ключ –sn дает команду NMAP применить простое IСMP сканирование хостов.
С помощью ключа –iL мы указываем NMAP файл с IP адресами (сетями) для сканирования.

Пример вывода:
#nmap -sn -iL /root/IP-Target
Starting Nmap 5.51 ( http://nmap.org ) at 2014-07-25 11:02 MSK
Nmap scan report for 10.200.72.1
Host is up (0.0016s latency).
Nmap scan report for 10.200.72.2
Host is up (0.0024s latency).
…
Nmap scan report for SMA-UKGD-R1.samara-ttk.ru (10.200.16.254)
Host is up (0.00071s latency).
MAC Address: 00:1F:CA:F6:0B:1B (Cisco Systems)
…
Nmap scan report for 10.200.71.254
Host is up (0.0040s latency).
Nmap done: 768 IP addresses (197 hosts up) scanned in 6.96 seconds


Для более быстрого сканирования отключим функцию определения имени по IP адресу с помощью DNS (опция –n)
#nmap -sn -n -iL /root/IP-Target
Starting Nmap 5.51 ( http://nmap.org ) at 2014-07-25 11:11 MSK
Nmap scan report for 10.200.72.1
Host is up (0.0016s latency).
Nmap scan report for 10.200.72.2
Host is up (0.0024s latency).
…
Nmap scan report for 10.200.16.254
Host is up (0.00050s latency).
MAC Address: 00:1F:CA:F6:0B:1B (Cisco Systems)
…
Nmap scan report for 10.200.71.254

Host is up (0.00071s latency).
Nmap done: 768 IP addresses (197 hosts up) scanned in 6.98 seconds


Еще увеличить скорость сканирования можно используя следующие опции:
--initial-rtt-timeout (Типовое время RTT прохождения пакета по сети до хоста и обратно. По умолчанию – 1 секунда. На реальной сети рекомендуют взять типовое RTT умноженное на два.)
--max-rtt-timeout (Максимальное время RTT прохождения пакета по сети до хоста и обратно. По умолчанию – 10 секунд. На реальной сети рекомендуют взять типовое RTT умноженное на четыре.)
--host-timeout (Устанавливается значение времени, по прошествии которого хост считается не доступным)
--max-scan-delay (Максимальное время ожидания между отсылкой пакетов. По умолчанию – секунда. При хорошей сети можно уменьшить в 2-5 раз по сравнению с типовым – 1 секунда).
Для нашей сети используем следующие параметры
--initial-rtt-timeout 10ms
--max-rtt-timeout 20ms
--host-timeout 5s
--max-scan-delay 300ms
Пример вывода:
#nmap -sn -n --initial-rtt-timeout 10ms --max-rtt-timeout 20ms --host-timeout 5s --max-scan-delay 300ms -iL /root/IP-Target
Starting Nmap 5.51 ( http://nmap.org ) at 2014-07-25 11:29 MSK
Nmap scan report for 10.200.72.1
Host is up (0.0016s latency).
Nmap scan report for 10.200.72.2
Host is up (0.0024s latency).
…
Nmap scan report for 10.200.16.254
Host is up (0.00058s latency).
MAC Address: 00:1F:CA:F6:0B:1B (Cisco Systems)
…
Nmap scan report for 10.200.71.254
Host is up (0.035s latency).
Nmap done: 768 IP addresses (197 hosts up) scanned in 3.15 seconds

По сравнению с предыдущим разом скорость сканирования выросла почти в два раза.

Вывод программы удобно поместить в файл. Это делается с помощью опции –oN <имя файла>.
Пример команды с записью результатов в файл /root/123
#nmap -sn -n --initial-rtt-timeout 10ms --max-rtt-timeout 20ms --host-timeout 5s --max-scan-delay 300ms -oN /root/123 -iL /root/IP-Target

Как можно заметить в выводе программы NMAP присутствуют только доступные IP адреса. Для того что бы получить подробный вывод и узнать перечень IP адресов, которые недоступны, включаем с помощью опции –v расширенный вывод.
# nmap -v -sn -n --initial-rtt-timeout 10ms --max-rtt-timeout 20ms --host-timeout 5s --max-scan-delay 300ms -oN /root/123 -iL /root/IP-Target
Starting Nmap 5.51 ( http://nmap.org ) at 2014-07-25 22:32 MSK
Initiating Ping Scan at 22:32
Scanning 256 hosts [4 ports/host]
Completed Ping Scan at 22:32, 1.21s elapsed (256 total hosts)
Nmap scan report for 10.200.72.0 [host down]
Nmap scan report for 10.200.72.1
Host is up (0.0017s latency).
Nmap scan report for 10.200.72.2
Host is up (0.0025s latency).
…
Nmap scan report for 10.200.16.254
Host is up (0.00046s latency).
MAC Address: 00:1F:CA:F6:0B:1B (Cisco Systems)
…
Nmap scan report for 10.200.71.253 [host down]
Nmap scan report for 10.200.71.254
Host is up (0.00065s latency).
Nmap scan report for 10.200.71.255 [host down]
Read data files from: /usr/share/nmap
Nmap done: 768 IP addresses (197 hosts up) scanned in 2.70 seconds
Raw packets sent: 3347 (120.500KB) | Rcvd: 220 (6.352KB)


Для более наглядного перечня доступных и не доступных IP адресов можно воспользоваться grep
#nmap -v -sn -n --initial-rtt-timeout 10ms --max-rtt-timeout 20ms --host-timeout 5s --max-scan-delay 300ms -oN /root/123 -iL /root/IP-Target | grep "Nmap scan report for"
Nmap scan report for 10.200.72.0 [host down]
Nmap scan report for 10.200.72.1
Nmap scan report for 10.200.72.2
Nmap scan report for 10.200.72.3
Nmap scan report for 10.200.72.4
…
Nmap scan report for 10.200.71.252 [host down]
Nmap scan report for 10.200.71.253 [host down]
Nmap scan report for 10.200.71.254
Nmap scan report for 10.200.71.255 [host down]

В выводе команды недоступные хосты помечены как [host down], доступные не имеют такой пометки.

Полезные ссылки:
http://nmap.org/man/ru/

суббота, 19 июля 2014 г.

Утилита halberd для анализа распределения трафика сервера по хостам.

Ссылка на GITHUB:
https://github.com/jmbr/halberd

Установка утилиты на сервер Linux CentOS:
1. Скачиваем
#wget https://github.com/jmbr/halberd/archive/master.zip

2. Распаковываем
#unzip master.zip
(Если вдруг нет команды Unzip, то ее можно легко установить
yum install unzip)

3. Заходим в папку с программой:
#cd halberd-master/

4. Устанавливаем:
# python setup.py install
running install
running build
....
copying build/scripts-2.6/halberd -> /usr/bin
changing mode of /usr/bin/halberd to 755
running install_data
error: can't copy 'man/man1/halberd.1': doesn't exist or not a regular file
У меня команда завершилась с ошибкой, но при этом все работало.


Использование Утилиты
# halberd <имя сервера>
Пример:
[root@test tests]# halberd 2ip.ru
halberd 0.2.4 (14-Aug-2010)

INFO looking up host 2ip.ru...
INFO host lookup done.
INFO 2ip.ru resolves to 188.40.74.10
INFO 2ip.ru resolves to 188.40.74.9
188.40.74.10     [##########]  clues:   3 | replies: 236 | missed:   1

================================================================
http://2ip.ru (188.40.74.10): 1 real server(s)
================================================================

server 1: Apache/2.2.22
----------------------------------------------------------------

difference: 14227 seconds
successful requests: 236 hits (100.00%)
cookie(s):
  PHPSESSID=086fm1be6b3htbm4q8ihsnvm51; path=/
  IP[1405427044]=83.234.168.49; expires=Mon, 13-Oct-2014 12:24:04 GMT; path=/; domain=.2ip.ru
header fingerprint: 0c9269e50c1153d7a2eef6519e09912704ef4a3a
188.40.74.9      [##########]  clues:   2 | replies: 245 | missed:   0

================================================================
http://2ip.ru (188.40.74.9): 1 real server(s)
================================================================

server 1: Apache/2.2.16
----------------------------------------------------------------

difference: 14227 seconds
successful requests: 245 hits (100.00%)
cookie(s):
  PHPSESSID=pg9av4umbe30bcgjnu2dtjhi64; path=/
  IP[1405427053]=83.234.168.49; expires=Mon, 13-Oct-2014 12:24:13 GMT; path=/; domain=.2ip.ru
header fingerprint: 5cb092b03b806f674e47e52225193bea78f1785d


Вывод справки по программе:
# halberd --help

понедельник, 14 июля 2014 г.

Установка RUBY 2.1.2 и RUBY ON RAILS на Ubuntu 14.04

1) Обновляемся:
#sudo apt-get update

2) Устанавливаем RVM (Ruby Version Manager). 
Это программа позволяющая использовать несколько версий Ruby на одной машине. 
#curl -L get.rvm.io | bash -s stable

3) Запускаем RVM
#source /home/rossyp/.rvm/scripts/rvm

4) Смотрим, что на рекомендуют установить дополнительно на нашу машину:
#rvm requirements
rossyp@ur:~$ rvm requirements
Checking requirements for ubuntu.
Installing requirements for ubuntu.
Updating system..............
Installing required packages: g++, gcc, make, libc6-dev, libreadline6-dev, zlib1g-dev, libssl-dev, libyaml-dev, libsqlite3-dev, sqlite3, autoconf, libgdbm-dev, libncurses5-dev, automake, libtool, bison, pkg-config, libffi-dev.............................
Requirements installation successful.

5) Устанавливаем рекомендованные пакеты
#sudo apt-get install  g++ gcc make libc6-dev libreadline6-dev zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev

6) Дополнительно ставим:
#sudo apt-get install nodejs

7) Устанавливаем стабильную на текущий момент версию  RUBY
#rvm install 2.1.2

8) Выбираем ее для использования по умолчанию
#rvm use 2.1.2 --default

9)Устанавливаем rubygems
#rvm rubygems current

10) и наконец устанавливаем
#gem install rails

11) Проверяем версий
$ ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
$ rails -v
Rails 4.1.4


Установка RUBY 2.1.2 и RUBY ON RAILS на CentOS 6.5

1) Устанавливаем CURL
#yum install curl

2) Устанавливаем RVM (Ruby Version Manager). 
Это программа позволяющая использовать несколько версий Ruby на одной машине. 
#curl -L get.rvm.io | bash -s stable

3)Запускаем RVM
#source /etc/profile.d/rvm.sh

4) Смотрим, что на рекомендуют установить
# rvm requirements
Checking requirements for centos.
Installing requirements for centos.
Updating system.
Installing required packages: patch, libyaml-devel, libffi-devel, patch, libtool, bison........
Requirements installation successful.

5) Устанавливаем, что рекомендуют
#yum install patch libyaml-devel libffi-devel patch libtool bison

6) Устанавливаем стабильную версию  RUBY
#rvm install 2.1.2

7) Выбираем ее для использования по умолчанию
#rvm use 2.1.2 --default

8) Устанавливаем rubygems
#rvm rubygems current

9) и наконец устанавливаем
#gem install rails

10) Проверяем версии
# ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
# rails -v
Rails 4.1.4