Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - hazardrok

Stran: 1 ... 3 4 [5] 6
61
Vývoj / Re:Vývoj ve Windows: sériový port přes SSH
« kdy: 26. 11. 2020, 12:11:34 »
To založení virtuálního portu je proto, že ten pravěkej program může otevřít pouze COM1 - COM15. Je to fakt pravěk psanej v ještě starším Visual Basicu a v podstatě se s tím nedá už nic dělat.
Vývoj jde ale dál a tak jsem nechal napsat aplikaci v javě (kvůli portování na mobilní zařízení), která tento program supluje a ta používá pro připojení právě SSH. Jenže k ladění a vývoji je pořád ten pravěk lepší, protože ten je domyšlenej úplně do datailu, zatímco ta náhrada umí jen část. Ta appka s SSH ale umožňuje k jakýmukoliv zařízení v tom systému přistupovat odkukdoliv, protože přes username a heslo se vždy spojí se svým přiřazeným zařízením. Zkrátka každá ta věc se hodí na něco jinýho. Já jednoduše potřebuji využít možnosti toho dokonalého ladícího nástroje na vzdáleném zařízení s SSH. Hlavně bych chtěl současně pracovat s více zařízeníma, to je vlastně největší motivace tohoto vlákna.

Snad to jako vysvětlení stačí...

62
Vývoj / Re:Vývoj ve Windows: sériový port přes SSH
« kdy: 26. 11. 2020, 07:35:44 »
Ahoj a díky za názory. Asi se do toho pouštět sám nebudu a pokusím se sehnat programátora. Vysvětlení proč něco takového potřebuju je to, že používám pravěký program na komunikaci s průmyslovejma řídícíma jednotkama, který používaj z dnešního pohledu dost nestandartní komunikační protokol (kombinace IrLan a modbus). Aby se dalo k těmto jednotkám přistupovat odkudkoliv, pokud jsou připojeny k síti, mám napsaný SSH server, který umožňuje přetunelovat ten pravěkej program. Tohle funguje naprosto dokonale pro jednoho uživatele. Jenže ejhle, tenhle můj virtuální port funguje a uživatelů přibývá, nyní už to přesahuje rámec mých programátorských zkušeností.

63
Vývoj / Vývoj ve Windows: sériový port přes SSH
« kdy: 24. 11. 2020, 22:11:59 »
Ahoj, prosim o pomoc s vyvojem programu ve Windows (v linuxu to umim) aneb vim co chci, ale nevim jak na to. Program by mel umet nebo neumet nasledujici...

1. vytvorit virtualni seriovy port
2. pripojit se pres SSH jako client k definovanemu serveru pres uzivatelske jmeno a heslo
3. otevrit SSH kanal a preposilat pres nej data z virtualniho serioveho portu
4. nemusi mit GUI

Mel by nekdo nejaky napad jak na to?
Me osobne napadlo pouzit com0com jako emulaci serioveho portu a toho SSH klienta napsat v pythonu. Duvodem je to, ze s com0com uz jsem se v minulosti setkal a v pythonu pisu vsechno co chci aby bezelo na Windows. Prijde mi to ale jako dost kostrbaty reseni, protoze me by se nejvic libilo, kdybych pustil program. Vyskocilo by na me okno kam bych zadal uzivatelske jmeno, heslo, portu a dal OK. Dokud bych program nezavrel, tak by to fungovalo a mohl bych ho pustit i opakovane. Snad nechi tak moc ne? :)
Dik.

64
Server / Re:Uzavření uživatele v domovském adresáři
« kdy: 09. 06. 2020, 11:31:49 »
Ve výpisu práv se ten adresář jmenuje test a podle konfigurace posíláte uživatele do /home/brodsky.

To je tím, že jsem nechtěl vlákno zatěžovat jménem uživatele, protože to nikdo není co znamená. Použil jsem tedy jméno test, ale v systému je uživatel se skutečným jménem brodsky.

65
Server / Re:Uzavření uživatele v domovském adresáři
« kdy: 09. 06. 2020, 11:11:26 »
Zde je konfigurace ssh, kterou používám:

Kód: [Vybrat]
#	$OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2

#AuthorizedPrincipalsFile none

#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
PrintMotd no
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none

# no default banner path
#Banner none

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

# override default of no subsystems
Subsystem sftp internal-sftp

# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand internal-sftp
#Subsystem sftp internal-sftp

#Match group sftpusers
# ChrootDirectory /home/%u
# ForceCommand internal-sftp
# X11Forwarding no
# AllowTcpForwarding no

#Match User horaci
Match User brodsky
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
PermitTunnel no
ChrootDirectory /home/%u


66
Server / Re:Uzavření uživatele v domovském adresáři
« kdy: 09. 06. 2020, 11:03:43 »
To, že se pro SFTP komunikaci má používat interní SFTP nakonfigurované máte?
Kód: [Vybrat]
Subsystem   sftp    internal-sftp

Ano toto mám. Pokusím se ještě získat přesně ten výpis konfigurace a dám ho sem.

67
Server / Re:Uzavření uživatele v domovském adresáři
« kdy: 09. 06. 2020, 11:01:11 »
Ten domovský adresář musí vlastnit root, v tom článku je to napsané.

To je úplně jedno, protože výsledek je stejný. Nyní mám:
Kód: [Vybrat]
drwx------ 5 root root 4096 Jun 9 08:05 test/

Chová se to stále stejně resp. uživatel se nemůže přihlásit. Pokud použiju příkaz sftp, vypíše to hlášku:
Kód: [Vybrat]
packet_write_wait: Connection to 192.168.1.240 port 22: Broken pipe
Connection closed

Je mi to líto, ale tento návod je sice krásný, ale jsem přesvědčen, že nefunguje nebo stále něco přehlížím...

68
Server / Re:Uzavření uživatele v domovském adresáři
« kdy: 09. 06. 2020, 08:55:49 »
Díky za reakce, opět jsem trochu pokročil, ale bezůspěšně...s největší pravděpodobností se stále točím v kruhu.

Nastavení ssh:

Kód: [Vybrat]
Match User test
  ForceCommand internal-sftp
  X11Forwarding no
  AllowTcpForwarding no
  PermitTunnel no
  ChrootDirectory /home/%u

Výpis uživatele a jeho práv:
Kód: [Vybrat]
drwx------ 5 test test 4096 Jun 9 08:05 test/

V této konfiguraci se mi stane to, že se uživatel nemůže přihlásit. Pokud zakomentuju volbu
Kód: [Vybrat]
ChrootDirectory /home/%u
tak se přihlásit může. Pokud princip uzavření uživatele správně chápu, tak tuto volbu musím použít jinak to nejde.

Zapomněl jsem ještě na něco?
 

69
Server / Re:Uzavření uživatele v domovském adresáři
« kdy: 28. 05. 2020, 12:15:53 »
Ano přesně to potřebuje. Právě jsem ale zjistil dost něšťastnou věc, že pokud mu zakážu shell, tak se mi nejde připojit přes WIN SPC. Musel jsem shell opět zapnout resp. nefunkční /usr/sbin/nologin nahradit funkčním /bin/sh.
Na ty odkazy kouknu.

70
Server / Uzavření uživatele v domovském adresáři
« kdy: 28. 05. 2020, 10:59:33 »
Ahoj chtěl bych se zeptat na to, jak lze v linuxu zajistit, aby uživatel nemohl opustit jeho kořenový adresář. Už nějakou dobu se po tom pídím na internetu, ale přiznám se, že jsem nenašel nic čemu bych rozuměl. Nevíte tedy někdo o nějakém postupu jak to realizovat?

Zatím jsem se dostal tam, že mám vytvořené uživatele a jsou jim přidělená práva tak, aby každý měl přístup pouze do svého adresáře ve složce /home. V /etc/passwd jsem zrušil uživatelům přístup k shellu a nyní už mi zbývá jen to, aby nemohli opustit home a rochat se v sytému. Sice nemá práva na to aby něco poškodil, ale pro člověka, který tomu nerozumí je to dost matoucí, že něco takového může a pro člověka nepolíbeného linuxem je to neřešitelná situace se vrátit.

Důležité je asi poznamenat i to, že uživatelé mají přes svůj účet pouze vzdálený přístup ssh k souborům databáze. Jediné co tedy uživatel potřebuje je připojit se přeš ssh do své složky, stahnout si databázi a opustit sezení. Má někdo nějaký nápad. Dík.

71
Vývoj / Re:Segmentation fault
« kdy: 01. 04. 2020, 07:52:57 »
Já ta mám vlákna přesně dvě. Jedno hlavní, které dělá většinu věcí. To druhé dělá jen jednu jedinou věc a tou je příjem SSH spojení. Tento příjem se mi totiž nepovedlo udělat jako neblokující.

72
Vývoj / Re:Segmentation fault
« kdy: 31. 03. 2020, 13:41:57 »
Od doby co jsem ten program spustil přes Valgrind, ani jednou to nespadlo. Je to v podstatě od doby co běží toto vlákno. Když ten program ručně kylnu třeba po několika dnech, vypíše mi to přibližně toto:
Kód: [Vybrat]
==30609==   total heap usage: 7,366,709 allocs, 7,366,674 frees, 686,513,208 bytes allocated
==30609==
==30609== LEAK SUMMARY:
==30609==    definitely lost: 0 bytes in 0 blocks
==30609==    indirectly lost: 0 bytes in 0 blocks
==30609==      possibly lost: 304 bytes in 1 blocks
==30609==    still reachable: 246,510 bytes in 34 blocks
==30609==         suppressed: 0 bytes in 0 blocks
==30609== Rerun with --leak-check=full to see details of leaked memory
==30609==
==30609== For counts of detected and suppressed errors, rerun with: -v
==30609== Use --track-origins=yes to see where uninitialised values come from
==30609== ERROR SUMMARY: 3971 errors from 23 contexts (suppressed: 0 from 0)
Takže stále pátrám...

73
Vývoj / Re:Segmentation fault
« kdy: 09. 03. 2020, 11:13:28 »
Z toho, jak jsi měl potřebu zmínit svoji opatrnost, úplně čiší, že s pamětí pracovat neumíš. Tak nepiš v Céčku.

Můžu se autora zeptat z čeho v mém dotazu vyplývá to, že neumím pracovat z pamětí?

Za komentáře díky. Zkusím rady aplikovat. Co se týče toho komentu
Citace
nedošla paměť? když malloc teda selhal...
tím si nejsem úplně jistej. Mám vyzkoušeno, že pokud dojde paměť, tak se zhroutí celej systém a dojde k jeho restartu. To se mi nikdy nestalo.

Jinak ten server mi běží už pár let a nikdy se mi to nestávalo. Nedávno jsem ale změnil princip řízení filedescriptorů ze select na epoll. To byl poměrně velký zásah a od té doby jsem začal mít tyto problémy. Furt mě to tak trochu směřuje tam.

Doufám, že Vám to všem jde líp než mě :-)

74
Vývoj / Segmentation fault
« kdy: 09. 03. 2020, 08:19:08 »
Ahoj chtěl bych se zeptat na problém se kterým si nevím rady. Napsal jsem si TCP server v Cčku. Občas se mi stane a je to čistě náhodný proces, že mi server spadne. Někdy se to nestane týdny a někdy se to děje několikrát denně. Nebyl jsem schopen dostat z návratové chyby víc než "Segmentation fault" tak jsem zpusil použít GDB. Díky němu mám lepší výpis toho co se tam děje:
Kód: [Vybrat]
Thread 2 "main" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff49e8700 (LWP 30711)]
_int_malloc (av=av@entry=0x7ffff0000020, bytes=bytes@entry=128)
    at malloc.c:3779
3779    malloc.c: No such file or directory.

Z tohodle také moc moudrej nejsem, protože osobně se funkci malloc vyhejbám. Používám jí velice zřídka a snažím se co nejdůsledněji kontrolovat její použití. Kód dokonce spadne v momentě, kdy ani nejsem v bloku jejího volání. Napadá mě tedy jediné a to je, že to způsobuje nějaká knihovna třetí strany. Používám pro řízení filedescriptorů epool což mi zde na fóru někdo poradil a také SQLlite.

Neřešil jste někdo něco podobného nebo nemáte nápad jak se tohoto problému zbavit?
Dík.


75
Server / Re:Maximální počet klientů vlastního TCP serveru
« kdy: 19. 12. 2019, 22:39:43 »
Tak jsem zkusil ten celej server predelat ze select() na epool() podle tohodle prikladu:
http://www.voidcn.com/article/p-uvhjqbmi-uo.html
V tuhle chvili mi startujou klienti a uz jich je vic nez 1600. Zatim se nestal zadnej karambol, takze se zda ze to bylo skutecne maximalnim omezenim FD_SETSIZE, ktere je defaultne na 1024.

Problem tedy povazuju za vyreseny. Dik moc vsem zucastnenym, doufam ze Vam prace dela radost :)

Jest bych chtel dodat, ze to proc ten server padal jsem doposud uplne nepochopil. Zrejme to bylo zpusobeno volanim FD_ISSET, vstupni parametry jsem totiz nekontroloval. Asi se to zavolalo s nejakym nesmyslem a tim to spadlo. Tim uz se ale zabyvat nebudu.

Stran: 1 ... 3 4 [5] 6