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

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

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

Русская версия новости

Двое специалистов по IT-безопасности, Антон Капела (Anton Kapela) из 5Nines Data и Алекс Пилосов (Alex Pilosov) из Pilosoft, продемонстрировали методику, позволяющую тайно перехватывать интернет-трафик и даже модифицировать его на пути к адресату, пишет Wired. Это позволяет сделать протокол интернет-маршрутизации BGP (Border Gateway Protocol, протокол граничного шлюза)

Эксперты уже назвали обнаруженную «дырку» одной из самых крупных в Интернете и сравнивают ее с недавно обнаруженной DNS-уязвимостью, теоретически позволявшей злоумышленнику перенаправлять пользователя вместо нужного на любой сайт.

BGP является одним из основных интернет-протоколов и обеспечивает обмен информацией о маршрутах между целыми автономными системами, а не отдельными маршрутизаторами. Капела и Пилосов показали на конференции DefCon, как можно перехватить трафик, направляющийся в сеть конференции, переправить его в контролируемую ими систему в Нью-Йорке, а затем доставить обратно. Их схема не использует ошибок протокола — лишь его нормальные возможности.

Как пишет Wired, ранее перехватывать интернет-трафик, используя уязвимость BGP, были способны только разведывательные агентства. Они знали о недостатках протокола с 1998 года, с тех пор как эксперт по безопасности Пейтер Затко (Peiter Zatko) рассказал о ней Конгрессу и предположил, что может за полчаса нарушить работу всего Интернета, используя обнаруженную уязвимость.


Английская версия новости

Two security researchers have demonstrated a new technique to stealthily intercept internet traffic on a scale previously presumed to be unavailable to anyone outside of intelligence agencies like the National Security Agency.

The tactic exploits the internet routing protocol BGP (Border Gateway Protocol) to let an attacker surreptitiously monitor unencrypted internet traffic anywhere in the world, and even modify it before it reaches its destination.

The demonstration is only the latest attack to highlight fundamental security weaknesses in some of the internet’s core protocols. Those protocols were largely developed in the 1970s with the assumption that every node on the then-nascent network would be trustworthy. The world was reminded of the quaintness of that assumption in July, when researcher Dan Kaminsky disclosed a serious vulnerability in the DNS system. Experts say the new demonstration targets a potentially larger weakness.

«It’s a huge issue. It’s at least as big an issue as the DNS issue, if not bigger,» said Peiter «Mudge» Zatko, noted computer security expert and former member of the L0pht hacking group, who testified to Congress in 1998 that he could bring down the internet in 30 minutes using a similar BGP attack, and disclosed privately to government agents how BGP could also be exploited to eavesdrop. «I went around screaming my head about this about ten or twelve years ago…. We described this to intelligence agencies and to the National Security Council, in detail.»

The man-in-the-middle attack exploits BGP to fool routers into re-directing data to an eavesdropper’s network.

Anyone with a BGP router (ISPs, large corporations or anyone with space at a carrier hotel) could intercept data headed to a target IP address or group of addresses. The attack intercepts only traffic headed to target addresses, not from them, and it can’t always vacuum in traffic within a network — say, from one AT&T customer to another.

The method conceivably could be used for corporate espionage, nation-state spying or even by intelligence agencies looking to mine internet data without needing the cooperation of ISPs.

BGP eavesdropping has long been a theoretical weakness, but no one is known to have publicly demonstrated it until Anton «Tony» Kapela, data center and network director at 5Nines Data, and Alex Pilosov, CEO of Pilosoft, showed their technique at the recent DefCon hacker conference. The pair successfully intercepted traffic bound for the conference network and redirected it to a system they controlled in New York before routing it back to DefCon in Las Vegas.

The technique, devised by Pilosov, doesn’t exploit a bug or flaw in BGP. It simply exploits the natural way BGP works.

«We’re not doing anything out of the ordinary,» Kapela told Wired.com. «There’s no vulnerabilities, no protocol errors, there are no software problems. The problem arises (from) the level of interconnectivity that’s needed to maintain this mess, to keep it all working.»

The issue exists because BGP’s architecture is based on trust. To make it easy, say, for e-mail from Sprint customers in California to reach Telefonica customers in Spain, networks for these companies and others communicate through BGP routers to indicate when they’re the quickest, most efficient route for the data to reach its destination. But BGP assumes that when a router says it’s the best path, it’s telling the truth. That gullibility makes it easy for eavesdroppers to fool routers into sending them traffic.

Here’s how it works. When a user types a website name into his browser or clicks «send» to launch an e-mail, a Domain Name System server produces an IP address for the destination. A router belonging to the user’s ISP then consults a BGP table for the best route. That table is built from announcements, or «advertisements,» issued by ISPs and other networks — also known as Autonomous Systems, or ASes — declaring the range of IP addresses, or IP prefixes, to which they’ll deliver traffic.

The routing table searches for the destination IP address among those prefixes. If two ASes deliver to the address, the one with the more specific prefix «wins» the traffic. For example, one AS may advertise that it delivers to a group of 90,000 IP addresses, while another delivers to a subset of 24,000 of those addresses. If the destination IP address falls within both announcements, BGP will send data to the narrower, more specific one.

To intercept data, an eavesdropper would advertise a range of IP addresses he wished to target that was narrower than the chunk advertised by other networks. The advertisement would take just minutes to propagate worldwide, before data headed to those addresses would begin arriving to his network.

The attack is called an IP hijack and, on its face, isn’t new.

But in the past, known IP hijacks have created outages, which, because they were so obvious, were quickly noticed and fixed. That’s what occurred earlier this year when Pakistan Telecom inadvertently hijacked YouTube traffic from around the world. The traffic hit a dead-end in Pakistan, so it was apparent to everyone trying to visit YouTube that something was amiss.

Pilosov’s innovation is to forward the intercepted data silently to the actual destination, so that no outage occurs.

Ordinarily, this shouldn’t work — the data would boomerang back to the eavesdropper. But Pilosov and Kapela use a method called AS path prepending that causes a select number of BGP routers to reject their deceptive advertisement. They then use these ASes to forward the stolen data to its rightful recipients.

«Everyone … has assumed until now that you have to break something for a hijack to be useful,» Kapela said. «But what we showed here is that you don’t have to break anything. And if nothing breaks, who notices?»

Stephen Kent, chief scientist for information security at BBN Technologies, who has been working on solutions to fix the issue, said he demonstrated a similar BGP interception privately for the Departments of Defense and Homeland Security a few years ago.

Kapela said network engineers might notice an interception if they knew how to read BGP routing tables, but it would take expertise to interpret the data.

A handful of academic groups collect BGP routing information from cooperating ASes to monitor BGP updates that change traffic’s path. But without context, it can be difficult to distinguish a legitimate change from a malicious hijacking. There are reasons traffic that ordinarily travels one path could suddenly switch to another — say, if companies with separate ASes merged, or if a natural disaster put one network out of commission and another AS adopted its traffic. On good days, routing paths can remain fairly static. But «when the internet has a bad hair day,» Kent said, «the rate of (BGP path) updates goes up by a factor of 200 to 400.»

Kapela said eavesdropping could be thwarted if ISPs aggressively filtered to allow only authorized peers to draw traffic from their routers, and only for specific IP prefixes. But filtering is labor intensive, and if just one ISP declines to participate, it «breaks it for the rest of us,» he said.

«Providers can prevent our attack absolutely 100 percent,» Kapela said. «They simply don’t because it takes work, and to do sufficient filtering to prevent these kinds of attacks on a global scale is cost prohibitive.»

Filtering also requires ISPs to disclose the address space for all their customers, which is not information they want to hand competitors.

Filtering isn’t the only solution, though. Kent and others are devising processes to authenticate ownership of IP blocks, and validate the advertisements that ASes send to routers so they don’t just send traffic to whoever requests it.

Under the scheme, the five regional internet address registries would issue signed certificates to ISPs attesting to their address space and AS numbers. The ASes would then sign an authorization to initiate routes for their address space, which would be stored with the certificates in a repository accessible to all ISPs. If an AS advertised a new route for an IP prefix, it would be easy to verify if it had the right to do so.

The solution would authenticate only the first hop in a route to prevent unintentional hijacks, like Pakistan Telecom’s, but wouldn’t stop an eavesdropper from hijacking the second or third hop.

For this, Kent and BBN colleagues developed Secure BGP (SBGP), which would require BGP routers to digitally sign with a private key any prefix advertisement they propagated. An ISP would give peer routers certificates authorizing them to route its traffic; each peer on a route would sign a route advertisement and forward it to the next authorized hop.

«That means that nobody could put themselves into the chain, into the path, unless they had been authorized to do so by the preceding AS router in the path,» Kent said.

The drawback to this solution is that current routers lack the memory and processing power to generate and validate signatures. And router vendors have resisted upgrading them because their clients, ISPs, haven’t demanded it, due to the cost and man hours involved in swapping out routers.

Douglas Maughan, cybersecurity research program manager for the DHS’s Science and Technology Directorate, has helped fund research at BBN and elsewhere to resolve the BGP issue. But he’s had little luck convincing ISPs and router vendors to take steps to secure BGP.

«We haven’t seen the attacks, and so a lot of times people don’t start working on things and trying to fix them until they get attacked,» Maughan said. «(But) the YouTube (case) is the perfect example of an attack where somebody could have done much worse than what they did.»

ISPs, he said, have been holding their breath, «hoping that people don’t discover (this) and exploit it.»

«The only thing that can force them (to fix BGP) is if their customers … start to demand security solutions,» Maughan said.

Ссылки:

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

Информация для новичков.

ping — это служебная компьютерная программа, предназначенная для проверки соединений в сетях на основе TCP/IP.

Она отправляет запросы Echo-Request протокола Internet Control Message Protocol (ICMP) указанному узлу сети и фиксирует поступающие ответы (ICMP Echo-Reply). Время между отправкой запроса и получением ответа (RTT, от англ. Round Trip Time) позволяет определять двусторонние задержки (RTT) по маршруту и частоту потери пакетов, то есть косвенно определять загруженности каналов передачи данных и промежуточных устройств.

Также пингом называется время, затраченное на передачу пакета информации в компьютерных сетях от клиента к серверу и обратно от сервера к клиенту, оно измеряется в миллисекундах. Время пинга связано со скоростью соединения и загруженностью каналов на всём протяжении от клиента к серверу.

Полное отсутствие ICMP-ответов может также означать, что удалённый узел (или какой-либо из промежуточных маршрутизаторов) блокирует ICMP Echo-Reply или игнорирует ICMP Echo-Request.

Программа ping является одним из основных диагностических средств в сетях TCP/IP и входит в поставку всех современных сетевых операционных систем. Функциональность ping также реализована в некоторых встроенных ОС маршрутизаторов.

Типы ICMP:

  • 0 echo-reply
  • 3 destination unreachable
    • code 0 = net unreachable
    • 1 = host unreachable
    • 2 = protocol unreachable
    • 3 = port unreachable
    • 4 = fragmentation needed and DF set
    • 5 = source route failed
  • 4 source-quench
  • 5 redirect
    • code 0 = redirect datagrams for the network
    • 1 = redirect datagrams for the host
    • 2 = redirect datagrams for the type of service and network
    • 3 = redirect datagrams for the type of service and host
  • 6 alternate-address
  • 8 echo request
  • 9 router-advertisement
  • 10 router-solicitation
  • 11 time-exceeded

    • code 0 = time to live exceeded in transit 1 = fragment reassembly time exceeded
  • 12 parameter-problem
  • 13 timestamp-request
  • 14 timestamp-reply
  • 15 information-request
  • 16 information-reply
  • 17 mask-request
  • 18 mask-reply
  • 31 conversion-error
  • 32 mobile-redirect

Многие знают и умеют пользоваться командой ping и traceroute, но не все знают, что же означают символы выводимые на консоль в устройствах Cisco Systems:

Router1#debug ip packet detail 
IP packet debugging is on (detailed)

Router1#ping 12.0.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 12.0.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/6/8 ms 

Router1#
Jan 20 15:54:47.487: IP: s=12.0.0.1 (local), d=12.0.0.2 (Serial0), len 100,
  sending
Jan 20 15:54:47.491: ICMP type=8, code=0

!--- Это ICMP пакет от 12.0.0.1 для 12.0.0.2.
!--- ICMP type=8 это echo request (запрос). 

Jan 20 15:54:47.523: IP: s=12.0.0.2 (Serial0), d=12.0.0.1 (Serial0), len 100,
  rcvd 3
Jan 20 15:54:47.527: ICMP type=0, code=0

!--- А это ответ от 12.0.0.2.
!--- ICMP type=0 это echo reply (ответ).  

Рассмотрим символы выводимые в консоль cisco при команде ping:

! — Каждый символ восклицательно знака показывает ответ (echo reply).
. — Каждый символ точки показывает потерю пакета, таймаут ожидания (echo reply).
U — Указанный хост недостижим (был получен destination unreachable error PDU).
Q
сдерживание источника (есть угроза перегрузки (destination too busy)).
M — Невозможность фрагментировать.
? — Неизвестный тип пакета.
& — Время жизни пакета истекло.

traceroute — это служебная компьютерная программа, предназначенная для определения маршрутов следования данных в сетях TCP/IP. Traceroute так же как и ping основана на протоколе ICMP.

Программа traceroute выполняет отправку данных указанному узлу сети, при этом отображая сведения о всех промежуточных маршрутизаторах, через которые прошли данные на пути к целевому узлу. В случае проблем при доставке данных до какого-либо узла программа позволяет определить, на каком именно участке сети возникли неполадки.

traceroute входит в поставку большинства современных сетевых операционных систем:

  • в системах Microsoft Windows эта программа носит название tracert
  • в системах Unix — traceroute

Для определения промежуточных маршрутизаторов traceroute отправляет серию пакетов данных целевому узлу, при этом каждый раз увеличивая на 1 значение поля TTL («время жизни»). Это поле обычно указывает максимальное количество маршрутизаторов, которое может быть пройдено пакетом. Первый пакет отправляется с TTL, равным 1, и поэтому первый же маршрутизатор возвращает обратно сообщение ICMP, указывающее на невозможность доставки данных. Traceroute фиксирует адрес маршрутизатора, а также время между отправкой пакета и получением ответа (эти сведения выводятся на монитор компьютера). Затем traceroute повторяет отправку пакета, но уже с TTL, равным 2, что позволяет первому маршрутизатору пропустить пакет дальше.

Процесс повторяется до тех пор, пока при определённом значении TTL пакет не достигнет целевого узла. При получении ответа от этого узла процесс трассировки считается завершённым.

Пример команды на оборудовании Cisco Systems:

Router1#traceroute 34.0.0.4 

Type escape sequence to abort.
Tracing the route to 34.0.0.4 

  1 12.0.0.2 4 msec 4 msec 4 msec
  2 23.0.0.3 20 msec 16 msec 16 msec
  3 34.0.0.4 16 msec *  16 msec

В консоль так же могут выводиться спец. символы, вот они:

*Таймаут ожидания ответа (timed out)
AАдминистративно запрещено (трафик запрещен администратором сети, например в access-list)
Q
сдерживание источника (есть угроза перегрузки (destination too busy)).
IПользователь прервал выполнение теста
UПорт недостижим (закрыт)
HХост недоступен (unreachable), например отсутствует маршрут до сети хоста
NСеть недоступна (unreachable)
PПротокол недоступен (unreachable)
TТаймаут (timeout)
?Неизвестный тип пакета

Ссылки:

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

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

«Что нужно настроить на 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)
Загрузка...
Отправить на почту Отправить на почту

Поддержку bridge во FreeBSD 7.3 можно включить двумя способами:

Интеграцией в ядро:

options BRIDGE

Загрузка модулем:

# bridge loadable module

kldload /boot/kernel/bridge.ko

Для загрузки при старте системы добавляем в /boot/loader.conf
bridge_load=»YES» # Ethernet bridging netgraph node type

Конфигурация бриджа:

Для работы при рестарте системы добавляем нужные парамы в
/etc/sysctl.conf

net.link.ether.bridge.enable
Установить в 1 для активации бриджа, в 0 — для отключения.

net.link.ether.bridge.ipfw
Установить в 1 для активации ipfw фильтрации бриджированных пакетов.

net.link.ether.bridge.ipf
Установить в 1 для активации ipf фильтрации бриджированных пакетов.

net.link.ether.bridge.config
Конфиг интерфейсов в бридже. Интерфейсы разделяются запятыми, пробелами или
знаком табуляции. Каждый интерфейс может опционально идти с номером кластера,
которому он принадлежит, указанным через двоеточие
(если номер кластера (cluster-ID) опущен, то интерфейс по умолчанию принадлежит
кластеру с ID=1);

в качестве примера конфига:
net.link.ether.bridge.config=fxp0:1,em1,vlan101:26,em2:26
помещает fxp0 и em1 в кластер номер 1, а vlan101 и em2 — в кластер номер 26.

Список интерфейсов перечитывается каждый раз, когда он модифицируется, либо когда
включается бриджирование или создаются/уничтожаются новые интерфейсы.
Чтобы заставить список обновляться явным образом (без ожидания изменений, описанных выше)
следует задать время обновления в следующей опции
net.link.ether.bridge.refresh (На практике эта опция не пригодилась)

Интерфейсы, которые находятся в списке конфига, но не могут участвовать в процессе бриджирования,
(не существуют, или не являются интерфейсами типа Ethernet или VLAN), не будут задействованы
в процессе бриджирования с выводом соответствующей ошибки.

Конфигурация с использованием VLAN’ов и транка:

В качестве примера, следующая конфигурация использует интерфейс fxp0 как
транк, который пропускает пакеты для 802.1q виланов 222 и 333 на физические
интерфейсы em1 и em2 соответствующим образом.
net.link.ether.bridge.config=vlan222:48,em1:48,vlan333:85,em2:85

ifconfig vlan222 vlan 222 vlandev fxp0 up
ifconfig vlan333 vlan 333 vlandev fxp0 up

Отметьте, что нет никакой связи между 802.1q VLAN идентификаторами (в нашем случае 222 и 333)
и номерами кластеров (cluster-ID — в нашем случае 48 и 85) используемых в конфиге бриджа.
Также, интерфейс trunk не появляется в конфиге бриджа, присоединением/удалением тагов
занимается девайс vlan (по kldstat’у видно, что при создании vlan на интерфейсе, должен
подгрузиться модуль if_vlan.ko).


Примечание:
Для управления машиной с бриджом, целесообразней использовать отдельный интерфейс, не входящий
в бридж, а не вешать ip-адреса на интерфейсы которые участвуют в бридже.


Ссылки:

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

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