Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

error while running the example #9

Closed
nashrafeeg opened this issue May 24, 2012 · 20 comments
Closed

error while running the example #9

nashrafeeg opened this issue May 24, 2012 · 20 comments

Comments

@nashrafeeg
Copy link

hi i am getting this error while running AttributeError: MASQUERADE: invalid parameter to-ports. I am using the Simple Rule not using any match extension example

@ldx
Copy link
Owner

ldx commented May 24, 2012

Can you paste the actual code?

@nashrafeeg
Copy link
Author

   import iptc
   chain = iptc.Chain(iptc.TABLE_NAT, "POSTROUTING")
   rule = iptc.Rule()
   rule.protocol = "tcp"
   rule.out_interface = "eth0"
   target = iptc.Target(rule, "MASQUERADE")
   target.to_ports = "1234"
   rule.target = target
   chain.insert_rule(rule)

i got the code from http://nilvec.com/stuff/python-iptables/docs/html/examples.html#simple-rule-not-using-any-match-extensions

@ldx
Copy link
Owner

ldx commented May 25, 2012

Can you tell me the version of your OS and iptables? Do you use the latest python-iptables from github?

@nashrafeeg
Copy link
Author

Ubuntu 12.04 iptables v1.4.12. yes i cloned the code from here and ran setup.py

@ldx
Copy link
Owner

ldx commented May 29, 2012

Some of the core structures in iptables have changed. Let me take some time to figure out how python-iptables can use them without breaking compatibility with older versions.

@juanluisbaptiste
Copy link

I have this issue too, any ETA on when it's going to be fixed ?

Thanks.

@faddy
Copy link

faddy commented Sep 11, 2012

Hi,
I am facing the same issue with same iptables (1.4.12) and python-iptables (0.1.1) versions on Ubuntu 12.04.
Can you please tell us if you are working on this?
I can also work on a patch... Can you give me some hint/suggestion on how to tackle this?

Thanks for putting this library out there!

@ldx
Copy link
Owner

ldx commented Sep 20, 2012

See #13 for a patch (not fully functional, needs some more work it seems).

@juanluisbaptiste
Copy link

Hi,

I'm very new with git and github, can you please explain me how to get the patch for this issue ?

Thanks.

@juanluisbaptiste
Copy link

Ok, I cloned hach-que/python-iptables and tried to build it but I think it is missing a file:

[mageia@dci-laptop hach-que-python-iptables (master)]$ python setup.py build
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/iptc
copying iptc/xtables.py -> build/lib.linux-x86_64-2.7/iptc
copying iptc/version.py -> build/lib.linux-x86_64-2.7/iptc
copying iptc/init.py -> build/lib.linux-x86_64-2.7/iptc
warning: build_py: byte-compiling is disabled, skipping.

running build_ext
building 'libxtwrapper' extension
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/libxtwrapper
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -I/usr/include/ncursesw -DNDEBUG -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -g -fPIC -I/usr/include/python2.7 -c libxtwrapper/wrapper.c -o build/temp.linux-x86_64-2.7/libxtwrapper/wrapper.o -g -O0
libxtwrapper/wrapper.c:6:44: fatal error: ../iptables/include/xtables.h.in: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1

@ldx
Copy link
Owner

ldx commented Oct 11, 2012

Yes, modify that line to "#include <xtables.h>", and make sure the iptables-dev package (on Ubuntu) is installed.

@juanluisbaptiste
Copy link

Ok I'm not sure what you mean with "modify that line to "#include"", but I changed that include to "#include "xtables.h" and now the error changed to this:

gcc -pthread -shared -Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags build/temp.linux-x86_64-2.7/libxtwrapper/wrapper.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/libxtwrapper.so -g -O0
build/temp.linux-x86_64-2.7/libxtwrapper/wrapper.o: In function wrap_mpcall': /home/mageia/git/hach-que-python-iptables/libxtwrapper/wrapper.c:71: undefined reference toxtables_option_mpcall'
build/temp.linux-x86_64-2.7/libxtwrapper/wrapper.o: In function wrap_tpcall': /home/mageia/git/hach-que-python-iptables/libxtwrapper/wrapper.c:87: undefined reference toxtables_option_tpcall'
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1

I'm on Mageia 2 with iptables-devel-1.4.12.2-2 installed.

btw, I maintain python-iptables for Mageia and I'm also have a package for OpenSUSE that I want to get included.

@ldx
Copy link
Owner

ldx commented Oct 12, 2012

If you have python-iptables already installed, first remove it. You should also use '#include <xtables.h>', not '#include "xtables.h"'. Let me know if this helps - for me it compiles with iptables v1.4.12.

@juanluisbaptiste
Copy link

Yes, I had python-iptables removed, I really don't understand what you mean with the include statement, of course if I leave only:

#include

compilation will fail as it is an incomplete #include statement.

@ldx
Copy link
Owner

ldx commented Oct 15, 2012

Sorry, it should be #include <xtables.h>.

@juanluisbaptiste
Copy link

On Mon, Oct 15, 2012 at 3:34 AM, ldx notifications@github.com wrote:

Sorry, it should be #include <xtables.h>.

I tried that too and the error is still the same. This is with iptables
1.4.12.

@juanluisbaptiste
Copy link

Ok, the problem was a missing linker flag to link against libxtables. I created a pull request to merge this fix and the previous one about the wrong include for xtables.h on libxtwrapper/wrapper.c:

hach-que#1

@juanluisbaptiste
Copy link

Ok, I tested again with the hach-que/python-iptables fork and this issue is still present:

chain = iptc.Chain(iptc.TABLE_FILTER, "INPUT")
rule = iptc.Rule()
rule.protocol = "tcp"
rule.in_interface = "eth+"
rule.src = "10.0.2.2"
rule.dst = "10.1.1.1" 
target = iptc.Target(rule, "DROP")
target.to_ports = str(666)    
rule.target = target
chain.insert_rule(rule)

Produces the same error:

Traceback (most recent call last):
  File "test/iptables_add.py", line 19, in <module>
    target.to_ports = str(666)
  File "/usr/lib64/python2.7/site-packages/iptc/__init__.py", line 410, in __setattr__
    self.parse(name.replace("_", "-"), value)
  File "/usr/lib64/python2.7/site-packages/iptc/__init__.py", line 376, in parse
    (self._module.name, parameter))
AttributeError: standard: invalid parameter to-ports

@ldx
Copy link
Owner

ldx commented Jan 3, 2013

See the other tickets, iptables 1.4 introduced new module callbacks - we're not compatible with it yet.

@ldx
Copy link
Owner

ldx commented Jan 25, 2013

Please take a look at HEAD, and open a new ticket if you still experience issues. The new iptables API is now supported by python-iptables (see http://nilvec.com/python-iptables-update/ for further info).

@ldx ldx closed this as completed Jan 25, 2013
a-martynovich pushed a commit to GreatFruitOmsk/python-iptables that referenced this issue May 6, 2019
Resolving minor typos when doing e2e test on Pi 3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants