Home FreeBSD FreeBSD полезные мелочи
FreeBSD полезные мелочи

Перенос FreeBSD с одного жёсткого диска на другой

E-mail Печать PDF

Перенос FreeBSD с одного жёсткого диска на другой

Автор: lissyara.
Оригинал: http://www.lissyara.su/articles/freebsd/trivia/move_system_between_hard_drives/

Появилась необходимость перенести работающую систему - почтовый сервер (FreeBSD4.11) с одного диска на другой. На старом был массив, софтверный RAID организованный при помощи atacontrol, и в нём отдуплился один диск. Такого же не было, купили два новых, большего размеру, посему на тестовой машине поставил эксперимент по переносу меньшего диска на больший. Его листинг и выкладываю, с комментариями.
Имеем один диск в системе:/usr/home/lissyara/>df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 504M 72M 391M 16% /
/dev/ad0s1e 2.0G 14K 1.8G 0% /tmp
/dev/ad0s1f 20G 3.7G 14G 21% /usr
/dev/ad0s1g 5.1G 6.1M 4.6G 0% /var
procfs 4.0K 4.0K 0B 100% /proc


/usr/home/lissyara/>dmesg | grep "^[a][t|d][a|0-9]"
atapci0: <VIA 8235 ATA133 controller> port 0xfc00-0xfc0f at device 17.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
ad0: 29325MB <Maxtor 6E030L0> [59582/16/63] at ata0-master UDMA133
/usr/home/lissyara/>


После установки второго на второй канал ATA получаем:/usr/home/lissyara/>dmesg | grep "^[a][t|d][a|0-9]"
atapci0: <VIA 8235 ATA133 controller> port 0xfc00-0xfc0f at device 17.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
ad0: 29325MB <Maxtor 6E030L0> [59582/16/63] at ata0-master UDMA133
ad2: 190782MB <ST3200822A> [387621/16/63] at ata1-master UDMA100
/usr/home/lissyara/>


Диск разбиваем при помощи /stand/sysinstall, можно руками - но это не для слабонервных, я делал один раз в жизни, но впечатлений хватило надолго. Не забываем сделать раздел активным (загрузочным)! Прикол в следующем, если для будущего корневого раздела, поставить точку монтирования отличную от "/" то он не присваивает разделу букву "a". Нужно проделать такие комбинации - установить при создании раздела точку монтирования "/", затем поменять её клавишей "M". Disk: ad2 Partition name: ad2s1 Free: 389668226 blocks (190267MB)

Part Mount Size Newfs Part Mount Size Newfs
---- ----- ---- ----- ---- ----- ---- -----
ad2s1a / 512MB UFS Y


Получится так:Disk: ad2 Partition name: ad2s1 Free: 389668226 blocks (190267MB)

Part Mount Size Newfs Part Mount Size Newfs
---- ----- ---- ----- ---- ----- ---- -----
ad2s1a /mnt/root 512MB UFS Y


Потом второй прикол, то, что если сразу все разделы настругать, то он не разобьёт диск, ругнётся на какую-то ошибку. Посему, записываем изменения буковкой "W", выходим, заходим снова в /stand/sysinstall и делаем остальные разделы. Получается примерно так (корневой раздел не надо по второму разу монтировать, он уже разбит и смонтирован)Disk: ad2 Partition name: ad2s1 Free: 0 blocks (0MB)

Part Mount Size Newfs Part Mount Size Newfs
---- ----- ---- ----- ---- ----- ---- -----
ad2s1a <none> 512MB UFS Y
ad2s1b swap 2048MB SWAP
ad2s1e /mnt/tmp 2048MB UFS+S Y
ad2s1f /mnt/usr 153600MB UFS+S Y
ad2s1g /mnt/var 32571MB UFS+S Y


Снова сохраняем изменения нажатием "W", выходим, и имеем такой расклад:/usr/home/lissyara/>df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 504M 72M 391M 16% /
/dev/ad0s1e 2.0G 18K 1.8G 0% /tmp
/dev/ad0s1f 20G 3.7G 14G 21% /usr
/dev/ad0s1g 5.1G 6.2M 4.6G 0% /var
procfs 4.0K 4.0K 0B 100% /proc
/dev/ad2s1a 504M 2.0K 464M 0% /mnt/root
/dev/ad2s1e 2.0G 2.0K 1.8G 0% /mnt/tmp
/dev/ad2s1f 148G 2.0K 136G 0% /mnt/usr
/dev/ad2s1g 31G 2.0K 29G 0% /mnt/var


Все названия записываем, или копируем экран. Перезагружаемся в однопользовательский режим, для чего надо жмякнуть `ESC` на отсчёте 10 секунд, и ввести:boot -s


После загрузки монтируем разделы, описанные в /etc/fstab, такой командой:# mount -a


Затем монтируем разделы, на которые будем копировать инфу (например /tmp монтировать не обязательно, обычно там ничё нету, и вообще он при перезагрузках у меня очищается.)# mount /dev/ad0s1a /mnt/root
# mount /dev/ad2s1f /mnt/usr
# mount /dev/ad2s1g /mnt/var


После чего дампим инфу и переносим (каюсь, я это делал не в однопользовательском режиме, - лень было переписывать все команды руками, да и система не боевая, на рабочем серваке тоже буду делать в однопользовательском)
# ( dump -0f - / ) | ( cd /mnt/root ; restore -rf - )
DUMP: Date of this level 0 dump: Thu Aug 10 17:59:02 2006
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/ad0s1a (/) to standard output
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 74881 tape blocks.
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
expected next file 21899, got 21898
DUMP: DUMP: 75574 tape blocks
DUMP: finished in 11 seconds, throughput 6870 KBytes/sec
DUMP: DUMP IS DONE
#
#
#
# ( dump -0f - /var ) | ( cd /mnt/var ; restore -rf - )
DUMP: Date of this level 0 dump: Thu Aug 10 17:59:25 2006
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/ad0s1g (/var) to standard output
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 6638 tape blocks.
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: DUMP: 7512 tape blocks
DUMP: finished in 5 seconds, throughput 1502 KBytes/sec
DUMP: DUMP IS DONE
#
#
#
# ( dump -0f - /usr ) | ( cd /mnt/usr ; restore -rf - )
DUMP: Date of this level 0 dump: Thu Aug 10 17:59:55 2006
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/ad0s1f (/usr) to standard output
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 3957963 tape blocks.
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: 61.22% done, finished in 0:03
DUMP: 99.59% done, finished in 0:00
DUMP: DUMP: 4080794 tape blocks
DUMP: finished in 636 seconds, throughput 6416 KBytes/sec
DUMP: DUMP IS DONE
#


Если разделы совпадают, по названиям, то ничё не делаем, если же не совпадают то вначале правим файл /etc/fstab. После чего даём такие команды:# sync
# umount /mnt/root/
# umount /mnt/usr/
# umount /mnt/var/
# shutdown -h now


Выключаем питание, убираем старый хард, на его место подрубаем новый. Загружаемся.
Смотрим, чё получилось:/usr/home/lissyara/>df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 504M 72M 391M 16% /
/dev/ad0s1e 2.0G 10.0K 1.8G 0% /tmp
/dev/ad0s1f 148G 3.8G 132G 3% /usr
/dev/ad0s1g 31G 6.8M 29G 0% /var
procfs 4.0K 4.0K 0B 100% /proc
/usr/home/lissyara/>


Всё нормально. У меня корректно перенеслось всё даже в многопользовательском режиме, но это тестовая машина, и хотя на ней стит куча ПО, с ней кроме меня никто не работает. Посему не надо на рабочих серваках так делать. Надо в однопользовательском!

Обновлено 28.05.2010 13:17
 

Редирект порта с гейта на внутреннюю машину (natd)

E-mail Печать PDF

Редирект порта с гейта на внутреннюю машину (natd)

Автор: lissyara.
Оригинал: http://www.lissyara.su/articles/freebsd/trivia/natd_redirect_port/

Понадобилось выпустить локальную машину по одному из портов в инет (www сервер, но, ввиду занятости 80 порта, снаружи он будет на 81-м. А вообще народ это юзает для всяких edonkey и прочего хламу). Гейт на FreeBSD6.0 - на нём уже стоял natd - народу из локалки надо же лазить в инет. Почитавши man natd, конкретно, раздел про redirect_port, стало ясно - сложностей особых нету. Для начала, для собственного удобства, решил переделать запуск natd - у меня он стартовал из /etc/rc.conf с указанием в виде флагов всех ключей запуска. Неудобно - а если завтра понадобится ещё на 5-ти машинах подобное мутить? Там строка запуска в километр будет. Итак. Приводим /etc/rc.conf к такому состоянию (показан кусок касающийся тока natd):# NATD
natd_enable="YES"
natd_flags="-f /etc/natd.conf"


ну и создаём указанный файл, такого содержания:# Интерфейс на котором работает natd (внешний)
interface rl0
# Пробовать оставить тот же самый порт у исходящих пакетов.
# При таком флаге лучше работают протоколы типа RPC. Если это
# невозможно то порт будет изменён.
same_ports
# nat`ить только частные сети (у вас же внутри частная сеть?)
unregistered_only
# самое интересное - то, ради чего все и затевалось.
# Редиректим пакеты по протоколу tcp, приходящие на внешний порт
# 81 на машину с адресом 192.168.20.251 и на 80-й порт.
redirect_port tcp 192.168.20.251:80 81


Заметтьте в файле используется не краткая а полная форма записи ключей. Потом перезапускаем машину (или убиваем natd и запускаем с командной строки с нужными ключами-файлами), интернет должен работать как и работал, а вот при попытке зайти на 81 порт - скорей всего будет облом. Файрволл. Я убил минут 30 пока понял почему оно работате так и только так:${FwCMD} add allow tcp from any to 192.168.20.251 80 via ${LanOut}


Видать, пакеты в nat попадают ещё до файрволла, потому и приходится изгаляться с разрешением внутреннего адреса на внешнем интерфейсе (Вообще, если вдаваться в подробности - то пакеты через файр проходят неоднократно, и на каком из заходов действует это правило - я не знаю :()
Вот тока после этого и заработало.

Обновлено 28.05.2010 13:18
 

burncd - штатная программа FreeBSD для записи CD-ROM

E-mail Печать PDF

burncd - штатная программа FreeBSD для записи CD-ROM

Автор: lissyara.
Оригинал: http://www.lissyara.su/articles/freebsd/trivia/burncd/

В составе FreeBSD есть консольная программа для записи дисков burncd (причём, я так думаю, половина ГУЁ`вых, если не больше приложений - это просто надстройка над ней). Собственно - первый резонный вопрос - а зачем это надо? Мне понадобилось недавно - упали форточки на моей домашней машине - а дома, как на зло, ни одного загрузочного сидюка - все на работе. Зато стоит вторая машина с фряхой, на ней все дистрибутивы, iso`шники... Тока ГУИ нет - она у меня для опытов, да как файрволл - от локалки отделиться - там дофига народу с машинами заражёнными вирями - долго без файрволла не поторчишь, плюс малолетняя братва развлекается - пытается сломать всё что есть :(((
Поехали. Смотрим, нашёлся ли сидюк вообще:/usr/home/lissyara/>dmesg | grep CD
acd0: CD-RW <TEAC DW-552G> at ata1-master PIO4
/usr/home/lissyara/>


Нашёлся. Правда у меня комбо привод - DVD читает, CD - пишет, да и PIO4 почему-то а не UDMA... Ну да посмотрим. Для начала стираем диск (RW):/usr/home/lissyara/>burncd -f /dev/acd0c -v -s 10 blank
blanking CD, please wait..
blanking CD - 14 % done
blanking CD - 37 % done
blanking CD - 100 % done
/usr/home/lissyara/>


Ключик -s 10 - это для указания скорости. Также можно стирать диск полностью - это, по времени дольше, но лучше:/usr/home/lissyara/>burncd -f /dev/acd0c -v -s max erase
erasing CD, please wait..
erasing CD - 12 % done
erasing CD - 25 % done
erasing CD - 100 % done
/usr/home/lissyara/>


Записываем образ на диск:/usr/home/lissyara/>ls -lah | grep iso
-rw-r--r-- 1 lissyara wheel 43M 26 дек 17:41 6.0-RELEASE-i386-bootonly.iso
-rw-r--r-- 1 lissyara wheel 679M 27 дек 10:03 iNFR_XP_boot_CD.iso
/usr/home/lissyara/>burncd -v -s max -f /dev/acd0c data iNFR_XP_boot_CD.iso fixate
adding type 0x08 file iNFR_XP_boot_CD.iso size 695414 KB 347707 blocks
next writeable LBA 0
addr = 0 size = 712103936 blocks = 347707
writing from file iNFR_XP_boot_CD.iso size 695414 KB
written this track 4832 KB (0%) total 4832 KB
written this track 222816 KB (32%) total 222816 KB
written this track 695414 KB (100%) total 695414 KB
fixating CD, please wait..
/usr/home/lissyara/>
/usr/home/lissyara/>mount /cdrom
/usr/home/lissyara/>ls -lah /cdrom
total 1687
dr-xr-xr-x 1 root wheel 2K 16 май 2005 .
drwxr-xr-x 17 root wheel 512B 5 дек 17:36 ..
-r-xr-xr-x 1 root wheel 186B 10 апр 2005 autorun.inf
dr-xr-xr-x 1 root wheel 2K 16 май 2005 bcdw
-r-xr-xr-x 1 root wheel 6K 13 май 2005 bootcat.ini
dr-xr-xr-x 1 root wheel 4K 16 май 2005 bootcd
-r-xr-xr-x 1 root wheel 4K 15 май 2009 bootfont.bin
-r-xr-xr-x 1 root wheel 2K 16 май 2005 bootsect.bin
-r-xr-xr-x 1 root wheel 1M 28 май 2004 hiren6.ifr
dr-xr-xr-x 1 root wheel 2K 16 май 2005 i386
-r-xr-xr-x 1 root wheel 216K 17 фев 2005 infr@_cd_cover.rar
dr-xr-xr-x 1 root wheel 4K 16 май 2005 programs
-r-xr-xr-x 1 root wheel 0B 15 май 2009 win51ip
-r-xr-xr-x 1 root wheel 0B 15 май 2009 win51ip.sp1
-r-xr-xr-x 1 root wheel 0B 23 окт 2004 win51ip.sp2
-r-xr-xr-x 1 root wheel 196B 12 окт 2004 winbom.ini
-r-xr-xr-x 1 root wheel 2K 21 апр 2004 xpsp2.bin
/usr/home/lissyara/>umount /cdrom
/usr/home/lissyara/>


Пишет :). Также диск можно стирать совсем (blank данные не трогает - тока заголовок трёт, а вот ключ erase трёт насовсем, но и времени на это уходит намного больше.):/usr/home/lissyara/>burncd -f /dev/acd0c -v -s max erase
erasing CD, please wait..
erasing CD - 9 % done
erasing CD - 100 % done
/usr/home/lissyara/>


Что касается создания образов дисков в FreeBSD - для этого есть прога в портах, живёт она в /usr/ports/sysutils/cdrtools. Выглядеть это будет так:/usr/home/lissyara/>ls -lah | grep Win
drwxr-xr-x 7 lissyara wheel 512B 27 дек 14:11 Win2003sp1_RUS_corp
drwxr-xr-x 10 lissyara wheel 512B 27 дек 14:11 WinXPsp2_integr
/usr/home/lissyara/>mkisofs -o Win2003sp1_RUS_corp.iso Win2003sp1_RUS_corp
Using SCANS000.EXE;1 for Win2003sp1_RUS_corp/VALUEADD/MSFT/USMT/SCANSTATE_A.EXE
(SCANSTATE.EXE)
1.63% done, estimate finish Tue Dec 27 14:22:13 2005
3.25% done, estimate finish Tue Dec 27 14:21:43 2005
.............................................................
97.39% done, estimate finish Tue Dec 27 14:21:59 2005
99.02% done, estimate finish Tue Dec 27 14:22:00 2005
Total translation table size: 0
Total rockridge attributes bytes: 0
Total directory bytes: 497664
Path table size(bytes): 786
Max brk space used 639ac4
308039 extents written (601 MB)
/usr/home/lissyara/>
/usr/home/lissyara/>la -lah | grep Win
drwxr-xr-x 7 lissyara wheel 512B 27 дек 14:11 Win2003sp1_RUS_corp
-rw-r--r-- 1 lissyara wheel 601M 27 дек 14:22 Win2003sp1_RUS_corp.iso
drwxr-xr-x 10 lissyara wheel 512B 27 дек 14:11 WinXPsp2_integr
/usr/home/lissyara/>


Это простой диск, не загрузочный. Загрузочный будет чуть иначе:/usr/home/lissyara/>mkisofs -b xpboot.bin -no-emul-boot -boot-load-size 4 -r -o \
? WinXPsp2_integr.iso WinXPsp2_integr/
Using SCANS000.EXE;1 for WinXPsp2_integr/VALUEADD/MSFT/USMT/SCANSTATE_A.EXE
(SCANSTATE.EXE)
Size of boot image is 4 sectors -> No emulation
1.75% done, estimate finish Tue Dec 27 14:48:39 2005
3.49% done, estimate finish Tue Dec 27 14:48:39 2005
........................................
97.67% done, estimate finish Tue Dec 27 14:49:23 2005
99.42% done, estimate finish Tue Dec 27 14:49:22 2005
Total translation table size: 2048
Total rockridge attributes bytes: 597929
Total directory bytes: 1269760
Path table size(bytes): 2642
Max brk space used 61e000
286674 extents written (559 MB)
/usr/home/lissyara/>ls -lah | grep Win
drwxr-xr-x 7 lissyara wheel 512B 27 дек 14:11 Win2003sp1_RUS_corp
-rw-r--r-- 1 lissyara wheel 601M 27 дек 14:22 Win2003sp1_RUS_corp.iso
drwxr-xr-x 10 lissyara wheel 512B 27 дек 14:11 WinXPsp2_integr
-rw-r--r-- 1 lissyara wheel 559M 27 дек 14:55 WinXPsp2_integr.iso
/usr/home/lissyara/>


Ну, пожалуй, по записи дисков всё. Самое главное - куда искать указал, кому надо что-то другое - сами найдут.

P.S. насколько я понял из манов - тот burncd что в 4-ке с DVD толи не работает, то ли эта возможность не афишируется, а вот в 6-ке уже есть специальные ключи для форматирования DVD-RW - значит точно пашет. Появится привод - попробую. А пока тока вот что нашёл.

Обновлено 28.05.2010 13:18
 

clri - утилита обнуления инод

E-mail Печать PDF

clri - утилита обнуления инод

Автор: lissyara.
Оригинал: http://www.lissyara.su/articles/freebsd/file_system/clri/

clri - утилита для удаления "невидимых" файлов (невидимость - это следствие ошибок файловой ситемы) Она забивает нулями первые 64 байта дескриптора файла - в итоге все остальные блоки файла определяются как потерянные, потому после clri надо запускать fsck
/usr/home/lissyara/>su
/usr/home/lissyara/>mount /dev/ad1s1a /mnt
/usr/home/lissyara/>cd /mnt
/mnt/>mkdir clri
/mnt/>cd clri/
/mnt/clri/>touch 1.txt
/mnt/clri/>touch 2.txt
/mnt/clri/>touch 3.txt
/mnt/clri/>ls -i
188417 1.txt 188418 2.txt 188419 3.txt
/mnt/clri/>clri /dev/ad1s1a 188417
clri: /dev/ad1s1a: Operation not permitted
/mnt/clri/>cd /
//>umount /mnt
//>clri /dev/ad1s1a 188417
clearing 188417
//>clri /dev/ad1s1a 188418
clearing 188418
//>clri /dev/ad1s1a 188419
clearing 188419
//>fsck /dev/ad1s1a
** /dev/ad1s1a
** Last Mounted on /mnt
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
UNALLOCATED I=188417 OWNER=root MODE=0
SIZE=0 MTIME=Jan 1 03:00 1970
NAME=/clri/1.txt

REMOVE? [yn] y

UNALLOCATED I=188418 OWNER=root MODE=0
SIZE=0 MTIME=Jan 1 03:00 1970
NAME=/clri/2.txt

REMOVE? [yn] y

UNALLOCATED I=188419 OWNER=root MODE=0
SIZE=0 MTIME=Jan 1 03:00 1970
NAME=/clri/3.txt

REMOVE? [yn] y

** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
FREE BLK COUNT(S) WRONG IN SUPERBLK
SALVAGE? [yn] y

SUMMARY INFORMATION BAD
SALVAGE? [yn] y

BLK(S) MISSING IN BIT MAPS
SALVAGE? [yn] y

241 files, 489 used, 1012502 free (38 frags, 126558 blocks, 0.0% fragmentation)

***** FILE SYSTEM WAS MODIFIED *****
//>mount /dev/ad1s1a /mnt
//>cd /mnt/clri/
/mnt/clri/>ls
/mnt/clri/>


Нужно пояснить, что файлики 1.txt, 2.txt, 3.txt - это для пробы, типа они и "неудаляются". Для просмотра номера инода файла пользуйтесь командой ls -i, или как вариант man fsdb.

Обновлено 28.05.2010 13:18
 

VPN по протоколу PPTP на PoPToP.

E-mail Печать PDF

VPN по протоколу PPTP на PoPToP.

Автор: lissyara.
Оригинал: http://www.lissyara.su/articles/freebsd/security/poptop/

Подкинули халтуру - надо организовать, чтобы люди могли из дома ходить в рабочую сетку, терминально работать с 1с, и прочие прелести :) Копание инета дало - форточки много чего поддерживают, но для данного случая подходил только протокол PPTP (мне не хотелось замутов с ключами, да и настройка виндовой части там сложней - а инструктировать тётеньку-заказчика не было никакого желания, т.к. она малость подтормаживала :))
PPTP (Point-to-Point Tunneling Protocol) — туннельный протокол типа точка-точка. Не самый удачный выбор, т.к. спецификация на него не была ратифицированна - он не считается настолько же безопастным протоколом как другие VPN протоколы - IPSec, например...
Первым делом проверяем наличие псевдо-устройства tun и ppp в ядре - без них работать не будет.pseudo-device ppp 1 # Kernel PPP
pseudo-device tun # Packet tunnel.


Если они закомментированы - раскомментируем и пересобираем ядро. Затем обновляем порты и устанавливаем PoPToP: /root/>cd /usr/ports/
/usr/ports/>make search name='poptop'
Port: poptop-1.2.3
Path: /usr/ports/net/poptop
Info: Windows 9x compatible PPTP (VPN) server
Maint: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
B-deps: expat-1.95.8_3 gettext-0.14.5 gmake-3.80_2 libiconv-1.9.2_1
R-deps: rc_subr-1.31_1
WWW: http://www.poptop.org/

/usr/ports/>cd /usr/ports/net/poptop
/usr/ports/net/poptop/>make && make install && make clean


После инсталляции правим конфиг PoPToP до такого состояния:
/usr/local/etc/pptpd.confoptions /etc/ppp/options.pptpd
debug
noipparam


debug - это только на время отладки, потом можно закомментровать. И не забудте noipparam - без неё работать не будет, сам наступил на эти грабли, ковырялся два дня, ползал по инету в поисках ответов на вопрос - что за ругань в логах на Warning: Label ipparam rejected -direct connection: Configuration label not found


а кончилось всё как всегда - надо было прочесть man на pptpd.conf :)
Затем создаём/радактируем следующие файлы:
/etc/ppp/ppp.confpptp:
enable proxy # для работы внутри локальной сети
# (позволяет делать запрося ARP, но только
# в случае, если выдаваемый клиенту адрес
# принадлежит этой сети)
set dns 213.85.16.7 # адрес DNS
set ifaddr 192.168.20.240 # внутренний адрес
set timeout 300 # таймаут простоя до разрыва соединения
# если 0 - то не рвётся вообще
enable MSChapV2 # протокол по которому шифруемся
set nbns 192.168.20.254 # WINS


/etc/ppp/options.pptpdproxyarp
+MSChap-V2 mppe-128 mppe-stateless


/etc/ppp/ppp.secret# файлик с именами пользователей, паролями и IP адресами выдваемыми пользователям
# User_Name User_Password User_IP_address
lissyara 123 192.168.20.230
liss2 123 192.168.20.235


Собственно всё - добавляем строку в /etc/rc.conf и запускаем PoPToP:/etc/ppp/>echo 'pptpd_enable="YES"' >> /etc/rc.conf
/etc/ppp/>/usr/local/etc/rc.d/pptpd.sh start
Starting pptpd.
/etc/ppp/>ps -axl | grep pptpd
0 4448 1 25 2 0 936 524 select Ss ?? 0:00.02 /usr/local/sbin/pptpd
/etc/ppp/>sockstat | grep pptpd
root pptpd 4448 6 tcp4 *:1723 *:*
root pptpd 4448 5 dgram syslogd[120]:3
/etc/ppp/>


После чего надо разрешить порт 1723 в файрволле, траффик по интерфейсу tun0 и протокол GRE:allow tcp from any to me 1723
allow gre from any to any
allow ip from any to any via tun0


Правила добавляем гдень-ть вверху файрволла. (НО! Если через машину ходит траффик изнутри сети - т.е. это шлюз, добавлять надо после NAT - иначе ничё не заработает, т.к. пакеты выпадут до трансляции адресов :))
Пробуем что получилось, для контроля смотрим логи, для чего расскомметируем строку в файле /etc/syslog.conf*.* /var/log/all.log


После чего создаём этот файл и перезапускаем syslogd:/root/>touch /var/log/all.log
/root/>killall -1 syslogd
/root/>tail -f /var/log/all.log
Dec 4 13:53:45 lissyara syslogd: restart


Там и смотрим происходящее во время подключения. Не забудте после настройки закомментировать строку в syslog.conf и перезапустить syslogd.
Настройка форточек проста до безобразия: Создаём новое соединение мастером, выбираем подключаться к сети на рабочем месте, вводим логин, пароль, IP или имя сервака и всё...

Обновлено 28.05.2010 13:36
 


Страница 2 из 5.

  • Вопросы по поводу написанных статей можно обсудить в нашем сообществе в Вконтакте / Questions about written articles can be discussed in our community in Vkontakte Вопросы по поводу написанных статей можно обсудить в нашем сообществе в  Вконтакте / Questions about written articles can be discussed in our community in Vkontakte
Яндекс.Метрика