iptables基础及Samba配置举例

Iptables表链规则

iptables传输数据包的过程

iptables命令格式

iptables常用选项OPTIONS解释

常用命令COMMANDS解释

常用参数PARAMETERS解释

使用MATCH EXTENSIONS扩展模块

其他

举例搭建samba服务器

配置samba服务器

添加samba账户

关闭SELinux防火墙

配置iptables

首先查看当前的规则

添加规则以启用samba所使用的端口

查看添加的规则

保存当前规则并启用samba

iptable基本概念

iptables防火墙包含两部分,即位于用户空间的iptables模块和位于内核空间netfilter模块。用户空间模块提供插入、修改和除去包过滤表中规则,内核模块进行实际的过滤,所以更准确的名称应该是 iptables/netfilter。

表(tables):提供特定的功能,iptables内置了4个表,即filter表、nat表、mangle表和raw表,分别用于实现包过滤,网络地址转换、包重构(修改)数据跟踪处理

规则(rules):其实就是网络管理员预定义的条件。

链(chains):是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一条或数条规则。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。共5个链,即INPUT、OUTPUT、FORWARD、PREROUTING和POSTROUTING。

Iptables表、链、规则:

这里写图片描述

iptables传输数据包的过程

这里写图片描述

iptables命令格式

这里写图片描述

iptables常用选项OPTIONS解释 常用命令COMMANDS解释:

-A, –append chain:增加一条规则到链的末端

-D, –delete chain: 删除一条规则

-I, –insert chain [rulenum]:以给定的rule编号,在选定的链上插入规则

-R, –replace chain rulenum:替换某条规则

-L, –list [chain]:查看指定表和指定链的规则列表

-F, –flush [chain]:删除[指定]表中所有规则

常用参数PARAMETERS解释:

-p 协议类型:可以指定规则应用的协议,即TCP、UDP和ICMP等

-s 源地址:地址可以是hostname,也可以是IP等

-d 目标IP地址

-j 动作

–line-numbers:和-L一起使用,显示规则的rulenum编号

-n:以数字形式输出IP地址和端口

使用MATCH EXTENSIONS扩展模块

-m, –match module_name: 启用扩展模块,如state、tcp 、udp、multiport 、string 、addrtype 、mac 等

iptables -m module_name -h: 查看扩展模块的帮助信息;如:iptables -m mac -h

其他

假如没有 -t 选项,则默认的table为filter表

默认的保存在/etc/sysconfig/iptables文件中

service iptables save:保存更改的iptables

举例搭建samba服务器 配置samba服务器

修改/etc/samba/smb.conf文件,首先添加要共享的目录:

[workspace] writable = yes path = /root/

如果打算使符号链接也可以访问,则在smb.conf的[global] 部分,添加如下配置:

follow symlinks = yes wide links = yes unix extensions = no 添加samba账户 smbpasswd -a smbpasswd -e 关闭SELinux防火墙 # sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config # setenforce 0 # reboot 配置iptables 首先查看当前的规则: [root@DDAN ~]# iptables -L --line-number Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- anywhere anywhere 2 ACCEPT icmp -- anywhere anywhere 3 ACCEPT tcp -- anywhere anywhere tcp dpt:ssh 4 ACCEPT tcp -- anywhere anywhere tcp dpt:http 5 ACCEPT tcp -- anywhere anywhere tcp dpt:https 6 ACCEPT udp -- anywhere anywhere udp dpt:bootpc 7 ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED 8 DROP all -- anywhere anywhere 添加规则以启用samba所使用的端口

经查看,要添加到8号规则的前面,否则samba不起作用:

iptables -I INPUT 8 -p udp -m multiport --dport 137,138 -j ACCEPT iptables -I INPUT 8 -p tcp -m state --state NEW -m multiport --dport 139,445 -j ACCEPT 查看添加的规则 [root@DDAN ~]# iptables -L --line-number -n Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:68 7 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 8 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW multiport dports 139,445 9 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 137,138 10 DROP all -- 0.0.0.0/0 0.0.0.0/0 保存当前规则并启用samba: #保存规则 service iptables save #启用smb: service smb restart #使smb随机器启动 chkconfig smb on

也可以使用iptables -F完全删除规则

--------------------------------------分割线 --------------------------------------

iptables使用范例详解

iptables—包过滤(网络层)防火墙

Linux防火墙iptables详细教程

iptables+L7+Squid实现完善的软件防火墙

iptables的备份、恢复及防火墙脚本的基本使用

Linux下防火墙iptables用法规则详解

--------------------------------------分割线 --------------------------------------

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d62483a37d7a51c90aca4536e5a49b64.html