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
# reboot
配置iptables
首先查看当前的规则:
[root@DDAN ~]# iptables -L --line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT udp -- anywhere anywhere udp dpt:bootpc
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
DROP all -- anywhere anywhere
添加规则以启用samba所使用的端口

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

iptables -I INPUT   -p udp -m multiport  --dport , -j ACCEPT
iptables -I INPUT -p tcp -m state --state NEW -m multiport --dport , -j ACCEPT
查看添加的规则
[root@DDAN ~]# iptables -L --line-number -n
Chain INPUT (policy ACCEPT)
num target prot opt source destination
ACCEPT all -- 0.0.0.0/ 0.0.0.0/
ACCEPT icmp -- 0.0.0.0/ 0.0.0.0/
ACCEPT tcp -- 0.0.0.0/ 0.0.0.0/ tcp dpt:
ACCEPT tcp -- 0.0.0.0/ 0.0.0.0/ tcp dpt:
ACCEPT tcp -- 0.0.0.0/ 0.0.0.0/ tcp dpt:
ACCEPT udp -- 0.0.0.0/ 0.0.0.0/ udp dpt:
ACCEPT all -- 0.0.0.0/ 0.0.0.0/ state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/ 0.0.0.0/ state NEW multiport dports ,
ACCEPT udp -- 0.0.0.0/ 0.0.0.0/ multiport dports ,
DROP all -- 0.0.0.0/ 0.0.0.0/
保存当前规则并启用samba:
#保存规则
service iptables save
#启用smb:
service smb restart

#使smb随机器启动
chkconfig  smb on

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

==============================

最新文章

  1. [转]VS2013自带SQL Server 的启用方法
  2. UML系列01之 UML和绘图工具Visio介绍
  3. return false取消手机移动端的默认设置
  4. IOS 作业项目(4)步步完成 画图 程序(中)
  5. Ubuntu设置环境变量并立即生效
  6. bzoj1064
  7. __builtin_popcount()
  8. 在mangento后台调用wysiwyg编辑器
  9. Online SVG to PNG/JPEG/TIFF conversion
  10. C#杂记-隐式类型的局部变量
  11. mysql语句之约束语句
  12. linux下 玩转ptrace
  13. SQL注入之Sqli-labs系列第三十二关(基于宽字符逃逸注入)
  14. LoibreOJ 2042. 「CQOI2016」不同的最小割 最小割树 Gomory-Hu tree
  15. 3.insert添加用法
  16. Delphi调用网页美化SQL
  17. git 基础入门操作
  18. 树莓派图形界面启动chromium并全屏
  19. 重置CentOS6.5的登录口令
  20. Angular 学习笔记——模块之间的通讯

热门文章

  1. ASIHTTPRequest学习(四)
  2. kubernetes1.5.2集群部署过程--非安全模式
  3. window.onerror事件用来自定义错误处理
  4. 2017.6.29 java读取.properties配置文件的几种方法
  5. Android Gradle基础实践
  6. EffectiveJava(10)覆盖equals是视情况覆盖toString
  7. Windows局域网如何进行远程桌面连接
  8. Android之短信验证码
  9. 【BIEE】11_BIEE图形报表在谷歌浏览器64.0.3282.140中访问图例乱码解决
  10. 有道词典for mac不能取词解决方案