<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8993656344642100679</id><updated>2011-12-23T17:59:45.870+04:00</updated><category term='linux'/><category term='racoon'/><category term='centos'/><category term='openswan'/><category term='ipsec'/><title type='text'>Всего по чуть чуть</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mcleod095.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mcleod095.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>McLeod095</name><uri>http://www.blogger.com/profile/16003581493714440202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8993656344642100679.post-8055832694799939560</id><published>2011-12-23T17:59:00.002+04:00</published><updated>2011-12-23T17:59:45.879+04:00</updated><title type='text'>AD+userAccountControl</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;В своих записях про exim я довольно часто использую запросы к AD, и использую фильтр такого содержания&amp;nbsp;!(userAccountControl:1.2.840.113556.1.4.803:=2)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;В принципе я никогда не интересовался почему именно так, ведь можно проверить и так (userAccountControl=514), что должно работать, но как показывает практика, работает не всегда.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Занимаясь настройкой связки exim + AD я наталкивался на разные документации и в итоге пришел к выводу что используемый мной фильтр не отвечает всем требованиям которые я предъявляю к данной связке.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Для начала приведу здесь выдержки из статьи на сайте &lt;a href="http://support.microsoft.com/kb/269181"&gt;Microsoft&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;Формат LDAP подходящее правило имеет следующий синтаксис:&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;Имя_атрибута:ruleOID:=Значение&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;В данной команде Имя_атрибута является LDAPDisplayName атрибута ruleOID Это идентификатор объекта (OID) для соответствующего правила управления, и Значение десятичное значение, будет использоваться для сравнения. Необходимо преобразовать шестнадцатеричное десятичное.&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;Значение ruleOID может принимать одно из следующих:&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;1.2.840.113556.1.4.803 - Это правило LDAP_MATCHING_RULE_BIT_AND. Подходящее правило имеет значение true, только если все биты из свойства соответствует значению. Это правило имеет как оператор побитового И.&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;1.2.840.113556.1.4.804 - Это правило LDAP_MATCHING_RULE_BIT_OR. Подходящее правило имеет значение true, если все биты из свойства соответствует значению. Это правило аналогично побитовый оператор OR.&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;После прочтения этого, все более или менее становится понятно. Но остается вопрос что это за бит 2? И тут натыкаемся вот на такую &lt;a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms680832(v=vs.85).aspx"&gt;статью&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Теперь вообще все супер.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Свой фильтр думаю переписать, что бы отслеживать состояние LOCKOUT!!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Всех с Наступающим Новым Годом!!!&lt;/div&gt;&lt;br /&gt;&lt;div id="-chrome-auto-translate-plugin-dialog" style="background-attachment: initial !important; background-clip: initial !important; background-color: transparent !important; background-image: initial !important; background-origin: initial !important; background-position: initial initial !important; background-repeat: initial initial !important; display: none; left: 0px; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; opacity: 1 !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: absolute !important; text-align: left !important; top: 0px; z-index: 999999 !important;"&gt;&lt;div style="-webkit-border-radius: 10px !important; background-color: #363636 !important; background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #000), color-stop(50%, #363636), color-stop(100%, #000)); border-color: #000000 !important; border-width: 0px !important; color: #fafafa !important; font-size: 16px !important; max-width: 300px !important; opacity: 0.8 !important; overflow: visible !important; padding: 8px !important; text-align: left !important; z-index: 999999 !important;"&gt;&lt;div class="translate"&gt;&lt;/div&gt;&lt;div class="additional"&gt;&lt;/div&gt;&lt;/div&gt;&lt;img onclick="document.location.href='http://translate.google.com/';" src="http://www.google.com/uds/css/small-logo.png" style="-webkit-border-radius: 20px; background-color: rgba(200, 200, 200, 0.3) !important; cursor: pointer !important; margin: 0 !important; padding: 3px 5px 0 !important; position: absolute !important; right: 1px !important; top: -20px !important; z-index: -1 !important;" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8993656344642100679-8055832694799939560?l=mcleod095.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcleod095.blogspot.com/feeds/8055832694799939560/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://mcleod095.blogspot.com/2011/12/aduseraccountcontrol.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/8055832694799939560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/8055832694799939560'/><link rel='alternate' type='text/html' href='http://mcleod095.blogspot.com/2011/12/aduseraccountcontrol.html' title='AD+userAccountControl'/><author><name>McLeod095</name><uri>http://www.blogger.com/profile/16003581493714440202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8993656344642100679.post-7325819570327857253</id><published>2011-12-13T18:12:00.002+04:00</published><updated>2011-12-13T18:15:31.421+04:00</updated><title type='text'>Exim AD Groups and Users</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;В предыдущей заметке я описал как сделать пересылку почты.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;В этой же я приведу примеры запросов для проверки существования почтовго адреса в AD для пользователя и для почтовых рассылок, которые бадут базироваться на группах распространения.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Опять же все примеры указаны с приведенными ранее настройками.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Итак первое, и думаю самое важное это проверка на существование почты у пользователя. Почтовый адрес указывается в описании пользователя в поле e-mail. Дополнительные адреса добавляются через ADSIEdit в атрибут otherMailbox. Проверка выполняется вот в таком роутере&lt;/div&gt;&lt;br /&gt;ad_user:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; driver&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; redirect&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; allow_fail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; allow_defer&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; forbid_pipe&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; forbid_file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; domains&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; +local_domains&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; ${lookup ldap{LDAP_QUERY_USER}{${local_part}@${domain}}{fail}}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; redirect_router&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; dovecot&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Содержание запроса вот такое&lt;br /&gt;&lt;br /&gt;LDAP_QUERY_USER&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; LDAP_CONN?mail?sub?(&amp;amp;(objectClass=user)(|(mail=${quote_ldap:${local_part}@${domain}})(otherMailbox=${quote_ldap:${local_part}@${domain}}))(!(userAccountControl:1.2.840.113556.1.4.803:=2))(!(msExchUserAccountControl=0)))&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Опять же, у меня здесь идет проверка на существование почты на сервере Exchange, поэтому и стоит проверка. Если у пользователя установлен или основной почтовый адрес или дополнительный равный адресу получателя, то роутеру dovecot будут передан адрес получателя, в противном случае будет пустое значение, которое приведет к тому что роутер не сработает. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Заодно приведу роутер dovecot, с его параметрами, что бы было более понятно&lt;/div&gt;&lt;br /&gt;dovecot:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; driver&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; accept&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; domains&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; +local_domains&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; condition&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; ${lookup ldap{LDAP_QUERY_USER}{yes}{no}}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; transport&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; dovecot&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cannot_route_message&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; Unknow user ($local_part@$domain)&lt;br /&gt;&lt;br /&gt;Ну и сам транспорт dovecot&lt;br /&gt;&lt;br /&gt;dovecot:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; driver&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; pipe&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delivery_date_add&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; envelope_to_add&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; command&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; /usr/libexec/dovecot/deliver -d "${lookup ldap{LDAP_QUERY_DOVECOT_TRANSPORT}{$value}}"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; user&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; dovenull&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; group&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; mail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; message_prefix&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; ""&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; message_suffix&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; ""&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; log_output&lt;br /&gt;&lt;br /&gt;LDAP_QUERY_DOVECOT_TRANSPORT&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; LDAP_CONN?sAMAccountName?sub?(&amp;amp;(objectClass=user)(|(mail=${quote_ldap:${local_part}@${domain}})(otherMailbox=${quote_ldap:${local_part}@${domain}}))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Сам dovecot хранит почту для каждого пользователя в отдельном каталоге имеющем такое же имя как учетная запись пользователя.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Ну и после того как разобрались с пользователями можно приступить и к группам рассылки.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Группы рассылки создаются в AD как группы распространения, я создаю глобальные группы распространения, они имеют атрибут grouptype равным 2. Exchange при создании групп рассылки создает группы с типом, если не ошибаюсь равным 7. Аналогично в описании группы надо заполнить поле e-mail, и после чего добавить в группу пользователей. После чего можно смело отправлять письма. Роутер у меня вот такой, на самом деле это придумал не я, а нашел на просторах интернета&lt;/div&gt;&lt;br /&gt;ad_group:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; driver&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; redirect&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; domains&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; +local_domains&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; allow_fail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; allow_defer&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; ${sg\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {${map {&amp;lt;\n \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ${sg\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {${lookup ldap{LDAP_QUERY_GROUP}}}\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {\N, \N}\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {\n}\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ${lookup ldap{user=LDAP_USER pass=LDAP_PASS ldap:///${quote_ldapdn:$item}?mail?base?}}\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {\N\n\N}\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {, }\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;ну и сам запрос&lt;br /&gt;LDAP_QUERY_GROUP&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp; LDAP_CONN?member?sub?(&amp;amp;(objectClass=group)(grouptype=2)(|(mail=${quote_ldap:${local_part}@${domain}})(proxyAddresses=smtp:${quote_ldap:${local_part}@${domain}})))&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Дополнительные адреса для потчовой рассылки можно указать через ADSIEdit в атрибует proxyAddresses, т.к. у групп нет атрибута otherMailbox. Допольнительные адреса должны указываться в виде smtp:name@domain.ltd, для того что бы не поломать другие программы которые могут использовать этот атрибут с своих целях (Использует exchange, Microsoft communicator).&lt;/div&gt;&lt;br /&gt;Ну вроде все.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8993656344642100679-7325819570327857253?l=mcleod095.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcleod095.blogspot.com/feeds/7325819570327857253/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://mcleod095.blogspot.com/2011/12/exim-ad-groups-and-users.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/7325819570327857253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/7325819570327857253'/><link rel='alternate' type='text/html' href='http://mcleod095.blogspot.com/2011/12/exim-ad-groups-and-users.html' title='Exim AD Groups and Users'/><author><name>McLeod095</name><uri>http://www.blogger.com/profile/16003581493714440202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8993656344642100679.post-6627342451339943980</id><published>2011-11-28T18:38:00.001+04:00</published><updated>2011-11-30T21:57:39.957+04:00</updated><title type='text'>exim ad mail forward</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;В дальнейшем думаю что напишу больше про эту тему, а именно настройка exim+dovecot+AD с управлением потоками почты на основе записей в AD. Сейчас же для того что бы не забыть, оставляю себе памятку ну и не скрываю в тайнах.&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;Итак, есть сервер exim. Раньше он работал как relay на сервер Exchange, но потом было принято решение что Exchange дорого, да и не пользуются пользователи им на все его возможности. Оно и понятно, ведь половина пользователей сидят на Linux. было принято решение перейти на свободное ПО. Выбор пал на все тот же exim и dovecot. Ну и теперь есть задача организовать пересылку почты на другой почтовый ящик. Делается это все на exim очень просто, но я ленив, да и задумывая данную связку я хотел как можно меньше править конфиг exim, а больше администрировать его через AD.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;Ну и с чего начать, конечно надо понять что хотим. В качестве желания я взял тот метод которым делается данное действие в MS Exchange 2007. А именно, там в настройках в параметрах потока почты, можно выбрать контакт или пользователя которому пересылать почту, ну и можно отметить галочку пересылки и сохранения в почтовом ящике. Меня это вполне устраивает. Немного покопавшись нашел в AD атрибуты отвечающие за данное действие. Итак, атрибут altrecipient. В нем указывается distinguished name контакта или пользователя, на адрес которого необходимо пересылать почту. Атрибут deliveryAndRedirect устанавливается в "true" если необходимо сохранять почту в почтовом ящике пользователя, если установлен в "false" или "not set", то, естественно, почту не сохраняем, а только пересылаем.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;Вроде все что надо нашли. Теперь самое главное, надо написать условия для пересылки почты для exim. Если взять стандартный маршрут пересылки становится все понятно как работает логика. Также, необходимо не забывать что если в маршруте типа redirect, переменная data будет иметь пустую строку, то маршрут не сработает.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;Теперь сформулируем правило работы что бы уже потом его перенести на язык программирования.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;Если стоит флаг сохранять почту (deliverAndRedirect), то пересылать почту на почтовый адрес &amp;nbsp;(altrecipient)и оставлять в почтовом ящике копию, в противном случае только пересылать почту на почтовый адрес (altrecipient). Если флаг не установлен deliveryAndRedirect и не установлен атрибут altrecipient, то выше приведенное условие вернет пустую строку. Здесь, также, надо не забыть проверить работу условия при установленном флаге сохранения почты и отсутствующем значении в атрибуте altrecipient. Если честно, то данную ветку я пока не проверял, но мне кажется, что здесь ничего страшного не произойдет.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Итак, вроде все есть, теперь осталось только написать все понятно для exim. И я приведу код маршрута после того как опишу пару переменных, которые облегчают понимание кода.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;# Имя пользователя для авторизации в LDAP, в данном случае в AD&lt;/div&gt;&lt;div style="text-align: justify;"&gt;LDAP_USER=ldap_user@domain.ltd&lt;/div&gt;&lt;div style="text-align: justify;"&gt;# Пароль пользователя в LDAP&lt;/div&gt;&lt;div style="text-align: justify;"&gt;LDAP_PASS=ldap_password&lt;/div&gt;&lt;div style="text-align: justify;"&gt;# Имя домена в нотации LDAP, это корень откуда будет начинаться поиск&lt;/div&gt;&lt;div style="text-align: justify;"&gt;LDAP_BASE=dc=domain,dc=ltd&lt;/div&gt;&lt;div style="text-align: justify;"&gt;# Ну и что бы меньше писать в самом маршруте определим еще одну переменную&lt;/div&gt;&lt;div style="text-align: justify;"&gt;LDAP_CONN=user=LDAP_USER pass=LDAP_PASS ldap:///LDAP_BASE&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;ну и теперь сам маршрут&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;forward:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; driver &amp;nbsp;= &amp;nbsp; &amp;nbsp; &amp;nbsp; redirect&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; allow_fail&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; allow_defer&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; domains = &amp;nbsp; &amp;nbsp; &amp;nbsp; +local_domains&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; data &amp;nbsp; &amp;nbsp;= ${if eqi{\&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ${lookup ldap{LDAP_CONN?deliverAndRedirect?sub?(&amp;amp;(objectClass=user)(|(mail=${quote_ldap:${local_part}@${domain}})(otherMailbox=${quote_ldap:${local_part}@${domain}}))(!(userAccountControl:1.2.840.113556.1.4.803:=2))(!(msExchUserAccountControl=0))(altrecipient=*))}}}\&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {true}\&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {${map\&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {${lookup ldap{LDAP_CONN?altrecipient?sub?(&amp;amp;(objectClass=user)(|(mail=${quote_ldap:${local_part}@${domain}})(otherMailbox=${quote_ldap:${local_part}@${domain}}))(!(userAccountControl:1.2.840.113556.1.4.803:=2))(!(msExchUserAccountControl=0))(altrecipient=*))}}}\&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {${lookup ldap{user=LDAP_USER pass=LDAP_PASS ldap:///${quote_ldapdn:$item}?mail?base?}}}},$local_part@$domain}\&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {${map\&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {${lookup ldap{LDAP_CONN?altrecipient?sub?(&amp;amp;(objectClass=user)(|(mail=${quote_ldap:${local_part}@${domain}})(otherMailbox=${quote_ldap:${local_part}@${domain}}))(!(userAccountControl:1.2.840.113556.1.4.803:=2))(!(msExchUserAccountControl=0))(altrecipient=*))}}}\&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {${lookup ldap{user=LDAP_USER pass=LDAP_PASS ldap:///${quote_ldapdn:$item}?mail?base?}}}}\&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }\&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="-chrome-auto-translate-plugin-dialog" style="background-attachment: initial !important; background-clip: initial !important; background-color: transparent !important; background-image: initial !important; background-origin: initial !important; background-position: initial initial !important; background-repeat: initial initial !important; display: none; left: 0px; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; opacity: 1 !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: absolute !important; text-align: left !important; top: 0px; z-index: 999999 !important;"&gt;&lt;div style="-webkit-border-radius: 10px !important; background-color: #363636 !important; background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #000), color-stop(50%, #363636), color-stop(100%, #000)); border-color: #000000 !important; border-width: 0px !important; color: #fafafa !important; font-size: 16px !important; max-width: 300px !important; opacity: 0.8 !important; overflow: visible !important; padding: 8px !important; text-align: left !important; z-index: 999999 !important;"&gt;&lt;div class="translate"&gt;&lt;/div&gt;&lt;div class="additional"&gt;&lt;/div&gt;&lt;/div&gt;&lt;img onclick="document.location.href='http://translate.google.com/';" src="http://www.google.com/uds/css/small-logo.png" style="-webkit-border-radius: 20px; background-color: rgba(200, 200, 200, 0.3) !important; cursor: pointer !important; margin: 0 !important; padding: 3px 5px 0 !important; position: absolute !important; right: 1px !important; top: -20px !important; z-index: -1 !important;" /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;В данном примере у меня есть проверка атрибута msExchUserAccountControl, это условие мне необходимо для того что бы отличать пользователей которые пока еще работают с MS Exhcnage, и тех которые уже работают с dovecot.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Есть конечно во всем этом один минус, если в качестве altrecipient указан distinguished name другого пользователя, а у того, в свою очередь, в этом атрибуте указан distinguished name пользователя которому изначально посылалось письмо, то может возникнуть петля. Работу в этом режиме я пока не проверял. В MS Exchange это решается установкой атрибута altrecipientBL почтового контакта или пользователя в distinguished name пользователя от которого идет пересылка.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Надеюсь заметка оказалась кому-нибудь полезной, ну и конечно понятной. Я сам прихожу в ужас от данного условия.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8993656344642100679-6627342451339943980?l=mcleod095.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcleod095.blogspot.com/feeds/6627342451339943980/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://mcleod095.blogspot.com/2011/11/exim-ad-mail-forward.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/6627342451339943980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/6627342451339943980'/><link rel='alternate' type='text/html' href='http://mcleod095.blogspot.com/2011/11/exim-ad-mail-forward.html' title='exim ad mail forward'/><author><name>McLeod095</name><uri>http://www.blogger.com/profile/16003581493714440202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8993656344642100679.post-6957454182577179500</id><published>2011-11-15T22:19:00.000+04:00</published><updated>2011-11-16T00:13:33.572+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='racoon'/><category scheme='http://www.blogger.com/atom/ns#' term='openswan'/><title type='text'>racoon openswan</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Давно ничего не писал. Думаю, правда, никто и не заметил.&lt;br /&gt;Вообщем тут подумал и решил для себя все таки пару заметок сделать, вдруг потом забуду.&lt;br /&gt;Предисловие.&lt;br /&gt;После выхода CentOS6 я почти сразу нашел стенд для того что бы установить данную ОС и посмотреть что де нового в ней было сделано. И обнаружил много довольно интересного. И одно новшество заставило меня немного покопаться в документации и почитать про это чудо. Ранее настраивая ipsec для связи своих территорий я использовал входящий в состав CentOS 5 пакет&lt;br /&gt;&amp;nbsp;ipsec-tools. Для организации ipsec использовался racoon, который стараниями команды разработчиков довольно быстро настраивался через системные конфигурационные файлы. Почитать можно в /usr/share/doc/initscripts-$version/sysconfig.txt. Ну а примеры я вроде у себя в блоге приводил. В CentOS 6 разработчики перешли к использованию пакета openswan, и мне кажется что не зря. Поэтому пришлось его немного повертеть и понять что почем. Мне кажется что для решения большинства задач хватит и racoon, но вот если надо более гибкое решение, то openswan отлично для этого подходит. В реализации скриптов для CentOS 5 мне так и не удалось заставить их организовывать шифрование только gre трафика между двумя хостами, только все или ничего. Openswan же позволяет более гибче управлять тем какой трафик шифровать, а какой нет.&lt;br /&gt;Ну вообщем было принято решение переходить на openswan, тем более что новая площадка уже использовала CentOS 6. В итоге все было настроено, проверено и введено в эксплуатацию. Кроме одной удаленной площадки, где доступ к системе я не имею. На той удаленной площадке используется CentOS 5 и естественно racoon. Поставить туда openswan удалось но вот запустить его не получилось. Почему то при запуске он сыпет в лог и консоль ошибку о том что используется неправильный параметр запуска ipsec_setup, ну и дальше уже ничего не работает. Пришлось вязать между собой racoon и openswan. Решение оказалось довольно банальным и простым, но все же лучше написать как и что. Что самое интересное что пока писал, понял из-за чего не работало с самого начала.&lt;br /&gt;Решение.&lt;br /&gt;Конфиг ipsec со стороны CentOS 5 (racoon, не забываем что он сгенерится сам)&lt;br /&gt;/etc/sysconfig/network-scripts/ifcfg-ipsec&lt;br /&gt;TYPE=IPSEC&lt;br /&gt;SRC=x.x.x.x&lt;br /&gt;DST=y.y.y.y&lt;br /&gt;IKE_METHOD=PSK&lt;br /&gt;ONBOOT=no&lt;br /&gt;не привожу файл с ключем&lt;br /&gt;&lt;br /&gt;Конфиг со стороны CentOS6 (openswan)&lt;br /&gt;/etc/ipsec.d/ipsec.conf&lt;br /&gt;conn ipsec&lt;br /&gt;&amp;nbsp;type=transport&lt;br /&gt;&amp;nbsp;authby=secret&lt;br /&gt;&amp;nbsp;right=x.x.x.x&lt;br /&gt;&amp;nbsp;left=y.y.y.y&lt;br /&gt;&amp;nbsp;auto=start&lt;br /&gt;&amp;nbsp;salifetime=3600s&lt;br /&gt;&amp;nbsp;pfs=yes&lt;br /&gt;&amp;nbsp;ike=3des-sha1-modp1024&lt;br /&gt;&amp;nbsp;keyexchange=ike&lt;br /&gt;&lt;br /&gt;Это то что в принципе устраивает большинство, но вот работать оно не будет. ТО что помогло мне на 100% это добавить в файл настроек на CentOS5 такую строку&lt;br /&gt;AH_PROTO=none&lt;br /&gt;после чего все заработало, хотя по логам racoon на тестовом стенде я видел что не хватает протокола AH но не сообразил почему.&lt;br /&gt;Только при написании в блоге я понял что в настройках openswan по умолчанию для CentOS 6 прописан такой параметр&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nat_traversal=yes&lt;br /&gt;&lt;div&gt;который и отключает AH протокол.&lt;/div&gt;&lt;div&gt;Ну вроде и все. Кстати сам совет отключить AH нашел на форуме, но вот ссылку дать не могу, ибо забыл.&amp;nbsp;&lt;/div&gt;&lt;div&gt;Вроде все.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8993656344642100679-6957454182577179500?l=mcleod095.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcleod095.blogspot.com/feeds/6957454182577179500/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://mcleod095.blogspot.com/2011/11/racoon-openswan.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/6957454182577179500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/6957454182577179500'/><link rel='alternate' type='text/html' href='http://mcleod095.blogspot.com/2011/11/racoon-openswan.html' title='racoon openswan'/><author><name>McLeod095</name><uri>http://www.blogger.com/profile/16003581493714440202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8993656344642100679.post-3948204385495999366</id><published>2010-04-01T15:09:00.000+04:00</published><updated>2010-04-01T15:09:49.056+04:00</updated><title type='text'>Cron mutt и русские символы</title><content type='html'>Случилась ситуация что надо настроить отправку писем через cron которая должна происходить в последний день месяца и отсылать почту с русскими буквами в теме письма. Т.к. необходимо было отсылать файл то использовал для отсылки утилиту mutt&lt;br /&gt;&lt;br /&gt;ну и вот что получилось в итоге&lt;br /&gt;/var/spool/cron/root&lt;br /&gt;23 50 28,29,30,31 * * /root/bin/script.sh&lt;br /&gt;&lt;br /&gt;/root/bin/script.sh&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;TMP="/tmp/tmp"`date +%F`".pdf"&lt;br /&gt;MAILTO="mail@mail.man"&lt;br /&gt;if [ `date -d "1 day" "+%d"` = "01" ]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if [ -f $TMP ];then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rm -f $TMP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fi&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; command &amp;gt; $TMP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LANG=en_US.UTF-8 mutt -a $TMP -s "Отчет чего то там" ${MAILTO} &amp;lt; /dev/null&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rm -f $TMP&lt;br /&gt;fi &lt;br /&gt;&lt;br /&gt;Ну вот вроде и все.&lt;br /&gt;У меня на CentOS5.4 работает.&lt;br /&gt;&lt;br /&gt;*Кстати без опции LANG=en_US.UTF8 в тему письма ничего не пишется если есть русские буквы.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8993656344642100679-3948204385495999366?l=mcleod095.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcleod095.blogspot.com/feeds/3948204385495999366/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://mcleod095.blogspot.com/2010/04/cron-mutt.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/3948204385495999366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/3948204385495999366'/><link rel='alternate' type='text/html' href='http://mcleod095.blogspot.com/2010/04/cron-mutt.html' title='Cron mutt и русские символы'/><author><name>McLeod095</name><uri>http://www.blogger.com/profile/16003581493714440202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8993656344642100679.post-5166050384453881017</id><published>2010-03-03T18:52:00.001+03:00</published><updated>2011-11-16T00:16:18.279+04:00</updated><title type='text'>OSPF, IPSEC, gre, CentOS, Cisco</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;"Начал писать данный пост давно, еще 3 октября 2010 года, но так и не закончил. Хочу опубликовать хоть в таком виде. Может все таки руки доберутся его до конца дописать. Хочу сказать сразу. Схема реализована и работает, правда уже все на Cisco, поэтому скорее всего конфиги немного изменились.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Введение &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Я понимаю что в Интернете уже много написано как все настроить и т.п. Но свое все таки надо тоже держать.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Итак о чем я хочу написать?&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Встала необходимость связать два офиса не только каналом точка-точка но и также резервировать этот канал посредством сети Интернет. Задача которая ничего особенного из себя не представляет. Все делается просто и куча документации есть. Но при настройке в первые приходится много изучать и понимать. Так немного попробую разжевать все что использовалось в настройке.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Входные данные &lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Определимся что и с чем будем связывать (рис.1). &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ZL5uVM94QrI/S4_IBf2_1yI/AAAAAAAAAFw/UPMQfq9WBQw/s1600-h/OSPF.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://2.bp.blogspot.com/_ZL5uVM94QrI/S4_IBf2_1yI/AAAAAAAAAFw/UPMQfq9WBQw/s400/OSPF.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;Итак есть сети: &lt;br /&gt;LLAN1 - 192.168.101.0/24&lt;br /&gt;LLAN2 - 192.168.102.0/24&lt;br /&gt;LDMZ  - 10.101.1.0/24&lt;br /&gt;RLAN1 - 192.168.200.0/21&lt;br /&gt;PLAN  - 172.16.1.0/24&lt;br /&gt;RDMZ  - 10.101.2.0/24&lt;br /&gt;&lt;br /&gt;Сразу приведу расшифровку названий сетей:&lt;br /&gt;LLAN1 - Left LAN 1&lt;br /&gt;LLAN2 - Left LAN 2&lt;br /&gt;LDMZ  - Left DMZ&lt;br /&gt;RLAN1 - Right LAN 1&lt;br /&gt;PLAN  - Private LAN&lt;br /&gt;RDMZ  - Right DMZ&lt;br /&gt;&lt;br /&gt;Ну и аналогично получается для названия маршрутизаторов: &lt;br /&gt;LGW1  - Left Gateway 1&lt;br /&gt;LGW2  - Left Gateway 2&lt;br /&gt;RGW1  - Right Gateway 1&lt;br /&gt;&lt;br /&gt;Теперь надо определиться&amp;nbsp; с интерфейсами и адресами шлюзов&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;LGW1&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;eth0 - 1.1.1.1/30 (Internet)&lt;br /&gt;eth1 - 10.101.1.1/24 (LDMZ)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;LGW2&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;eth0 - 10.101.1.2/24 (LDMZ)&lt;br /&gt;eth1 - 192.168.101.1/24 (LLAN1)&lt;br /&gt;eth2 - 192.168.102.1/24 (LLAN2)&lt;br /&gt;eth3 - 192.168.150.1/24 (PtP)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;RGW1&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;eth0 - 2.2.2.2/30 (Internet)&lt;br /&gt;eth1 - 10.101.2.1/24 (RDMZ)&lt;br /&gt;&lt;br /&gt;Естественно все маршрутизаторы построены с использованием ОС CentOS5.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Cisco 2851&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;(Ну вот по поводу Cisco, то здесь&amp;nbsp; у меня есть один минус - не я ее настраивал. Поэтому все что смогу то тут выложу. )&lt;br /&gt;VLAN2 - 10.101.2.2/24 (RDMZ)&lt;br /&gt;VLAN3 - 172.16.1.1/24 (PLAN1)&lt;br /&gt;VLAN4 - 192.168.250.2/24 (PtP) &lt;br /&gt;VLAN1 - 192.168.200.1/24 (RLAN1)&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Постановка задачи&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Ну вот вроде определились с сетями и IP адресами. Теперь ставим задачи.&lt;br /&gt;&lt;br /&gt;1. Необходимо организовать связь между двумя территориями&lt;br /&gt;2. Обеспечить шифрование&lt;br /&gt;3. Обеспечить отказоустойчивость&lt;br /&gt;4. Ну и также надо сделать так что бы минимизировать время на обслуживание&lt;br /&gt;&lt;br /&gt;Выбор инструментов для решения задач&lt;br /&gt;1. Связь уже имеется посредством канала PtP, но также в контексте 3 задачи надо рассмотреть связь и через интернет&lt;br /&gt;2. Здесь выбор пал на IPSec. IPSec будет работать в транспортном режиме т.к. если использовать туннельный режим то использование OSPF становится просто ненужным.&lt;br /&gt;3. Отказоустойчивость можно организовать многими методами, но здесь был выбран протокол динамической маршрутизации OSPF. Он кстати и также решает еще и 4 задачу т.к. при увеличении подключенных территорий, и увеличении каналов доступа, сокращает время настройки маршрутов и также позволяет легко добавлять новые сети к существующим.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Настройка. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Приступим к настройке.&lt;br /&gt;Сначала начнем с простого и будем соединять наши сети посредством канала PtP.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;LGW2&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;/etc/sysconfig/network-scrips/ifcfg-ipsec0&lt;br /&gt;&lt;br /&gt;ONBOOT=yes&lt;br /&gt;TYPE=IPSEC&lt;br /&gt;SRC=192.168.150.1&lt;br /&gt;DST=192.168.250.2&lt;br /&gt;&lt;br /&gt;IKE_METHOD=PSK&lt;br /&gt;&lt;br /&gt;Здесь используется метод с использование парольной фразы, что не является довольно безопасным методом, но как связать Cisco и CentOS посредством сертификатов X.509 я так и не разобрался. Если кто-то имел дело с настройкой и есть желание поделиться, то всегда Welcome.&lt;br /&gt;&lt;br /&gt;/etc/sysconfig/network-scripts/keys-ipsec0&lt;br /&gt;IKE_PSK=qwerty&lt;br /&gt;&lt;br /&gt;Такая короткая парольная фраза только для примера.&lt;br /&gt;&lt;br /&gt;!!!!!!&amp;nbsp;&amp;nbsp;&amp;nbsp; Кстати, если уж у нас канал точка-точка то наверное тут было бы лучше использовать адреса из одной сети, вернее так и делает большинство, но в моей конкретной задаче была конфигурация именно с разными сетями на концах канала. Поэтому не мешало бы создать файл /etc/sysconfig/network-scripts/route-eth3 такого содержания&lt;br /&gt;&lt;br /&gt;192.168.250.0/24 via 192.168.150.1 dev eth3&lt;br /&gt;&lt;br /&gt;С другой стороны на &lt;i&gt;&lt;b&gt;Cisco&lt;/b&gt;&lt;/i&gt; прописываем&lt;br /&gt;&lt;br /&gt;ip route add 192.168.150.0 255.255.255.0 192.168.250.2&lt;br /&gt;&lt;br /&gt;crypto isakmp policy 1&lt;br /&gt;&amp;nbsp;encr 3des&lt;br /&gt;&amp;nbsp;authentication pre-share&lt;br /&gt;&amp;nbsp;group 2&lt;br /&gt;crypto isakmp key qwerty address 192.168.150.1 no-xauth&lt;br /&gt;&lt;br /&gt;crypto ipsec transform-set my_transform_set ah-sha-hmac esp-3des esp-sha-hmac &lt;br /&gt;&amp;nbsp;mode transport&lt;br /&gt;&lt;br /&gt;crypto map SDM_CMAP_1 1 ipsec-isakmp &lt;br /&gt;&amp;nbsp;description $Tunnel to192.168.150.1$&lt;br /&gt;&amp;nbsp;set peer 192.168.150.1&lt;br /&gt;&amp;nbsp;set transform-set my_transform_set &lt;br /&gt;&amp;nbsp;set pfs group2&lt;br /&gt;&amp;nbsp;match address 100&lt;br /&gt;&lt;br /&gt;access-list 100 remark SDM_ACL Category=4&lt;br /&gt;access-list 100 permit ip host 192.168.250.2 host 192.168.150.1&lt;br /&gt;access-list 100 permit ip host 192.168.150.1 host 192.168.250.2&lt;br /&gt;&lt;br /&gt;Далее необходимо настроить туннели поверх настроенного IPSec.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;LGW2&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;/etc/sysconfig/network-scripts/ifcfg-gre1 (Именно 1 т.к. я использую в названиии файла имя устройства, а gre туннели должны начинаться с 1 т.к. 0 уже занят)&lt;br /&gt;TYPE=GRE&lt;br /&gt;ONBOOT=yes&lt;br /&gt;DEVICE=ppp0 &lt;br /&gt;MY_INNER_IPADDR=192.168.254.253&lt;br /&gt;MY_OUTER_IPADDR=192.168.150.1&lt;br /&gt;PEER_INNER_IPADDR=192.168.254.254&lt;br /&gt;PEER_OUTER_IPADDR=192.168.250.2&lt;br /&gt;MTU=1420&lt;br /&gt;TTL=64&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;После поднятия интерфейса у нас появится новое сетевое устройство под именем ppp0. Опять же, в моем примере надо было сохранить совместимость со старой конфигурацией, и не хотелось переписывать кучу правил iptables.&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Cisco&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;interface Tunnel0&lt;br /&gt;&amp;nbsp;description $GRE MAIN$&lt;br /&gt;&amp;nbsp;ip address 192.168.254.254 255.255.255.252&lt;br /&gt;&amp;nbsp;ip access-group sdm_tunnel0_in in&lt;br /&gt;&amp;nbsp;ip mtu 1420&lt;br /&gt;&amp;nbsp;ip tcp adjust-mss 1400&lt;br /&gt;&amp;nbsp;tunnel source Vlan4&lt;br /&gt;&amp;nbsp;tunnel destination 192.168.150.1&lt;br /&gt;&amp;nbsp;tunnel path-mtu-discovery&lt;br /&gt;&amp;nbsp;crypto map SDM_CMAP_1&lt;br /&gt;&amp;nbsp;crypto ipsec df-bit clear&lt;br /&gt;&lt;br /&gt;После всего этого необходимо проверить работоспособность выполнив на LGW2 команды&lt;br /&gt;&lt;br /&gt;ifup ipsec0&lt;br /&gt;ifup gre1&lt;br /&gt;ping 192.168.254.254&lt;br /&gt;&lt;br /&gt;Если ничего не получилось то стоит проверить есть проходят ли пакеты по IPSec без gre&lt;br /&gt;&lt;br /&gt;ping 192.168.250.2&lt;br /&gt;&lt;br /&gt;Ну и если после этого не заработало то остается только смотреть логи и смотреть правила iptables. На LGW2 они должны быть такого рода&lt;br /&gt;&lt;br /&gt;iptables -A INPUT -i eth3 -p udp -s 192.168.250.2 -d 192.168.150.1 -m state --state NEW --dport 500 -j ACCEPT&lt;br /&gt;iptables -A INPUT -i eth3 -p esp -s 192.168.250.2 -d 192.168.150.1 -j ACCEPT&lt;br /&gt;iptables -A INPUT -i eth3 -p ah -s 192.168.250.2 -d 192.168.150.1 -j ACCEPT&lt;br /&gt;&lt;br /&gt;У меня с такими правилами все заработало. Хотя может и стоило еще прописать правило для gre протокола.&lt;br /&gt;Со стороны Cisco по данному вопросу ничего сказать не могу.&lt;br /&gt;&lt;br /&gt;Если все заработало, то можно попробовать настроить или резервный канал или поднять OSPF. В моем случае я выбрал второй вариант т.к. после поднятия резервного канала вся настройка OSPF будет сводиться к тому что бы прописать в нем еще один дополнительный интерфейс и вес.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;LGW2&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;За протокол OSPF у нас будет отвечать программное обеспечени &lt;a href="http://www.quagga.net/"&gt;quagga&lt;/a&gt;. Ставим его.&lt;br /&gt;yum install quagga&lt;br /&gt;Далее правим файл /etc/quagga/zebra.conf&lt;br /&gt;&lt;br /&gt;hostname lgw2&lt;br /&gt;password pass&lt;br /&gt;log file /var/log/quagga/zebra.log&lt;br /&gt;&lt;br /&gt;Этого достаточно, но в целях повышения безопасности советую прочитать документацию.&lt;br /&gt;&lt;br /&gt;Далее файл /etc/quagga/ospfd.conf&lt;br /&gt;&lt;br /&gt;hostname lgw2&lt;br /&gt;password pass&lt;br /&gt;interface ppp0&lt;br /&gt;&amp;nbsp;ip ospf cost 10&lt;br /&gt;&amp;nbsp;ip ospf priority 10&lt;br /&gt;&amp;nbsp;ip ospf authentication message-digest&lt;br /&gt;&amp;nbsp;ip ospf message-digest-key 1 md5 Kakoi_nibud_parol&lt;br /&gt;!&lt;br /&gt;router ospf&lt;br /&gt;&amp;nbsp;ospf router-id 10.101.1.2&lt;br /&gt;&amp;nbsp;network 192.168.254.253/32 area 0&lt;br /&gt;!!! Только сети подключенные к данному маршрутизатору физически будут !!! публиковаться через OSPF, и то только те которые будут удволетворять !!! условиям прописанным в route-map OSPF-connected&lt;br /&gt;&amp;nbsp;redistribute connected route-map OSPF-connected&lt;br /&gt;&amp;nbsp;area 0 authentication message-digest&lt;br /&gt;!&lt;br /&gt;!!! Создаем список с сетями которые хотим публиковать &lt;br /&gt;ip prefix-list OSPF-conn permit 10.101.1.0/24&lt;br /&gt;ip prefix-list OSPF-conn permit 192.168.101.0/24&lt;br /&gt;ip prefix-list OSPF-conn permit 192.168.102.0/24&lt;br /&gt;ip prefix-list OSPF-conn deny any &lt;br /&gt;!&lt;br /&gt;!!! Объявляем route-map и указываем каким списком руководствоваться&lt;br /&gt;route-map OSPF-connected permit 1&lt;br /&gt;&amp;nbsp;match ip address prefix-list OSPF-conn&lt;br /&gt;!&lt;br /&gt;log file /var/log/quagga/ospfd.log&lt;br /&gt;&lt;br /&gt;Описывать все параметры данного конфигурационного файла я не буду. В основном много чего есть в интернете.&lt;br /&gt;&lt;br /&gt;После проделанных манипуляций выполняем команды&lt;br /&gt;&lt;br /&gt;chkconfig zebra on&lt;br /&gt;chkconfig ospfd on&lt;br /&gt;service zebra start&lt;br /&gt;service ospfd start&lt;br /&gt;&lt;br /&gt;И смотрим логи на предмет ошибок. Если их нет значит все отлично. Но только даже если настроить на Cisco OSPF, у нас ничего не заработает т.к. (опять же в контексте моей задачи) включены правила iptables которые не разрешают прохождение пакетов. Значит надо прописать правила которые будут разрешать. Ничего более изящного я не придумал так что принимайте вот такое правило&lt;br /&gt;&lt;br /&gt;iptables -A INPUT -i ppp0 -p ospf -j ACCEPT &lt;br /&gt;(Здесь может быть я потом добавлю доп. правила iptables которые будут более жесткие, но сейчас они пока такие. Опять же хоть я и прописывал при настройке &amp;nbsp;жестко использовать интерфейс p2p, но все равно пакеты идут на широковещательные адреса)&lt;br /&gt;&lt;br /&gt;Теперь приведу настройки Cisco&lt;br /&gt;&lt;br /&gt;interface Tunnel0&lt;br /&gt;&amp;nbsp;ip ospf authentication message-digest&lt;br /&gt;&amp;nbsp;ip ospf message-digest-key 1 md5 7 здесь_будет_хэш&lt;br /&gt;&amp;nbsp;ip ospf cost 10&lt;br /&gt;&amp;nbsp;ip ospf priority 10&lt;br /&gt;&amp;nbsp;ip ospf mtu-ignore&lt;br /&gt;&lt;br /&gt;interface Loopback0&lt;br /&gt;&amp;nbsp;description $OSPF 1$&lt;br /&gt;&amp;nbsp;ip address 22.22.22.22 255.255.255.255&lt;br /&gt;&lt;br /&gt;router ospf 22&lt;br /&gt;area 0 authentication message-digest&lt;br /&gt;&amp;nbsp;redistribute connected route-map TO-OSPF&lt;br /&gt;&amp;nbsp;network 192.168.254.254 0.0.0.0 area 0&lt;br /&gt;&lt;br /&gt;route-map TO-OSPF permit 10&lt;br /&gt;&amp;nbsp;match ip address prefix-list ospf-new&lt;br /&gt;&lt;br /&gt;! Создаем список с сетями которые хотим публиковать&lt;br /&gt;ip prefix-list ospf-new seq 10 permit 10.101.2.0/24&lt;br /&gt;ip prefix-list ospf-new seq 20 permit 192.168.200.0/24&lt;br /&gt;! Здесь мы должны явно указать какую сеть не надо публиковать&lt;br /&gt;ip prefix-list ospf-new seq 30 deny 172.16.1.0/24&lt;br /&gt;&lt;br /&gt;Если у кого то возникнут вопросы, то здесь я ничем не могу Вам помочь, потому что сам не знаю ответы на многие вопросы. Для меня остается загадкой для чего нужен интерфейс Loopback0 с адресом 22.22.22.22/32, но в документации к Cisco указано что лучше его использовать. Также в prefix-list насколько я понял нельзя прописать правило deny any, поэтому здесь приходится прописывать все намного жестче.&lt;br /&gt;Ну теперь у нас вроде все настроено и должно все работать.&lt;br /&gt;Я не буду отвлекаться и подробно рассказывать как отыскать ошибки или проверить работоспособность, у меня заработало все не сразу но потом все получилось, Скажу лишь что основными командами были&lt;br /&gt;telnet localhost ospfd&lt;br /&gt;и&lt;br /&gt;ip route&lt;br /&gt;&lt;br /&gt;После всех проделанных манипуляций на обоих хостах должны появиться маршруты прописанные в настройках OSPF.&lt;br /&gt;&lt;br /&gt;Также сделаю небольшое отступление и немного опишу процедуру публикации маршрута вида static. На Cisco это делается довольно просто, там особо ничего и прописывать не надо, то есть все также как и в приведенном примере, только не &lt;i&gt;redistribute connected,&amp;nbsp;&lt;/i&gt;а надо прописать &lt;i&gt;redistribute static&lt;/i&gt;, ну и естественно также прописываем &lt;i&gt;route-map&lt;/i&gt; и т.п. где указываем какие маршруты будем публиковать. Ну и самое главное это прописываем этот маршрут на Cisco с помощью &lt;i&gt;ip route&lt;/i&gt;. Ну и радуемся. В quagga все немного по &amp;nbsp;другому. Настройка OSPF аналогична как и у Cisco, но вот только если мы добавим маршрут с помощью команды &lt;i&gt;ip route add &lt;/i&gt;или &lt;i&gt;route&lt;/i&gt;, то этот маршрут не будет публиковаться. Для решения данной проблемы я лично потратил около половины дня, а все из-за того что не читал внимательно документацию. Оказалось все просто. Для того что бы данный маршрут начал публиковаться его надо удалить из таблицы маршрутизации ядра. После чего прописать маршрут в zebra, или в файле конфигурации /etc/quagga/zebra.conf или с помощью &lt;i&gt;telnet localhost zebra&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Ну вот вроде бы и закончено с настройкой основного канала. Теперь можно приступить к настройке резервного.&lt;br /&gt;Здесь как &amp;nbsp;и в случае основного ничего нет сложного, есть только небольшое отличие. Создавать &amp;nbsp;IPSec соединение нам придется уже не на LGW2 и Cisco, а на LGW1 и RGW1. А вот gre туннель как раз на LGW2 и Cisco.&lt;br /&gt;Сначала настроим IPSec.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;LGW1&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;/etc/sysconfig/network-scrips/ifcfg-ipsec0&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;ONBOOT=yes&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;TYPE=IPSEC&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;SRC=1.1.1.1&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;DST=2.2.2.2&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;IKE_METHOD=PSK&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;/etc/sysconfig/network-scripts/keys-ipsec0&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;IKE_PSK=qwerty&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Ну и аналогично на&amp;nbsp;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;&lt;b&gt;RGW1&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;&lt;b&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;i&gt;&lt;b&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;/etc/sysconfig/network-scrips/ifcfg-ipsec0&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;&lt;b&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;i&gt;&lt;b&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;ONBOOT=yes&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;TYPE=IPSEC&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;SRC=2.2.2.2&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;DST=1.1.1.1&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-style: normal; font-weight: normal;"&gt;&lt;i&gt;&lt;b&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;i&gt;&lt;b&gt;&lt;i&gt;&lt;b&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;IKE_METHOD=PSK&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;/etc/sysconfig/network-scripts/keys-ipsec0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;IKE_PSK=qwerty&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;После чего необходимо прописать правила для iptables на каждом из хостов и поднять интерфейсы командой&lt;i&gt; ifup ipsec0&lt;/i&gt;.&amp;nbsp;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Видим что все работает и радуемся. Теперь самое дело приступить к настройке gre туннеля на LGW2 и Cisco. Начнем настройку с добавлении правил iptables на LGW1 и RGW1.&amp;nbsp;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;&lt;i&gt;LGW1&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;iptables -A PREROUTING -t nat -i eth0 -s 2.2.2.2 -d 1.1.1.1 -p gre -j DNAT --to-destination 10.101.1.2&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;iptables -A FORWARD -p gre -s 2.2.2.2 -d 10.101.1.2 -i eth0 -o eth1 -j ACCEPT&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;&lt;b&gt;RGW1&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;iptables -A PREROUTING -t nat -i eth0 -s 1.1.1.1 -d 2.2.2.2 -p gre -j DNAT --to-destination 10.101.2.2&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;iptables -A FORWARD -p gre -s 1.1.1.1 -d 10.101.2.2 -i eth0 -o eth1 -j ACCEPT&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Ну и теперь настроим gre&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;&lt;b&gt;LGW2&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;/etc/sysconfig/network-scripts/ifcfg-gre2&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;TYPE=GRE&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;ONBOOT=yes&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;DEVICE=ppp1&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;MY_INNER_IPADDR=192.168.253.253&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;MY_OUTER_IPADDR=10.101.1.2&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;PEER_INNER_IPADDR=192.168.253.254&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;PEER_OUTER_IPADDR=2.2.2.2&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;MTU=1420&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;TTL=64&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Ну и самое главное теперь прописать настройки OSPF.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;LGW2&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;в&amp;nbsp;/etc/quagga/ospfd.conf добавляем после описания интерфейса ppp0 вот такие строки&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;interface ppp1&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp;ip ospf cost 20&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp;ip ospf priority 20&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp;ip ospf authentication message-digest&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp;ip ospf message-digest-key 1 md5 Kakoi_nibud_parol&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;И в секцию router добавляем строку&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp;network 192.168.254.253/32 area 0&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;после чего можно перезапустить ospfd.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8993656344642100679-5166050384453881017?l=mcleod095.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcleod095.blogspot.com/feeds/5166050384453881017/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://mcleod095.blogspot.com/2010/03/ospf-ipsec-gre-centos-cisco.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/5166050384453881017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/5166050384453881017'/><link rel='alternate' type='text/html' href='http://mcleod095.blogspot.com/2010/03/ospf-ipsec-gre-centos-cisco.html' title='OSPF, IPSEC, gre, CentOS, Cisco'/><author><name>McLeod095</name><uri>http://www.blogger.com/profile/16003581493714440202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ZL5uVM94QrI/S4_IBf2_1yI/AAAAAAAAAFw/UPMQfq9WBQw/s72-c/OSPF.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8993656344642100679.post-4953927530486621246</id><published>2010-03-03T18:20:00.000+03:00</published><updated>2010-03-03T18:20:03.445+03:00</updated><title type='text'>CentOS и заметки себе как поправить мелочи</title><content type='html'>Здесь я периодически буду добавлять всякие мелочи связанные с ОС CentOS.&lt;br /&gt;1. Отключить поддержку IPV6&lt;br /&gt;Если прописать в /etc/sysconfig/network&lt;br /&gt;NETWORKING_IPV6=no&lt;br /&gt;то как ни странно, адреса IPV6 будут висеть на интерфейсах.&lt;br /&gt;Также если добавить &lt;br /&gt;IPV6INIT=no &lt;br /&gt;в файл настройки интерфейса, то это тоже не помогает, хотя может и помогает после перезагрузки, но меня это не удовлетворило. &lt;br /&gt;В итоге покопавшись в интернете нашел в официальном &lt;a href="http://wiki.centos.org/FAQ/CentOS5"&gt;FAQ&lt;/a&gt; как его отключить совсем. Вот что там пишут касательно CentOS5&lt;br /&gt;&lt;br /&gt;touch /etc/modprobe.d/disable-ipv6&lt;br /&gt;echo "options ipv6 disable=1" &amp;gt;&amp;gt; /etc/modprobe.d/disable-ipv6&lt;br /&gt;&lt;br /&gt;После чего делаем reboot и спокойно работаем.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. Отключить ZEROCONF&lt;br /&gt;Вообще я даже как-то не озадачивался этим вопросом, да и в документации видел данную опцию, но не придал значения ей. Читая&amp;nbsp;&lt;a href="http://blog.ronix.net.ua/2009/02/zeroconf-centosrhel.html"&gt;Блог Dormestmass' blog &lt;/a&gt;обратил на него внимание и проделал описанные действия. А именно прописать в /etc/sysconfig/network&lt;br /&gt;&lt;br /&gt;NOZEROCONF=yes&lt;br /&gt;&lt;br /&gt;ну и потом service network restart&lt;br /&gt;&lt;br /&gt;3. Прописать правила iproute&lt;br /&gt;В документации в принципе все есть, но опять же в самом конце и не всегда можно сразу вспомнить. То что прописывать маршруты можно в файлах &lt;br /&gt;&lt;br /&gt;/etc/sysconfig/static-routes &lt;br /&gt;/etc/sysconfig/network-scripts/route-ethX&lt;br /&gt;&lt;br /&gt;это в принципе известно. Но вот как добавить правила для iproute, я тоже сразу не нашел. Оказывается все банально просто. Прописываем строки вида &lt;br /&gt;&lt;br /&gt;from IP1 table TABLES1&lt;br /&gt;&lt;br /&gt;в файл &lt;br /&gt;&lt;br /&gt;/etc/sysconfig/network-scripts/rule-ethX&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8993656344642100679-4953927530486621246?l=mcleod095.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcleod095.blogspot.com/feeds/4953927530486621246/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://mcleod095.blogspot.com/2010/03/centos.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/4953927530486621246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/4953927530486621246'/><link rel='alternate' type='text/html' href='http://mcleod095.blogspot.com/2010/03/centos.html' title='CentOS и заметки себе как поправить мелочи'/><author><name>McLeod095</name><uri>http://www.blogger.com/profile/16003581493714440202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8993656344642100679.post-8656440306736364867</id><published>2010-02-01T11:53:00.000+03:00</published><updated>2010-02-01T11:54:55.852+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><category scheme='http://www.blogger.com/atom/ns#' term='ipsec'/><title type='text'>IPSec и немного о нем</title><content type='html'>Хотя навряд-ли я это уже когда нибудь забуду но все же.&lt;br /&gt;Сейчас на работе приходится настраивать связку IPSEC + GRE, в принципе ничего сложного, тем более что настройка производится в дистрибутиве CentOS 5. Как и показано в документации все делается довольно просто и быстро. Но все же.&lt;br /&gt;Началось все с того что мне надоели постоянные падения VPN канала между двумя территориями. Данный VPN канал организован при помощи PPP over SSH, и все бы хорошо у данного метода, но перезапуск при падении производится с помощью cron раз в 5 минут запуском скрипта который проверяет состояние канала, делая проверку наличия маршрута в таблице маршрутизации. Многие могут сказать что просто я не умею его (PPP over SSH)  готовить, но мне как-то не очень интересно заниматься этим. да и все равно со временем граничные маршрутизаторы будут заменены на Cisco. И поэтому решил заняться IPSec.&lt;br /&gt;Приступая к работе я не думал что придется ломать голову над чем то, тем более при таком обилии документации как на русском так и на ангийском, но вопросы все таки появились.&lt;br /&gt;Первый это почему при поднятии IPSec у меня не появлялся интерфейс ipsec0 который я прописывал. Немного покопав и подумав я понял что он и не должен подниматься. Но нужно было как то заворачивать трафик на него. Опять покопавшись в интернете я ничего не нашел по linux, но зато нашел немного про Cisco. После чего было принято решение поднять gre over ipsec. Что было и сделано. После чего все нормально заработало.&lt;br /&gt;Ну теперь немного конфигов и картинок.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_ZL5uVM94QrI/S2aN9-3_lzI/AAAAAAAAAFg/LpW4KolTTtY/s1600-h/ipsec.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5433186096458471218" src="http://3.bp.blogspot.com/_ZL5uVM94QrI/S2aN9-3_lzI/AAAAAAAAAFg/LpW4KolTTtY/s320/ipsec.png" style="cursor: pointer; display: block; height: 142px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Из рисунка видно что имеется два граничных маршрутизатора связанных посредством интернета. Каждый маршрутизатор обеспечивает свои сети. Для наглядности я дал имена сетям латинскими буквами A,B,C,D,E. Приставки L или R я добавил что бы было легче понимать где сеть находится, справа или слева. Соответственно маршрутизаторы я назвал просто GW, а приставки обозначают с какой стороны находится маршрутизатор. &lt;br /&gt;Интерфейс для доступа в интернет у маршрутизатора LGW - eth0, у RGW - eth1. IP адреса интерфейсов 190.190.190.250/24 и 191.191.191.251/24 соответственно. &lt;br /&gt;Файлы настроек для LGW: &lt;br /&gt;/etc/sysconfig/network-scripts/ifcfg-ipsec0&lt;br /&gt;ONBOOT=YES &lt;br /&gt;TYPE=IPSEC&lt;br /&gt;DST=191.191.191.251&lt;br /&gt;IKE_METHOD=PSK&lt;br /&gt;/etc/sysconfig/network-scripts/keys-ipsec0&lt;br /&gt;IKE_PSK=ABCDEFGH&lt;br /&gt;&lt;br /&gt;Файлы настроек для RGW:&lt;br /&gt;/etc/sysconfig/network-scripts/ifcfg-ipsec1&lt;br /&gt;ONBOOT=YES&amp;nbsp; &lt;br /&gt;TYPE=IPSEC&lt;br /&gt;DST=190.190.190.250&lt;br /&gt;IKE_METHOD=PSK&lt;br /&gt;/etc/sysconfig/network-scripts/keys-ipsec1&lt;br /&gt;IKE_PSK=ABCDEFGH&lt;br /&gt;&lt;br /&gt;Я использую простую защиту по парольной фразе для наглядности и экспериментов, при вводе в эксплуатацию будет использован метод с сертификатами. (Заметка: здесь используется конфигурация ipsec точка-точка).&lt;br /&gt;После чего можно поднять ipsec с помощью команд ifup ipsec0 и ifup ipsec1.&lt;br /&gt;И попробовать выполнить команду ping до другого маршрутизатора. Если все нормально то можно перейти дальше, если же нет&amp;nbsp; то советую проверить правильность настроек и попробовать заново.&lt;br /&gt;Дальше нужно настроить GRE, делается это так же просто как и IPSec.&lt;br /&gt;Файл настроек для LGW:&lt;br /&gt;&lt;br /&gt;/etc/sysconfig/network-scripts/ifcfg-gre2&lt;br /&gt;ONBOOT=YES&lt;br /&gt;DEVICE=gre2 &lt;br /&gt;MY_INNER_IPADDR=192.168.254.253&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Внутренний адрес туннеля&lt;br /&gt;MY_OUTER_IPADDR=190.190.190.250&amp;nbsp;&amp;nbsp;&amp;nbsp; # Внешний адрес на котором будем создавать туннель&lt;br /&gt;PEER_INNER_IPADDR=192.168.254.254&amp;nbsp; # Внутренний адрес туннеля с другой стороны&lt;br /&gt;PEER_OUTER_IPADDR=191.191.191.251&amp;nbsp; # Внешний адрес куда будет создаваться туннель&lt;br /&gt;&lt;br /&gt;Файл настроек для RGW:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/etc/sysconfig/network-scripts/ifcfg-gre2&lt;br /&gt;ONBOOT=YES&lt;br /&gt;DEVICE=gre2 &lt;br /&gt;&lt;br /&gt;MY_INNER_IPADDR=192.168.254.254&lt;br /&gt;MY_OUTER_IPADDR=191.191.191.251&lt;br /&gt;PEER_INNER_IPADDR=192.168.254.253 PEER_OUTER_IPADDR=190.190.190.250&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Ну и можно выполнить ifup gre2.&lt;br /&gt;Теперь должен будет появиться интерфейс gre2 на обоих маршрутизаторах, после чего можно прописывать маршруты в сети A,B,C,D,E.&lt;br /&gt;&lt;br /&gt;В продолжении попытаюсь рассказать о настройке второго канала gre + ipsec между этими же двумя маршрутизаторами и настройки ospf для переключения между двумя каналами.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8993656344642100679-8656440306736364867?l=mcleod095.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcleod095.blogspot.com/feeds/8656440306736364867/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://mcleod095.blogspot.com/2010/02/ipsec.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/8656440306736364867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/8656440306736364867'/><link rel='alternate' type='text/html' href='http://mcleod095.blogspot.com/2010/02/ipsec.html' title='IPSec и немного о нем'/><author><name>McLeod095</name><uri>http://www.blogger.com/profile/16003581493714440202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ZL5uVM94QrI/S2aN9-3_lzI/AAAAAAAAAFg/LpW4KolTTtY/s72-c/ipsec.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8993656344642100679.post-560208524933659892</id><published>2010-01-31T17:30:00.000+03:00</published><updated>2010-01-31T17:35:05.418+03:00</updated><title type='text'>Первый</title><content type='html'>Всем посетителям хорошего настроения!&lt;br /&gt;Это моя первая запись в блоге, и если честно я, как и многие другие, просто не знаю о чем написать. Может быть я поддался тенденциям нашего времени на ведения блогов или просто блог мне нужен, я пока еще не определился. Но точно знаю что данный блог я не буду вести часто и думаю что скорее всего иногда буду делиться своими заметками связанными с работой. И скорее всего они будут связаны с ОС linux.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8993656344642100679-560208524933659892?l=mcleod095.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcleod095.blogspot.com/feeds/560208524933659892/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://mcleod095.blogspot.com/2010/01/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/560208524933659892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8993656344642100679/posts/default/560208524933659892'/><link rel='alternate' type='text/html' href='http://mcleod095.blogspot.com/2010/01/blog-post.html' title='Первый'/><author><name>McLeod095</name><uri>http://www.blogger.com/profile/16003581493714440202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
