Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: lug-bg: export IPTABLES


  • Subject: Re: lug-bg: export IPTABLES
  • From: Peter Pentchev <roam@xxxxxxxxxxx>
  • Date: Thu, 16 Dec 2004 17:58:04 +0200

On Thu, Dec 16, 2004 at 05:36:17PM +0200, Doncho N. Gunchev wrote:
> On 2004 12 16 (Thursday) 16:59, Denislav Ganchev wrote:
> > Следната случка:
> > 
> > prompt# export TEMP=" -A block_check -s 10.0.0.0/255.255.0.0 -i ! eth1
> > -m limit --limit 3/min -j  LOG --log-prefix \"spoofed packet:\"
> > --log-level 7"
> > 
> > Това горното е един ред. После:
> > 
> > prompt# iptables $TEMP 
> > 
> > И гарми по следниа начин:
> > 
> > Bad argument `packet:"'
> > Try `iptables -h' or 'iptables --help' for more information.
> > 
> > С сигурност синтаксиса е правилен на цялата команда ако не е изпълнена
> > така като променлива на средата(опциите за iptables). Това нещо е в
> > скрипт, но просто го изолирах за да го обясня по-лесно. Оправих си по
> > друг начин проблема просто ми е интересно защо се получава така. Какво
> > ли не правих опитвах не става и не става. Оправя се само ако няма
> > разстояние между spoofed и packet.
> > 
> TEMP=" -A block_check -s 10.0.0.0/255.255.0.0 -i ! eth1 -m limit --limit 3/min -j  LOG --log-prefix \"spoofed packet:\" --log-level 7"
> for i in $TEMP; do
>  echo "[$i]"
> done
> ...
> ["spoofed]
> [packet:"]
> ...
>     Разпознават се като отделни елементи.
> TEMP=(-A block_check -s 10.0.0.0/255.255.0.0 -i ! eth1 -m limit --limit 3/min -j  LOG --log-prefix "spoofed packet:" --log-level 7)
> for i in "${TEMP[@]}"; do   echo "[$i]"; done
> ...
> [--log-prefix]
> [spoofed packet:]
> [--log-level]
> [7]
>     За друго решение за момента не се сещам.

Да де, ама това с масивите е bash-specific :(

Вярно е, че моето решение с апострофите не работи... може да се провери
със следния прост скрипт:

$ cat ~/bin/words.sh
#!/bin/sh

while [ $# -gt 0 ]; do
        i="$1"
        shift
        echo "param $i"
done

Това нещо показва точно параметрите, които му подаваш.

Намерих решение, което обаче е отвратително грозно от гледна точка на
това, което прави всъщност: кара те да внимаваш много, ама МНОГО, за
shell metacharacters като $, (), `` и други разни такива глупости.

$ VAR1="foo"
$ VAR2="bar"
$ TEMP="a b c $VAR1 d e f 'spoofed packet' g h i $VAR2"
$ eval "words.sh $TEMP"
param a
param b
param c
param foo
param d
param e
param f
param spoofed packet
param g
param h
param i
param bar
$

Това с eval не го препоръчвам на никого, но все пак работи :((

Поздрави,
Петър

-- 
Peter Pentchev	roam@xxxxxxxxxxx    roam@xxxxxxxx    roam@xxxxxxxxxxx
PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
This sentence every third, but it still comprehensible.

Attachment: pgpmRWGJe_qg1.pgp
Description: PGP signature



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.