Portál AbcLinuxu, 10. května 2025 07:25

Dotaz: odesílání emailu z routeru

20.7.2006 09:33 Džej Ár
odesílání emailu z routeru
Přečteno: 561×
Odpovědět | Admin
Zdravím,

potřeboval bych nějakým způsobem posílat v určitých situacích z mého routeru emaily. Problémem je, že tam běží hodně minamalistická distribuce (běží na 4MB ramdisku) a obsahuje pouze tuto sadu příkazů:
#
\[                       dropbearmulti            sort                     addforward.sh
dumpleases               syslogd
addmac.sh                echo                     md5sum                   system_info.sh
addstaticdhcp.sh         expr                     mkdir                    tail
addtraffic.sh            fgrep                    more                     tar
arp                      flash                    mount                    tc
arping                   free                     mv                       tcc
ash                      ftpget                   netstat                  tcpdump
awk                      ftpput                   nslookup                 tcs
boot.sh                  grep                     passwd.sh                telnet
brctl                    gunzip                   ping                     telnetd
bunzip2                  gzip                     postinit.sh              test
busybox                  head                     pppd                     top
bzcat                    hostname                 pppoe                    total
cat                      ifconfig                 pppoe-relay              tr
chmod                    ifstat                   ps                       traceroute
chown                    inetd                    pwd                      traffic_stats.sh
clear                    init                     qos_stats.sh             udhcpc
client_stats.sh          init.sh                  rdate                    udhcpc.config.sh
clientstats              ip                       reboot                   udhcpd
connection_stats.sh      iptables                 reload                   uname
connection_tracking.sh   iwpriv                   reload_connect.sh        uptime
cp                       kill                     reset                    user.sh
crond                    killall                  rm                       vi
cut                      klogd                    route                    vnstat
date                     ln                       rtl8181d                 watchdog
df                       load-test.sh             sed                      watchdog.sh
dhcpd.sh                 logger                   setdate.sh               wc
dhcrelay                 login                    setled.sh                webs
dmesg                    logread                  sh                       zcat
dropbear                 losetup                  showactiveclients.sh
dropbearkey              ls                       sleep
napadlo mě využít k tomu telnet a udělat to nějak takto:

cat mail_body | telnet smtp.server.cz 25

s tím, že mail_body obsahuje :
HELO server.cz
MAIL FROM: <smolicek @pacholicek.net>
RCPT TO: <ja @server.cz>
DATA
Subject: tst msg
From: smolicek pacholicek <smolicek @pacholicek.net>
To: ja <ja @server.cz>

test
.
QUIT
ale jaksi to nefunguje :(

děkuji za každý další nápad
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

20.7.2006 09:41 David Jež | skóre: 42 | blog: -djz | Brno
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus to telnetem interaktivně jestli mail vůbec projde nebo jestli z nějakého důvodu nechce mail server poštu odesílat (zakázaný relaying, zle nastavena pravidla firewallu apod.). Jinak to musí fungovat, také jsem takto maily posílal, ale myslím jsem tam ještě přidal nějaký sleep právě kvůli problémům, mohu se podívat na ten skript jak vlastně vypadal. Poštu potom můžeš odesílat telnetem nebo si pro distribuci přeložit nail, který zabírá pár kilo a umí posílat poštu přes smtp server. Hlavně se chová jako standardní mail, tak případné tvé skripty nebo démoni co používáš jej mohou bezproblému použít (sám ho takto používám na firewall strojích kvůli SMART).
-djz
"Yield to temptation; it may not pass your way again." -- R. A. Heinlein
20.7.2006 09:54 D?ej Ár
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
jasně, interaktivně jsem to zkoušel nejdříve a až potom jsem podle toho naházel ty řádky do toho souboru... interaktivně to funguje, ale takto už ne.

na Nail se určitě podívám, jen je problém, že tam není překladač a nejsem si jistý, jak by se mi to podařilo přeložit jinde, aby to tam šlapalo, je tam jakýsi Philips nino procesor, tak to určitě nepůjde jen čistě přeložit jinde a nahrát tam...
20.7.2006 13:05 David Jež | skóre: 42 | blog: -djz | Brno
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
Tož potom mrknu doma na ten bash skriptík, který kvůli tomu sleepoval. Jinak Nino není problém, je to mips (asi r3000, Velo nebo novější už jsou r4000), stačilo by to cross kompilovat třeba proti MIPSím uClibc nebo dietlibc. Pokud by to bylo r4000 tak by šel překombajnovat i třeba na Indym nebo Indigu :-).
-djz
"Yield to temptation; it may not pass your way again." -- R. A. Heinlein
20.7.2006 09:57 JMP | skóre: 30
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
Odpovědět | | Sbalit | Link | Blokovat | Admin
mam za to, ze komunikace s smtp serverem je interaktivni - takze pokud tam nasypete jen tak textak, tak to asi nebude spravne rozfazovane dle ocekavane interakce....

lze na to udajne pouzit expect (pro spravne rozfazovani dle ocekavane interakce)

nebo je mozno, jak uz tu bylo zmineno, pouzit nejaky minimalisticky postovni klient...

Josef Kufner avatar 20.7.2006 10:04 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co tam doinstalovat binarku mail, ktera tohle umi? IMHO by to bylo jednodussi, nez se s tim patlat a mista by zabrala malo. Precejen, nemusi ssebou tahat cely mailserver.
Hello world ! Segmentation fault (core dumped)
20.7.2006 13:14 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
Určitě to umí? Neprovádí odeslání mailu tak, že na něj spustí /usr/bin/sendmail (jako většina programů)?
20.7.2006 14:46 David Jež | skóre: 42 | blog: -djz | Brno
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
Klasický mail ani mailx to neumí, používají sendmail. Ale nail (hřebíček, fakt to není překlep :-) o kterém jsem psal výše to opravdu umí a dobře. Většina programů umí využívat /usr/bin/sendmail a některé i mail. A pokud si nechceš minimální systém (např. na routeru) mořit sendmailem, můžeš použít např. msmtp, který se chová jako MTA proxy wrapper.
-djz
"Yield to temptation; it may not pass your way again." -- R. A. Heinlein
20.7.2006 15:17 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
Další možností je ssmtp, který se právě pro tohle používá v Gentoo – pokud nemáte nainstalovaný jiný MTA, použije se ssmtp, aby mohl např. cron odesílat e-maily.
20.7.2006 17:13 D?ej Ár
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
Odpovědět | | Sbalit | Link | Blokovat | Admin
No, jelikož ten systém nemá překladač a navíc se mi ani nepodařilo rozchodit to ftpget, co tam vypadá jako jediná možnost jak přenášet soubory ... vyjma přímého vkládání do vi přes konzoli ... tak bude třeba se obejít jen s příkazy, které jsem vypsal nahoře, takže ani expect...

nejrozumnější řešení, které mě napadá, je ten telnet + nějakým způsobem tu interaktivní komunikaci se smtp serverem rozfázovat, ale jsem tak trochu noob a moc mě nenapadá jak na to...

když to propojím rourou, tak myslím můžu na nějaký sleep zapomenout a jiným způsobem zase asi nezašlu ty příkazy na stdin :-/
20.7.2006 17:44 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
Program můžete přeložit jinde, nebo půjde stáhnout už binárka. Nemá busybox už v sobě nějaký wget?
20.7.2006 18:38 D?ej Ár
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
vše, co má v sobě ten busybox je vypsáno, opravdu už tam nic jiného není...
20.7.2006 18:48 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
Pak bych se zaměřil na ten ftpget. Nejlépe pokusit se připojit k nějakému FTP na stejné síti, které máte pod kontrolou, přes tcpdump případaně sledovat komunikaci.

Tedy pokud vám na tom odesílání e-mailů alespoň trochu záleží. Protože jakmile se to budete pokoušet dělat jen přes sleep, spousta e-mailů vám neodejde. Jendou se server na chvíli zamyslí a sleep bude moc krátký a budete pokračovat moc rychle. Nebo zase uděláte sleep příliš dlouhý a vyprší timeout. Nebo server bude chvíli nedostupný nebo přetížený, pošle nějaký dočasný chybový kód a vy budete stejně pokračovat atd.
20.7.2006 19:12 D?ej Ár
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
jj, to mě nenapadlo, právě se o to s tím sleepem pokouším, konečně mi došlo, jak to asi tady mysleli, ale zatím bez úspěchu, s tím ftpgetem si taky pak pohraju, zatím jsem se jen pokoušel s ním připojit na mé školní ftp přes tunelované spojení(což by ale snad neměl být problém), tak to pak zkusím ještě s nějakým jiným servrema a sledováním komunikace....
24.7.2006 23:04 ytre | skóre: 9
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
> Nemá busybox už v sobě nějaký wget

podle verze bb a podle konfigurace bb
22.7.2006 15:31 D?ej Ár
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak jsem se už dostal k tomu, že jsem si v c++ naprogramoval primitivního klienta, který mail umí odesílat a dokonce jsem rozchodil i ten ftpget, jediné, co mi teď ještě chybí ke štěstí je dokázat toho svého klienta přeložit pro ten NINO procesor, dokázal by mi s tím někdo poradit?
24.7.2006 16:31 David Jež | skóre: 42 | blog: -djz | Brno
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
Hledej magické slovíčko cross compile. Doporučuji stránky www.linux-mips.org. Postup je asi takový, že si přeložíš binutils a překladač pro svou architekturu, potom s tím přeložíš třeba uClibc a pak jsi schopen pomocí cross překladače vyplodit MIPSovou binárku. Ze stránek bys mohl stáhnout toolchain, tedy již přeložené nástroje. Pomoci bych mohl, ale mám rozchozené utility pro r4000, stejně jako stroj na kterém překládám nativně je r4000, což ti asi nepomůže, jestli potřebuješ r3000. Jak se hlásí jádro, co najdeš v dmesg případně co zahlasí arch?
-djz
"Yield to temptation; it may not pass your way again." -- R. A. Heinlein
24.7.2006 17:19 D?ej Ár
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
no celý víkend jsem se tomu snažil věnovat, ale moc jsem nepokročil, přišel jsem na to, že je to r3000, jak jsi správně předpokládal, pozjišťoval pár věcí o cross kompilaci a tak a snažil se na svém gentoo ten crosskompiler vytvořit pomocí skriptu crossdev ale vždy to skončilo na nějakých build errorech v ebuildech, co se ten skript snažil kompilovat. potom jsem zjistil, že na jednom našem školním serveru máme celou řadu crosskompilerů, až na mips, ale zkusil jsem požádat admina, jestli by tam nešly přidat i mipsí a snad se to podaří, uvidím, odjíždím teď na týden pryč, tak třeba pak už budu mít funkční crosskompiler k dispozici, jinak díky za odkaz, taky se to pokusím prostudovat...
24.7.2006 19:42 David Jež | skóre: 42 | blog: -djz | Brno
Rozbalit Rozbalit vše Re: odesílání emailu z routeru
Hodně štěstí. Kdyby odolávalo tak zkus napsat email přes zdejší webové rozhranní, diskuze sice sleduji, ale jak nějaká zapadne do dějin tak se špatně hledají rozdělaná vlákna...
"Yield to temptation; it may not pass your way again." -- R. A. Heinlein

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.