iptables 是 linux 系统自带的防火墙, 功能强大. 如果 iptables 不熟悉的话可以用 apf, 是一款基于 iptables 的防墙.
一. 安装并启动防火墙
$ /etc/init.d/iptables start
当我们用 iptables 添加规则, 保存后, 这些规则以文件的形势存在磁盘上的, 以 centos 为例,
文件地址是 / etc/sysconfig/iptables, 我们可以通过命令的方式去添加, 修改, 删除规则,
也可以直接修改 / etc/sysconfig/iptables 这个文件就行了.
二. 添加防火墙规则
1. 添加 filter 表
$ iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-dport 开放 21 端口 - A 默认是插入到尾部的 (add)
2. 添加 nat 表
$ iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
将源地址是 192.168.10.0/24 的数据包进行地址伪装 - t 类型 (type)
3. 指定位置添加
- $ iptables -I INPUT 3 -p tcp -m tcp --dport 20 -j ACCEPT
- $ iptables -L -n --line-number
- Chain INPUT (policy DROP)
- num target prot opt source destination
- 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
- 2 DROP icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8
- 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:20
-L 列出 list--line-number 显示行号 - I 指定位置添加
三. 删除 iptables 规则
- $ iptables -D INPUT 3 #删除 input 的第 3 条规则
- $ iptables -t nat -D POSTROUTING 1 #删除 nat 表中 postrouting 的第一条规则
- $ iptables -F INPUT #清空 filter 表 INPUT 所有规则
- $ iptables -F #清空所有规则
- $ iptables -t nat -F POSTROUTING #清空 nat 表 POSTROUTING 所有规则
四. 查看防火墙规则
1. 查看 filter 表
$ iptables -L -n --line-number |grep 21
如果不加 - t 的话, 默认就是 filter 表, 查看, 添加, 删除都是的
2. 查看 nat 表
$ iptables -t nat -vnL POSTROUTING --line-number
五. 修改规则
$ iptables -R INPUT 3 -j DROP #-R 将规则 3 删除
六. 设置默认规则
$ iptables -P INPUT DROP #设置 filter 表 INPUT 默认规则是 DROP
所有添加, 删除, 修改后都要保存起来,
$/etc/init.d/iptables-save
来源: http://www.bubuko.com/infodetail-2753431.html