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ł?
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Posty przez oneiro
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ł?
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 03. 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 04. 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 0No 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 ![]()
@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 ![]()
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 ![]()
Może się komuś przydadzą pliki,
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 ataoraz 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
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 0Zrobiony 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ć?
Dzięki poszło,
A hipotetycznie - bez pc gruba na openwrt zainstalować się nie da w celu utworzenia pliku pxe?
i to jest problem - pc, na którym był linux ma uszkodzony dysk, stąd chcę go podnieść tą metodą
I brakuje mi pliku grub.pxe plus plików standardowo zanadujących się w lokalizacji /boot/grub
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 pxecmdCześć,
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ą ![]()
root@OpenWrt:~# hdparm -S 120 /dev/sda
/dev/sda:
setting standby to 120 (10 minutes)
HDIO_DRIVE_CMD(setidle) failed: Invalid argumentDa 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?
Znalazłem już to wcześniej, ale w OpenWRT nie mogę znaleźć pakietu do zainstalowania ![]()
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 mtdblockEDIT: 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:/#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 ![]()
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-firmwareChcą zamontować przez loopa mtd2 - wychodzi. Chcę mtd3 - nie idzie ![]()
root@OpenWrt:/mnt/sda1/root/flash# mount -t jffs2 mtd3-rootfs_jffs2 a
mount: mounting /dev/loop0 on a failed: Invalid argumentPró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 argumentGdzieś 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"'
19852003Pomysł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
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?
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?
@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?
Dzięki za link, czyli opcja "big" (cokolwiek ta architektura znaczy).
nie wiem
a gdzie to mogę sprawdzić?
W zasadzie opcji p, l i b.
@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
)
@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.
@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 ![]()
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?
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 overlayeko.one.pl → Posty przez oneiro
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc