ISP`s IT Аутсорсинг
Быстрый переход: Главная блога Главная сайта Форум
Если Вы чего то недопоняли или не нашли - задайте
вопрос на нашем форуме и мы попробуем Вам помочь.
Subnets.ru Регистрация IP и Автономных систем mega-net.ru

Архив за Август 23rd, 2008

Добро пожаловать в блог! Надеемся, что Вы еще вернетесь.

Очень часто у новичков возникает вопрос:

«Что нужно настроить на Cisco Catalyst с нуля?»

или встречается запрос в google:

«Скачать дефолтовый конфиг для Cisco Catalyst»

или

«catalyst 2960 2950 3560 ip адрес по умолчанию»

или

«как настроить cisco catalyst «

Попробую немного помочь этим людям 🙂

  1. Дефолтовых конфигов не бывает, т.к. у каждого своя сеть и свои «правила»
  2. Нету у Cisco IP-адреса по умолчанию (это же не Dlink), все настраивается ручками и сначала через консоль.

Итак, попробуем разобраться в том, что желательно настроить на нулевом Cisco Catalyst ?

Например, часто встречающиеся:

  • Cisco Catalyst 2950
  • Cisco Catalyst 2960
  • Cisco Catalyst 3550
  • Cisco Catalyst 3560
  • Cisco Catalyst 3560G

Я использовал Cisco Catalyst 3560G

0. Подключаемся к cisco по консольному кабелю через com порт:

FreeBSD через com порт:

cu -l /dev/cuad0

FreeBSD через переходник USB->Com:

  • kldload uplcom.ko
  • kldstat | grep uplcom (убедиться что подгрузился)
  • подключить переходник к USB порту
  • cu -l /dev/cuaU0

в Windows можно использовать Hiper Terminal для подключения к com порту

1. Зададим пароль на enable режим

Switch> enable

Switch# configure terminal

Switch(config)# enable password my-secret-password

2. Установим пароль для входа по telnet

Switch(config)# line vty 0 15

Switch(config-line)#password my-telnet-password

3. Сразу разрешим вход по telnet

Switch(config-line)# login

Switch(config)# exit

4. Зашифруем пароли, чтобы по sh run они не показывались в открытом виде

Switch(config)# service password-encryption

5. Зададим имя девайсу, например будет c3560G

Switch(config)# hostname c3560G

6. повесим / присвоим IP-адрес нашему девайсу

c3560G(config)# interface vlan 1

c3560G(config-if)# ip address 192.168.1.2 255.255.255.0

c3560G(config-if)# exit

7. Если вы ошибетесь при наборе чего либо в консоле, то циска начнет пытаться это отрезолвить, чем заставляет вас ждать, выключим эту фичу

c3560G(config)# no ip domain-lookup

8. Зададим имя домена

c3560G(config)# ip domain-name my-domain.ru

9. Зададим IP-адрес DNS сервера

c3560G(config)# ip name-server 192.168.1.15

10. Зададим время

если у вас есть доступный NTP сервер

c3560G(config)# ntp server 192.168.1.1 version 2 source vlan 1

c3560G(config)# ntp clock-period 36029056

c3560G(config)# ntp max-associations 1

где 192.168.1.1 — это IP-адрес NTP сервера

а используя «добавку» source vlan вы можете четко задать номер vlan с IP которого будет отправляться NTP запрос

если нет NTP сервера, то можно задать время вручную, но для этого придется выйти из режима конфигурирования

c3560G(config)# exit

c3560G# clock set 20:00:50 23 Aug 2008

11. Зададим переход с зимнего на летнее время и наоборот

c3560G# configure terminal

c3560G(config)# clock timezone MSK 3

c3560G(config)# clock summer-time MSD recurring last Sun Mar 2:00 last Sun Oct 2:00

12. Сделаем так, чтобы по команде show logging отображалось нормальное время, а не кол-во дней и т.п.

c3560G(config)# service timestamps log datetime localtime

13. Зададим дефолтовые настройки сразу всем портам на девайсе (у меня catalyst 24 порта + 4 SFP)

c3560G(config)# interface range gi 0/1 — 28

c3560G(config-if-range)# description not_used

c3560G(config-if-range)# shutdown

c3560G(config-if-range)# no cdp enable

c3560G(config-if-range)# switchport nonegotiate

c3560G(config-if-range)# switchport mode access

c3560G(config-if-range)# exit

Рекомендую: все неиспользуемые порты держать выключенными, а ещё лучше создать влан (например 999) и все выключенные порты переместить в него:

c3560G(config)# vlan 999

c3560G(config-vlan)# name unused_ports

c3560G(config-vlan)# shutdown

c3560G(config-vlan)# exit

c3560G(config)# interface range gi 0/1 — 28

c3560G(config-if-range)# description not_used

c3560G(config-if-range)# shutdown

c3560G(config-if-range)# no cdp enable

c3560G(config-if-range)# switchport nonegotiate

c3560G(config-if-range)# switchport access vlan 999

c3560G(config-if-range)# switchport mode access

c3560G(config-if-range)# exit

14. Выключим web-интерфейс, командная строка рулит 😉

c3560G(config)# no ip http server

15. Зададим gateway по умолчанию (допустим это будет 192.168.1.1, т.к. мы присвоили девайсу IP 192.168.1.2/255.255.255.0)

c3560G(config)# ip default-gateway 192.168.1.1

16. Если этот свич будет моддерживать маршрутизацию (будет router`ом), то включим функцию маршрутизации (если это позволяет сам девайс и его прошивка)

3560G прекрасно справляется с функцией маршрутизации

c3560G(config)# ip routing

c3560G(config)# ip classless

c3560G(config)# ip subnet-zero

17. Если вы выолнили пункт 16-ть, то снова необходимо задать gateway по умолчанию, но уже другой командой

c3560G(config)# ip route 0.0.0.0 0.0.0.0 192.168.1.1

18. Настроим access-list для доступа к свичу только с определенных IP-адресов

c3560G(config)# ip access-list standard TELNET

c3560G(config-std-nacl)# permit 192.168.1.1

c3560G(config-std-nacl)# permit 192.168.1.15

c3560G(config-std-nacl)# exit

19. Применим этот access-list

c3560G(config)# line vty 0 15

c3560G(config-line)# access-class TELNET in

20. Зададим timeout неактивности telnet сессии, по истечении указанного времени, если вы в консольке ничего не вводили, то telnet соединение будет автоматически закрываться

c3560G(config-line)# exec-timeout 5 0

c3560G(config-line)# exit

21. Включим SNMP, но только read only (RO) и доступность только с хоста 192.168.1.1

c3560G(config)# snmp-server community RO-MY-COMPANY-NAME RO

c3560G(config)# snmp-server trap-source Vlan1

c3560G(config)# snmp-server source-interface informs Vlan1

c3560G(config)# snmp-server location SWITCH-LOCATION

c3560G(config)# snmp-server contact my-email@my-domain.ru

c3560G(config)# snmp-server host 192.168.1.1 RO-MY-COMPANY-NAME

c3560G(config)# exit

22. Ну и наконец сохраним свои труды

c3560G# copy running-config startup-config

или можно проще и короче 🙂

c3560G# wri

Море документации по catalyst`ам, и не только по ним, вы можете найти, ессно, на сайте производителя: www.cisco.com

23. Если хочется включить на девайсе ssh, чтобы подключаться к cisco по ssh (если это позволяет установленный IOS), то выполним следущее:

а) Обязательно указываем имя домена (необходимо для генерации ключа) см. пункт 8.

б) cisco(config)# crypto key generate rsa

в) cisco(config)# line vty 0 15

г) cisco(config)# transport preferred none

д) cisco(config)# transport input ssh

е) cisco(config)#transport output ssh

Подробнее по настройке ssh: Configuring Secure Shell on Routers and Switches Running Cisco IOS

24. Устранение критической уязвимости в коммутаторах Cisco, которой подвержен Smart Install (работает по TCP порт 4786).
cisco(config)#no vstack
Затем убедиться что сиё зло отключилось, команда:
cisco#show vstack config

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Автор: Николаев Дмитрий (virus (at) subnets.ru)
Configuring Secure Shell on Routers and Switches Running Cisco IOS
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 18, среднее: 4,83 из 5)
Загрузка...
Отправить на почту Отправить на почту

FreeBSD сервера используют не только как роутеры, но и нередки те случаи, когда их используют для поднятия web серверов и в основном используют MySQL в качестве Базы Данных.

Раз используется база данных значит перед вами встанет задача в её бекапа (database backup).

Как сделать бекап базы данных ? В этой статье я постораюсь «пролить свет» на этот вопрос.

Пример perl скрипта который сдампит (dump) (сохранит) указанные вами БД, при этом каждая таблица этих БД будет в отдельном файле.

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

/usr/ports/databases/p5-DBD-mysql40/
/usr/ports/databases/p5-DBD-mysql41/
/usr/ports/databases/p5-DBD-mysql50/
/usr/ports/databases/p5-DBD-mysql51/
/usr/ports/databases/p5-DBD-mysql60/

#!/usr/bin/perl

use DBD::mysql;

#Задаем вывод дебага, значения: 0 или 1
my $debug=0; 

#Перечисляем названия баз для бекапа
my @databases=("blog","mydb","mysql");
#Аутентификационные данные для коннекта к серверу sql
my $host="localhost";
my $user="root";
my $password="root-password";
my $port="3306";
#Путь до программы mysqldump
my $sqldump_path="/usr/local/bin/mysqldump";
#В какую папку кладем бекапы
my $backup_dir="usr/backup/sql-tables";

$mkdir=0;
my $dtime=`date +%Y-%m-%d/%H`;
chomp($dtime);
for ($i=0;$i<@databases;$i++){
    my $bdir=sprintf("%s/%s/%s",$backup_dir,$databases[$i],$dtime);
    opendir(D,$bdir) or $mkdir=1 ;
    closedir(D);
    if ($mkdir){
         #Если папки, куда будет положен бекап, ещё не существует - создать её
        `/bin/mkdir -p $bdir`;
    }
    $bdir[$i]=$bdir;
}

$scr_st_date=`/bin/date "+%d.%m.%Y %H:%M:%S"`;
chomp($scr_st_date);
if ($debug){print "Script starting at: $scr_st_date \n\n";}
my $cs;
#Задаем кодировку для указанной базы, если не указать по умолчанию будет кодировка cp1251
%charset=("blog"=>"utf8");

for ($i=0;$i<=$#databases;$i++){
    $db=$databases[$i];
    if (!exists($charset{$db})){
        $cs="cp1251";
        $qc=mys("set names cp1251",$dbh);
        $qc2=mys("SET character_set_client = cp1251;",$dbh);
    }else{
        $cs=$charset{$db};
    }
    print "DB: $db [$cs]\n";

    my $dsn = "DBI:mysql:database=$db;host=$host;port=$port";
    my $dbh = DBI->connect($dsn, $user, $password);

    #Узнаем, из каких таблиц состоит данная база
    $q=mys("SHOW TABLES",$dbh);
    while (@t=$q->fetchrow){
        if (!exists($no_backup{$t[0]})){
            if ($debug){
                print "DB $db => $t[0]\n";
                print "$t[0]\n$sqldump_path --host=$host --port=$port --user=$user -p$password --opt $database[$i] $t[0] > $bdir[$i]/$t[0].sql\n";
            }
            `$sqldump_path --host=$host --port=$port --user=$user -p$password --default-character-set=$cs --opt $db $t[0] > $bdir[$i]/$t[0].sql`;
            if ($debug){print "Done\n";}
        }
    }

}

#Функция для обращения к sql серверу
sub mys {
        my $q=shift;
        my $dbh=shift;
        my $a;
        $a = $dbh->prepare($q);
        $a->execute;
        return $a;
    }

$scr_ed_date=`/bin/date "+%d.%m.%Y %H:%M:%S"`;
chomp($scr_ed_date);
if ($debug){print "Script end at: $scr_ed_date \n\n";}

После отработки скрипта, в папке указанной в переменной $backup_dir, появится папка с названием базы, а в ней папка с текущий_год-текущий_месяц-текущий_день/текущий_час

Например: /usr/backup/sql-tables/blog/2008-08-23/16

Импортируем данные из бекапа в базу, на примере БД blog:

Создаем пустую базу blog, а затем выполняем скрипт:

#!/usr/bin/perl
#Задаем путь к нужному бекапу
my $srclogdir='/usr/backup/sql-tables/blog/2008-08-23/16';
#Задаем название базы
my $db="blog";
#Аутентификационные данные для коннекта к серверу sql
my $user="root";
my $pass="root-password";
#Задаем расширение искомых файлов
my $filemask='.sql$';

opendir DIR,$srclogdir or die "Can't open logdir\n";
my @f=grep /$filemask/, readdir DIR or print "Can't read logdir\n";
closedir DIR or print "Can't close logdir\n";
@f=sort @f;
for ($i=0;$i<=$#f;$i++){
    $f[$i]=~s/\.sql$//;
    #Импортируем найденные .sql файлы в нашу базу
    $tmp=sprintf "mysql -u %s --password=%s -e \"use %s; set names utf8; source %s/%s.sql;\"",$user,$pass,$db,$srclogdir,$f[$i];
    print "$tmp\n";
   `$tmp`;
}

Заметка:
1. Не забудьте после создания скриптов сделать их исполняемыми !

пример корманды: chmod a+x /path/to/backup-sql-script.pl

2. Скрипт можно поставить в cron, чтобы бекап делался автоматически 😉


Удачного вам бекапа !

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Автор: Николаев Дмитрий (virus (at) subnets.ru)
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 3, среднее: 5,00 из 5)
Загрузка...
Отправить на почту Отправить на почту