Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Гродненский Форум
24 Август 2025, 21:11:09
Новости, реклама:
   Главная   Новости Гродно Помощь Игры Календарь Войти Регистрация   Меню
Страниц  :   Вниз
  Печать  
Автор Тема: Re: Настройка роутера Linksys WRT54GS...  (Прочитано 10696 раз)
0 Пользователей и 1 Гость смотрят эту тему.
andrey
Почетный гродненец
*****

Репутация: +68/-3
Offline Offline

Пол: Мужской
Сообщений: 1169


www.scrapshop.by

Просмотр профиля WWW
« Ответ #0 : 07 Ноябрь 2007, 15:51:49 »

Логинимся к dd-wrt по SSH:
Если PuTTY насторен логиниться с ключом, то увидим приглашение командной строки:
~ #

Создаем каталог где будут лежать кое-какие необходимые скрипты:
mkdir /jffs/etc/config
Дело в том, что в прошивке dd-wrt рабочие файлы при загрузке копируются в ОЗУ и оттуда исполняются, править файлы можно и в ОЗУ, но только до первой перезагрузки. dd-wrt проверяет ряд папок на наличие файлов со специфическими расширениями, в зависимости от которых и стартует их в определенное время.
Подробнее тут http://www.dd-wrt.com/wiki/index.php/Startup_Scripts

Копируем из временной папки в свежесозданную скрипты, подлежащие дальнейщей правке:
cp /tmp/pptpd_client/ip-up /jffs/etc/config/
cp /tmp/pptpd_client/ip-down /jffs/etc/config/
cp /tmp/pptpd_client/options.vpn /jffs/etc/config/

Создадим скрипт, который скоприрует отредактированные файлы при загрузке роутера обратно в папку /tmp/pptpd_client/
Назвать его можно, как угодно, важно, что бы расширение было .startup (например: vpn_replace.startup):

cd /jffs/etc/config/
vi vpn_replace.startup

p.s. Редактор VI (суперкратко):
i - переход в режим редактирования
ESC - выход в режим комманд
:q - выход без сохранения
:wq - сохранить и выйти
мануал к редактору тут

Вставляем в него текст:
#!/bin/sh
sleep 40
cp /jffs/etc/config/ip-up /tmp/pptpd_client/
cp /jffs/etc/config/ip-down /tmp/pptpd_client/
cp /jffs/etc/config/options.vpn /tmp/pptpd_client/

Сохраняем и выходим: ":wq" + Enter

Делаем скрипт исполняемым
chmod 700 /jffs/etc/config/vpn_replace.startup


Редактируем файл опций: options.vpn
Его содержимое после редактирования:

Код:
defaultroute
lock
noauth
nodetach
refuse-eap
refuse-chap
refuse-mschap
nobsdcomp
nodeflate
#lcp-echo-failure 15
#lcp-echo-interval 3
persist
usepeerdns
idle 0
ip-up-script /tmp/pptpd_client/ip-up
ip-down-script /tmp/pptpd_client/ip-down
ipparam peer-garant
noipdefault
#debug
#mtu 1450
#mru 1450
name {имеющееся имя пользователя}
password {имеющийся пароль}

Файл ip-up после редактирования:
Код:
#!/bin/sh
# parameters
# $1 the interface name used by pppd (e.g. ppp3)
# $2 the tty device name
# $3 the tty device speed
# $4 the local IP address for the interface
# $5 the remote IP address
# $6 the parameter specified by the 'ipparam' option to pppd

REMOTESUB=$(/usr/sbin/nvram get pptpd_client_srvsub)
REMOTENET=$(/usr/sbin/nvram get pptpd_client_srvsubmsk)
case "$6" in
 peer-garant)

  route del default vlan1
  route add -host 10.10.10.10 gw 172.21.0.1
  route add -net 172.20.0.0 netmask 255.255.0.0 gw 172.21.0.1


  /sbin/route add -net $REMOTESUB netmask $REMOTENET dev $1
  /usr/sbin/iptables --insert OUTPUT --source 0.0.0.0/0.0.0.0 --destination $REMOTESUB/$REMOTENET --jump ACCEPT --out-interface $1
  /usr/sbin/iptables --insert INPUT --source $REMOTESUB/$REMOTENET --destination 0.0.0.0/0.0.0.0 --jump ACCEPT --in-interface $1
  /usr/sbin/iptables --insert FORWARD --source 0.0.0.0/0.0.0.0 --destination $REMOTESUB/$REMOTENET --jump ACCEPT --out-interface $1
  /usr/sbin/iptables --insert FORWARD --source $REMOTESUB/$REMOTENET --destination 0.0.0.0/0.0.0.0 --jump ACCEPT --in-interface $1
  /usr/sbin/iptables --insert FORWARD --protocol tcp --tcp-flags SYN,RST SYN --jump TCPMSS --clamp-mss-to-pmtu
  if [ "$(/usr/sbin/nvram get pptpd_client_nat)" = "1" ]; then
      /usr/sbin/iptables --table nat --append POSTROUTING --out-interface $1 --jump MASQUERADE
  fi

 ;;
 *)
esac

#blink DMZ led when iface is up

gpio="gpio"
flash=3
led=7
cur=1
while [ $cur -le $flash ]
  do
   $gpio disable $led
   usleep 10000
   $gpio enable $led
   usleep 10000
   cur=`expr $cur + 1`
  done

exit 0

В конце скриптик, который при выполнении ip-up моргнет светодиодом DMZ три раза.
Еще скрипты: http://www.dd-wrt.com/wiki/index.php/Useful_Scripts

Файл ip-down после редактирования:
Код:
#!/bin/sh
REMOTESUB=$(/usr/sbin/nvram get pptpd_client_srvsub)
REMOTENET=$(/usr/sbin/nvram get pptpd_client_srvsubmsk)
case "$6" in
 peer-garant)

  /sbin/route del -net $REMOTESUB netmask $REMOTENET dev $1
  route add default vlan1
  /usr/sbin/iptables -D OUTPUT --source 0.0.0.0/0.0.0.0 --destination $REMOTESUB/$REMOTENET --jump ACCEPT --out-interface $1
  /usr/sbin/iptables -D INPUT --source $REMOTESUB/$REMOTENET --destination 0.0.0.0/0.0.0.0 --jump ACCEPT --in-interface $1
  /usr/sbin/iptables -D FORWARD --source 0.0.0.0/0.0.0.0 --destination $REMOTESUB/$REMOTENET --jump ACCEPT --out-interface $1
  /usr/sbin/iptables -D FORWARD --source $REMOTESUB/$REMOTENET --destination 0.0.0.0/0.0.0.0 --jump ACCEPT --in-interface $1
  /usr/sbin/iptables -D FORWARD --protocol tcp --tcp-flags SYN,RST SYN --jump TCPMSS --clamp-mss-to-pmtu
  if [ "$(/usr/sbin/nvram get pptpd_client_nat)" = "1" ]; then
      /usr/sbin/iptables --table nat -D POSTROUTING --out-interface $1 --jump MASQUERADE
  fi
  ;;
 *)
esac
exit 0
Еще можно добавить в каталог /jffs/etc/config/ файлик vpn_led.startup:

Код:
#!/bin/sh
I=ppp0
while sleep 1; do
    XFER=`ifconfig $I|grep bytes`
    if [ "$XFER" != "$PXFER" ]; then
      LED='gpio disable 7; usleep 5000 ; gpio enable 7'
      PXFER=$XFER
    else
      LED='gpio enable 7'
    fi

  if [ "$LED" != "$PLED" ]; then
    eval $LED
    PLED=$LED
  fi
done

Каждую секунду проверяет был ли трансфер данных по тунелю ppp0 и, если да, то однократно коротко моргает светодиодом DMZ.

продолжение ниже...
« Последнее редактирование: 18 Ноябрь 2007, 03:01:40 от andrey » Записан

Страниц  :   Вверх
  Печать  
 
Перейти в:  

Войти
Войдите, чтобы добавить комментарий

Войдите через социальную сеть

Имя пользователя:
Пароль:
Продолжительность сессии (в минутах):
Запомнить:
Забыли пароль?

Контакт
Powered by MySQL Powered by PHP Мобильная версия
Powered by SMF 1.1.20
SMF © 2006-2025, Simple Machines
Simple Audio Video Embedder
| Sitemap
Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0,107 секунд. Запросов: 20.