# [SOLVED] Iptables blokuje skaner bezprzewodowy (xsane)

## robertsurma

Posiadam urządzenie Epson XP 205 (drukarka i skaner w jednym). Działa bez problemu zarówno jedno, jak i drugie, bezprzewodowo za pomocą Wi-fi.

Problem w tym, że jak włączę regułki iptables, to działa tylko drukarka, a skaner nie jest wykrywany przez xsane.

Zaznaczam, że nie używam usługi "saned" (port 6566 w ogóle nie jest otwierany). Mam otwarty tylko port 631.

I teraz pytanie, jak poprawić regułki, aby pozwalały na wykrywanie skanera?

Moja konfiguracja:

```
# nmap IP_skanera

80/tcp  open  http

515/tcp open printer

631/tcp open ipp

9100/tcp open jetdirect
```

```
# nmap IP_mojego_laptopa

631/tcp open ipp
```

```
# cat /etc/iptables.rules

# Generated by iptables-save v1.4.20 on Tue Aug 26 01:16:08 2014

*nat

:PREROUTING ACCEPT [2181948:1062902697]

:INPUT ACCEPT [10:492]

:OUTPUT ACCEPT [982553:60386679]

:POSTROUTING ACCEPT [982553:60386679]

COMMIT

*mangle

:PREROUTING ACCEPT [31420823:33670353662]

:INPUT ACCEPT [29283083:32609249577]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [24064454:5841541987]

:POSTROUTING ACCEPT [24064791:5841558606]

COMMIT

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT

-A INPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 49152:65534 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 631 -j ACCEPT

-A INPUT -p udp -m state --state NEW -m udp --dport 631 -j ACCEPT

-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

-A INPUT -m state --state NEW -j REJECT --reject-with icmp-port-unreachable

-A OUTPUT -j ACCEPT

COMMIT

# Completed on Tue Aug 26 01:16:08 2014
```

----------

## SlashBeast

Zrob sobie jakis chain 'rejectlog' gdzie logujesz a potem robisz rejecta, i wtedy zamiast 

```
-A INPUT -m state --state NEW -j REJECT
```

daj

```
-A INPUT -m state --state NEW -j REJECTLOG
```

I bedziesz w logu kernela widzial co odrzuca, ergo co blokuje Ci skaner.

----------

## robertsurma

Sukces!

Na podstawie logów wnioskuję, że odbywa to się w ten sposób: 

1. xsane otwiera losowy port na laptopie i wysyła z niego zapytanie do skanera na port 3289 protokołem UDP (na co iptables pozwalał).

2. Skaner odpowiada z portu 3289 na losowy port w laptopie (na co już iptables nie pozwalał).

Cały problem rozwiązuje więc ta jedna linijka:

```

iptables -A INPUT -p udp -m udp -s 192.168.0.17 -m mac --mac-source A4:EE:57:CC:3B:B7 --sport 3289 -m state --state NEW,ESTABLISHED -j ACCEPT
```

Dziękuję za sugestie i pomoc.

----------

