301

(14 odpowiedzi, napisanych Oprogramowanie / Software)

Być może, teraz łapy sobie nie dam odciąć. 

Jakby nie było, da się coś poradzić, aby knockd po restarcie usługi network dalej funkcjonował?

302

(14 odpowiedzi, napisanych Oprogramowanie / Software)

Cześć,

Odpalam knockd wpisem w pliku /etc/rc.commons  (jak dobrze kojarzę nazwę, gdyż nie mogę podłączyć się do routera zdalnie).  Problem jest taki, że po wykonaniu

/etc/init.d/network restart

knockd przestaje nasłuchiwać na WANowskim porcie (od czasu do czasu restartuję w/w poleceniem, gdyż wifi po kilkunastu daniach ma pingi rzędu sekund, pracować się nie da, restart pomaga). Nie dawno włączyłem harmonogramowanie wifi od 3-4 w nocy ma nie być wifi, nie wiem czy to wyłącza interfejs, czy tylko blokuje ruch, ale ma to na celu pozbycie się okresowych problemów z wifi - nie czy to ma wpływ na knockd?).

Pozdrawiam, Krzysiek

Skrypty są banalnie proste:

1. /etc/knockd.conf - uderzam do jakiś portów, np. 100, 200 i 300 tcp sync

[Tcp_SSH_Open]
        sequence = 100:tcp,200:tcp,300:tcp
        seq_timeout = 10
        command = sh /openvpnport %IP%
        tcpflags    = syn
        cmd_timeout  = 60
        stop_command  =  sh /closevpnport %IP%

2. Uruchamiają się:

openpnport - PORT to numer portu TCP na którym nasłuchuje SSH

#!/bin/sh
iptables -I INPUT -p tcp -i wan --dport PORT -s $1 -j ACCEPT
echo $1 >/ip
exit 0

3. Po 1 min wyłączam możliwość nowych połączeń (istniejące są trzymane)
closevpnport -  PORT to numer portu TCP na którym nasłuchuje SSH

#!/bin/sh
iptables -D INPUT -p tcp -i wan --dport PORT -s $1 -j ACCEPT
exit 0

4. Batch skrypt w widows odpala mi sesję putty i uruchamia po zalogowaniu się na usera ABC:

ABC@OpenWrt:~$ cat /vpnopen
#!/bin/sh
/usr/bin/wol -i 192.168.10.255 00:01:03:04:05:06

IP_ADRES=$(cat /ip)

sudo iptables -t nat -I PREROUTING -i wan -p udp -s $IP_ADRES --dport 1000 -j DNAT --to-destination 192.168.103.2:1000
sudo iptables -I FORWARD -p udp -d 192.168.103.2 --dport 1000 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#sudo iptables -t nat -I PREROUTING -i wan -p tcp -s $IP_ADRES --dport 345 -j DNAT --to-destination 192.168.103.2:345
#sudo iptables -I FORWARD -p tcp -d 192.168.103.2 --dport 345 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

sleep "ILOŚĆ SEKUND otwartego połączenia do zautomatycznie zamknięcia"

sudo iptables -t nat -D PREROUTING -i wan -p udp -s $IP_ADRES --dport 1000 -j DNAT --to-destination 192.168.103.2:1000
sudo iptables -D FORWARD -p udp -d 192.168.103.2 --dport 1000 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#sudo iptables -t nat -D PREROUTING -i wan -p tcp -s $IP_ADRES --dport 345-j DNAT --to-destination 192.168.103.2:345
#sudo iptables -D FORWARD -p tcp -d 192.168.103.2 --dport 345-m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

exit 0

No i skrypt zamykający, który jest w zasadzie końcówką powyższego.  Filozofii nie ma. Oczywiście co się dało zmienić to pozmieniałem na jakieś wymyślone porty i adresy, ale idea pozostała.

Być może da się to jakoś zrobić łatwiej/szybciej, dla mnie wystarcza smile

@kiniu, mam taką samą konfigurację jak Ty i też od czasu do czasu włączam backup. I też VPN uruchamia się z backaupa, bo jest tam mocniejszy procek (0,4GHz do 1.6 GHz), zresztą czuję to podczas transmisji VPNem, mam symetryczne łączę 25/25.

Lokalnie jeśli chcę się dostać do zasobów odpalam komendę WOL i korzystam (w 95% to cobian co jakiś czas odpala skrypt na windowsie)

Zdalnie jest trochę więcej roboty, backup stoi na *uxie.

1. Utworzyłem usera na routrze, który jedyne co może to odpalić komendę wol oraz iptables oraz basha. SU/SUDO organiczne do maksimum. Dość mocno ograniczony user.
2. Uruchomiłem usługę knockd na interface WANowskim, który
- zapisuje  IP z którego uderzałem do lokalnego pliku
- otwiera port z flagą trzymania połączenia na którym stoi ssh na kilkanaście sekund, po czym je zamyka na nowe połączenia
3. SHH przyjmuje tylko uwierzytelnianie z klucza (login/passwd zabronione) i pozwala na 1-go usera w czasie, klucz przesada, bo aż 4098 bit
3.5. To też już będzie przesadą, ale można coś stylu fail2ban postawić dla bezpieczeństwa na otwartym porcie SHH (oraz VPN)
4. Wbija się user vpn do SHH (via putty, uruchomiony ze skryptu profil, który ma za zadanie zalogować się do ssh i wywołać inny skrypt)
5. Inny skrypt otwiera na n-minut porty VPNa dla wskazanego IP.  Po co tak? A bo pukanie można przechwycić, lekka paranoja, ale przezorny zawsze ubezpieczony
6. Logowanie do VPNa smile
7. Na razie manualne, ale odpalam inną sesję putty (skrypt), który loguje się przez VPN już jako root i po prostu odpala inny skypt, który w przeciągu minuty zabija połączania z wskazanego IP. Jesli zapmnę, to i tak punkt nr. 5 zrobi to automatycznie.

Trochę zakręcone, ale działa dość dobrze. To będzie już schiza, ale planuję zaszyfrować dysk na backapie kluczem, który będzie dostarczony po zalogowaniu się do VPNa, na razie nie mam na to czasu, chętnie posłucham czy to ma sens i jak to zrealizować.

PS. Na kliencie androidzie też śmiga smile

305

(7 odpowiedzi, napisanych Oprogramowanie / Software)

Może się komuś przydadzą pliki,

Grub 2.0 PXE

po przegraniu plików i skonfigurowaniu /etc/dnsmasq.conf

enable-tftp
tftp-root=*SCIEZKA_DO_PXE*
dhcp-boot=grub.pxe,,*ADRES_IP*

a następnie przeładowaniu usługi i włączeniu PXE na obcej maszynie otrzymamy konsolę GRUBa

W konsoli GRUba ładujemy moduł ata

insmod ata

oraz inne jeśli potrzeba.

Jeśli tylko MBR poszło (tak było w moim przypadku) i nie ma UEFI to:

configurefile (hdX,msdosY)/boot/grub/grub.cfg

i system wstaje, oczywiście jeśli w pliku grub.cfg mamy ścieżki UUID, inaczej jest pewna szansa, że nie, ale to inny temat.

Jakby nie było mając konsolę GRUBa wystartujmy wszystko, jako awaryjny bootloader w mojej ocenie jest 100% lepszy od syslunixa

306

(4 odpowiedzi, napisanych Oprogramowanie / Software)

Chciałbym odświeżyć temat, mam takie coś:

Dec 16 20:48:49 OpenWrt kern.crit kernel: [87381.110000] EXT4-fs error (device sda1): ext4_find_entry:935: inode #117: comm ash: reading directory lblock 0
Dec 16 20:48:50 OpenWrt kern.crit kernel: [87381.200000] EXT4-fs error (device sda1): ext4_find_entry:935: inode #120: comm df: reading directory lblock 0
Dec 16 20:48:50 OpenWrt kern.crit kernel: [87381.210000] EXT4-fs error (device sda1): ext4_find_entry:935: inode #120: comm df: reading directory lblock 0
Dec 16 20:48:50 OpenWrt kern.crit kernel: [87381.220000] EXT4-fs error (device sda1): ext4_find_entry:935: inode #120: comm df: reading directory lblock 0
Dec 16 20:49:17 OpenWrt kern.crit kernel: [87408.200000] EXT4-fs error (device sda1): ext4_find_entry:935: inode #130: comm ash: reading directory lblock 0
Dec 16 20:49:17 OpenWrt kern.crit kernel: [87408.590000] EXT4-fs error (device sda1): ext4_find_entry:935: inode #126: comm ash: reading directory lblock 0

Zrobiony extroot na /dev/sda1 i w związku z tym mam pytanie, bo nie wiem gdzie leży problem.

Pendrive podłączony bezpośrednio do portu USB w TP-LINK 1043ND v1 - 2 dni działa bez zarzutu
Pendrive podłączony przez aktywny hub (z podłączonym i nie zasilaczem ) 1 dzień i w/w log
Pendrive podłączony przez aktywny hub + USB_HDD (z podłączonym zasilaczem ) 1 dzień i w/w log

Czy może to być wina huba? Nie wiem czy hub (sterownik/mod) jest jakoś konfigurowalny w linuxie, jeśli tak czy można coś zmienić?

307

(7 odpowiedzi, napisanych Oprogramowanie / Software)

Dzięki poszło,

A hipotetycznie - bez pc gruba na openwrt zainstalować się nie da w celu utworzenia pliku pxe?

308

(7 odpowiedzi, napisanych Oprogramowanie / Software)

i to jest problem - pc, na którym był linux ma uszkodzony dysk, stąd chcę go podnieść tą metodą smile
I brakuje mi pliku grub.pxe plus plików standardowo zanadujących się w lokalizacji /boot/grub

309

(7 odpowiedzi, napisanych Oprogramowanie / Software)

Jest jak mówisz, ale brakuje mi pliku do bootowania grub.pxe, którego zgodnie z dokumentacją:

https://www.gnu.org/software/grub/manua … twork.html

tworzy się poprzez:

grub-mkimage --format=i386-pc-pxe --output=grub.pxe --prefix='(pxe)/boot/grub' pxe pxecmd

310

(7 odpowiedzi, napisanych Oprogramowanie / Software)

Cześć,

Jak zainstalwać GRUB?  Potrzebuję utworzyć grub.pxe do bootwania systemów przez sieć.


OpenWrt Attitude Adjustment 12.09.1 (r41182)
Build time: 2014-06-14 13:26 CEST


root@OpenWrt:~# opkg update
Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/attitude_adjustment.
Downloading http://dl.eko.one.pl/attitude_adjustment/ar71xx/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/eko1.
root@OpenWrt:~# opkg list |grep grub
root@OpenWrt:~#

Cześć,

Konfiguracja:   [Internet] <-> [Modem ADSL - NAT] <-> [AP]

Jak w urządzaniu AP (prywatne adresacja) za NATem tworzonym w urządzaniu z modemem ADSL poznać swój publiczny adres IP (ten, który dostaje modem od dostawcy)?

PS. Wiem, że to nie jest forum MikroTików, ale to samo pytanie, jeśli AP jest na MT.

Pozdrawiam, Krzysiek

Mam podłączony dysk pod USB i chciałbym go uśpić, niestety nie da są sad

root@OpenWrt:~# hdparm -S 120 /dev/sda

/dev/sda:
 setting standby to 120 (10 minutes)
 HDIO_DRIVE_CMD(setidle) failed: Invalid argument

Da się go jakoś uśpić?

Podpinam sie pod pytanie, jak wypakowac *firmware.bin ewentualnie *sysupgrade.bin,   zminic co nieco i z powrtem utowrzyc plik bin (firmware), aby wrzucic na flash?

314

(35 odpowiedzi, napisanych Oprogramowanie / Software)

Znalazłem już to wcześniej, ale w OpenWRT nie mogę znaleźć pakietu do zainstalowania  hmm
W normalnym (tj nie okrojonym) na pewno by się to udało...

sudo apt-get install mtd-tools
sudo modprobe -v mtd
sudo modprobe -v jffs2
sudo modprobe -v mtdram total_size=256000 erase_size=256
sudo modprobe -v mtdchar
sudo modprobe -v mtdblock

EDIT:  Znalazłem instrukcję, działa pod OpenWRT
http://www.gentoo-wiki.info/JFFS2/Mounting

root@OpenWrt:/# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00020000 00010000 "u-boot"
mtd1: 000ed800 00010000 "kernel"
mtd2: 006e2800 00010000 "rootfs"
mtd3: 002e0000 00010000 "rootfs_data"
mtd4: 00010000 00010000 "art"
mtd5: 007d0000 00010000 "firmware"
mtd6: 002df000 00001000 "/dev/loop0"
root@OpenWrt:/# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                    2.9M      2.7M    200.0K  93% /
/dev/root                 4.0M      4.0M         0 100% /rom
tmpfs                    14.3M    704.0K     13.6M   5% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/mtdblock3            2.9M      2.7M    200.0K  93% /overlay
overlayfs:/overlay        2.9M      2.7M    200.0K  93% /
/dev/sda1                27.9G     14.2G     13.7G  51% /mnt/sda1
/dev/mtdblock6            2.9M      1.3M      1.5M  47% /mnt/sda1/root/flash/a
root@OpenWrt:/#

315

(35 odpowiedzi, napisanych Oprogramowanie / Software)

W sumie to czasowo siedzę na tym mało, bardziej rozciągnięte w czasie z powodu braku czasu, wolę spędzić czas z dziećmi smile
Poza tym robię to dla sportu, bo jak pisałem - mogę w 2 min zrobić extroota....

Wracając do tematu, mam mały offtopic - jak zamontować obraz jffs2?

root@OpenWrt:/mnt/sda1/root/flash# dd if=/dev/mtdblock5 of=mtd3-rootfs_jffs2
16000+0 records in
16000+0 records out

root@OpenWrt:/mnt/sda1/root/flash# ls -lh
drwxrwxrwx    1 root     root           0 Nov  7 10:50 a
-rwxrwxrwx    1 root     root      128.0K Nov  7 10:44 mtd0-uboot
-rwxrwxrwx    1 root     root      950.0K Nov  7 10:44 mtd1-kernel
-rwxrwxrwx    1 root     root        6.9M Nov  7 10:44 mtd2-rootfs_squasfs
-rwxrwxrwx    1 root     root        2.9M Nov  7 10:43 mtd3-rootfs_jffs2
-rwxrwxrwx    1 root     root       64.0K Nov  7 10:44 mtd4-art
-rwxrwxrwx    1 root     root        7.8M Nov  7 10:43 mtd5-firmware

Chcą zamontować przez loopa mtd2 - wychodzi. Chcę mtd3 - nie idzie hmm

root@OpenWrt:/mnt/sda1/root/flash# mount -t jffs2 mtd3-rootfs_jffs2 a
mount: mounting /dev/loop0 on a failed: Invalid argument

Próbuję inaczej

root@OpenWrt:/mnt/sda1/root/flash# ls -l /dev/loop*
crw-r--r--    1 root     root       10, 237 Nov  7 15:02 /dev/loop-control
brw-r--r--    1 root     root        7,   0 Nov  7 15:02 /dev/loop0
brw-r--r--    1 root     root        7,   1 Nov  7 15:02 /dev/loop1
brw-r--r--    1 root     root        7,   2 Nov  7 15:02 /dev/loop2
brw-r--r--    1 root     root        7,   3 Nov  7 15:02 /dev/loop3
brw-r--r--    1 root     root        7,   4 Nov  7 15:02 /dev/loop4
brw-r--r--    1 root     root        7,   5 Nov  7 15:02 /dev/loop5
brw-r--r--    1 root     root        7,   6 Nov  7 15:02 /dev/loop6
brw-r--r--    1 root     root        7,   7 Nov  7 15:02 /dev/loop7

root@OpenWrt:/mnt/sda1/root/flash# losetup /dev/loop0 mtd3-rootfs_jffs2

root@OpenWrt:/mnt/sda1/root/flash# losetup -av
/dev/loop0: [2049]:1086 (/mnt/sda1/root/flash/mtd3-rootfs_jffs2)

root@OpenWrt:/mnt/sda1/root/flash# mount -t jffs2 /dev/loop0 a
mount: mounting /dev/loop0 on a failed: Invalid argument

Gdzieś znalazłem, że żeby sprawdzić czy początek pliku jest dobry i taki jest.

root@OpenWrt:/mnt/sda1/root/flash# hexdump mtd3-rootfs_jffs2  -n 4 -e '4/1 "%02x"'
19852003

Pomysły mi się skończyły - jak pod-montować obraz jffs2?

Wersja AA:
OpenWrt Attitude Adjustment 12.09.1 (r41182)
Build time: 2014-06-14 13:26 CEST

316

(35 odpowiedzi, napisanych Oprogramowanie / Software)

smile z analizą kodu jądra będzie trudno

Ale poruszyłeś ważny temat - obecnie nie mam czasu na zabawy sprzętem, ale cały wątek powstał po to, aby mdt3 zastąpić innym obrazem.

Czy wobec tego, że mój spreparowany obraz mtd3 jest mniejszy od obecnie zajmowanej przestrzeni, czy to nie wykrzaczy się?  Spreparować tak obraz overlay'a aby pasował co do bita do mtd3 jest dla mnie technicznie trudną rzeczą (jeśli w ogóle możliwe).  Dlatego pytam, czy po ewentualnym wgraniu nowego obrazu taki znacznik jest w obrazie jffs2, czy system sam go tworzy? A jeśli utworzy to będzie niezagospodarowane miejsce pomiędzy mtd3, a mtd4, tak?

317

(35 odpowiedzi, napisanych Oprogramowanie / Software)

To może inaczej zapytam - pamięć flash/nand to ciągły kawałek pamięci (jest też kontroler który w razie awarii danej komórki pamięci emuluje ciągłość pamięci, ale z punktu widzenia systemu jest to ciągły kawałem pamięci).

Skąd kernel wie gdzie się zaczyna mdt1, mdt2, mtd3 itd?  Rozumiem, że bootloader jest na samym początku adresacji pamięci (jest wywoływany zaraz po włączaniu napięcia) , a cała reszta?  Skąd bootloadre oraz kernel wiedzą, gdzie leży jądro i systemy plików w pamięci.

Gdzie się tworzy podział na mtd'y? Bo to jest logiczny podział, nie fizyczny, jest tylko 1 kostka pamięci flash.  I czy można ręcznie zmienić logiczny podział pamięci?

318

(35 odpowiedzi, napisanych Oprogramowanie / Software)

@secam7 - ale kernel jest jest za rootfs, pomiędzy rootfs_data i trzeba byłby jakoś poprzesuwać obszary pamięci. Twoja metoda też dobra, ale w powodów w/w wymienionych nie bawię się w to.

# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00020000 00010000 "u-boot"
mtd1: 0010e254 00010000 "kernel"
mtd2: 00ec1dac 00010000 "rootfs"
mtd3: 00c40000 00010000 "rootfs_data"
mtd4: 00010000 00010000 "art"
mtd5: 00fd0000 00010000 "firmware"

PS. Hipotetycznie - mtd0-mdt5 to jest logiczny podział, czy też można manipulować ich wielkością? Np. więcej dać do mtd3, a zabrać odpwiednio z mdt2?

Ja widzę podział tak:
mdt0 - lepiej nie ruszać - bootloader
mod1 - mtd3 - czy ilości tych obszarów można zmieniać? Załóżmy, że skompilowałem sobie mały kernel, resztę chce oddać na roofs i rootfs_data - mogę tak zrobić?
mod4 - rozumiem, że to dane dla radio i lepiej nie ruszać
mtd5 - co to?

319

(35 odpowiedzi, napisanych Oprogramowanie / Software)

Dzięki za link, czyli opcja "big" (cokolwiek ta architektura znaczy).

320

(35 odpowiedzi, napisanych Oprogramowanie / Software)

nie wiem smile a gdzie to mogę sprawdzić?

321

(35 odpowiedzi, napisanych Oprogramowanie / Software)

W zasadzie opcji p, l i b.

322

(35 odpowiedzi, napisanych Oprogramowanie / Software)

@pepe2k - TL-WR1043ND v1 (mogę powiedzieć, że od zakupu ~2 lata temu wg półkowych cen w MM jego wartość wzrosła, na półkach też v1 smile )

@Cezary - dlatego przed wgraniem dodam co trzeba, rozmiar się zwiększy, ale to już po weekndzie. Wybiorę dd, bo wydaje się łatwiejsze, z mtd nie miałem w zasadzie do czynienia. Swoją drogą dlaczego miałby się zbuntować? Zajrzałem do podręcznik i za bardzo nie rozuemim tych parametrów, pomożesz w wytłumaczeniu:

man mkfs.jffs2:

-p, --pad[=SIZE]
               Pad output to SIZE bytes with 0xFF.  If SIZE is  not  specified,
               the output is padded to the end of the final erase block.
    -s, --pagesize=SIZE
               Use page size SIZE.  The default is 4 KiB.   This  size  is  the
               maximum size of a data node.
        -c, --cleanmarker=SIZE
               Write ´CLEANMARKER´ nodes with the size  specified.  It  is  not
               normally appropriate to specify a size other than the default 12
               bytes.

        -n, --no-cleanmarkers
               Do not write ´CLEANMARKER´ nodes to the beginning of each  erase
               block.  This  option can be useful for creating JFFS2 images for
               use on NAND flash, and for creating images which are to be  used
               on a variety of hardware with differing eraseblock sizes.
        -l, --little-endian
               Create a little-endian JFFS2 image.  Default is to make an image
               with the same endianness as the host.

        -b, --big-endian
               Create  a  big-endian  JFFS2 image.  Default is to make an image
               with the same endianness as the host.

323

(35 odpowiedzi, napisanych Oprogramowanie / Software)

@Cezary - rozumiem o co Ci chodzi, ale pozostaje sposób wgrania obrazu do /dev/mtdblock3 - będąc w trybie failsafe mam użyć dd, mtd czy też innego narzędzia?

@pepe2k - mogę, ale na lapku mam windorsa, dla mnie za dużo zabawy, a chcę tylko wgrać pakiet php5-cgi i brakuje mi kilkuset kB.  Wiem, że mogę to zrobić także extrootem, ale wybrałem tą metodą w ramach nauki smile

324

(35 odpowiedzi, napisanych Oprogramowanie / Software)

Naprawdę nikt nie potrafi mi pomóc i wytłumaczyć jak wrzucić utworzony obraz overlay'a JFFS2 do /dev/mtdblock3 na działającym (lub nie) OpenWrt?

325

(35 odpowiedzi, napisanych Oprogramowanie / Software)

Myślę, że jakiś potencjał w metodzie jest:

root@OpenWrt:/mnt/sda1/root# dd if=/dev/mtdblock3 of=oryginal
5888+0 records in
5888+0 records out

root@OpenWrt:/mnt/sda1/root# ls -lh
-rwxrwxrwx    1 root     root        2.9M Oct 30 22:41 oryginal
-rwxrwxrwx    1 root     root        2.0M Oct 30 22:10 out2.jffs2
-rwxrwxrwx    1 root     root        2.0M Oct 30 22:12 out3.jffs2
-rwxrwxrwx    1 root     root        2.0M Oct 30 22:14 out4.jffs2
-rwxrwxrwx    1 root     root        2.3M Oct 30 22:16 out5.jffs2
drwxrwxrwx    1 root     root         488 Oct 30 21:50 overlay