http://linuxshare.ru/docs/security/iptables/iptables-tutorial.html#TABLE.MULTIPORTMATCH Итак для начала открою я выход в интернет через eth0 [root@pdc samba]# iptables -A OUTPUT -o eth0 -d 192.168.0.1 -p tcp --dport 3128 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT и вход [root@pdc samba]# iptables -A INPUT -i eth0 -s 192.168.0.1 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT [root@pdc samba] В этой конфигурации я разрешил исходяшие к прокси на шлюзе и ответ шлюза на мои запросы. ================================================================== [root@pdc home]# iptables -A INPUT -i lo -j ACCEPT [root@pdc home]# iptables -A OUTPUT -o lo -j ACCEPT ================================================================== Oct 24 11:20:09 pdc nmbd[3046]: [2012/10/24 11:20:09, 0] libsmb/nmblib.c:send_udp(793) Oct 24 11:20:09 pdc nmbd[3046]: Packet send failed to 192.168.0.255(138) ERRNO=Операция не позволяется Oct 24 11:20:09 pdc nmbd[3046]: [2012/10/24 11:20:09, 0] libsmb/nmblib.c:send_udp(793) Oct 24 11:20:09 pdc nmbd[3046]: Packet send failed to 192.168.0.255(138) ERRNO=Операция не позволяется [root@pdc home]# ======================================== установил nmap [root@pdc yum.repos.d]# yum install --disablerepo=\* --enablerepo=BASE-CentOS nmap Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package nmap.i386 2:4.11-1.1 set to be updated [root@pdc yum.repos.d]# nmap localhost Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2012-10-24 13:06 MSD mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns_servers Interesting ports on localhost.localdomain (127.0.0.1): Not shown: 1672 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 111/tcp open rpcbind 139/tcp open netbios-ssn 389/tcp open ldap 445/tcp open microsoft-ds 606/tcp open urm 631/tcp open ipp Nmap finished: 1 IP address (1 host up) scanned in 0.070 seconds [root@pdc yum.repos.d]# это при всем закрытом. ============================================================== iptables -A INPUT -p udp -s 192.168.1.0/24 -m multiport --dports 137,138 -j ACCEPT iptables -A INPUT -p tcp -s 192.168.1.0/24 -m multiport --dports 139,445 -j ACCEPT в результате в мессаджес Oct 24 13:32:15 pdc nmbd[9546]: [2012/10/24 13:32:15, 0] libsmb/nmblib.c:send_udp(793) Oct 24 13:32:15 pdc nmbd[9546]: Packet send failed to 192.168.0.255(137) ERRNO=Операция не позволяется Oct 24 13:32:15 pdc nmbd[9546]: [2012/10/24 13:32:15, 0] nmbd/nmbd_packets.c:send_netbios_packet(163) Oct 24 13:32:15 pdc nmbd[9546]: send_netbios_packet: send_packet() to IP 192.168.0.255 port 137 failed Oct 24 13:32:15 pdc nmbd[9546]: [2012/10/24 13:32:15, 0] nmbd/nmbd_nameregister.c:register_name(514) Oct 24 13:32:15 pdc nmbd[9546]: register_name: Failed to send packet trying to register name SUNPORT<1e> [root@pdc yum.repos.d]# [root@pdc yum.repos.d]# cat /proc/net/ip_conntrack tcp 6 78 TIME_WAIT src=192.168.0.7 dst=192.168.0.1 sport=49473 dport=3128 packets=6 bytes=947 src=192.168.0.1 dst=192.168.0.7 sport=3128 dport=49473 packets=6 bytes=2494 [ASSURED] mark=0 secmark=0 use=1 tcp 6 431820 ESTABLISHED src=127.0.0.1 dst=127.0.0.1 sport=52404 dport=389 packets=23 bytes=4706 src=127.0.0.1 dst=127.0.0.1 sport=389 dport=52404 packets=21 bytes=2394 [ASSURED] mark=0 secmark=0 use=1 tcp 6 18 TIME_WAIT src=192.168.0.7 dst=192.168.0.1 sport=49472 dport=3128 packets=6 bytes=947 src=192.168.0.1 dst=192.168.0.7 sport=3128 dport=49472 packets=6 bytes=2494 [ASSURED] mark=0 secmark=0 use=1 tcp 6 431820 ESTABLISHED src=127.0.0.1 dst=127.0.0.1 sport=52405 dport=389 packets=8 bytes=740 src=127.0.0.1 dst=127.0.0.1 sport=389 dport=52405 packets=6 bytes=1156 [ASSURED] mark=0 secmark=0 use=1 [root@pdc yum.repos.d]# ========================================================================== ========================================================================== 25102012 =========================================================================== [root@pdc iptables]# iptables -A INPUT -i eth0 -p udp -m multiport --ports 135,136,137,138,139,445 -j ACCEPT [root@pdc iptables]# iptables -A OUTPUT -o eth0 -p udp -m multiport --ports 135,136,137,138,139,445 -j ACCEPT [root@pdc iptables]# iptables -A INPUT -i eth0 -p tcp -m multiport --ports 135,136,137,138,139,445 -j ACCEPT [root@pdc iptables]# iptables -A OUTPUT -o eth0 -p tcp -m multiport --ports 135,136,137,138,139,445 -j ACCEPT [root@pdc iptables]# с конфигурацией выше самба вводит в домен. но зачем порты 135 и 136 не понятно, поэтому я решил их удалить. [root@pdc iptables]# iptables -A INPUT -i eth0 -p udp -m multiport --ports 137,138,139,445 -j ACCEPT [root@pdc iptables]# iptables -A OUTPUT -o eth0 -p udp -m multiport --ports 137,138,139,445 -j ACCEPT [root@pdc iptables]# iptables -A INPUT -i eth0 -p tcp -m multiport --ports 137,138,139,445 -j ACCEPT [root@pdc iptables]# iptables -A OUTPUT -o eth0 -p tcp -m multiport --ports 137,138,139,445 -j ACCEPT [root@pdc iptables]# в результате также все работает без проблем., хотя возможно и далее потребуется. возможно необходимо также 53 # Разрешаем dns серверу iptables -A INPUT -i eth1 -p udp --sport 53 -j ACCEPT # iptables -A OUTPUT -o eth1 -p udp --dport 53 -j ACCEPT # ======================================================================= ======================================================================= 26102012 ======================================================================= ======================================================================= посмотрел это [root@pdc net]# cat ip_conntrack tcp 6 430781 ESTABLISHED src=127.0.0.1 dst=127.0.0.1 sport=43719 dport=389 packets=25 bytes=4810 src=127.0.0.1 dst=127.0.0.1 sport=389 dport=43719 packets=30 bytes=2862 [ASSURED] mark=0 secmark=0 use=1 tcp 6 430781 ESTABLISHED src=127.0.0.1 dst=127.0.0.1 sport=43720 dport=389 packets=8 bytes=740 src=127.0.0.1 dst=127.0.0.1 sport=389 dport=43720 packets=8 bytes=1260 [ASSURED] mark=0 secmark=0 use=1 tcp 6 44 TIME_WAIT src=192.168.0.7 dst=192.168.0.1 sport=55775 dport=3128 packets=6 bytes=947 src=192.168.0.1 dst=192.168.0.7 sport=3128 dport=55775 packets=6 bytes=2494 [ASSURED] mark=0 secmark=0 use=1 tcp 6 17 TIME_WAIT src=127.0.0.1 dst=127.0.0.1 sport=40779 dport=389 packets=16 bytes=2247 src=127.0.0.1 dst=127.0.0.1 sport=389 dport=40779 packets=13 bytes=1288 [ASSURED] mark=0 secmark=0 use=1 tcp 6 104 TIME_WAIT src=192.168.0.7 dst=192.168.0.1 sport=38306 dport=3128 packets=6 bytes=947 src=192.168.0.1 dst=192.168.0.7 sport=3128 dport=38306 packets=6 bytes=2494 [ASSURED] mark=0 secmark=0 use=1 tcp 6 430780 ESTABLISHED src=127.0.0.1 dst=127.0.0.1 sport=43718 dport=389 packets=8 bytes=773 src=127.0.0.1 dst=127.0.0.1 sport=389 dport=43718 packets=6 bytes=376 [ASSURED] mark=0 secmark=0 use=1 tcp 6 430894 ESTABLISHED src=127.0.0.1 dst=127.0.0.1 sport=43721 dport=389 packets=13 bytes=1475 src=127.0.0.1 dst=127.0.0.1 sport=389 dport=43721 packets=17 bytes=3034 [ASSURED] mark=0 secmark=0 use=1 [root@pdc net]# теперь задача стоит открыть ssh но это не окончательное решение. [root@pdc iptables]# iptables -A INPUT -p tcp -m multiport --port 22 -j ACCEPT [root@pdc iptables]# iptables -A OUTPUT -p tcp -m multiport --port 22 -j ACCEPT ===================================================================== но надо сделать точнее подход. Чем четче я обозначу использование тем лучше. А это проверю как же работает самба. для этого сначала остановлю самбу, сделаю снимок, потом запущу самбу , сделаю снимок и сравню ----------------------------------------------------------------------------- [root@pdc ~]# service smb stop Останавливаются службы SMB: [ OK ] Останавливаются службы NMB: [ OK ] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ [root@pdc ~]# netstat -ln > netstat-ln-smb.before [root@pdc ~]# service smb start Запускаются службы SMB: [ OK ] Запускаются службы NMB: [ OK ] [root@pdc ~]# netstat -ln > netstat-ln-smb.after [root@pdc ~]# diff netstat-ln-smb.* 5d4 < tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 10d8 < tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 13,16d10 < udp 0 0 192.168.0.7:137 0.0.0.0:* < udp 0 0 0.0.0.0:137 0.0.0.0:* < udp 0 0 192.168.0.7:138 0.0.0.0:* < udp 0 0 0.0.0.0:138 0.0.0.0:* [root@pdc ~]# ---------------------------------------------------------------------------- итак я вижу что появилось. на основании этого задействую такие порты ---------------------------------------------------------------------------- при чем была ошибка и я не открыл 138 порт, и в винде не было видно [root@pdc iptables]# iptables -A INPUT -p udp -m multiport --port 137,138 -j ACCEPT [root@pdc iptables]# iptables -A OUTPUT -p udp -m multiport --port 137,138 -j ACCEPT [root@pdc iptables]# iptables -A INPUT -p tcp -m multiport --port 139,445 -j ACCEPT [root@pdc iptables]# iptables -A OUTPUT -p tcp -m multiport --port 139,445 -j ACCEPT [root@pdc iptables]# ----------------------------------------------------------------------