URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID6
Нить номер: 23682
[ Назад ]

Исходное сообщение
"Сетевой принтер"

Отправлено kbu , 07-Апр-12 23:08 
Уважаемое комюнити, помогите пожалуйста разобраться в чем проблема:

Есть локалка с вендовыми машинами,в ней сетевой принтер,нормально находится и устанавливается..но печать на него не идет,просто висит в очереди...если на принтере убрать шлюз, то все начинает работать..

вот правила iptables:


########################## Clear previous firewall #################
/sbin/iptables -F
/sbin/iptables -F -t nat

######################### Allow FORWARDING in kernel ###############
echo "1" > /proc/sys/net/ipv4/ip_forward

######################### Policy ###################################
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT DROP

######################## Input chains ################################
echo Input
######################################################################

# accept icmp echo-request from server to any
#/sbin/iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
/sbin/iptables -A INPUT -p icmp -j ACCEPT

# Allow loopback
/sbin/iptables -A INPUT -p ALL -i $loint -s $loip -j ACCEPT

# Allow connect LAN
# /sbin/iptables -A INPUT -p tcp -s 192.168.192.0/24 -j ACCEPT
# /sbin/iptables -A INPUT -p udp -s 192.168.192.0/24 -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.192.0/24 -j ACCEPT

# Allow connect SSH
/sbin/iptables -A INPUT -p tcp -d $inetip --dport 22150 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -d $localip --dport 22150 -j ACCEPT

# Allow HTTP
/sbin/iptables -A INPUT -p tcp -d $inetip --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -d $inetip --sport 80 -j ACCEPT

/sbin/iptables -A INPUT -p tcp -d $inetip --dport 443 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -d $inetip --sport 443 -j ACCEPT

# DNS
/sbin/iptables -A INPUT -p udp -d $inetip --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -d $inetip --dport 53 -j ACCEPT

/sbin/iptables -A INPUT -p udp -d $inetip --sport 53 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -d $inetip --sport 53 -j ACCEPT

# Allow Samba
/sbin/iptables -A INPUT -p tcp -i $intint --dport 445 -j ACCEPT

# Allow LAN Printer
/sbin/iptables -A INPUT -p tcp -i $intint -s $localip -d 192.168.192.24 --dport 9100 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i $intint -s 192.168.192.24 --sport 9100 -d $localip -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i $intint -s $localip -d 192.168.192.24 --dport 631 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i $intint -s 192.168.192.24 --sport 631 -d $localip -j ACCEPT

############################# Forward #######################################
echo Forward
#############################################################################

/sbin/iptables -A FORWARD -p icmp -j ACCEPT

# Use internet only with squid
/sbin/iptables -t nat -A PREROUTING ! -d 192.168.192.0/24 -p tcp -m multiport --dport 80,8080 -j REDIRECT --to-port 3128

# Make NAT
#/sbin/iptables -t nat -A POSTROUTING -o $outint -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o $outint -j SNAT --to-source $inetip

# Allow FORWARD from LAN to Internet
/sbin/iptables -A FORWARD -i $intint -j ACCEPT
/sbin/iptables -A FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

############################# Output #######################################
echo Output
############################################################################

# Allow loopback
/sbin/iptables -A OUTPUT -p ALL -s $loip -j ACCEPT

# Allow LAN
# /sbin/iptables -A OUTPUT -p tcp -d 192.168.192.0/24 -j ACCEPT
# /sbin/iptables -A OUTPUT -p udp -d 192.168.192.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -d 192.168.192.0/24 -j ACCEPT

# Allow icmp
/sbin/iptables -A OUTPUT -p icmp -j ACCEPT

# Allow connect SSH
/sbin/iptables -A OUTPUT -p tcp -s $inetip  --sport 22150 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -s $localip --sport 22150 -j ACCEPT

# Allow connect HTTP
/sbin/iptables -A OUTPUT -p tcp -s $inetip --sport 80 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -s $inetip --dport 80 -j ACCEPT

/sbin/iptables -A OUTPUT -p tcp -s $inetip --sport 443 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -s $inetip --dport 443 -j ACCEPT

# DNS
/sbin/iptables -A OUTPUT -p udp  --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp  --dport 53 -j ACCEPT

/sbin/iptables -A OUTPUT -p udp  --sport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp  --sport 53 -j ACCEPT

# Allow Samba
/sbin/iptables -A OUTPUT -p tcp -s $localip --sport 445 -j ACCEPT

# Allow LAN Printer
/sbin/iptables -A OUTPUT -p tcp -s 192.168.192.24 --sport 9100 -d $localip -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -s $localip -d 192.168.192.24 --dport 9100 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -s 192.168.192.24 --sport 631 -d $localip -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -s $localip -d 192.168.192.24 --dport 631 -j ACCEPT

вот route:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
21.16.1.212 *               255.255.255.252 U     0      0        0 eth0
192.168.192.0   *               255.255.255.0   U     0      0        0 eth1
default         server 0.0.0.0         UG    0      0        0 eth0

ip ro sh
21.16.1.212/30 dev eth0  proto kernel  scope link  src 21.16.1.214
192.168.192.0/24 dev eth1  proto kernel  scope link  src 192.168.192.254
default via 21.16.1.213 dev eth0


Содержание

Сообщения в этом обсуждении
"Сетевой принтер"
Отправлено КуКу , 08-Апр-12 11:09 
# grep -i netb /etc/services
netbios-ns      137/tcp                         # NETBIOS Name Service
netbios-ns      137/udp
netbios-dgm     138/tcp                         # NETBIOS Datagram Service
netbios-dgm     138/udp
netbios-ssn     139/tcp                         # NETBIOS session service
netbios-ssn     139/udp
#
# grep -i micro /etc/services
microsoft-ds    445/tcp
microsoft-ds    445/udp
ms-sql-s        1433/tcp                        # Microsoft-SQL-Server
ms-sql-s        1433/udp                        # Microsoft-SQL-Server
ms-sql-m        1434/tcp                        # Microsoft-SQL-Monitor
ms-sql-m        1434/udp                        # Microsoft-SQL-Monitor
wins            1512/tcp                        # Microsoft's Windows Internet Name Service
wins            1512/udp                        # Microsoft's Windows Internet Name Service
..........................................................
это для фаервола, так то как
# Allow Samba
/sbin/iptables -A OUTPUT -p tcp -s $localip --sport 445 -j ACCEPT
немного маловато.

ну или для эксперемента разрешить весь трафик для локалки через внутрений интерфейс


"Сетевой принтер"
Отправлено kbu , 08-Апр-12 12:43 
> # Allow Samba
> /sbin/iptables -A OUTPUT -p tcp -s $localip --sport 445 -j ACCEPT
> немного маловато.
> ну или для эксперемента разрешить весь трафик для локалки через внутрений интерфейс

Прошу прощения,а разве в правилах:

/sbin/iptables -A INPUT -s 192.168.192.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -d 192.168.192.0/24 -j ACCEPT

у меня не разрешено все для локалки? или я что-то не допонимаю...?

Вы еще предлагаете открыть порты нетбиоса?

Просто при опущенном фаерволе все равно ничего не работало...


"Сетевой принтер"
Отправлено КуКу , 08-Апр-12 14:01 
Да спать мне больше надо, не заметил разрешения для локальной сети.
Видимо среагировал, на то, что открыт порт только для самбы(что как мне кажется не совсем корректным), а нетбиос нет.

как я понимаю у Вас комп. и принтер находятся в одном бродкаст-домене, то есть если на сетевом принтере убрать в настройках адрес шлюза, то все машины прекрасно с ним общаются на прямую, но если же адрес гейта прописан, то принтер получив(?) задание пытается отвечать через шлюз и очередь "зависает".

из описания данной ситуации я все же настаиваю что проблема в шлюзе.

з.ы. для эксперемента можно дать для фаервола политику по-умолчанию accept и проверить печать. если заработает, то возвращаем все как было, tcpdump на интерфейс и и пробуем отловить где проблема


"Сетевой принтер"
Отправлено kbu , 08-Апр-12 14:05 
> з.ы. для эксперемента можно дать для фаервола политику по-умолчанию accept и проверить
> печать. если заработает, то возвращаем все как было, tcpdump на интерфейс
> и и пробуем отловить где проблема

Спасибо за ответ!
Я сам уже понимаю что проблема в шлюзе..я пробовал ставить по умолчанию accept..но печать не идет...видимо что-то с маршрутами...только не могу понять что именно с ней не так...


"Сетевой принтер"
Отправлено КуКу , 08-Апр-12 14:11 
Если у Вас одна подсеть, то с маршрутами все скорее всего ок.

Как я ниже написал попробуйте перестать фильтровать порты для принтера


"Сетевой принтер"
Отправлено КуКу , 08-Апр-12 14:09 
А спать то мне точно нужно больше.
я тут заметил

# Allow LAN Printer
/sbin/iptables -A INPUT -p tcp -i $intint -s $localip -d 192.168.192.24 --dport 9100 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i $intint -s 192.168.192.24 --sport 9100 -d $localip -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i $intint -s $localip -d 192.168.192.24 --dport 631 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i $intint -s 192.168.192.24 --sport 631 -d $localip -j ACCEPT

+ такие же правила для OUTPUT

Цепочка FORWARD явно разрешена.
Но у меня вопрос, Вы за фильтруете принтер по 2-м портам, зачем?
Боитесь что принтер начнет спам рассылать или DDOS организует?

для эксперимента откройте полный  доступ к принтеру, так как мне кажется что все же 2-ч портов маловато.
з.ы. для справки принтер у пользователей подключен по айпи или по имени?


"Сетевой принтер"
Отправлено kbu , 08-Апр-12 14:34 
> для эксперимента откройте полный  доступ к принтеру, так как мне кажется
> что все же 2-ч портов маловато.
> з.ы. для справки принтер у пользователей подключен по айпи или по имени?

Два порта открыл в фаере,т.к. увидел что на самом принтере открыты два порта..но на раб.станциях он подключен по 9100,открыл два для чистоты процесса.

Подсеть одна.

И что значит открыть полный доступ к принтеру? Что здесь имеется ввиду?для локалки же все разрешено,а принтер в этой самой локалке..


"Сетевой принтер"
Отправлено КуКу , 08-Апр-12 15:02 
ну если для локалки все разрешено, тогда зачем:

/sbin/iptables -A INPUT -p tcp -i $intint -s $localip -d 192.168.192.24 --dport 9100 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i $intint -s 192.168.192.24 --sport 9100 -d $localip -j ACCEPT
............

полный доступ, это вместо выше приведенных правил что то вроде:
iptables -A INPUT -p all -s 192.168.192.24 -j ACCEPT
iptables -A OUTPUT -p all -d 192.168.192.24 -j ACCEPT
iptables -A FORWARD -s 192.168.192.24 -j ACCEPT
_____

все же как подключен принтер по имени или по IP?
_____
как я понял при
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
iptables -t nat -F
iptables -X
и включеном форвардинге пакетов принтер все равно непечатает

то по всему без tcpdump'а тут не разобраться.


"Сетевой принтер"
Отправлено kbu , 08-Апр-12 18:56 
> ну если для локалки все разрешено, тогда зачем:
> /sbin/iptables -A INPUT -p tcp -i $intint -s $localip -d 192.168.192.24 --dport
> 9100 -j ACCEPT
> /sbin/iptables -A INPUT -p tcp -i $intint -s 192.168.192.24 --sport 9100 -d
> $localip -j ACCEPT
> ............

Это было сделано для чистоты процесса

> полный доступ, это вместо выше приведенных правил что то вроде:
> iptables -A INPUT -p all -s 192.168.192.24 -j ACCEPT
> iptables -A OUTPUT -p all -d 192.168.192.24 -j ACCEPT
> iptables -A FORWARD -s 192.168.192.24 -j ACCEPT
> _____

попробую с all

> все же как подключен принтер по имени или по IP?

принтер подключен по IP.

> _____
> как я понял при
> iptables -P INPUT ACCEPT
> iptables -P OUTPUT ACCEPT
> iptables -P FORWARD ACCEPT
> iptables -F
> iptables -t nat -F
> iptables -X
>  и включеном форвардинге пакетов принтер все равно непечатает

именно так

> то по всему без tcpdump'а тут не разобраться.