abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 0
včera 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 19
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 8
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 2
2.12. 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
2.12. 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 0
2.12. 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
1.12. 21:00 | Nová verze

Byla vydána beta verze Linux Mintu 18.1 s kódovým jménem Serena. Na blogu Linux Mintu jsou hned dvě oznámení. První o vydání Linux Mintu s prostředím MATE a druhé o vydání Linux Mintu s prostředím Cinnamon. Stejným způsobem jsou rozděleny také poznámky k vydání (MATE, Cinnamon) a přehled novinek s náhledy (MATE, Cinnamon). Linux Mint 18.1 bude podporován až do roku 2021.

Ladislav Hagara | Komentářů: 0
1.12. 16:42 | Nová verze

Byl vydán Devuan Jessie 1.0 Beta 2. Jedná se o druhou beta verzi forku Debianu bez systemd představeného v listopadu 2014 (zprávička). První beta verze byla vydána v dubnu letošního roku (zprávička). Jedna z posledních přednášek věnovaných Devuanu proběhla v listopadu na konferenci FSCONS 2016 (YouTube, pdf).

Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 767 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Jak musí vypadat skript, aby fungoval?

22.5.2006 15:29 Elfman | skóre: 7 | blog: Poprvé v Linuxu | Vamberk
Jak musí vypadat skript, aby fungoval?
Přečteno: 170×
Zdravím.

Pokouším se napsat inicializační skript pro IPTABLES a ROUTE. Skript mám umístěn v adresáři /etc/rc2.d jako S99startup.

Skript mi nefunguje z pro mne záhadného důvodu. Jde o to, že příkazy tam uvedené se chovají jinak, než když je napíšu normálně.

Např.:

iptables -F FORWARD

proběhne normálně. Pokud totéž zadám do skriptu, napíše mi to toto:

No chain/target/match by that name.

A takto to je u všech dalších příkazů. Když je normálně zkopíruji do bashe, tak fungují bez chyby.

Na začátku mám samozřejmě #! /bin/sh.

Předem děkuji za vysvětlení.

Odpovědi

22.5.2006 15:51 Filip Jirsák | skóre: 66 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
Ten skript zkoušíte při startu systému, nebo normálně ručně spouštíte /etc/rc2.d/S99startup?

Jinak problém určitě nebude v tom, že by skript musel nějak "vypadat", odlišné chování plyne z toho, že příkazy spouštíte v odlišném prostředí. Klasický problém je to, že se pokoušíte při startu promazat chain, který ale ještě neexistuje. Což u FORWARD může podle mne znamenat jen to, že ještě není zaveden příslušný jaderný modul.

route pokud možno neopužívejte vůbec, je zastaralé už hodně let, náhradou je příkaz ip. Jinak nahrazovat distribuční inicializaci síťových rozhraní (o což se zřejmě příkazem route snažíte) silně nedoporučuji, jsou s tím problémy. Lepší je nastudovat, jak se v příslušné distribuci síťová rozhraní konfigurují (i když je to u některých distribucí poměrně složité…)

Některé distribuce také mají svůj inicializační skript na iptables, který využívá schopnosti iptables uložit svůj stav – normálně z příkazového řádku nakonfigurujete iptables, pak necháte distribuční skript uložit jeho stav a ten se při příštím restartu obnoví. Ten skript určitě bude používat iptables-save a iptables-restore – ostatně pokud vaše distribuce nemá inicializační skritp na iptables, můžete ten svůj napsat také pomocí těchto nástrojů.
22.5.2006 16:03 Elfman | skóre: 7 | blog: Poprvé v Linuxu | Vamberk
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
Zkoušel jsem to při startu systému, ale tabulka IPTABLES pro -L FORWARD mi vždycky vyšla prázdná, zatímco když jsem ty příkazy zkusil normálně po startu X, tak už v ní něco bylo. Problém je v tom, že mi to hlásí tyto chyby, i když už je Linux (Ubuntu 5.10) normálně nastartovaný (prostě si v terminálu dám .../S99startup.sh a už jedou chyby).

Na ten iptables-save se určitě podívám (je v MAN, takže ho snad podporuje), ale chtěl bych pochopit, co dělám špatně, abych pak neztroskotal později na jiných skriptech.

Příkaz ROUTE mi chyby nehlásí, což je divné. Pokud Vám to pomůže, tak když si řádky s iptables nechám vypsat pomocí echo, tak první dva jsou OK (ačkoliv pak hlásí chybu), ale u dalších už iptables chybí a navíc jsou jeho parametry zproházené (vždy dvojice přepínač+řetězec).
22.5.2006 16:16 Filip Jirsák | skóre: 66 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
route chyby nehlásí, ale je deprecated :-)

Zkuste sem vložit nějakou část skriptu, která hlásí chyby, s tím proházením přepínače a parametru je to divné…

K iptables-save bude ještě dobré iptables -m comment -comment text – můžete si tím k pravidlům přidat komentář (a pak už opravdu nevidím důvod, proč je mít ve skriptu). V praxi jsem to zatím nezkoušel, jenom mi váš příspěvek připomněl, že jsme si už dlouho říkal, že přeci něco takového (komentáře přímo do iptables) musí existovat – verze 1.2.11 to ještě neuměla, verze 1.3.4 už komentáře umí (alespoň v Gentoo).
22.5.2006 16:30 Elfman | skóre: 7 | blog: Poprvé v Linuxu | Vamberk
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
Ten skript vypadá následovně. Není to úplně moje dílo, jen jsem upravoval příklady z LDP (nějak se to člověk naučit musí). #! /bin/sh
# Nastavení­ ROUTE a IPTABLES

PATH=/bin:/usr/bin:/sbin:/usr/sbin

case "$1" in
start)

OURNET="1.2.3.0/24"
OURBCAST="1.2.3.255"
OURDEV="eth1"
ANYADDR="0/0"
ANYDEV="eth0"
TCPIN="ftp,www"
TCPOUT="smtp,www,ftp,ftp-data,irc"
UDPIN="domain"
UDPOUT="domain"
iptables -F FORWARD
iptables -P FORWARD deny
iptables -A INPUT -i $ANYDEV -j DROP
iptables -A FORWARD -s $OURNET -i $ANYDEV -j DROP
iptables -A FORWARD -f -j ACCEPT
iptables -A FORWARD -m multiport -p tcp -d $OURNET --dports $TCPIN --tcp-flags SYN,ACK ACK -j ACCEPT
iptables -A FORWARD -m multiport -p tcp -s $OURNET --sports $TCPIN --tcp-flags SYN,ACK ACK -j ACCEPT
iptables -A FORWARD -m multiport -p tcp -i $ANYDEV -d $OURNET --sports $TCPIN --syn -j ACCEPT
iptables -A FORWARD -m multiport -p tcp -i $OURDEV -d $ANYADDR --dports $TCPOUT --syn -j ACCEPT
iptables -A FORWARD -m multiport -p udp -i $ANYDEV -d $OURNET --dports $UDPIN -j ACCEPT
iptables -A FORWARD -m multiport -p udp -i $ANYDEV -s $OURNET --sports $UDPIN -j ACCEPT
iptables -A FORWARD -m multiport -p udp -i $OURDEV -d $ANYADDR --dports $UDPOUT -j ACCEPT
iptables -A FORWARD -m multiport -p udp -i $OURDEV -s $ANYADDR --sports $UDPOUT -j ACCEPT
;;
stop|restart|force-reaload)
#Ukončení­ služby
;;
esac

exit 0
Pokud by to pomocí iptables-save šlo lépe (tj. nejprve nastavit, pak uložit - musí se pak volat iptables-restore?), tak jsem samozřejmě pro. O příkazu IP toho moc nevím. V MAN sice je, ale asi mi zabere delší dobu, než pochopím, jak se používá (potřebuji vlastně jen jednu věc: nastavit provoz na "serveru" mezi 2 síťovými kartami, aby stanice mohly do Internetu, ale z Internetu se mohlo jen na server).
22.5.2006 20:49 Filip Jirsák | skóre: 66 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
iptables-restore je potřeba volat v okamžiku, kdy se mají pravidla znovu načíst, tj. nejspíš při startu systému.

Jinak u toho skriptu se mi moc nezdá
iptables -P FORWARD deny
musel by to být nějaký nestandardní TARGET.

Pokud na začátku nezná chain FORWARD, a později už FORWARD zná, může to být podle mne jedině problém s jadernými moduly, protože FORWARD je vestavěný chain netfilteru. Ale zase na druhou stranu se mi zdá divné, že by se moduly nahrávaly až takhle pozdě…

Jinak v tom skriptu samotném na první pohled řádný skriptovací problém nevidím. Tedy bylo by lepší místo nastavování cesty a pak spouštění iptables z cesty napsat něco jako
IPTABLES='/bin/iptables'
$IPTABLES -F FORWARD
$IPTABLES …
23.5.2006 07:28 Elfman | skóre: 7 | blog: Poprvé v Linuxu | Vamberk
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
Zkusil jsem dát iptables-restore do S40, ale to nešlo, tak jsem ho dal do S55, a tam už to chodí. Můj skript s iptables bez restore byl ale S99 :-O.

Já bych pochopil, kdyby ten skript nefungoval při startu systému (jako že nefunguje), ale divné mi je, že když ho spustím normálně po plném startu, tak nechodí. Když ho normálně zkopíruji CTRL+C a vložím do terminálu přes CTRL+SHIFT+V, tak chodí (a nastaví se všechno). I když ho ale spustím znovu hned poté, zase to hlásí stejné chyby. A to nezávisle, zda tam mám iptables, /sbin/iptables, nebo $IPTABLES.

Je to fakt nějaké zvláštní. No, budu doufat, že to je problém jen tohoto nástroje (např. route spuštěný ve stejném skriptu, když jsem ho tam ještě měl, ten fungoval bez problémů).

Děkuji všem za pomoc.
22.5.2006 17:07 Elfman | skóre: 7 | blog: Poprvé v Linuxu | Vamberk
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
Tak jsem rozchodil alespoň to iptables-save a -restore i po restartu. Tipuji, že tam budu muset ještě doplnit maškarádu pro vnitří počítače s cílovou adresou v Internetu. A pak se modilit :-) Ale ten skript mi stejně nejde do hlavy :-(. Jestli bude potřeba ROUTE, nebo IP nevím. V Ubuntu se ve Správci sítě nastaví u každé síťovky brána, tak jsem to bral od stanic ven, kdy každá síťovka se brána pro tu předchozí (až po bránu poskytovatele). Tady by tedy teoreticky už možná route nebylo potřeba...
22.5.2006 20:37 Filip Jirsák | skóre: 66 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
Pokud se pro síťovou kartu nastaví IP adresa a maska a nastaví se brána do internetu, není při běžné konfiguraci sítě již potřeba nic jiného v routovací tabulce nastavovat.
23.5.2006 07:17 Elfman | skóre: 7 | blog: Poprvé v Linuxu | Vamberk
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
Já myslím, že ano. Pro server asi ne, ale aby mohly do internetu i stanice, tak tam musím zavést NAT. Navíc potřebuji, aby se dalo připojit k serveru, ale už ne za něj.
22.5.2006 15:54 Scarabeus IV | skóre: 20 | blog: blogisek_o_gentoo | Česká Kamenice
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
#!/sbin/runscript
IPTABLES=`which iptables`

start() {

### FLUSH ###
$IPTABLES -F

#druhy krok nastaveni default policy
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT
...
...
ja to delam takhle a funguje to, ale mam gentoo
22.5.2006 16:07 Elfman | skóre: 7 | blog: Poprvé v Linuxu | Vamberk
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
Ubuntu asi nemá runscript, ale jinak to bohužel dělá to samé :-(
23.5.2006 00:08 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
Já pro jistotu ve startovacích skriptech zadávám raději plnou cestu k programům. Ideální je to, jak bylo naznačeno výše.
IPTABLES=`which iptables`
A pak dál už používat jen tuto proměnnou:
$IPTABLES -P INPUT DROP
23.5.2006 07:18 Elfman | skóre: 7 | blog: Poprvé v Linuxu | Vamberk
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
Díky, to jsem zkoušel jako první :-(
23.5.2006 07:45 Anatheman | skóre: 9 | Ostrava
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
Nejak mi unika rozdil mezi

`which iptables`

a samotnym spustenim

iptables

oboji preci hleda binarku iptables v cestach nastavenych v enviroment promenne PATH
Radsi uz bych pouzil

IPTABLES=/sbin/iptables

a takto mam jistotu, ze je spusti i kdyz budu mit spatne nastavenou PATH
23.5.2006 09:09 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
Jasně, máš pravdu. Když už, tak raději zadat IPTABLES=/sbin/iptables .
David Watzke avatar 23.5.2006 13:28 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
Jj, ale na druhou stranu na iptables může být nějaký alias a to ten which řeší :-D
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
23.5.2006 18:25 Anatheman | skóre: 9 | Ostrava
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
no myslim, ze pri tomhle pouziti to asi nebude moc fungovat ;-)
(jen pro ukazku;-))
$# X=`which ls`
$# echo $X
alias ls='ls --color=tty' /bin/ls
$# $X
-bash: alias: /bin/ls: not found
David Watzke avatar 23.5.2006 18:43 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
Leda že by někdo měl alias i na which ;-)
$ X=`which ls`
$ echo $X
/bin/ls
$ alias | grep ls=
alias ls='ls --color=auto'
$ echo $BASH_VERSION
3.1.17(1)-release
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
23.5.2006 08:36 Petr Jelínek | skóre: 17 | blog: Vyprovokovanej | Praha
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
Mně to připomíná problém s konci řádků. Nepsal jsi ten skript ve woknech? A v čem ho edituješ? Zkus ho otevřít například v emacsu, ten Ti ukáže, když tam jsou ty DOSový konce řádků, něco jako ^M na konci každýho řádku. Pokud by to bylo ono, tak ten skript prožeň prográmkem dos2unix a mělo by to valit.
Nemám rád NVidii!
23.5.2006 11:07 Elfman | skóre: 7 | blog: Poprvé v Linuxu | Vamberk
Rozbalit Rozbalit vše Re: Jak musí vypadat skript, aby fungoval?
Máš pravdu. Kopíroval jsem ho z TXT (Windows) do jiného souboru přes CTRL+V v GEditu (Gnome). To by asi vysvětlovalo, proč ta část, kterou jsem dopisoval už přímo pod Linuxem, funguje.

Ale asi je stejně lepší iptables-restore, takže tento skript použiji jen na nastavení toho souboru, který se pak při startu do této funkce láduje.

Díky moc.

Založit nové vláknoNahoru

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

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.