不同linux系统,相关软件是否安装,会让iptables的某些命令不能执行,这里收集了大多数iptables命令,不管是Ubuntu还是Centos,都能找到相关的修改、查询、保存命令。
仅允许某些IP访问指定端口:
先禁用端口访问:iptables -I INPUT -p tcp --dport 8000 -j DROP
允许特定IP访问:iptables -I INPUT -s IP地址/32 -p tcp --dport 8000 -j ACCEPT
what is iptables?
Iptables is used to set up, maintain, and inspect the tables of IPv4 packet filter rules in the Linux kernel. Several different tables may be defined. Each table contains a number of built-in chains and may also contain user-defined chains.
以上是itables man手册上的说明。
iptables包含4个表:filter,nat,mangle,raw。我们最常用的就是filter这个表。filte表有三个内建的chain:INPUT、OUTPUT和FORWORD。
INPUT:用来处理发给本机的数据包;如主机A发给本机的数据,数据通信路径会像这:主机A------>本机localhost
OUTPUT:用来处理本机发送出去的数据包;如本机访问百度服务器,数据通信路径会像这样,如本机localhost------>百度服务器
FORWORD:用来处理流经本机,但又不是发给本机的数据包;如主机A要给主机B发送数据包,经过了本机,路径会像这样:主机A--->本机localhost--->主机B。
前面两条chain好理解,但FORWORD怎么理解呢?
一般主机就一张网卡,什么时候会用到呢?
在做ARP中间人攻击时,我们需欺骗网关和被攻击的主机,使其两者的通信数据经过本机,这个时候就可需设置FORWORD 这个chain下的规则了,因为默认情况下,FORWORD这个CHAIN下有一条策略是拒绝所有的数据的。
接下来看下如何查看filter表的配置:
1、filter表查看
- [root@localhost ~]# iptables -L -v
- 建议查看表时,带上-v参数,会显示in out 方向等信息,显示的信息更完整、详细。
2、filter表规则添加。
有两种方式添加规则
iptables -A 和iptables -I
iptables -A 添加的规则是添加在最后面。如针对INPUT链增加一条规则,接收从eth0口进入且源地址为192.168.0.0/16网段发往本机的数据。
- [root@localhost ~]# iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j ACCEPT
iptables -I 添加的规则默认添加至第一条。
如果要指定插入规则的位置,则使用iptables -I 时指定位置序号即可。
3、删除规则
如果删除指定则,使用iptables -D命令,命令后可接序号。效果请对比上图。
或iptables -D 接详细定义;
如果想把所有规则都清除掉,可使用iptables -F。
4、备份iptabes rules
使用iptables-save命令,如:
- [root@localhost ~]# iptables-save >/dd/iptables.bak
5、恢复iptables rules
使用iptables命令,如:
- [root@localhost ~]# iptables-restore </dd/iptables.bak
6、iptables 配置保存
以上做的配置修改,在设备重启后,配置将丢失。可使用service iptables save进行保存。
-
- [root@localhost ~]# service iptables save