Уважаемое комюнити, помогите пожалуйста разобраться в чем проблема:Есть локалка с вендовыми машинами,в ней сетевой принтер,нормально находится и устанавливается..но печать на него не идет,просто висит в очереди...если на принтере убрать шлюз, то все начинает работать..
вот правила 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 eth0ip 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
# 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
немного маловато.ну или для эксперемента разрешить весь трафик для локалки через внутрений интерфейс
> # 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у меня не разрешено все для локалки? или я что-то не допонимаю...?
Вы еще предлагаете открыть порты нетбиоса?
Просто при опущенном фаерволе все равно ничего не работало...
Да спать мне больше надо, не заметил разрешения для локальной сети.
Видимо среагировал, на то, что открыт порт только для самбы(что как мне кажется не совсем корректным), а нетбиос нет.как я понимаю у Вас комп. и принтер находятся в одном бродкаст-домене, то есть если на сетевом принтере убрать в настройках адрес шлюза, то все машины прекрасно с ним общаются на прямую, но если же адрес гейта прописан, то принтер получив(?) задание пытается отвечать через шлюз и очередь "зависает".
из описания данной ситуации я все же настаиваю что проблема в шлюзе.
з.ы. для эксперемента можно дать для фаервола политику по-умолчанию accept и проверить печать. если заработает, то возвращаем все как было, tcpdump на интерфейс и и пробуем отловить где проблема
> з.ы. для эксперемента можно дать для фаервола политику по-умолчанию accept и проверить
> печать. если заработает, то возвращаем все как было, tcpdump на интерфейс
> и и пробуем отловить где проблемаСпасибо за ответ!
Я сам уже понимаю что проблема в шлюзе..я пробовал ставить по умолчанию 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+ такие же правила для OUTPUT
Цепочка FORWARD явно разрешена.
Но у меня вопрос, Вы за фильтруете принтер по 2-м портам, зачем?
Боитесь что принтер начнет спам рассылать или DDOS организует?для эксперимента откройте полный доступ к принтеру, так как мне кажется что все же 2-ч портов маловато.
з.ы. для справки принтер у пользователей подключен по айпи или по имени?
> для эксперимента откройте полный доступ к принтеру, так как мне кажется
> что все же 2-ч портов маловато.
> з.ы. для справки принтер у пользователей подключен по айпи или по имени?Два порта открыл в фаере,т.к. увидел что на самом принтере открыты два порта..но на раб.станциях он подключен по 9100,открыл два для чистоты процесса.
Подсеть одна.
И что значит открыть полный доступ к принтеру? Что здесь имеется ввиду?для локалки же все разрешено,а принтер в этой самой локалке..
ну если для локалки все разрешено, тогда зачем:/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'а тут не разобраться.
> ну если для локалки все разрешено, тогда зачем:
> /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'а тут не разобраться.