Как таковой pptpd в CentOS'е отсутсвует, но разработчики демона выкладывают свежие rpm на sourceforge'e.
Для установки подключим репозиторий к yum
в файл /etc/yum.repos.d/pptpd.repo пишем:
[pptpd]
name=CentOS 5 pptpd repo
baseurl=http://poptop.sourceforge.net/yum/stable/rhel5/i386/
enabled=1
gpgcheck=0
Затем устанавливаем:
yum install pptpd
Делаем бэкапы конфигов
cp /etc/pptpd.conf /etc/pptpd.conf.bkp
cp /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bkp
cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bkp
Теперь правим /etc/pptpd.conf
# адрес сервака для клиента
localip 192.168.0.1
# диапазон адресов для клиентов
remoteip 192.168.0.20-30
# xx.xx.xx.xx - наш адрес на котором слушаются соединения
listen xx.xx.xx.xx
Теперь правим /etc/ppp/options.pptpd
Меняем идентификатор нашего сервера, ключ "name". Было pptpd, стало "wellcome". Но это не обязательно.
Теперь идем к настройке логинов.
/etc/ppp/chap-secrets
тут все просто
login server password
server - это как раз идентификатор, котоыйр мы изменили. В нашем случае "wellcome".
Теперь стартуем всю связку:
# /etc/init.d/pptpd start
Starting pptpd: [ OK ]
Проверим
# /etc/init.d/pptpd status
pptpd (pid 13996) is running...
Теперь добавим в стартовые скрипты:
chkconfig --level 35 pptpd on
Хождение пакетиков между интерфейсами:
# echo 1 > /proc/sys/net/ipv4/ip_forward
И iptables уже сами по необходимости...
вторник, 18 мая 2010 г.
понедельник, 17 мая 2010 г.
Мапинг портов в Windows
netsh routing ip nat install
netsh routing ip nat add interface "external" full
netsh routing ip nat add portmapping "external" tcp 0.0.0.0 8080 192.168.1.1 80
netsh routing ip nat add interface "external" full
netsh routing ip nat add portmapping "external" tcp 0.0.0.0 8080 192.168.1.1 80
пятница, 14 мая 2010 г.
использование Posix Threads в Windows
Имеем Windows XP SP3. Но не суть, не вижу причин не запустить птриды и в Win7 и Win2000. Есть Visual Studio. Подключаются Posix Threads очень легко. Можно как и руками, а можно в GUI самой студии. Ниже краткая инструкция по употреблению.
Качаем сами птриды. тут
В моем случае птриды стоят тут "d:\Develop\libs\pthreads\"
Далее от сюда "d:\Develop\libs\pthreads\Pre-built.2\lib\" берем
"pthreadVSE2.dll" и копируем либо в сам проект, к exe'шникам. Либо, например, в windows\system32. Или добавить папку с dll'ками в path, но это не гибко.
Обратите внимание, dll'ки там разные. Под вин+студия нужна "pthreadVSE2.dll", что ясно из названия файликов :)
Далее открываем студию и создаем новый проект (или открываем готовый). Начнем с инклюда в код.
тут масса вариантов. Скопировтаь h файлы в свой проект или добавить папку с ними в path.
Мы делаем средствами самой студии. Идем в свойства проекта далее
-> Configuration Properties
-> C/C++
-> General
-> Добавляем путь "D:\Develop\libs\pthreads\Pre-built.2\include" в Additional Include Directories
Затем топаем в свойства линкера этого проекта.
-> Configuration Properties
-> Linker
-> General
-> Добавляем путь "D:\Develop\libs\pthreads\Pre-built.2\lib" в Additional Library Directories
Это мы сделали для того, чтобы компилятор знал где искать lib файл.
Сам файл можно добавить в исходники, например так:
А можно там же - в свойствах проекта.
-> Configuration Properties
-> Linker
-> General
-> Input
-> Additional Dependencies
-> Добавляем файл "pthreadVSE2.lib"
Имя файла, опять же, говорит само за себя.
Ну а ниже - краткий пример рабочего кода.
Качаем сами птриды. тут
В моем случае птриды стоят тут "d:\Develop\libs\pthreads\"
Далее от сюда "d:\Develop\libs\pthreads\Pre-built.2\lib\" берем
"pthreadVSE2.dll" и копируем либо в сам проект, к exe'шникам. Либо, например, в windows\system32. Или добавить папку с dll'ками в path, но это не гибко.
Обратите внимание, dll'ки там разные. Под вин+студия нужна "pthreadVSE2.dll", что ясно из названия файликов :)
Далее открываем студию и создаем новый проект (или открываем готовый). Начнем с инклюда в код.
тут масса вариантов. Скопировтаь h файлы в свой проект или добавить папку с ними в path.
Мы делаем средствами самой студии. Идем в свойства проекта далее
-> Configuration Properties
-> C/C++
-> General
-> Добавляем путь "D:\Develop\libs\pthreads\Pre-built.2\include" в Additional Include Directories
Затем топаем в свойства линкера этого проекта.
-> Configuration Properties
-> Linker
-> General
-> Добавляем путь "D:\Develop\libs\pthreads\Pre-built.2\lib" в Additional Library Directories
Это мы сделали для того, чтобы компилятор знал где искать lib файл.
Сам файл можно добавить в исходники, например так:
А можно там же - в свойствах проекта.
-> Configuration Properties
-> Linker
-> General
-> Input
-> Additional Dependencies
-> Добавляем файл "pthreadVSE2.lib"
Имя файла, опять же, говорит само за себя.
Ну а ниже - краткий пример рабочего кода.
9 мая.
Конев Иван Никанорович - механик-водитель самоходной артиллерийской установки (САУ) 393-го гвардейского самоходного артиллерийского полка (12-й гвардейский танковый корпус, 1-й Белорусский фронт) гвардии старший сержант.
Родился 12 марта 1923 года в селе Котельниково Обоянского района Курской области в семье крестьянина. Русский. Член ВКП(б)/КПСС с 1944 года. Окончил два курса библиотечного техникума.
В феврале 1942 года был призван в Красную Армию. Прошел подготовку на специальность механика-водителя танка. С июня 1942 году участвовал в боях с немецко-фашистскими захватчиками. Отличился в боях за освобождение Польши.
16 января 1945 года, гвардии старший сержант Конев, находясь в составе передового отряда в районе города Сохачев (Польша), на большой скорости врезался в колонну вражеских танков и автомашин. Его экипаж, действуя огнём и гусеницами уничтожил 3 танка, 15 автомашин, 4 орудия и до 40 гитлеровцев.
Указом Президиума Верховного Совета СССР от 27 февраля 1945 года за образцовое выполнение заданий командования и проявленные мужество и героизм в боях с немецко-фашистскими захватчиками гвардии старшему сержанту Коневу Ивану Никаноровичу присвоено звание Героя Советского Союза с вручением ордена Ленина и медали "Золотая Звезда" (N 5721).
После Победы продолжил службу в армии. В 1949 году с отличием окончил военно-политическое училище в Горьком (ныне - Нижний Новгород), в 1954 году - Военно-политическую академию в Москве. С 1984 года полковник Конев в отставке. Жил в городе-герое Москве. Трагически погиб в автомобильной катастрофе 5 октября 1989 года. Похоронен на Троекуровском кладбище.
Награждён орденами Ленина, Отечественной войны 1-й и 2-й степеней, тремя орденами Красной Звезды, орденами "За службу Родине в ВС СССР" 3-й степени, Славы 3-й степени, медалями.
9 мая. Уходит....
- Василий Иваныч! А чево ты на оглобли тачанок георгиевские ленточки не повязал? Ведь 9 мая скоро?
- Не могу, Петька. Я и сам Кавалер 4-х степеней, полный бант имею, а на оглобли или там, антенну - не могу! Это орденские ленточки, Петька.
Тебе не понять!
- Гы, Василий Ваныч! А смеяться то где?
- А нигде уже, Петька, не смеяться, если Георгиевские ленточки режут как лапшу...
картинки от сюда
меня достал blogger! что я сделал индусам? почему все, что я пишу тут латиницей перекодируется в hindi ???
Я уже понял. Эта хрень отключается. Но как отключить ее на всегда?? И почему именно Хинди????
четверг, 13 мая 2010 г.
Только что чуть голову не сломал - как в блоггере разместить исходник php (да и любой другой)
Есть два варианта:
1) Для чайников.
Идем сюда
перекодированный результат смело вставляем в текст поста.
Вариант быстрый но не удобный во всех смыслах.
2) Наш способ. Найдено гуглом.
Идем в наш шаблон, редактируем html. Перед тегом head добавляем:
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushVb.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js' type='text/javascript'></script>
<script language='javascript'>
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.config.clipboardSwf = 'http://alexgorbatchev.com/pub/sh/current/scripts/clipboard.swf';
SyntaxHighlighter.all();
</script>
Сохраняем и закрываем шаблон.
Далее постить исходники можно двумя способами.
a) Перекодируем как в п.1 и обрамляем тегом <pre class="brush: html">
b) Продвинутый способ.
Вставляем в пост следующий код
<script type="syntaxhighlighter" class="brush: html"><![CDATA[
ТУТ НАШ ИСХОДНИК
]]></script>
В классе тега <PRE> или скрипта мы указываем тип подсвтеки кода, в примере выше - подсветка html разметки.
Этот пост подготовлен первым способом.
Пример второго способа тут
1) Для чайников.
Идем сюда
перекодированный результат смело вставляем в текст поста.
Вариант быстрый но не удобный во всех смыслах.
2) Наш способ. Найдено гуглом.
Идем в наш шаблон, редактируем html. Перед тегом head добавляем:
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushVb.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js' type='text/javascript'></script>
<script language='javascript'>
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.config.clipboardSwf = 'http://alexgorbatchev.com/pub/sh/current/scripts/clipboard.swf';
SyntaxHighlighter.all();
</script>
Сохраняем и закрываем шаблон.
Далее постить исходники можно двумя способами.
a) Перекодируем как в п.1 и обрамляем тегом <pre class="brush: html">
b) Продвинутый способ.
Вставляем в пост следующий код
<script type="syntaxhighlighter" class="brush: html"><![CDATA[
ТУТ НАШ ИСХОДНИК
]]></script>
В классе тега <PRE> или скрипта мы указываем тип подсвтеки кода, в примере выше - подсветка html разметки.
Этот пост подготовлен первым способом.
Пример второго способа тут
корректная отправка почты из php с русским языком в теме и обратном адресе
Столкнулся с забавной проблемой. Есть хостинг - nic.ru. Необходимо из PHP скрипта отправить письмо. Локаль площадки (шел, бд) utf-8. Отправляю письмо. Получаю письмо клиентом (thunderbird, evolution) - все в порядке. Засаду обнаружил случайно. Зашел на mail.ru проверить свою почту и обнаружил. В качестве обратного адреса и темы письма - <без названия>, тема - иероглифы. Перелапатил php.net, форумы, конфиги апача, php, sendmail. Чисто случайно наткнулся на RFC по почте. Где и нашел решение проблемы. В RFC в теме письма, обратном адресе не может быть русского языка. Его нужно кодировать в base64, а затем завернуть в UTF-8 (т.к. это наша локаль системная).
$primer = '=?UTF-8?B?'.base64_encode('Администратор сайта').'?='.";
Второй нюанс. Хедеры передаются последовательно, разделителем хедера является переход строки. завершение хедеров - два перехода. После хедеров идут данные.
По скольку наш хостинг - freeBSD. Конец строки - \n, коретку переводить не нужно.
Ниже пример всей конструкции.
$primer = '=?UTF-8?B?'.base64_encode('Администратор сайта').'?='.";
Второй нюанс. Хедеры передаются последовательно, разделителем хедера является переход строки. завершение хедеров - два перехода. После хедеров идут данные.
По скольку наш хостинг - freeBSD. Конец строки - \n, коретку переводить не нужно.
Ниже пример всей конструкции.
среда, 12 мая 2010 г.
в 5ом CentOS'е есть баг
Basically you can just copy the example files from /usr/share/doc/bind-9.x.x/sample/etc/ and /usr/share/doc/bind-9.x.x/sample/var/ to start your own configuration from.
как увеличить размер экрана консоли гостевой машины Linux в VirtualBox
в загрузчике в параметрах ядра гостевой машины дописываем vga=773
или любое другое разрешение
или любое другое разрешение
Depth | 800×600 | 1024×768 | 1152×864 | 1280×1024 | 1600×1200 |
8 bit | vga=771 | vga=773 | vga=353 | vga=775 | vga=796 |
16 bit | vga=788 | vga=791 | vga=355 | vga=794 | vga=798 |
24 bit | vga=789 | vga=792 | vga=795 | vga=799 |
простой NAT в Windows XP
Задача поднять NAT в Windows XP. Стандартная утилита не подходит в виду своей ущербности.
просомтр текущей конфигурации
netsh routing ip nat dump
настраиваем NAT
netsh routing ip nat install
смотрим что получилось
netsh routing ip nat show global
netsh routing ip nat add interface "ISP" full
netsh routing ip nat add interface "Local Area Connection" private
если нужен DNS форвардинг
netsh routing ip dnsproxy install
netsh routing ip dnsproxy set interface name="ISP" mode=enable
смотрим результат
netsh routing ip nat dump
удалить все
netsh routing ip nat uninstall
Попутно, если NAT'ить нужно много устройств. Например Wi-Fi, BT, LAN делаем Bridge (мост) и натим на него.
Затем разрешаем форвард пакетиков My Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter
меняем с 0 на 1
Далее ОТКЛЮЧАЕМ службу "Windows Firewall/Internet Connection Sharing (ICS)"
И включаем "Routing and Remote Access"
sc config RemoteAccess start= auto
net start RemoteAccess
просомтр текущей конфигурации
netsh routing ip nat dump
настраиваем NAT
netsh routing ip nat install
смотрим что получилось
netsh routing ip nat show global
netsh routing ip nat add interface "ISP" full
netsh routing ip nat add interface "Local Area Connection" private
если нужен DNS форвардинг
netsh routing ip dnsproxy install
netsh routing ip dnsproxy set interface name="ISP" mode=enable
смотрим результат
netsh routing ip nat dump
удалить все
netsh routing ip nat uninstall
Попутно, если NAT'ить нужно много устройств. Например Wi-Fi, BT, LAN делаем Bridge (мост) и натим на него.
Затем разрешаем форвард пакетиков My Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter
меняем с 0 на 1
Далее ОТКЛЮЧАЕМ службу "Windows Firewall/Internet Connection Sharing (ICS)"
И включаем "Routing and Remote Access"
sc config RemoteAccess start= auto
net start RemoteAccess
Подписаться на:
Сообщения (Atom)