How do I configure iptables firewall under CentOS / Fedora / RHEL / Redhat Linux to allow access to the Samba server? How do I open TCP ports # 137, 138, 139 and 445 under Linux so that all Microsoft Windows machine can access files and printer on a Linux host?
The Samba server can be configured to allow access to certain hosts. However, iptables prevent the access over the Internet. You must allow only the systems on your network as clients of the Samba Linux server.
Iptables Open Port 137, 138, 139 and 445
Edit /etc/sysconfig/iptables file, enter:
# vi /etc/sysconfig/iptables
To allow access to 192.168.1.0/24 network only add the following before the final LOG & DROP statements:
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 137 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 138 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT
Save and close the file.
Restart Firewall
Type the following command:
service iptables restart
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- My 10 UNIX Command Line Mistakes
- 10 Greatest Open Source Software Of 2009
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Linux Video Editor Software
- Email FAQ to a friend
- Download PDF version
- Printable version
- Comment RSS feed
- Last Updated: 10/16/09




{ 2 comments… read them below or add one }
Great writeup! I think this may put me on the right track to figuring out my system at home.
I am running Ubuntu 9.04 and recently enabled connection sharing for my 3G USB modem. My problem is that when I enabled ICS I was no long able to access my shared folders from my Windows machines. At first I thought it had to do with my routing tables but after I read this I figured it was my iptables.
Is there a similar article for this on Ubuntu? I’m sure I can work through it and get it running but it would be nice if there were something to walk me through it (I’m very new).
You can use GUI tool called Firestarter (package is included with Ubuntu) is quite popular and easy to use.
OR UFW