iptables学习 01

1.开启路由转发功能

临时开启

echo 1 > /proc/sys/net/ipv4/ip_forward

默认ip_forward值为零, 不允许转发,改为1就可以转发了。修改过后就马上生效,即内核已经打开ip转发功能。

 

永久开启

sudo vim /etc/sysctl.conf  #永久开启路由转发功能
net.ipv4.ip_forward=1


sudo sysctl -p

sudo /etc/init.d/procpsrestart  #重启procps服务

(# sysctl –p)


iptables [-t 表名] 操作符 [规则链名] [规则]

 

对链的操作就那么几种,

-I 插入 

-A 追加 

-R 替换 

-D 删除

 -L 列表显示

-F 清除链中的所有规则

-P 设置链的默认动作ACCEPT REJECT DROP

-Z 计数器清零

-N 定义一个新的规则链

-X 删除定义的规则链

-I 将会把规则放在第一行,-A将会放在最后一行

 

针对规则的操作:

-A 追加

-I 插入

-D 删除

 

例子

iptables -t filter -A FORWARD -s 10.1.1.11 -d 202.1.1.1 -j ACCEPT 

上面的命令意思为:追加一个规则至filter表中的FORWARD链尾,允许(-j ACCEPT)源地址为10.1.1.11目的地址为202.1.1.1的数据包通过。其中-t后面跟的是表名,在-A后面跟Chain名,后面的小写的 -s为源地址,-d为目的地址,-j为处理方向。

在iptables中,默认的表名就是filter,所以这里可以省略-t filter直接写成:

iptables -A FORWARD -s 10.1.1.11 -d 202.1.1.1 -j ACCEPT

 

-s 匹配源地址
-d 匹配目的地址
-i 入接口匹配
-o 出接口匹配
--sport 源端口匹配
--dport 目的端口匹配
- j 跳转,也就是包的方向

其中还有一个!参数,使用!就是取反的意思。

-s这个参数呢就是指定源地址的,如果使用这个参数也就是告诉netfilter,对于符合这样一个源地址的包怎么去处理,可以指定某一个单播ip地址,也可以指定一个网络,如果单个的ip地址其实隐含了一个32位的子网掩码,比如-s 10.1.1.11 其实就是-s 10.1.1.11/32 同样我们可以指定不同的掩码用以实现源网络地址的规则,比如一个C类地址我们可以用-s 10.1.1.0/24来指定。

 

-d参数与-s格式一样。 

 

-i参数是指定入接口的网络接口,比如我仅仅允许从eth3接口过来的包通过FORWARD链,就可以这样指定 iptables -A FORWARD -i eth3 -j ACCEPT 

 

-o是出接口,与上同

 

 iptables -A INPUT -i lo -j ACCEPT

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值