понедельник, 5 июля 2010 г.

Samba через iptables

Понадобилось мне зайти на шару windows-машины. Пытаюсь подключиться, а не получается.
После недолгого копания понял, что уперся в локальный iptables.
Короче говоря шпаргалка...

Создаём новую цепочку (это для красоты и удобства)

iptables -N SMB

Говорим iptables идти через цепочку

iptables -A INPUT -j SMB

Добавляем в созданную цепочку правила для сервера (что бы можно было расшарить каталог)

iptables -A SMB -p tcp -m tcp -m multiport --dports 137,138,139,445 -s 192.168.156.0/24 -j ACCEPT
iptables -A SMB -p udp -m udp -m multiport --dports 137,138,139,445 -s 192.168.156.0/24 -j ACCEPT

и правила для клиента (что бы можно было смотреть список компьютеров в сети и ходить на шары)

iptables -A SMB -p tcp --sport 137:139 -j ACCEPT
iptables -A SMB -p udp --sport 137:139 -j ACCEPT


Если у вас настройки подгружаются из файла (как сделать читаем тут ), то добавьте следующее:
#создаем новую цупочку (поместите её в рядом с остальными цепочками)

:SMB - [0:0]

#посылаем пакеты в цепочку (вставлять нужно до запрещающего всё правила "-A INPUT -j DROP", если такое есть)

-A INPUT -j SMB

#и, собственно, сама цепочка правил (вставлять нужно до комманды "COMMIT")

#для сервера

-A SMB -p tcp -m tcp -m multiport --dports 137,138,139,445 -s 192.168.156.0/24 -j ACCEPT
-A SMB -p udp -m udp -m multiport --dports 137,138,139,445 -s 192.168.156.0/24 -j ACCEPT

#и для клиента

-A SMB -p tcp --sport 137:139 -j ACCEPT
-A SMB -p udp --sport 137:139 -j ACCEPT