Не пойму, почему так. Нужно в iptables открыть порты для samba.
<code>
iptables -A INPUT -i eth0 -p TCP --dport 137:139 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP --dport 137:139 -j ACCEPT
iptables -A OUTPUT -o eth0 -p TCP --sport 137:139 -j ACCEPT
iptables -A OUTPUT -o eth0 -p UDP --sport 137:139 -j ACCEPT
<code>
Так не работает, а если поменять местами dport и sport, то все работает
<code>
iptables -A INPUT -i eth0 -p TCP --sport 137:139 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP --sport 137:139 -j ACCEPT
iptables -A OUTPUT -o eth0 -p TCP --dport 137:139 -j ACCEPT
iptables -A OUTPUT -o eth0 -p UDP --dport 137:139 -j ACCEPT
<code>
Почему так, ведь у нас INPUT - входящий поток, значит должен быть входной порт dport, а OUTPUT - исходящий поток, значит должен быть порт источника sport. Но так не работает, почему?
Samba: настройка iptables
safronowmax, примеры:
configure-iptables-to-allow-deny-access-to-samba
Samba and IPTables
INPUT - входящий поток, значит должен быть входной порт dport, а OUTPUT - исходящий поток, значит должен быть порт источника sport.Совершенно не обязательно.
i2ks, в приведенных вами ссылках примеры в том виде в каком они есть тоже не работают, только если поменять dport на sport, а sport на dport.
Remedy, почему не обязательно?
Потому что идёт запрос к тебе но не от от тебя. А если вод днс тогда наоборот.
INPUT вход source - порт точнее входящий запрос на порт 137:139 разрешить.
Из man iptables
-sport "Исходный порт, с которого был отправлен пакет"
-dport "Порт или диапазон портов, на который адресован пакет"
Kettler, т.е. получается правильно, что в INPUT должен быть sport, в OUTPUT dport? Если так, почему во всех руководствах написано наоборот?
Kettler, т.е. получается правильно, что в INPUT должен быть sport, в OUTPUT dport? Если так, почему во всех руководствах написано наоборот?
Потому что кто-то не подумал, когда писал, что исходящее подключение не обязательно должно начинаться с порта, на котором висит демон сам wink
Ну вот смотри у меня как
# Разрешаем ssh серверу
iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT #
iptables -A OUTPUT -o eth1 -p tcp --sport 22 -j ACCEPT #
# Разрешаем dns серверу
iptables -A INPUT -i eth1 -p udp --sport 53 -j ACCEPT #
iptables -A OUTPUT -o eth1 -p udp --dport 53 -j ACCEPT #
#share а тут так пример samba
iptables -A INPUT -i eth1 -p udp -m multiport --ports 135,136,137,138,139,445 -j ACCEPT
iptables -A OUTPUT -o eth1 -p udp -m multiport --ports 135,136,137,138,139,445 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -m multiport --ports 135,136,137,138,139,445 -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp -m multiport --ports 135,136,137,138,139,445 -j ACCEPT
Kettler, спасибо
SMB запущен на гостевом Debian7 на виртуальной машине VBox.
Путем чтения логов и методом тыка :) удалось получить доступ с хоста под Windows7 путем открытия в iptables еще и 5353/udp - Multicast DNS (помимо обычных). Иначе не работает.
Это потому что VBox или это от настроек SMB зависит?