Bekijk de volledige versie : Где должны располагаться post- и pre-файлы в файловой системе wl-500?
Прошил 1.9.2.7-6a.3
В строке post-mount находится следующее
[
#!/bin/sh
vsftpd /opt/etc/vsftpd.conf &
При перезагрузке не стартует , хотя если зайти телнетом и заустить в ручную
post-mount
то ftp сервер запускается
Сам post-mount испоняемый .
Для начала посомтри
flashfs status
Да как бы всегда после операций с post - файлами выполняю
flashfs save && flashfs commit && flashfs enable
Если я правильно понимаю, если версия firmware изменилась, надобно разочек с нею забутится (при этом ничего из post* не исполнится), и уже с новой версией сказать "flashfs enable", и все будет хорошо.
это следует, как я понимаю, изwl500g.dyndns.org (http://wl500g.dyndns.org/).
Re-enabling flashfs load after the firmware upgrade
Once you've upgraded/downgraded your firmware you could notice, that /usr/local becomes empty on boot. Don't worry, everything is here, but was not loaded to prevent errors. If you feel it's ok to re-enable it, then just type the following
flashfs enable
to re-enable flashfs. After that you need to reboot for changes to take effect.
Сам так делал - вроде работает.
HTH,
Roofcat
Само обой это сделано, иначе post файлы не сохранились бы при перезагрузке . Причем post-boot и post-firewall грузятся запуская dropbear и tthpd .
Ерунда гдето в самом скрипте даже если вношу
#!/bin/sh
vsftpd /opt/etc/vsftpd.conf & в post-boot vsftpd не стартует но стоит в ручную запуститить post-boot как все опять работает - ерунда какаято :(
/opt как монтируется? или он прямо в корневой файловой системе?
А какие вообще разделы есть на диске? Т.е. что показывает mount?
post-mount будет работать, только если действительно что-то было подмонтированно, кроме корневого раздела.
Можно ещё в post-mount добавить в конец строчку:
logger post-mount
Она должна в случае исполнения писать в system log.
как и когда вызываеются скрипты post-boot post-mount pre-boot post-firewall наверное есть и другие
какие особенности монтирования? Например у меня не срабатывает
/bin/mount -o bind /tmp/harddisk/opt /opt
/sbin/swapon /dev/scsi/host0/bus0/target0/lun0/part2
приходится перед первым давать sleep 15 перед вторым sleep 5. Впечатление, что mount тут же возвращает консоль, но еще несколько секунд монтирует и не дает выполняться любым другим командам монтировки.
Если ставлю эти команды в post-mount не срабатывают, срабатывают в post-boot. С post-mount разобрался: забыл после darkstat поставить & - скрипт и висел на этой строке и ничего не выполнял после darkstat.
Есть ещё pre-shutdown.
swap в данном случае стоит включать в post-boot, чтобы usb модули уже были загружены.
В отношении /tmp/harddisk/opt. Работать должно из post-mount, обязательно проверьте, что есть право на исполнение (chmod +x) и первая строчка - #!/bin/sh
/tmp/harddisk монтируется?
Как вариант отладки - делаете в post-mount так:
mount -obind /tmp/harddisk/opt /opt > /tmp/1 2>&1
и потом смотрите /tmp/1 - там будут все сообщения об ошибках.
mount работает синхронно, т.е. после возврата оно д.б. смонтировано или нет.
swapon в post-boot нормально заработал - монтирует без задержек.
монтировка /opt выдает ошибку
mount: Mounting /tmp/harddisk/opt on /opt failed: No such file or directory
я вручную не монтирую /tmp/harddisk, наверное он автомонтируется с задержкой.
Есть ли скрипт, который запускается после автоматического монтирования диска? Я хочу чтобы можно было вынуть и вставить USB-диск и этот скрипт отработал.
Tsvetkov
03-09-2005, 22:42
OlegI
у меня так было когда форматнул винт без -j
mke2fs -j /dev/scsi/host0/bus0/target0/lun0/part1
ps кажись оно
спасибо! я его сформатировал под Linux как ext3, вроде с журналом. Потом попробую посмотреть опции.
Еще заметил - если на ext3 есть проблемы, то роутер дико тормозит и может показаться что он подвис. Поэтому если у кого проблемы с периодическим "подвисанием" - можно проверить разделы на целостность.
Обнаружилась такая беда, если флэшка отвалилась во время загрузки (например сбойная фс), то post-boot сам больше не стартует (при reboot например), т.е. или ручками запускать, или флэшку выдирать.
Asus WL-500g
Firmware 1.9.2.7-6b
Флэшка отваливается так:
scsi0 : SCSI emulation for USB Mass Storage devices
Vendor: KINGSTON Model: USB DRIVE Rev: 1.12
Type: Direct-Access ANSI SCSI revision: 02
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
SCSI device sda: 251904 512-byte hdwr sectors (129 MB)
sda: Write Protect is off
Partition check:
/dev/scsi/host0/bus0/target0/lun0:usb_control/bulk_msg: timeout
usb-ohci.c: unlink URB timeout
Не верю. :D Если серьёзно, то причины не видно и убедиться в этом я не могу. Может Вы из post-boot на флешку лезете?
Не верю. :D Если серьёзно, то причины не видно и убедиться в этом я не могу. Может Вы из post-boot на флешку лезете?
А придется. Ибо так и есть - вот опять забыл флэшку выдернуть, лезу теперь через telnet.
[admin@thunderbird root]$ cat /usr/local/sbin/post-boot
#!/bin/sh
# Start dropbear SSH daemon
dropbear
# Start Samba server
/usr/sbin/smbd -D
/usr/sbin/nmbd -D
dmesg после подключения флэшки:
hub.c: new USB device 00:04.0-1, assigned address 2
scsi0 : SCSI emulation for USB Mass Storage devices
usb_control/bulk_msg: timeout
usb-ohci.c: unlink URB timeout
теперь после ребута:
SCSI subsystem driver Revision: 1.00
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
scsi0 : SCSI emulation for USB Mass Storage devices
Vendor: KINGSTON Model: USB DRIVE Rev: 1.12
Type: Direct-Access ANSI SCSI revision: 02
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
SCSI device sda: 251904 512-byte hdwr sectors (129 MB)
sda: Write Protect is off
Partition check:
/dev/scsi/host0/bus0/target0/lun0:<6>usb.c: USB disconnect on device 00:04.0-1
address 2
eth0: no IPv6 routers present
eth2: no IPv6 routers present
hub.c: Cannot enable port 1 of hub 1, disabling port.
hub.c: Maybe the USB cable is bad?
eth1: no IPv6 routers present
br0: no IPv6 routers present
usb_control/bulk_msg: timeout
usb-ohci.c: unlink URB timeout
Фсё. post-boot не стартанул! В догонку сислог:
[admin@thunderbird root]$ cat /tmp/syslog.log
Jan 1 00:00:05 syslogd started: BusyBox v1.00 (2005.05.11-18:29+0000)
Jan 1 00:00:05 kernel: Setting the PFC value as 0x15
Jan 1 00:00:05 kernel: Determined physical RAM map:
Jan 1 00:00:05 kernel: memory: 01000000 @ 00000000 (usable)
Jan 1 00:00:05 kernel: On node 0 totalpages: 4096
Jan 1 00:00:05 kernel: zone(0): 4096 pages.
Jan 1 00:00:05 kernel: zone(1): 0 pages.
Jan 1 00:00:05 kernel: zone(2): 0 pages.
Jan 1 00:00:05 kernel: Kernel command line: root=/dev/mtdblock2 noinitrd init=/
linuxrc console=ttyS0,115200
Jan 1 00:00:05 kernel: CPU: BCM4710 rev 0 at 125 MHz
Jan 1 00:00:05 kernel: !unable to setup serial console!
Jan 1 00:00:05 kernel: Calibrating delay loop... 82.94 BogoMIPS
Jan 1 00:00:05 kernel: Memory: 13868k/16384k available (1767k kernel code, 2516
k reserved, 248k data, 72k init, 0k highmem)
Jan 1 00:00:05 kernel: Dentry cache hash table entries: 2048 (order: 2, 16384 b
ytes)
Jan 1 00:00:05 kernel: Inode cache hash table entries: 1024 (order: 1, 8192 byt
es)
Jan 1 00:00:05 kernel: Mount-cache hash table entries: 512 (order: 0, 4096 byte
s)
Jan 1 00:00:05 kernel: Buffer-cache hash table entries: 1024 (order: 0, 4096 by
tes)
Jan 1 00:00:05 kernel: Page-cache hash table entries: 4096 (order: 2, 16384 byt
es)
Jan 1 00:00:05 kernel: Checking for 'wait' instruction... unavailable.
Jan 1 00:00:05 kernel: POSIX conformance testing by UNIFIX
Jan 1 00:00:05 kernel: PCI: Fixing up bus 0
Jan 1 00:00:05 kernel: PCI: Fixing up bridge
Jan 1 00:00:05 kernel: PCI: Fixing up bus 1
Jan 1 00:00:05 kernel: Linux NET4.0 for Linux 2.4
Jan 1 00:00:05 kernel: Based upon Swansea University Computer Society NET3.039
Jan 1 00:00:05 kernel: Initializing RT netlink socket
Jan 1 00:00:05 kernel: Starting kswapd
Jan 1 00:00:05 kernel: Journalled Block Device driver loaded
Jan 1 00:00:05 kernel: devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csir
o.au)
Jan 1 00:00:05 kernel: devfs: boot_options: 0x1
Jan 1 00:00:05 kernel: NTFS driver v1.1.22 [Flags: R/O]
Jan 1 00:00:05 kernel: pty: 256 Unix98 ptys configured
Jan 1 00:00:05 kernel: Serial driver version 5.05c (2001-07-08) with MANY_PORTS
SHARE_IRQ SERIAL_PCI enabled
Jan 1 00:00:05 kernel: loop: loaded (max 8 devices)
Jan 1 00:00:05 kernel: PPP generic driver version 2.4.2
Jan 1 00:00:05 kernel: PPP Deflate Compression module registered
Jan 1 00:00:05 kernel: PPP BSD Compression module registered
Jan 1 00:00:05 kernel: MPPE/MPPC encryption/compression module registered
Jan 1 00:00:05 kernel: Amd/Fujitsu Extended Query Table v1.1 at 0x0040
Jan 1 00:00:05 kernel: Physically mapped flash: Swapping erase regions for brok
en CFI table.
Jan 1 00:00:05 kernel: number of CFI chips: 1
Jan 1 00:00:05 kernel: Flash device: 0x400000 at 0x1fc00000
Jan 1 00:00:05 kernel: Physically mapped flash: squashfs filesystem found at bl
ock 942
Jan 1 00:00:05 kernel: Creating 5 MTD partitions on "Physically mapped flash":
Jan 1 00:00:05 kernel: 0x00000000-0x00040000 : "pmon"
Jan 1 00:00:05 kernel: 0x00040000-0x003e0000 : "linux"
Jan 1 00:00:05 kernel: 0x000eba00-0x003e0000 : "rootfs"
Jan 1 00:00:05 kernel: 0x003f0000-0x00400000 : "nvram"
Jan 1 00:00:05 kernel: 0x003e0000-0x003f0000 : "config"
Jan 1 00:00:05 kernel: sflash: chipcommon not found
Jan 1 00:00:05 kernel: NET4: Linux TCP/IP 1.0 for NET4.0
Jan 1 00:00:05 kernel: IP Protocols: ICMP, UDP, TCP
Jan 1 00:00:05 kernel: IP: routing cache hash table of 512 buckets, 4Kbytes
Jan 1 00:00:05 kernel: TCP: Hash tables configured (established 1024 bind 2048)
Jan 1 00:00:05 kernel: ip_conntrack version 2.1 (128 buckets, 1024 max) - 344 b
ytes per conntrack
Jan 1 00:00:05 kernel: ip_conntrack_pptp version 1.9 loaded
Jan 1 00:00:05 kernel: ip_nat_pptp version 1.5 loaded
Jan 1 00:00:05 kernel: ip_tables: (C) 2000-2002 Netfilter core team
Jan 1 00:00:05 kernel: ipt_time loading
Jan 1 00:00:05 kernel: NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
Jan 1 00:00:05 kernel: IPv6 v0.8 for NET4.0
Jan 1 00:00:05 kernel: IPv6 over IPv4 tunneling driver
Jan 1 00:00:05 kernel: NET4: Ethernet Bridge 008 for NET4.0
Jan 1 00:00:05 kernel: 802.1Q VLAN Support v1.7 Ben Greear <greearb@candelatech
.com>
Jan 1 00:00:05 kernel: All bugs added by David S. Miller <davem@redhat.com>
Jan 1 00:00:05 kernel: FAT: bogus logical sector size 47872
Jan 1 00:00:05 kernel: FAT: bogus logical sector size 47872
Jan 1 00:00:05 kernel: NTFS: Unable to set blocksize 512.
Jan 1 00:00:05 kernel: VFS: Mounted root (squashfs filesystem) readonly.
Jan 1 00:00:05 kernel: Mounted devfs on /dev
Jan 1 00:00:05 kernel: Freeing unused kernel memory: 72k freed
Jan 1 00:00:05 kernel: Warning: unable to open an initial console.
Jan 1 00:00:05 kernel: Algorithmics/MIPS FPU Emulator v1.5
Jan 1 00:00:05 kernel: eth0: Broadcom BCM47xx 10/100 Mbps Ethernet Controller 3
.90.7.0
Jan 1 00:00:05 kernel: eth1: Broadcom BCM47xx 10/100 Mbps Ethernet Controller 3
.90.7.0
Jan 1 00:00:05 kernel: PCI: Enabling device 01:02.0 (0004 -> 0006)
Jan 1 00:00:05 kernel: eth2: Broadcom BCM4320 802.11 Wireless Controller 3.90.2
3.0
Jan 1 00:00:05 kernel: device eth0 entered promiscuous mode
Jan 1 00:00:05 kernel: device eth2 entered promiscuous mode
Jan 1 00:00:05 kernel: device eth1 entered promiscuous mode
Jan 1 00:00:05 kernel: br0: port 3(eth1) entering learning state
Jan 1 00:00:05 kernel: br0: port 2(eth2) entering learning state
Jan 1 00:00:05 kernel: br0: port 1(eth0) entering learning state
Jan 1 00:00:05 kernel: br0: port 3(eth1) entering forwarding state
Jan 1 00:00:05 kernel: br0: topology change detected, propagating
Jan 1 00:00:05 kernel: 0: port 2(eth2) entering forwarding state
Jan 1 00:00:05 kernel: br0: topology change detected, propagating
Jan 1 00:00:05 kernel: br0: port 1(eth0) entering forwarding state
Jan 1 00:00:05 kernel: br0: topology change detected, propagating
Jan 1 00:00:06 kernel: usb.c: registered new driver usbdevfs
Jan 1 00:00:06 kernel: usb.c: registered new driver hub
Jan 1 00:00:06 kernel: usb-ohci.c: USB OHCI at membase 0xb8004000, IRQ 2
Jan 1 00:00:06 kernel: usb-ohci.c: usb-00:04.0, PCI device 14e4:4715
Jan 1 00:00:06 kernel: usb.c: new USB bus registered, assigned bus number 1
Jan 1 00:00:06 kernel: hub.c: USB hub found
Jan 1 00:00:06 kernel: hub.c: 2 ports detected
Jan 1 00:00:07 kernel: hub.c: new USB device 00:04.0-1, assigned address 2
Jan 1 00:00:07 kernel: usb.c: USB device 2 (vend/prod 0x4e8/0x100) is not claim
ed by any active driver.
Jan 1 00:00:07 kernel: lp0: using parport0 (polling).
Jan 1 00:00:07 kernel: usb.c: registered new driver usblp
Jan 1 00:00:07 kernel: printer.c: v0.13: USB Printer Device Class driver
Jan 1 00:00:09 kernel: usb.c: registered new driver audio
Jan 1 00:00:09 kernel: audio.c: v1.0.0:USB Audio Class driver
Jan 1 00:00:09 kernel: Linux video capture interface: v1.00
Jan 1 00:00:10 kernel: SCSI subsystem driver Revision: 1.00
Jan 1 00:00:10 kernel: Initializing USB Mass Storage driver...
Jan 1 00:00:10 kernel: usb.c: registered new driver usb-storage
Jan 1 00:00:10 kernel: scsi0 : SCSI emulation for USB Mass Storage devices
Jan 1 00:00:10 kernel: Vendor: KINGSTON Model: USB DRIVE Rev: 1.12
Jan 1 00:00:10 kernel: Type: Direct-Access ANSI SCSI r
evision: 02
Jan 1 00:00:10 kernel: Attached scsi removable disk sda at scsi0, channel 0, id
0, lun 0
Jan 1 00:00:10 kernel: SCSI device sda: 251904 512-byte hdwr sectors (129 MB)
Jan 1 00:00:10 kernel: sda: Write Protect is on
Jan 1 00:00:10 kernel: Partition check:
Jan 1 00:00:10 kernel: usb.c: USB disconnect on device 00:04.0-1 address 2
Jan 1 00:00:12 login[61]: root login on `pts/0'
Jan 1 00:00:14 kernel: hub.c: Cannot enable port 1 of hub 1, disabling port.
Jan 1 00:00:14 kernel: hub.c: Maybe the USB cable is bad?
Jan 1 00:00:15 kernel: usb_control/bulk_msg: timeout
Jan 1 00:00:15 kernel: usb-ohci.c: unlink URB timeout
ps сделайте в момент, когда всё плохо. Только с телнетом не спешите - в том логе, что Вы запостили всё ещё было в процессе, т.е. Вы вошли раньше, чем post-boot исполнился бы.
thunderbird - Asus 500g
enzo - lin
[admin@thunderbird root]$ reboot
[admin@thunderbird root]$ date && ps
Thu Jan 1 00:08:24 GMT 1970
PID Uid VmSize Stat Command
1 admin 568 S /sbin/init
2 admin SW [keventd]
3 admin SWN [ksoftirqd_CPU0]
4 admin SW [kswapd]
5 admin SW
6 admin SW [kupdated]
7 admin SW [mtdblockd]
48 admin 316 S telnetd
52 admin 316 S httpd
54 admin 420 S udhcpc -i br0 -p /var/run/udhcpc_lan.pid -s /tmp/land
59 admin 340 S klogd
60 admin 388 S syslogd -m 0 -O /tmp/syslog.log -S -l 7
61 admin SW [khubd]
71 admin 276 S lpd
73 admin 260 S p9100d -f /dev/usb/lp0 0
75 admin 260 S p9101d -f /dev/printers/0 1
78 admin 340 S waveservermain
80 admin 348 S rcamdmain
83 admin 668 D insmod usb-storage.o
84 admin DW [usb-storage-0]
85 admin DW [scsi_eh_0]
87 admin 524 S -sh
97 admin 392 R ps
[admin@enzo admin]$ ssh -l admin 192.168.0.210
ssh: connect to host 192.168.0.210 port 22: Connection refused
[B]Ну это и понятно, за 8 минут (более чем достаточно) post-boot так и не стартанул.
[admin@thunderbird root]$ post-boot
[admin@enzo admin]$ ssh 192.168.0.210
admin@192.168.0.210's password:
Ок. Ручками все запускается.
И в догонку вопрос - какого черта, после ребута девайс начинает жизнь заново? (Thu Jan 1 00:08:24 GMT 1970) Это что, надо каждый раз flashfs save && flashfs commit && flashfs enable?
FilimoniC
02-12-2005, 14:17
Почему-то отказывается раьотать вот эта строчка в postmount:
su uegg /opt/eggdrop/runeggdrop.sh &
Вручную запускается нормально (т.е. если telnet'ом зайти)
Хотя, кажется, должна.. В чем может быть проблема, подскажите пожалуйста.
FilimoniC
02-12-2005, 17:09
Post-boot:
#!/bin/sh
mount /dev/discs/disc0/part1 /tmp/harddisk
# wait for /opt to mount
mount -obind /tmp/harddisk/opt /opt
i=0
while [ $i -le 30 ]
do
if [ -d /opt/etc ]
then
break
fi
sleep 1
i=`expr $i + 1`
done
dropbear
insmod scsi_mod
insmod sd_mod
insmod usb-storage
Post-mount:
#!/bin/sh
echo hello >> /tmp/1.txt
/bin/mount -o bind /tmp/harddisk/opt /opt
/opt/bin/su uegg /opt/eggdrop/runeggdrop.sh &
Файл 1.txt содержит "hello", что доказывает что Post-mount работает.
Тогда строку запуска можно модифицировать так:
/opt/bin/su uegg /opt/eggdrop/runeggdrop.sh > /tmp/eggdrop 2>&1 &
и глянуть, что написано в /tmp/eggdrop
Скорее всего проблему в путях.
FilimoniC
02-12-2005, 17:46
Запустился, лог чистый. Спасибо!
FilimoniC
02-12-2005, 17:54
Странно.. То работало, а это
/opt/bin/su uegg /opt/eggdrop/runeggdrop.sh &
не пашет.
Простите, пашет....я опять ошибся
Хотелось бы поиметь возможность получать в post-firewall на входе также и адрес и имя MAN-интерфейса. В настоящее время переколбашевают локалку в связи с чем уже три раза за две недли меняли выдаваемый адрес. То что приходится получаеть его через DHCP и вручную переконфигурячивать настройки (ибо PPP как изветсно не подымается в режиме autoIP) я уже смирился, а вот править post-firewall начинает надоедать ;)
Такое устроит? :)
echo $(nvram get wan_ifname)/$(nvram get wan_ipaddr)
добрый ночи всем!
поискал по форуму и не нашел, может не там искал, тогда извините, но вопросы все-же задаю:
1. файлы pre-boot, post-boot, post-mount, pre-shutdown, post-firewall - таких файлов в каталоге /usr/local/sbin как и самого каталога /sbin в каталоге /usr/local я у себя на роутере не нашел. Их надо создавать самому? как?
2. следуя инструкции http://wl500g.info/showthread.php?t=3171 установил php-thttpd, из внутренней сети (192.168.1.1:8080) все видно, как зделать что бы веб-страница была видна из внешней сети?
заранее спасибо за любую помощь.
Tsvetkov
09-04-2006, 02:10
1. mkdir -p /usr/local/sbin/ - создание папки
читаем там пункт 4 внимательно
2. в пост post-firewall
iptables -I INPUT -i vlan1 -p tcp --dport 8080 -j ACCEPT
3. не забываем предохраняться
flashfs save && flashfs commit && flashfs enable
спасибо. действительно пунк 4. пропустил однако.
И у меня не запускается vsftpd, только вручную, вот кусочек моего post-mount:
logger post-mount vsftpd???
vsftpd /opt/etc/vsftpd.conf &
logger post-mount
а это кусочек лога, почему между logger затесался cron - не знаю, его запуск стоит в post-mount раньше.
Apr 27 16:12:06 admin: post-mount vsftpd???
Apr 27 16:12:06 /opt/sbin/cron[134]: (CRON) STARTUP (V5.0)
Apr 27 16:12:06 admin: post-mount
А вот ещё - при установке vsftpd ipkg ругался что не может создать директорию /usr/share/empty, а сам vsftpd ругался на неё же. Тогда я создал /opt/share/empty, а в /opt/etc/vsftpd.conf добавил secure_chroot_dir=/opt/share/empty, не особо понимая что делаю, но это помогло и вручную он стал запускаться.
Добавил путь в post-mount, теперь запускается.
/opt/sbin/vsftpd /opt/etc/vsftpd.conf &
Не могу найти post-boot на 500g Premium!
Ввожу /usr/local/sbin - такой директории нет. Делаю ls /usr/local - там только папка root. Подскажите, где его найти.
взять да и создать самому
Есть какой-нить шаблон post-boot'a? И как создавать текстовые файлы в lin?
Я в пингвине ламо :rolleyes:
Спасибо, вопрос закрыт, я всё понял! Надо было просто ФАКи почитать.
Еще бы в vi врубиться и тогда будет у меня свой маленький "сайтег".:)
filichev
15-11-2006, 18:10
Удивительно, может кто подскажет
после рестарта не выполняется post-firewall
post-boot и post-mount работают прекрасно. Естественно flasfs save;commit;enable делал.
Если выполнить скрипт руками - все ок.
[root@WL-500gp sbin]$ ls
post-boot post-firewall post-mount
[root@WL-500gp sbin]$ less post-firewall
#iptables -I INPUT -i ppp0 -p tcp --syn --dport 56881:56889 -j ACCEPT
#WEB,SSH and FTP access from WAN
iptables -D INPUT -j DROP
iptables -I INPUT -p tcp --syn --dport 56881:56889 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i vlan1 -p tcp --dport 22 -j DNAT --to-destinatio
iptables -t nat -A PREROUTING -i vlan1 -p tcp --dport 21 -j DNAT --to-destinatio
iptables -t nat -A PREROUTING -i vlan1 -p tcp --dport 80 -j DNAT --to-destinatio
iptables -A INPUT -j DROP
#Test for post-firewall.log
echo "post-firewall running...">/var/log/post-firewall.log
filichev
15-11-2006, 22:02
Забыли #!/bin/sh
Ой !:rolleyes:
Спасибо и извиняюсь за невнимательность.
Antonio_99RUS
18-04-2007, 11:41
А есть ли описание параметров, которые принимает post-firewall? Или я не там копаю (подробности ниже)?
Есть ли файлик, который выполняется при каждом переконнекте PPPoE-сессии (WAN == PPPoE)? Переконнект происходит "принудительный" со стороны биллинга провайдера, при этом с вероятностью примерно 0.95 меняется IP-адрес.
Суть в том, что (насколько я понимаю) для корректной видимости из инета "сервачка" внутри LAN необходимо при каждом переконнекте PPPoE сессии изменять (либо удалять и добавлять) несколько правил файрволла + пинать dyndns, чтобы тот обновил запись.
Мозговой затык состоит в том, что в правиле проброса порта я должен указать "внешний" IP, который меняется при переконнекте PPPoE-сессии.
если добавить в post-firewall следующую строчку
echo "$1 $2 $3 $4 $5 $6 $7 $8" > /tmp/tmp.log
то она у меня возвращает:
ppp0 83.237.166.123 br0 192.168.1.1 vlan1
так что параметры:
wan-if wan-ip lan-if lan-ip
смысл последнего параметра неясен. По сути это тоже wan-if
Antonio_99RUS
18-04-2007, 13:14
Отлично, спасибо.
С последним параметром тоже ясно, ибо в vlan1 мы можем засунуть и два (и три и т.п.) WAN-порта.
Пока неясно, выполняется ли post-firewall при каждом реконнекте PPPoE-сессии или только при загрузке.
Каждый раз выполняется. Последние два параметра MANIF MANIP. Где-то это даже написано. :)
Antonio_99RUS
18-04-2007, 15:57
Частично признаю склероз. ;-)
Действительно, уже было написано, что [i]/usr/local/sbin/post-firewall исполняется всякий раз после того, как устройство меняет внутренние правила с помощью команд iptables, с тем, чтобы Вы могли внести свои изменения в firewall.
P.S. Про аргументы вызова создам новую тему, чтобы не мусорить здесь.
Antonio_99RUS
18-04-2007, 16:00
По результатам обсуждения http://wl500g.info/newreply.php?do=newreply&noquote=1&p=52616 вроде бы получается так: (?)
$1 -- WANIF
$2 -- WANIP
$3 -- LANIF
$4 -- LANIP
$5 -- MANIF
$6 -- MANIP
$7 и так далее -- не передаётся
Таким образом, типовое правило проброса порта (например, 46882) на машину в LAN (192.168.1.123) принимает (?) вид:
iptables -t nat -A PREROUTING -p tcp -d $1/255.255.255.255 --dport 46882 -j DNAT --to 192.168.1.123:46882
Что с этим постом сделать? :) Т.е. он полезный конечно.
Antonio_99RUS
19-04-2007, 12:52
Планировалось, что будут комментарии по поводу правильности (или неправильности) написанного правила проброса порта. В той теме писать не стал, ибо оффтопик это там.
Что делать с постом? ;-) Вам решать. Нарушил -- сносите.
Mirage-net
19-04-2007, 12:55
Что с этим постом сделать? :) Т.е. он полезный конечно.
в "Часто задаваемые вопросы" его ...
хочу настроить post-firewall так, чтобы максимально закрыть и на вход и на выход, т.е. чтобы я сам приоткрывал нужные порты. пробовал различные варианты iptables, в итоге что то случилось с портфорвардингом. раньше по 2222 делался форвард на 21-й порт моей домашней машины. теперь этого не работает. с rdp, видимо, та же проблема случилось.
может, это потому что я пробовал использовать вначале файла правило iptables -F. т.е. может я сбросил какие то важные настройки файервола, которые post-firewall не восстанавливаются? хотя это, сомнительно, конечно. вот пример часть моего post-firewall с некоторыми комментариями:
начало файла теперь стандартное:
#!/bin/sh
## FIREWALL
## set default policy
iptables -P INPUT DROP
дальше идут правила (привел не все, т.к. все писать нету смысла)
(на десктопе стоит serv-u. раньше (до iptables -F) заходилось ок, теперь на него просто не заходит. т.е. нету даже подключения, иконка серв-ю не становится синей)
## allow FTP from WAN to my desktop computer
iptables -I INPUT -p tcp -d $MY_INET_IP --dport 2222 -j ACCEPT
iptables -t nat -A PREROUTING -i "$1" -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.10:21
(последняя строка для того, чтобы веб сервер работал на 80-м порту извне)
## allow HTTP-server from WAN
iptables -I INPUT -p tcp -d $MY_INET_IP --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -d $MY_INET_IP --dport 8081 -j ACCEPT
iptables -t nat -A PREROUTING -i "$1" -p tcp --dport 80 -j REDIRECT --to-port 8081
(делаю RDP, но, такое ощущение, что просто не редиректит)
## allow RDP at my desktop at port 3389
iptables -I INPUT -p tcp -d $MY_INET_IP --dport 3389 -j ACCEPT
iptables -t nat -A PREROUTING -i "$1" -p tcp -d $MY_INET_IP --dport 3389 -j DNAT --to-destination 192.168.1.10:3389
## allow TORRENT on ports 56881:56889, 65534
iptables -I INPUT -i ppp0 -p tcp --syn --dport 56881:56889 -j ACCEPT
iptables -I INPUT -i ppp0 -p tcp --syn --dport 65534 -j ACCEPT
по последнему: ppp0 = "$1" ?
(для борьбы провайдера с роутерами в сети)
## for anti-router check of MAN provider
iptables -t mangle -F
iptables -t mangle -I FORWARD -m ttl --ttl 127 -o \$1 -j TTL --ttl-set 128
iptables -t mangle -I FORWARD -m ttl --ttl 1 -i \$1 -j TTL --ttl-set 2
iptables -t mangle -I FORWARD -m ttl --ttl 127 -o \$(nvram get wan_ifname) -j TTL --ttl-set 128
iptables -t mangle -I FORWARD -m ttl --ttl 1 -i \$(nvram get wan_ifname) -j TTL --ttl-set 2
на эти строки противодействия борьбе с роутерами, при запуске post-firewall выдаются ошибки:
Warning: wierd character in interface `$1' (No aliases, :, ! or *).
Warning: wierd character in interface `$1' (No aliases, :, ! or *).
./post-firewall: ./post-firewall: 45: Syntax error: "(" unexpected
строка 45 - это строка:
iptables -t mangle -I FORWARD -m ttl --ttl 127 -o \$(nvram get wan_ifname) -j TTL --ttl-set 128
ну и окончание post-firewall тоже вполне стандартное:
iptables -A OUTPUT -s $MY_INET_IP/255.255.255.255 -o vlan1 -j ACCEPT
iptables -A OUTPUT -o vlan1 -j DROP
если можно, подскажите, в чем может быть проблема?
так же есть еще вопрос, об обеспечении работы ftp в пассивном режиме при введении правил для OUTGOING траффика.
заработают ли правила:
$i – Интернет, т.е. any comp
$j - ftp сервер
$iptables -A FORWARD -p tcp -s $i --sport 1024:65535 -d $j --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
$iptables -A FORWARD -p tcp -s $j --sport 21 -d $i --dport 1024:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT
$iptables -A FORWARD -p tcp -s $i --sport 1024:65535 -d $j --dport 1024:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT
$iptables -A FORWARD -p tcp -s $j --sport 1024:65535 -d $i --dport 1024:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT
или нужно еще какой то дополнительный модуль определения состояния ftp-пакетов ставить? слышал про какой то ftp_conntrack...
заранее спасибо
iptables -F имхо плохая идея.
Для проброса портов ненужно ничего добавлять в таблицу INPUT (iptables -I INPUT). Достаточно добавить правило в PREROUTING.
Для защиты от борьбы провайдера с роутерами в сети:
В post-boot добавить
#!/bin/sh
insmod ipt_ttl
insmod ipt_TTL
В post-firewall добавить
#!/bin/sh
iptables -t mangle -I PREROUTING -i vlan1 -j TTL --ttl-inc 1
ftp_conntrack называется ip_conntrack_ftp. Он по дефолту должен быть загружен. Посик по форуму может дать дополнительную информацию по этому модулю.
iptables -L -nv -t nat && iptables -L -vn в студию
большое спасибо за ответ!
1. почему плохая? т.е. моя мысль о том, что я удалил -F какие то нужные правила не лишена основания?
2. я на инпут просто разрешаю нужные порты, потому что по умолчанию все дропятся.
3. спасибо за совет. это подойдет для внешнего ip с подключением к инету по vpn? домой доберусь - попробую...
5. там получилось много текста, поэтому в приложенном файле результат выполнения команды. $MY_INET_IP соответственно ой внешний ip.
Помогите записать в post-boot строку route add -host 193.125.142.226 gw 172.16.0.1 vlan1
Я прочитал на форуме что эту строку надо записывать с помощью telnet на роутер
я нажимаю кнопку пуск-выполнить: telnet 192.168.1.1
появляется черное окно и происходит запрос на login и пароль, я их ввёл.
появляется строка: root$:
а дальше какие набивать команды чтобы
строка route add -host 193.125.142.226 gw 172.16.0.1 vlan1 оказалась в файле post-boot
если можно поподробней, а то у меня не получается.
Заранее благодарен.
KRandall
31-07-2007, 08:35
Проверить, существует ли post-boot
ls -l /usr/local/sbin
выйдет что-то типа
-rwxr-xr-x 1 admin root 1475 Jun 24 20:45 post-boot
-rwxr-xr-x 1 admin root 2108 Jun 15 08:52 post-firewall
Если нет, то нужно его создать
echo "#!/bin/sh" > /usr/local/sbin/post-boot
chmod +x /usr/local/sbin/post-boot
а дальше дописывать туда все, что нужно
echo "вот тут то, что нужно записать" >> /usr/local/sbin/post-boot
И после этого не забыть сделать
flashfs save && flashfs commit && flashfs enable
Посмотреть содержимое файла
cat /usr/local/sbin/post-boot
Что то у меня снова не получается
Когда я набираю строку root ]$: ls -l /usr/local/sbin и нажимаю enter
появляется такая строка root ]$
если я набираю echo "#!/bin/sh" >> /usr/local/sbin/post-boot
он отвечает -sh: cannot create /usr/local/sbin/post-boot: directory nonexistent
что я делаю не правильно? помогите
нужно сначала сделать mkdir -p /usr/local/sbin
А почему нельзя прописать этот маршрут через веб-интерфейс??
Mam(O)n
Спасибо.Все записалось.Только после команды cat /usr/local/sbin/post-boot у меня оказалось что я их прописал 2 раза
Как удалить одну строку из post-boot?
Я пытаюсь это сделать для того чтобы скачивать информацию с локальных адресов сети без ограничения скорости, а у меня локалка работает на той же скорости что и интернет.
На этом сайте я нашел такие настройки:
Долгопрудный, Физтех Телеком (telecom.mipt.ru)
Роутер: ASUS WL-500gP
Прошивка: 1.9.2.7-7f-pre4
Тип соединения: Static IP + PPTP
IP: 172.16.11.3
Netmask: 255.255.0.0
Default GW: сознательно не указан
DNS1: 193.125.143.173
DNS2: 192.188.189.3
Additional pppd options: nomppe nomppc
Heart-Beat Server: vpdn.mipt.ru
Static routes:
81.5.64.0 255.255.192.0 172.16.0.1 1 MAN
192.188.189.0 255.255.255.0 172.16.0.1 1 MAN
194.85.80.0 255.255.252.0 172.16.0.1 1 MAN
193.168.0.0 255.255.0.0 172.16.0.1 1 MAN
10.0.0.0 255.0.0.0 172.16.0.1 1 MAN
193.125.143.0 255.255.255.0 172.16.0.1 1 MAN
193.125.142.0 255.255.255.0 172.16.0.1 1 MAN
81.5.95.0 255.255.255.0 172.16.0.1 1 MAN
Но работать все начинает только после добавления "вручную" или из post-boot статического роута на Heart-Beat Server:
route add -host 193.125.142.226 gw 172.16.0.1 vlan1
у меня оказалось что я их прописал 2 раза. Как удалить одну строку из post-boot?
Если не установлен текстовый редактор то проще заново создать файл:
echo -e "#!/bin/sh\n route add -host 193.125.142.226 gw 172.16.0.1 vlan1" > /usr/local/sbin/post-boot
После всех правок незабывай сохранять во флеш (flashfs и т.д.)
И еще, если мне неизменяет память, таблицы маршрутизации так же как и таблицы iptables обнуляются в дефолт после каждого поднятия/разрыва VPN. Так что лучше это в /usr/local/sbin/post-firewall добавить.
Но работать все начинает только после добавления "вручную" ... роута на Heart-Beat Server:
Странно все это. Ведь этот маршрут уже прописан в веб морде, ведь это так?
193.125.142.0 255.255.255.0 172.16.0.1 1 MAN
Может у тебя не стоит в веб морде IP Config => Route => Enable static routes? в положении YES?
После перезагрузки не запускается файл /usr/local/sbin/post-boot. Приходится влезать в него и запускать вручную. ЧТо можно сделать для автоматического запуска сего файла после загрузки?
После перезагрузки не запускается файл /usr/local/sbin/post-boot. Приходится влезать в него и запускать вручную. ЧТо можно сделать для автоматического запуска сего файла после загрузки?
chmod +x /usr/local/sbin/post-boot
flashfs save && flashfs commit && flashfs enable
reboot
не помогает?
к сожалению нет. сам файл появляется, есть флаг запускаемого, но автоматом не запускается. :(
PS: Прошивка от Олега 1.9.2.7-7g
Lt_Flash
28-08-2007, 19:15
к сожалению нет. сам файл появляется, есть флаг запускаемого, но автоматом не запускается. :(
Видимо используются какие-то команды, которые надо использовать в другом файле. Приведите содержимое файла, пожалуйста.
#!/bin/sh
/sbin/route add -net 89.179.135.67 netmask 255.255.255.255 gw 10.234.0.17
/sbin/route add -net 85.21.29.242 netmask 255.255.255.255 gw 10.234.0.17
/sbin/route add -net 85.21.79.0 netmask 255.255.255.0 gw 10.234.0.17
/sbin/route add -net 85.21.90.0 netmask 255.255.255.0 gw 10.234.0.17
/sbin/route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.234.0.17
/sbin/route add -net 85.21.138.210 netmask 255.255.255.255 gw 10.234.0.17
/sbin/route add -net 85.21.138.214 netmask 255.255.255.255 gw 10.234.0.17
/sbin/route add -net 85.21.52.254 netmask 255.255.255.255 gw 10.234.0.17
/sbin/route add -net 83.102.146.96 netmask 255.255.255.224 gw 10.234.0.17
/sbin/route add -net 85.21.88.130 netmask 255.255.255.255 gw 10.234.0.17
/sbin/route add -net 83.102.231.32 netmask 255.255.255.240 gw 10.234.0.17
/sbin/route add -net 195.14.50.16 netmask 255.255.255.255 gw 10.234.0.17
/sbin/route add -net 85.21.108.16 netmask 255.255.255.240 gw 10.234.0.17
/sbin/route add -net 195.14.50.26 netmask 255.255.255.255 gw 10.234.0.17
/sbin/route add -net 195.14.50.93 netmask 255.255.255.255 gw 10.234.0.17
/sbin/route add -net 195.14.50.16 netmask 255.255.255.255 gw 10.234.0.17
/sbin/route add -net 83.102.255.131 netmask 255.255.255.255 gw 10.234.0.17
/sbin/route add -net 83.102.255.130 netmask 255.255.255.255 gw 10.234.0.17
wl radio on
Пост-бут случаем не в блокноте написан? (http://www.wl500g.info/showthread.php?t=10370)
в vi.
Повторюсь, если его вручную запускать под телнетом - запускается. А автоматом - нет.
Маршруты нужно в post-firewall прописывать
Роутинг подхватился из post-firewall. а wl radio on в post-boot не работает. (
wl radio on в post-boot не работает. (
Если не секрет - а зачем вообще Wi-Fi включать в post-boot? Включите его в web-интерфейсе и сохраните.
Совершенно не секрет. При подключении по l2tp радио не поднимается настройкой из веб. :( Приходится лезть в веб-интерфейс и врубать его вручную.
Lt_Flash
29-08-2007, 08:53
Полный путь до бинарника указывайте для радио. То есть не wl radio on, а /usr/local/bin/wl radio on - или где он правильно лежит.
А чем объяснить запуск радио с помощью "./post-boot"? Радио-то запускается, если этот файл запустить ВРУЧНУЮ, а мне хочется, чтобы post-boot запускался САМ.
А чем объяснить запуск радио с помощью "./post-boot"? Радио-то запускается, если этот файл запустить ВРУЧНУЮ, а мне хочется, чтобы post-boot запускался САМ.
Возможно post-boot запускается слишком рано и возникают какие-то конфликты с l2tp.
Проверить довольно просто. Отключить l2tp и радио в web-интерфейсе и перезагрузить. Если радио включится, значит с самим post-boot все нормально, просто перед включением радио в нем нужно прописать sleep сколько-то секунд. Если не включится, то это уже непонятно.
10.234.0.17 это случаем не интерфейс l2tp?
Reyter, спасибо, попробую.
Duke, нет. Это шлюз корбины.
После перезагрузки не запускается файл /usr/local/sbin/post-firewall.
Пожалуйста, подскажите в чем может быть причина!? :confused:
права на запуск стоят правильные...
содержимое файла:
#!/bin/sh
/sbin/route add -net 81.25.32.0 netmask 255.255.255.0 gw 192.168.5.1
Перевод строки (http://wl500g.info/showpost.php?p=56660&postcount=348) в формате *nix?
Перевод строки (http://wl500g.info/showpost.php?p=56660&postcount=348) в формате *nix?
Да в *nix. В родном редакторе vi файл создавался. Аналогичным образом создавался post-boot - он замечательно работает... :(
Сам по себе файл запускается?
flashfs save
flashfs commit
flashfs enable
не забыли?
Сам по себе файл запускается?
flashfs save
flashfs commit
flashfs enable
не забыли?
Да, файл существует, но не запускается!
Ради прикола менял содержимое файла на:
#!/bin/sh
cat /usr/local/sbin/post-boot > /tmp/blabla
так вот /tmp/blabla не создаётся...
В связи с этим тупой вопрос: кто и где вызывает post-firewall? кстати, вообще есть управление ведением журнала (лога), типа debug level какой, чтоб более подробно процесс загрузки отследить?
Чтоб окончательно убедится в том, что это мистика, введи(а лучше скопипасти) следующее:
echo -e '#!/bin/sh'"\n/usr/bin/logger -s -t \"\$0[\$\$]\" \"Started\"" > /usr/local/sbin/post-firewall
chmod 755 /usr/local/sbin/post-firewall
flashfs save && flashfs commit && flashfs enable
reboot
В системном логе должна появится запись о том, что скрипт стартовал.
зы. А роутер находится в режиме home gateway?
Lt_Flash
31-08-2007, 12:14
chmod +x post-firewall може быть забыли?
chmod +x post-firewall може быть забыли?
спасибо за участие, но написал же вроде в первом посте
права на запуск стоят правильные...
Чтоб окончательно убедится в том, что это мистика, введи(а лучше скопипасти) следующее:
echo -e '#!/bin/sh'"\n/usr/bin/logger -s -t \"\$0[\$\$]\" \"Started\"" > /usr/local/sbin/post-firewall
chmod 755 /usr/local/sbin/post-firewall
flashfs save && flashfs commit && flashfs enable
reboot
В системном логе должна появится запись о том, что скрипт стартовал.
зы. А роутер находится в режиме home gateway?
Mam(O)n, Благодарю за подсказку (!!!), мистики не оказалось...
Jan 1 02:00:06 dhcp client: deconfig: lease is lost
Jan 1 02:00:15 udhcpc[87]: No lease, forking to background.
Jan 1 02:00:15 pppd[93]: pppd 2.4.2 started by admin, uid 0
Jan 1 02:00:15 pppd[93]: Serial connection established.
Jan 1 02:00:15 pppd[93]: Using interface ppp0
Jan 1 02:00:15 pppd[93]: Connect: ppp0 <--> /dev/pts/0
Jan 1 02:00:16 pptp[101]: anon log[main:pptp.c:267]: The synchronous pptp option is NOT activated
Jan 1 02:00:16 pptp[101]: anon warn[pptp_gre_bind:pptp_gre.c:95]: connect: Network is unreachable
Jan 1 02:00:16 pptp[101]: anon fatal[main:pptp.c:275]: Cannot bind GRE socket, aborting.
Jan 1 02:00:16 pppd[93]: Modem hangup
Jan 1 02:00:16 pppd[93]: Connection terminated.
Jan 1 02:00:46 pppd[93]: Serial connection established.
Jan 1 02:00:46 pppd[93]: Using interface ppp0
Jan 1 02:00:46 pppd[93]: Connect: ppp0 <--> /dev/pts/0
Jan 1 02:00:46 pptp[118]: anon log[main:pptp.c:267]: The synchronous pptp option is NOT activated
Jan 1 02:00:46 pptp[122]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request'
Jan 1 02:00:46 pptp[122]: anon log[ctrlp_disp:pptp_ctrl.c:732]: Received Start Control Connection Reply
Jan 1 02:00:46 pptp[122]: anon log[ctrlp_disp:pptp_ctrl.c:766]: Client connection established.
Jan 1 02:00:47 pptp[122]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'
Jan 1 02:00:47 pptp[122]: anon log[ctrlp_disp:pptp_ctrl.c:851]: Received Outgoing Call Reply.
Jan 1 02:00:47 pptp[122]: anon log[ctrlp_disp:pptp_ctrl.c:890]: Outgoing call established (call ID 0, peer's call ID 34446).
Jan 1 02:00:47 pptp[122]: anon log[ctrlp_disp:pptp_ctrl.c:943]: PPTP_SET_LINK_INFO received from peer_callid 1031
Jan 1 02:00:47 pptp[122]: anon log[ctrlp_disp:pptp_ctrl.c:946]: send_accm is FFFFFFFF, recv_accm is FFFFFFFF
Jan 1 02:00:47 pptp[122]: anon warn[ctrlp_disp:pptp_ctrl.c:949]: Non-zero Async Control Character Maps are not supported!
Jan 1 02:00:47 pppd[93]: local IP address 81.25.[].[]
Jan 1 02:00:47 pppd[93]: remote IP address 81.25.[].[]
Jan 1 02:00:48 /usr/local/sbin/post-firewall[126]: Started
Jan 1 02:00:48 kernel: HTB init, kernel part version 3.16
Получается, что post-firewall запустился после того, как поднялось PPTP соединение? Так и должно быть? Почему тогда роуты рекомендуется прописывать именно в post-firewall, а не в post-boot если, без них (в моём случае) роутер не увидит VPN сервера провайдера, поскольку тот в абсолютно другой подсети???
Получается, что post-firewall запустился после того, как поднялось PPTP соединение? Так и должно быть? Почему тогда роуты рекомендуется прописывать именно в post-firewall, а не в post-boot если, без них (в моём случае) роутер не увидит VPN сервера провайдера, поскольку тот в абсолютно другой подсети???
Смотря какие роуты. В post-firewall нужно записывать роуты для динамических интерфейсов. Т.е. типа PPPoE и т.п. Т.е. для тех, для котроых IP назначается динамически и при разрыве/установлении может изменяться.
Постоянные же роуты, предназначенные для интерфейсов с неизменяемым на протяжении работы роутера IP естественно нужно прописывать в post-boot.
Надеюсь понятно объяснил ;)
ок, заработало, всем спасибо. действительно, выставив задержку, начало нормально запускаться радио.
Reyter, я конечно могу и ошибаться, но по-моему перед каждым выполнением post-firewall таблица маршрутов (ровно как и таблицы iptables) обнуляется и прописываются дефолтные настройки с веб-интерфейса. А сам скрипт запускается после изменения состояния WAN (connect/disconnect). Что также справедливо и для режима static ip.
Reyter, я конечно могу и ошибаться, но по-моему перед каждым выполнением post-firewall таблица маршрутов (ровно как и таблицы iptables) обнуляется и прописываются дефолтные настройки с веб-интерфейса. А сам скрипт запускается после изменения состояния WAN (connect/disconnect). Что также справедливо и для режима static ip.
Не буду спорить. Может я и не прав. Нужно проверить. Лично мне казалось, что из роутов удаляются только роуты на отконекченный интерфейс.
Одно могу сказать точно - при disconnect интерфейса post-firewall почему-то (увы!) выполняется далеко не всегда. Попробую впрочем получить "документальные" подтверждения этому (и предыдущему) утверждению при помоги логгирования выполнения post-firewall, поскольку вообще вопрос достаточно серъезный.
ЗЫ: Ну и конечно post-firewall должен выполняться отнюдь не только при изменении состояния WAN, а вообще любого интерфейса.
garry111
23-09-2007, 21:01
1. Где должны располагаться файлы: post-boot, post-firewall, post-mount, pre-shutdown? Почему в разных постах этого форума они располагаются в этих разных директориях?
/usr/local/sbin/
/tmp/harddisk/opt
или ещё где-нибудь.
Есть хоть какой-нибудь стандарт для этого роутера (его системы)?
2. И где должна располагаться директория opt? Я нашёл следующие варианты:
/tmp/harddisk/opt
/dev/scsi/host0/bus0/target0/lun0/part0
/dev/scsi/host0/bus0/target0/lun0/part1
и т.п.
Какой вариант правильный для программирования шелл-скриптов (или для линукса будет наверно корректнее спросить "наиболее универсальный")?
Олег, если можно попросить - хотелось бы услышать твоё авторитетное мнение. Благодарю.
/usr/local это симлинк на /tmp/local. То есть /usr/local/sbin/ == /tmp/local/sbin/.
/tmp/harddisk это место, куда по-умолчанию подключаются файловые системы внешних накопителей
Директория opt на диске может распологатся где угодно и называтся как угодно, главная чтоб эта директория была подмонтирована в корневую файловую систему под именем /opt
/dev/scsi/host0/bus0/target0/lun0/partх ( == /dev/discs/disc0/partx) это блочные устройства (partx - раздел диска, disc - весь диск), через которые идет работа с накопителем.
Какой вариант правильный для программирования шелл-скриптов (или для линукса будет наверно корректнее спросить "наиболее универсальный")?
Не понял вопроса. Про какие варианты идет речь?
garry111
24-09-2007, 00:15
Чтобы скрипт однозначно определял место, куда надо записать (или внести изменения) в файлы. Т.е. не зависимо от того как подключен внешний носитель: в порт 1 или 2, через usb-hub или через card-reader разных форматов.
И ещё: разве /usr/local/sbin/ == /tmp/harddisk/opt?
В "настройке с нуля" используются 2 файла, из /usr/local/sbin/post-boot копируется на каком-то этапе в /tmp/harddisk/opt - поэтому и не понятно и хочется разобраться что к чему.
Uncle_Fry
24-09-2007, 01:10
Чтобы скрипт однозначно определял место, куда надо записать (или внести изменения) в файлы. Т.е. не зависимо от того как подключен внешний носитель: в порт 1 или 2, через usb-hub или через card-reader разных форматов.
И ещё: разве /usr/local/sbin/ == /tmp/harddisk/opt?
В "настройке с нуля" используются 2 файла, из /usr/local/sbin/post-boot копируется на каком-то этапе в /tmp/harddisk/opt - поэтому и не понятно и хочется разобраться что к чему.
Как я понимаю, имелось в виду вот это
настройка автозапуска
в файл /usr/local/sbin/post-boot нужно будет добавить строки. Добавлять можно редактором Midnight Commander (перед запуском дать команды
export TERMINFO="/opt/share/terminfo"
export TERM="linux"
иначе подвиснет; кнопки F1 F2 F3 нажимаются путем нажатия клавиши ESCape и потом соответствующей цифры на основной клавиатуре) или vi (для больших любителей) или скопировать на флэшку и по ftp или подключив диск отредактировать. Копировать командой
cp /usr/local/sbin/post-boot /tmp/harddisk/opt/post-boot
Ну так еще раз внимательно прочитай - скопировать предлагается для того, что бы данные файлы редактировать, подключив диск. Потому, что через самбу, например, /usr/local/sbin/ не видно.
В любом случае, потом post-boot нужно перенести обратно в /usr/local/sbin/
Похоже garry111 совсем запутался, поэтому я отвечу проще:
1) /usr/local/sbin/ (или же /tmp/local/sbin/ - это одно и то же)
2) /tmp/harddisk/opt После того, как вы ее подмонтируете в соответствии с инструкцией, она будет так же размещаться в корне, т.е. в "просто" /opt (это тоже одна и та же папка)
Остальным пока не забивайте голову, со временем разберетесь.
garry111
24-09-2007, 15:52
Reyter
Спасибо, но хочу именно немного глубже понять.
1. По поводу
/dev/scsi/host0/bus0/target0/lun0/part0
Если
part0 - первый раздел первой флешки
то
lun1 - вторая флешка?
target1 - второй usb порт роутера?
2. Является ли истинной то, что единственно исполняемым при загрузке является /usr/local/sbin/post-boot, а все остальные игнорируются?
3. Если я управляю и редактирую файлы асуса по ssh, то мне
cp /usr/local/sbin/post-boot /tmp/harddisk/opt/post-boot
выполнять при любом раскладе не надо?
4. И ещё раз спрошу: является ли /usr/local/sbin/ == /tmp/harddisk/opt?
Благодарю за лаконичные ответы!
К usb это отношения не имеет. Это scsi (http://ru.wikipedia.org/wiki/SCSI) - специфические обозначения. Вторая флешка будет висеть в /dev/scsi/host1/bus0/target0/lun0/ ( == /dev/discs/disc1)
Всё остальное это что? При загрузке много чего исполняется, в т.ч. pre-boot - перед загрузкой основных модулей ядра, и post-boot после инициализации сервисов. Подробнее в FAQ (http://wl500g.info/showpost.php?p=23521&postcount=12).
Если редактируешь файлы по ssh то и редактируй их там, где они и должны быть, незачем лишний раз жонглировать ими. Единственное что можно сделать это backup файла, допустим приведенной тобой командой. Также, если хочешь глубже понять, зачем после правки файлов pos--boot и т.п. нужно исполнять flashfs save && flashfs commit && flashfs enable то прочитай это (http://wl500g.info/showpost.php?p=62659&postcount=13).
/usr/local/sbin/ и /tmp/harddisk/opt не одно и тоже.
Создал файл /usr/local/sbin/post-mount
Прописал в него нужные команды
Сохранил во flashfs
Что нужно сделать, чтобы он выполнялся сразу после монтирования? Права на выполнение стоят
1)в первой строке файла #!/bin/sh есть?
2)символы конца строки должны быть корректные.
Спасибо. Я забыл #!/bin/sh
А за что отвечает строка #!/bin/sh
ведь вроде символ # является признаком коментария???
А за что отвечает строка #!/bin/sh
ведь вроде символ # является признаком коментария???
"#!" - директива на запуск указанного обработчика (шелла) исполняемого файла.
в post boot не сработало
Грабли тут могут быть такие:
Первый строкой в скрипте должна быть shebang (http://en.wikipedia.org/wiki/Shebang_%28Unix%29) строка, например #!/bin/sh
В файле переводы строк должны быть в unix формате. Тоесть например, если скрипт был набран в блокноте windows то он не будет работать. http://wl500g.info/showpost.php?p=56660&postcount=348
Не заданы права на исполнение. chmod +x /usr/local/sbin/post-boot
Файл не был сохранен на флеш. flashfs save && flashfs commit; flashfs enable
Синтаксические ошибки
Скрипт должен находится в /usr/local/sbin/post-boot
Andrey_3
25-12-2007, 21:23
Приветствую!
Подскажите в какой момент исполняется файл pre-shutdown? Почитал, что он работает "перед перезагрузкой системы". То есть только при выполении команды reboot или в каких-то иных случаях тоже?
Всегда, когда делается reboot или halt.
Andrey_3
25-12-2007, 22:21
Всегда, когда делается reboot или halt.
Олег, огромное спасибо за быстрый ответ. А то нигде найти эту инфу не смог.
ПОнятно,что когда веб интерфейс делает save&restart, то он тоже отрабатывает. Ибо там тоже ребут.
У меня такая проблема : я редактировал post-firewall и закрыл все что можно,
теперь не могу войти на роутер ни каким образом, что делать подскажите ??? P.s. Сбрасывать пробывал перешивать тоже, но подсеть таже что и была...
post-firewall
#!/bin/sh
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
Сбросить в дефолт кнопкой.
Сбросить в дефолт кнопкой.
Пробовал не помогает, все как надо power мигает вроде сбрасывается, а в итоге остается внутренняя под сеть, какие еще есть варианты ???
gelikopter
30-01-2008, 16:22
Олег, подскажите пожалуйста. Сбросить в дефолт надо нажимая на кнопку "restore" или "ezsetup"?
В руководстве говорится про кнопку Reset, которой на корпусе просто нет :(
После включения горит лампочка питания. AIR - не горит. Правда беспроводную часть отключали через веб интерфейс. Может ли она не гореть из-за этого?
gelikopter
31-01-2008, 08:46
Проблема успешно решилась, правда не до конца осознал произошедшее.
Сброс кнопкой не помогал :(
Помогла перешивка имнно родной прошивкой.
Ilmarinen
31-01-2008, 09:39
Проблема успешно решилась, правда не до конца осознал произошедшее.
Сброс кнопкой не помогал :(
Помогла перешивка имнно родной прошивкой.
В "родной" прошивке post- и pre- скрипты не вызываются.
Подскажите что нужно сделать что-бы поднять afpd после перезагрузки?
Добавил строку afpd в post-boot (пробовал /opt/sbin/afpd) не помогает.
В ручную поднимается и работает на ура.
Что делаю не так?
а в post-mount ?
либо в post-boot, но предварительно убедившись, что носитель смонтирован (простейший способ sleep 15s)
а в post-mount ?
либо в post-boot, но предварительно убедившись, что носитель смонтирован (простейший способ sleep 15s)
Пробовал. Не помогло (
post-boot вообще выполняется?
Простейший способ проверки --- добавить
logger "something"
потом искать в логе это сообщение.
выполняется тк засек в ps sleep 15s
может 15s не хватило? Потому что дальше, пожалуй следует --- не занаю...
afpd --- это что ли шара для маков?
Только что проверил, post-boot отметился в логе.
Да, именно шара для мак.
Может есть еще способы?
Если post-boot выполняется - перенаправить вывод в какой-нибудь файл в /tmp и глянуть может на что ругается?
afpd 1>/tmp/afp-debug 2>&1
из post-mount тоже нейдет?
можно попробовать запускать так:
/opt/sbin/afpd > /tmp/afpd.log 2>&1
может он скажет что не нравится...
lly :)
зы. кстати из этих файлов запускать обязательно с полным путем или прописывать /opt/sbin в PATH
Не знаю что случилось, но afpd запускается. Причем в лог не ругается.
Спасибо за внимание!
coraxpda
13-04-2008, 10:55
Имеем wl500gp, поставлен 3proxy, на wan висит домовая сеть с бесплатным трафиком (192.168.0.0/16), инет сосем через ppp0, на WiFi висит пара соседей.
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- !10.10.1.163 anywhere это ppp0
MASQUERADE all -- !192.168.130.243 anywhere это местная сетка
Что нужно прописать через iptables в post-firewall, чтобы компьютеры подключенные к свитчу wl500gp (проводами) работали как через прокси, так и имели NAT в оба интерфейса (это по умолчанию и работает), а WiFi юзера имели NAT только в местную сетку, а в ppp0 глядели только через проксю с авторизацией.
NAT на ppp0 я убирал, но тогда он рубится для всех, что не гуд...
Видится, что надо в цепочку Forward правило прописать, но какое?
Добрый день. Появилось несколько вопросов по post-mount.
что есть: asus wl500gp
flash 1024 - part1 swap, part2 - часть для пакетов и тд.
внешний hdd - для хранения файлов, общий ресурс в сети, в будущем планирую закачивать на него торренты с помощью роутера.
1.
мой post-mount:
#!/bin/sh
# Activate swap
swapon /dev/discs/disc0/part1
# Mounting disc0_2 to opt
mount -o sync,noatime,rw /dev/discs/disc0/part2 /tmp/mnt/disc0_2
mount -o sync,noatime,rw /tmp/mnt/disc0_2 /opt
при выключении внешнего hdd и последующем включением mount выдаёт следующее:
/dev/discs/disc0/part2 on /opt type ext3 (rw,noatime)
/dev/discs/disc1/part1 on /tmp/mnt/disc1_1 type ext3 (rw,noatime)
/dev/discs/disc0/part2 on /tmp/mnt/disc0_2 type ext3 (rw,noatime)
/dev/discs/disc0/part2 on /opt type ext3 (rw,noatime)
и так после каждого отключения\включения внешнего hdd добавляется по одной строчке
/dev/discs/disc0/part2 on /opt type ext3 (rw,noatime)
надо ли это исправлять? и если да то как?
и почему порой появляется следующая строчка: ramfs on /opt type ramfs (rw) ???
2. возможно ли в post-mount написать скрипт автоматического запуска некоторых служб (тот же самый торрент) когда монтируется HDD?
Просто использование торрента без внешнего hdd бессмысленно.
надеюсь на вашу помощь! (Новичок в линуксе)
надо ли это исправлять? и если да то как?
Например, так (у меня все несколько сложнее, это простой вариант):
if [ ! -d /opt/etc ]; then
mount -o sync,noatime,rw /tmp/mnt/disc0_2 /opt
fi
И монтирование будет происходить лишь раз.
2. возможно ли в post-mount написать скрипт автоматического запуска некоторых служб (тот же самый торрент) когда монтируется HDD?
Почему нет?
Код:
for i in /opt/etc/rc.d/S*
do
# Check if the script is there.
[ ! -x "$i" ] && continue
# Don't run *.rpm* and *~ scripts
[ "${i%.rpm*}" = "$i" -a "${i%\~}" = "$i" ] || continue
"$i" start
done
Будет запускать все скрипты, имя которых начинается на "S" (от Start), и для которых установлен бит 'x' ("выполнение"), из каталога /opt/etc/rc.d/.
В этот каталог нужные стартовые скрипты можно или копировать, или создавать в нем ссылки на нужные скрипты, которые размщены в другом месте (у меня в /opt/etc/init.d/)
огромное спасибо. 1-е работает. насчёт второго буду разбираться
огромное спасибо. 1-е работает. насчёт второго буду разбираться
Да, и ОЧЕНЬ не рекомендую 'sync' - и так медленный USB.
2. возможно ли в post-mount написать скрипт автоматического запуска некоторых служб (тот же самый торрент) когда монтируется HDD?
Шаблон скриптов инициализации init.d - AsusForum.NET -- WL500g (http://wl500g.info/showthread.php?t=13220&highlight=rc.func)
ipkiller
07-02-2009, 17:46
а кто сможет подсказать почему в них информация не сохраняется :)
2 мес назад прописал в post-mount там все ок
сейчас прописываю в post-boot post-firewall
сохраняю, проверю все ОК
перегружаю..
моих изменений нет :(
а кто сможет подсказать почему в них информация не сохраняется :)
2 мес назад прописал в post-mount там все ок
сейчас прописываю в post-boot post-firewall
сохраняю, проверю все ОК
перегружаю..
моих изменений нет :(
А во flashfs вы сохранить не забываете?
ipkiller
07-02-2009, 19:20
А во flashfs вы сохранить не забываете?
Действительно, про сохранить я даже ине вспомнил.... :)
Спасибо большое..
StaREViL
07-02-2009, 19:54
А во flashfs вы сохранить не забываете?
А вот тут какая то фигня у меня творится.=(
[admin@WL500 sbin]$ ls -la
drwxr-xr-x 1 admin root 0 Jan 28 12:58 .
drwxr-xr-x 1 admin root 0 Jan 1 2000 ..
-rwxr-xr-x 1 admin root 0 Feb 3 19:48 post-boot
-rwxr-xr-x 1 admin root 0 Feb 3 19:47 post-firewall
-rwxr-xr-x 1 admin root 1386 Feb 6 18:38 post-mount
[admin@WL500 sbin]$ cat post-mount
#!/bin/sh
swapon /dev/scsi/host1/bus0/target0/lun0/part1
mount -obind /tmp/mnt/disc0_1/opt/ /opt
/opt/bin/sendsms/send.php 'Router is started'
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -p tcp --dport 23 -j ACCEPT
НО, после ребута post-mount не исполняется.
send.php Работает точно, но сообщений нет.
Так же и с iptables
Сохраняюсь как обычно.
[admin@WL500 sbin]$ flashfssave
-sh: flashfssave: not found
[admin@WL500 sbin]$ flashfs save
tar: Removing leading '/' from member names
tmp/local/
tmp/local/etc/
tmp/local/etc/dropbear/
tmp/local/etc/dropbear/dropbear_rsa_host_key
tmp/local/etc/dropbear/dropbear_dss_host_key
tmp/local/sbin/
tmp/local/sbin/post-mount
tmp/local/sbin/post-firewall
tmp/local/sbin/post-boot
tmp/local/root/
tmp/local/root/pub
tmp/local/root/.profile
-rw-r--r-- 1 admin root 1868 Feb 7 21:46 /tmp/flash.tar.gz
Check saved image and type "/sbin/flashfs commit" to commit changes
[admin@WL500 sbin]$ flashfs commit
.
Committed.
[admin@WL500 sbin]$ flashfs enable
[admin@WL500 sbin]$
Прошивка 10-ая на 9 такого небыло. Куда копать?
НО, после ребута post-mount не исполняется.
А у вас хоть что-то монтируется? В логе записи есть? post-mount не при загрузке, а при монтировании должен выполняться.
StaREViL
08-02-2009, 15:26
А у вас хоть что-то монтируется? В логе записи есть? post-mount не при загрузке, а при монтировании должен выполняться.
Да, монтирование происходит само. В пост-маунт специально не указывал куда и что монтировать. Монтируется flash usb и hdd, отформатированы они в ext3
В том-то и дело что в syslog ошибок нет, либо не нашел.
Лог в аттаче, сообщения Jan 1 03:00:22 kernel: Adding Swap: 128480k swap-space (priority -1) видимо происходит после ручного запуска пост-маунта.
"при монтировании должен выполняться" по поводу этих слов=)...может я еще не особо понял назначения пост-маунта?
Может в нем нужно четко указать куда монтировать внешние устройства, тогда он будет выполняться?? С другой стороны, в данный момент в пост-маунт не указано что и куда монтировать, но при ручном запуске этого файла, все что описано в нем, исполняется.
Куда копать?
StaREViL
08-02-2009, 21:13
Проблема следующего характера: не выполняются файлы post-l.
Права executable есть.
[admin@WL500 sbin]$ ls -la
drwxr-xr-x 1 admin root 0 Jan 28 12:58 .
drwxr-xr-x 1 admin root 0 Jan 1 2000 ..
-rwxr-xr-x 1 admin root 0 Feb 3 19:48 post-boot
-rwxr-xr-x 1 admin root 0 Feb 3 19:47 post-firewall
-rwxr-xr-x 1 admin root 1386 Feb 6 18:38 post-mount
В каждом скрипте добавлен путь к интерпретатору sh:
[admin@WL500 sbin]$ cat post-mount
#!/bin/sh
swapon /dev/scsi/host1/bus0/target0/lun0/part1
mount -obind /tmp/mnt/disc0_1/opt/ /opt
/opt/bin/sendsms/send.php 'Router is started'
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -p tcp --dport 23 -j ACCEPT
НО, после ребута post-mount не исполняется.
send.php Работает точно, но сообщений нет.
Так же и с iptables
Сохраняюсь как обычно.
[admin@WL500 sbin]$ flashfs save
tar: Removing leading '/' from member names
tmp/local/
tmp/local/etc/
tmp/local/etc/dropbear/
tmp/local/etc/dropbear/dropbear_rsa_host_key
tmp/local/etc/dropbear/dropbear_dss_host_key
tmp/local/sbin/
tmp/local/sbin/post-mount
tmp/local/sbin/post-firewall
tmp/local/sbin/post-boot
tmp/local/root/
tmp/local/root/pub
tmp/local/root/.profile
-rw-r--r-- 1 admin root 1868 Feb 7 21:46 /tmp/flash.tar.gz
Check saved image and type "/sbin/flashfs commit" to commit changes
[admin@WL500 sbin]$ flashfs commit
.
Committed.
[admin@WL500 sbin]$ flashfs enable
[admin@WL500 sbin]$
В /tmp/flash.tar.gz есть все файлы post-. Редактировал файлы в vi, лишнего там ничего нет.
Прошивка 10-ая на 9 такого не было. Куда копать?
В логе ошибок нет, либо не нашел. Аттач. Часть сислога удалил, так как там после свопа начинаются дискавери и офер.=)
"при монтировании должен выполняться" по поводу этих слов=)...может я еще не особо понял назначения пост-маунта?
По идее, post-mount выполняется автоматически после (опять же, автоматического) монтирования чего-либо.
Возможно, у вас проблема с путями, хотя вряд ли.
Добавьте следущую строчку в начало post-mount, сразу после #!/bin/sh
/usr/bin/logger "running post-mount"
И после загрузки (подождите некоторое время) ищите эту строчку в логе; если есть - значит файл выполняется и проблема в командах внутри него.
Проблема следующего характера: не выполняются файлы post-l.
А ч его Вы взяли, что они не выполняются? По каким признакам судите?
Что в iptables нет разрешающих строчек? - Так и не будет: после каждого переконекта на wan или ppp таблица iptables строиться с нуля, и что-либо прописать туда можно лишь в скрипте post-firewall.
Для начала, убедитесь в том, что ваш скрипт действительно запускается, добавив второй строчкой (после #!/bin/sh):
/usr/bin/logger -t имя_скрипта "Собщение... типа Script is run."
theMIROn
08-02-2009, 22:48
Добавьте следущую строчку в начало post-mount, сразу после #!/bin/sh
/usr/bin/logger "running post-mount"
лучше добавить во все post/pre скрипты строчку
/usr/bin/logger -t $(basename $0) "started [$@]"в логе будет видно и имя скрипта и его параметры, примерно так:
Jan 1 05:00:23 post-firewall: started [ppp0 0.0.0.0 br0 192.168.1.1 vlan1 10.132.8.118]
Jan 1 05:00:23 post-mount: started [1005/b113/100]
theMIROn
08-02-2009, 22:48
лучше добавить во все post/pre скрипты строчку
/usr/bin/logger -t $(basename $0) "started [$@]"в логе будет видно и имя скрипта и его параметры, примерно так:
Jan 1 05:00:23 post-firewall: started [ppp0 0.0.0.0 br0 192.168.1.1 vlan1 10.132.8.118]
Jan 1 05:00:23 post-mount: started [1005/b113/100]
StaREViL
09-02-2009, 15:55
лучше добавить во все post/pre скрипты строчку
/usr/bin/logger -t $(basename $0) "started [$@]"в логе будет видно и имя скрипта и его параметры, примерно так:
logger добавил. С сислоге появились надписи что все стартует. Спасибо.
Буду дальше тогда разбираться, почему не все запускается...
Здравствуйте всем!
Честно воспользовавшись поиском ответа не нашел. если пропустил - не бейте. :)
у меня такая проблема. Ниже я приведу лог телнет-сесси установленной сразу после загрузки роутера. объясните мне странное поведение команды export TERM=... ?
[admin@asus root]$ export
export HOME='/usr/local/root'
export LOGNAME='admin'
export PATH='/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bi
n:/sbin:/bin'
export PS1='[\u@\h \W]$ '
export PWD='/tmp/local/root'
export SHELL='/bin/sh'
export TERM='linux'
export USER='admin'
[admin@asus root]$ cat /usr/local/sbin/post-boot
#!/bin/sh
export TERMINFO="/opt/share/terminfo"
export TERM="xterm"
[admin@asus root]$ ls -l /usr/local/sbin/post-boot
-rwxr-xr-x 1 admin root 68 Feb 19 00:32 /usr/local/sbin/post-boot
[admin@asus root]$ /usr/local/sbin/post-boot
[admin@asus root]$ export
export HOME='/usr/local/root'
export LOGNAME='admin'
export PATH='/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bi
n:/sbin:/bin'
export PS1='[\u@\h \W]$ '
export PWD='/tmp/local/root'
export SHELL='/bin/sh'
export TERM='linux'
export USER='admin'
[admin@asus root]$ export TERM="xterm"
[admin@asus root]$ export
export HOME='/usr/local/root'
export LOGNAME='admin'
export PATH='/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bi
n:/sbin:/bin'
export PS1='[\u@\h \W]$ '
export PWD='/tmp/local/root'
export SHELL='/bin/sh'
export TERM='xterm'
export USER='admin'
[admin@asus root]$
у каждого процесса sh свой environment.
Если хотите, чтобы переменные были заданы в интерактивном шеле, добавляйте export-ы в ~/.profile
зачем тогда во всех FAQ написано, что сделайте post-boot такого вида, дабы правильно работали клавиши midnight commander'a?
у каждого процесса sh свой environment.
Если хотите, чтобы переменные были заданы в интерактивном шеле, добавляйте export-ы в ~/.profile
не во всех: http://wl500g.info/showpost.php?p=60932&postcount=3
и вообще, тьюториал от wengi на данный момент самый up to date.
ок. спасибо. :) я как раз искал как сохранить алиас для mc цветного. :) я еще только учусь. ;)
не во всех: http://wl500g.info/showpost.php?p=60932&postcount=3
и вообще, тьюториал от wengi на данный момент самый up to date.
Ковырял конфиги, доковырялся :(
Каталог \etc\opt\init.d и, естественно, все его содержимое, недоступно. А там много чего нужного лежит.
Имя каталога красное и с вопросительным знаком
Выглядит это так:
http://lh5.ggpht.com/_QILbRoSQxYQ/SioZrYVhuzI/AAAAAAAAABI/UxyjUdkYj3I/15.JPG
Где копать?
Видимо, ваш /opt/etc/init.d - это символическая ссылка, и она побилась. Покажите, что говорит
ls -l /opt/etc/init.d
Видимо, ваш /opt/etc/init.d - это символическая ссылка, и она побилась. Покажите, что говорит
ls -l /opt/etc/init.d
Спасибо за совет, но уже победил проблему методом авторизованных автосервисов :). Развернул резервный образ на флешку :)
Делал как http://wl500g.info/showthread.php?t=18096 указано
mkdir -p /usr/local/sbin
vi /usr/local/sbin/post-firewall
#!/bin/sh
iptables -t nat -nvL POSTROUTING | grep MASQUERADE | awk '{
"ifconfig "$7" | grep Mask" | getline ip;
split(ip,ip,":"); split(ip[2],ip," ");
split($8,src,"!");
if (src[1]=="") {src="! -s "src[2]} else {src="-s "src[1]};
if ($9=="0.0.0.0/0") {dst=""} else {dst="-d "$9};
system("iptables -t nat -A POSTROUTING -o "$7" "src" "dst" -j SNAT --to-source "ip[1]);
system("iptables -t nat -D POSTROUTING -o "$7" "src" "dst" -j MASQUERADE");
}'
.... итд
при проверке
iptables -t nat -nvL POSTROUTING под target было SNAT. Все было хорошо, только понадобилось мне добавить локальных маршрутов. Сделал так
vi /usr/local/sbin/post-firewall
потом добавил
#!/bin/sh
/sbin/route add -net 00000000 netmask 00000000 gw 10.0.32.1
/sbin/route add -net 00000000 mask 000000000 gw 10.0.32.1 Теперь нету SNAT и нету роутинга (( делал все по инструкции, ни шагу всторону. Уважаемые форумчане и гуру подскажите где я ошибся и как оно все должно выглядеть. Сейчас выглядит вот так :
[admin@WL-001BFCD464F8 root]$ cat /usr/local/sbin/post-firewall
ptables -t nat -nvL POSTROUTING | grep MASQUERADE | awk '{
"ifconfig "$7" | grep Mask" | getline ip;
split(ip,ip,":"); split(ip[2],ip," ");
split($8,src,"!");
if (src[1]=="") {src="! -s "src[2]} else {src="-s "src[1]};
if ($9=="0.0.0.0/0") {dst=""} else {dst="-d "$9};
system("iptables -t nat -A POSTROUTING -o "$7" "src" "ds t" -j SNAT --to-source "ip[1]);
system("iptables -t nat -D POSTROUTING -o "$7" "src" "dst" -j MASQUERADE");
}'
#!/bin/sh
/sbin/route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.23.176.253
/sbin/route add -net 78.107.23.0 mask 255.255.255.0 gw 172.23.176.253
/sbin/route add -net 79.104.0.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 79.104.196.131 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 83.102.0.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 83.222.7.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 85.21.79.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 85.21.90.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 85.21.52.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 85.21.72.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 85.21.138.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 89.179.0.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 95.30.0.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 192.168.0.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 194.67.1.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 194.186.0.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 194.67.18.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 195.14.0.0 netmask 255.255.0.0 gw 172.23.176.253
route -n
[admin@WL-001BFCD464F8 root]$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
212.119.219.108 10.27.0.1 255.255.255.255 UGH 1 0 0 vlan1
212.119.219.107 10.27.0.1 255.255.255.255 UGH 1 0 0 vlan1
172.23.176.8 10.27.0.1 255.255.255.255 UGH 1 0 0 vlan1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
10.27.0.0 0.0.0.0 255.255.252.0 U 0 0 0 vlan1
10.0.0.0 10.27.0.1 255.0.0.0 UG 0 0 0 vlan1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 172.23.176.253 0.0.0.0 UG 0 0 0 ppp0
0.0.0.0 10.27.0.1 0.0.0.0 UG 1 0 0 vlan1
А под таргетом теперь MASQUERADE. Объясните как сделать правильно чтоб маршрутизация на лок IP была и PPTP работала шустро. Заранее спасибо.
Mashiro-sama
05-08-2009, 06:14
#!/bin/sh должно быть в самом начале файла, первой строкой.
#!/bin/sh должно быть в самом начале файла, первой строкой.
Я правильно понял:
#!/bin/sh
iptables -t nat -nvL POSTROUTING | grep MASQUERADE | awk '{
"ifconfig "$7" | grep Mask" | getline ip;
split(ip,ip,":"); split(ip[2],ip," ");
split($8,src,"!");
if (src[1]=="") {src="! -s "src[2]} else {src="-s "src[1]};
if ($9=="0.0.0.0/0") {dst=""} else {dst="-d "$9};
system("iptables -t nat -A POSTROUTING -o "$7" "src" "ds t" -j SNAT --to-source "ip[1]);
system("iptables -t nat -D POSTROUTING -o "$7" "src" "dst" -j MASQUERADE");
}'
/sbin/route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.23.176.253
/sbin/route add -net 78.107.23.0 mask 255.255.255.0 gw 172.23.176.253
/sbin/route add -net 79.104.0.0 netmask 255.255.0.0 gw 172.23.176.253
.....
Примерно так????
#!/bin/sh сделал вначале
#!/bin/sh
iptables -t nat -nvL POSTROUTING | grep MASQUERADE | awk '{
"ifconfig "$7" | grep Mask" | getline ip;
split(ip,ip,":"); split(ip[2],ip," ");
split($8,src,"!");
if (src[1]=="") {src="! -s "src[2]} else {src="-s "src[1]};
if ($9=="0.0.0.0/0") {dst=""} else {dst="-d "$9};
system("iptables -t nat -A POSTROUTING -o "$7" "src" "dst" -j SNAT --to-source "ip[1]);
system("iptables -t nat -D POSTROUTING -o "$7" "src" "dst" -j MASQUERADE");
}'
/sbin/route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.23.176.253
/sbin/route add -net 78.107.23.0 mask 255.255.255.0 gw 172.23.176.253
/sbin/route add -net 79.104.0.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 79.104.196.131 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 83.102.0.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 83.222.7.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 85.21.79.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 85.21.90.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 85.21.52.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 85.21.72.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 85.21.138.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 89.179.0.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 95.30.0.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 192.168.0.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 194.67.1.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 194.186.0.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 194.67.18.0 netmask 255.255.0.0 gw 172.23.176.253
/sbin/route add -net 195.14.0.0 netmask 255.255.0.0 gw 172.23.176.253
Под target теперь SNAT. Но при route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
212.119.219.108 10.27.0.1 255.255.255.255 UGH 1 0 0 vlan1
212.119.219.107 10.27.0.1 255.255.255.255 UGH 1 0 0 vlan1
172.23.176.8 10.27.0.1 255.255.255.255 UGH 1 0 0 vlan1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
10.27.0.0 0.0.0.0 255.255.252.0 U 0 0 0 vlan1
10.0.0.0 10.27.0.1 255.0.0.0 UG 0 0 0 vlan1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 172.23.176.253 0.0.0.0 UG 0 0 0 ppp0
0.0.0.0 10.27.0.1 0.0.0.0 UG 1 0 0 vlan1
Что я сного сделал не правильно? Маршрутизация тоже должна прописаться :o
Версия прошивки 1.9.2.7-10.7.
Запусти его ручками и посмотри на что ругается.
Запусти его ручками и посмотри на что ругается.
Ммм если бы знал. Скажите как его запустить. nix только начинаю осваивать.
Скажите как его запустить. nix только начинаю осваивать.
cd /usr/local/sbin/post-firewall
./post-firewall
ну или просто /usr/local/sbin/post-firewall :)
route: SIOC[ADD|DEL]RT: Network is unreachable
BusyBox v1.1.3 (2009.02.22-14:37+0000) multi-call binary
Usage: route [{add|del|delete}]
route: SIOC[ADD|DEL]RT: Network is unreachable
route: netmask and route address conflict
route: SIOC[ADD|DEL]RT: Network is unreachable
route: netmask and route address conflict
route: netmask and route address conflict
route: netmask and route address conflict
route: netmask and route address conflict
route: netmask and route address conflict
route: netmask and route address conflict
route: SIOC[ADD|DEL]RT: Network is unreachable
route: SIOC[ADD|DEL]RT: Network is unreachable
route: SIOC[ADD|DEL]RT: Network is unreachable
route: netmask and route address conflict
route: SIOC[ADD|DEL]RT: Network is unreachable
route: netmask and route address conflict
route: SIOC[ADD|DEL]RT: Network is unreachable
Вот что показывает. что это значит?
ага надо со включенным кабелем попробовать
Значит что вот этого 172.23.176.253 найти не может.
/sbin/route add -net 78.107.23.0 mask 255.255.255.0 gw 172.23.176.253
/sbin/route add -net 78.107.23.0 netmask 255.255.255.0 gw 172.23.176.253
тоже самое
Очень странно 172.23.176.253, и в ройтере он сейчас есть и через сетевуху смотрел.
С провайдером созвонились?
iptables -t nat -nvL POSTROUTING | grep MASQUERADE три строки как в мануале (http://wl500g.info/showthread.php?t=18096) показывает?
Если да, то берите и по одному маршруту выполняйте за раз.
С провом? звонил сказали локальные IP это вобще не их забота и как и я прописывать буду они тоже незнают (пчелайн). Да по мануалу делал, 3 строки есть.
Вот по 1
[******@WL-001BFCD464F8 root]$ route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.23.176.253
route: SIOC[ADD|DEL]RT: Network is unreachable
Тож самое что и при выполнении файлика целиком
Спасибо за советы.
В роутере посмотрел дефолтный еще 10.27.0.1
Подумал, а ведь если БЕЗ VPN соединения и на сетевухе оно тоже есть. Заменил, обновил. Заработало!!!.
Доброго времени суток всем!
После прошивки на 1.9.2.7-d-r1222.trx при загрузке перестали выполняться все post-* скрипты (которые лежат в /tmp/local/sbin), а именно:
post-boot*
post-firewall*
post-mount*
и так далее..
У кого подобный глюк был? Как лечили?
После перепрошивки flashfs enable не забыли?
После перепрошивки flashfs enable не забыли?
flashfs save
flashfs commit
flashfs enable
все это у меня уже на автомате, после любых изменений делаю.
бездумные действия не всегда приводят к положительному результату.
Если после перепрошивки flashfs не была загружена, то выполнив последовательность из этих трех комманд вы очистили ее содержимое, сохранив пустую flashfs.
С какой версии осуществлялась перепрошивка?
бездумные действия не всегда приводят к положительному результату.
Если после перепрошивки flashfs не была загружена, то выполнив последовательность из этих трех комманд вы очистили ее содержимое, сохранив пустую flashfs.
С какой версии осуществлялась перепрошивка?
С предыдущей. Если, правильно ошибаюсь 1087.
Правда, сразу не прошилась - зависло все намертво.
Возвращал "к жизни" через Asus Recovery
CattheBlack
20-09-2010, 09:38
Прошу прощения за странный вопрос, но яндекс-гугол не дал ответа :(
Как разрешить определенной группе адресов (192.168.112.0/24) пользоваться windows update?
Не получается по днс-именам, айпишники не нашел. Плоховато разбираюсь в вопросе...
Спасибо большое, если не оставите в беде! ;)
dfayruzov
20-09-2010, 19:00
Уточните вопрос.
Для работы windows update необходимо разрешить только http и https, так как для передачи данных используется Background Intelligent Transfer Service (http://en.wikipedia.org/wiki/Background_Intelligent_Transfer_Service).
Разрешен ли доступ в интернет для этой подсети? Нужно запретить интернет, но оставить доступ к windows update?
CattheBlack
21-09-2010, 06:05
Сожалею о неточности формулировок. На работе писал, торописля. ;)
Есть две подсети - 192.168.111.0/24 - с выходом в инет (FORWARD на всех) и 192.168.112.0/24 - у них только локалка.
Как разрешить 112-м обновлять винду, но чтобы в инет они не могли полноценно выйти? Айпишники я не нашёл микрософтовые (может, плохо искал...). Можно ли как-то использовать имена вроде http://*.update.microsoft.com/? Или IP-адреса нужные где-нибудь найти?
dfayruzov
21-09-2010, 19:27
А не проще на одном из компов с интернетом поднять WSUS?
Я в свое время его даже на XP ставил. )
CattheBlack
21-09-2010, 20:55
А не проще на одном из компов с интернетом поднять WSUS?
Я в свое время его даже на XP ставил. )
А он ставится не на серверную ось? Тогда это решает все проблемы!
Спасибо большое!
CattheBlack
22-09-2010, 06:09
Не ставится он на Windows 7. Может, кто знает, как разрешить только обновления?
Не ставится он на Windows 7. Может, кто знает, как разрешить только обновления?
Все ставится (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=A206AE20-2695-436C-9578-3403A7D46E40).
Я в написаниях правил для Iptables не силен, но ты можешь воспользоваться альтернативным сервером обнорвновления корбина-билайн, вот как резолвится адрес http://sus.corbina.net/
Non-authoritative answer:
Name: sus.corbina.net
Address: 85.21.79.201
Я сам пользуюсь им.
Успехов!
CattheBlack
22-09-2010, 17:35
Все ставится (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=A206AE20-2695-436C-9578-3403A7D46E40).
Только что запустил WSUS30-KB972455-x64.exe, он сказал, что хочет 2003-й или 2008-й сервер...
За корбиновую идею спасибо! попробую. Если оно не из корбиновой локалки работает...
За корбиновую идею спасибо! попробую. Если оно не из корбиновой локалки работает...
Ты же видишь, что IP-шник реальный, а не локальный. У меня все версии винды с него обновления качают, причем там нет обновлений, которые сбивают кряку :D
DarkTwin
02-02-2012, 06:41
Господа подскажите где в прошивке от энтузиастов для сего девайса лежит (или должны лежать) post-boot и иже с ним ?
создал в /usr/local/sbin/post-boot но результата нету, а значит я ошибся.
Pablo Escobar
18-02-2012, 19:09
граждане, а где у него post-boot, post-firewall, etc.?
а то в iptables надо пробросы сделать.
вопрос снимаю. (/usr/local/sbin/post-firewall)
коллеги, а может быть так, что post-firewall от wl500 не отрабатывает на rt-16n?
Хоть убей, а не идет проброс. Вдруг что править надо?
Подскажите плз очередность загрузки скриптов post-boot и post-firewall.
И с каким именем создать скрипт, чтоб он загружался в самую последнюю очередь (после post-boot и post-firewall) ?
Подскажите плз очередность загрузки скриптов post-boot и post-firewall.
И с каким именем создать скрипт, чтоб он загружался в самую последнюю очередь (после post-boot и post-firewall) ?
А для кого ФАКи (http://wl500g.info/showthread.php?t=2391) пишут??? 12 пост...
Supermaks
24-04-2012, 15:48
ДОбрый день!
Имеется DIR-320 перешитый в модифицированную прошивку от vampik.
Сделал по инструкциям:
echo "#!/bin/sh" >> /usr/local/sbin/post-boot
echo "#!/bin/sh" >> /usr/local/sbin/post-firewall
chmod +x /usr/local/sbin/post-*
Настраиваю второй WAN-порт (ну обычная задача)
Делаю все обычные nvram set и прочее из инструкции вплоть до nvram commit
В post-boot добавлено:
ifconfig vlan2 10.236.14.15 broadcast 10.236.15.255 netmask 255.255.248.0 up
В post-firewall - несколько route add вида
route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.236.8.1
route add -host XXX.XXX.XXX.XXX gw 10.236.8.1
После перезагрузки вижу что vlan2 появляется(post-boot работает), а команда route показывается только дефолтные маршруты. Если перейти в /usr/local/sbin и запустить post-firewall вручную то скрипт явно выполняется и через команду route я вижу то что должно было добавиться через post-firewall.
Вопрос: почему может не запускаться post-firewall после ребута?
Update: продолжение исследования показало что post-firewall все таки запускается, и там выполняются различные другие команды типа iptables, но не выполняются именно команды route add.
Записал на DIR-320 файл /usr/local/sbin/post-firewall
Вот его содержимое:
#!/bin/sh
# limits TCP conections by 60 for mac address
#
insmod xt_connlimit
iptables -I FORWARD -p tcp -m connlimit --connlimit-above 60 -m mac --mac-source 00:19:67:cd:68:d1 -j REJECT
Вот фрагмент вывода iptables-save
-A FORWARD -p tcp -m connlimit --connlimit-above 60 --connlimit-mask 32 --connlimit-saddr -m mac --mac-source 00:19:67:cd:68:d1 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i br0 -o br0 -j ACCEPT
-A FORWARD -m conntrack --ctstate INVALID -j DROP
-A FORWARD -d 224.0.0.0/4 -p udp -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD ! -i br0 -o wan0 -j DROP
-A FORWARD ! -i br0 -m conntrack --ctstate NEW -j SECURITY
-A FORWARD -s 192.168.1.105/32 -i br0 -p tcp -m time --timestart 23:00:00 --timestop 08:00:00 -j DROP
-A FORWARD -i br0 -j ACCEPT
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
Хочу понять, имеет ли значение в данном случае что это правило на первом месте, а не на последнем? Если да, то куда его лучше воткнуть вперед или назад?
WL500gpv2, Прошивка 1.9.2.7-rtn-r4330
Сегодня обновил прошивку через web-интерфейс с 9.2.7-rtn-r2455 на 1.9.2.7-rtn-r4330, сбросил настройки.
И теперь у меня отсутствует /usr/local/sbin/post-firewall
Может быть я неправильно перепрошил раз отсутствует этот файл?
ConstAntz
14-07-2012, 14:05
WL500gpv2, Прошивка 1.9.2.7-rtn-r4330
Сегодня обновил прошивку через web-интерфейс с 9.2.7-rtn-r2455 на 1.9.2.7-rtn-r4330, сбросил настройки.
И теперь у меня отсутствует /usr/local/sbin/post-firewall
Может быть я неправильно перепрошил раз отсутствует этот файл?
Это нормальное явление, связанное со сбросом настроек в дефолт. Восстанавливается из ранее сохраненного flashfs, но лучше - руками.
Это нормальное явление, связанное со сбросом настроек в дефолт. Восстанавливается из ранее сохраненного flashfs, но лучше - руками.
flashfs я несохранял.
Достаточно будет сделать? (Сейчас пока нет возможности проверить):
echo "#!/bin/sh" >> /usr/local/sbin/post-firewall
chmod +x /usr/local/sbin/post-firewall
правила...
flashfs save && flashfs commit && flashfs enable
MercuryV
15-07-2012, 02:04
Достаточно будет сделать? (Сейчас пока нет возможности проверить):
echo "#!/bin/sh" >> /usr/local/sbin/post-firewall
chmod +x /usr/local/sbin/post-firewall
правила...
flashfs save && flashfs commit && flashfs enable
Ход мыслей верный. Создаете post-firewall заново.
Можно еще опционально добавить в post-firewall строку наподобие
logger 'post-firewall rules applied'
чтобы потом видеть в системном логе, когда скрипт post-firewall отработал
Не смог найти поиском, pre-shutdown почему может не отрабатывать.
Вот:
$ cat /usr/local/sbin/pre-shutdown
#!/bin/sh
date >>"/opt/shutdown_test" 2>&1
/opt/etc/init.d/rc.unslung stop
sleep 10s
for i in `cat /proc/mounts | awk '/ext3/{print($1)}'` ; do
mount -o remount,ro $i
done
swapoff -a
sleep 1s
В результате файл /opt/shutdown_test не заполняется. Означает ли это, что скрипт pre-shutdown не выполняется и почему тогда. Как сделать безопасное отключение дисков?
Не смог найти поиском, pre-shutdown почему может не отрабатывать.
Вот:
$ cat /usr/local/sbin/pre-shutdown
#!/bin/sh
date >>"/opt/shutdown_test" 2>&1
/opt/etc/init.d/rc.unslung stop
sleep 10s
for i in `cat /proc/mounts | awk '/ext3/{print($1)}'` ; do
mount -o remount,ro $i
done
swapoff -a
sleep 1s
В результате файл /opt/shutdown_test не заполняется. Означает ли это, что скрипт pre-shutdown не выполняется и почему тогда. Как сделать безопасное отключение дисков?
ну для начала проверить что файл исполняемый .... в студию
ls -al /usr/local/sbin/
ну для начала проверить что файл исполняемый .... в студию
ls -al /usr/local/sbin/
Спасибо! Просто делал по инструкции http://vectormm.net/routers/routery-asus/97-nachalnaya-nastrojka-rt-n16.html (или похожая http://www.hub.ru/wiki/Asus_WL-500gP:_%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D1%8C%D0%BD% D0%B0%D1%8F_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D 0%B9%D0%BA%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1 %83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B 0) и там не написано сделать эти файлы исполняемыми. После chmod +x -R /usr/local/sbin/ все заработало!