iptables的使用

一、iptables基本管理

安装包: iptables-services

iptables框架

1)iptables的四个表(区分大小写):

  • nat表(地址转换表)
  • filter表(数据过滤表)
  • raw表(状态跟踪表)
  • mangle(包标记表)

2)iptables的5个链(区分大小写):

  • INPUT链(入站规则)
  • OUTPUT链(出站规则)
  • FORWARD链(转发规则)
  • PREROUTING(路由前规则)
  • POSTROUTING(路由后规则)

iptables的基本的语法

1)iptables的语法结构

[root@proxy ~]# iptables  [-t 表名]  选项  [链名]  [条件]  [-j 目标操作]
[root@ecs-proxy ~]# iptables -t filter -I INPUT -p icmp -j REJECT
[root@ecs-proxy ~]# iptables -t filter -I INPUT -p icmp -j ACCEPT
[root@ecs-proxy ~]# iptables -I INPUT -p icmp -j REJECT
[root@ecs-proxy ~]# iptables -nL  //查看规则

iptables命令的常用选项:
iptables的使用_第1张图片
2)iptables命令的使用案例

[root@proxy ~]# iptables  -t  filter  -A  INPUT  -p tcp  -j  ACCEPT
//追加规则至filter表中的INPUT链的末尾,允许任何人使用TCP协议访问本机
[root@proxy ~]# iptables  -I  INPUT  -p  udp  -j  ACCEPT
//插入规则至filter表中的INPUT链的开头,允许任何人使用UDP协议访问本机
[root@proxy ~]# iptables  -I  INPUT 2  -p  icmp  -j  ACCEPT
//插入规则至filter表中的INPUT链的第2行,允许任何人使用ICMP协议访问本机

3)查看防火墙的规则

[root@proxy ~]# iptables  -nL  [INPUT]
target     prot opt source               destination
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0
[root@proxy ~]# iptables  -L  INPUT  --line-numbers        //查看规则,显示行号
num  target     prot opt source         destination
1    ACCEPT     udp   --  anywhere     anywhere
2    ACCEPT     icmp --   anywhere     anywhere
3    ACCEPT     tcp  --   anywhere     anywhere

4)删除规则,清空所有的规则

[root@ecs-proxy ~]# iptables -D INPUT 2
//删除filter表的INPUT链的第二条规则
[root@ecs-proxy ~]# iptables -F
//清空规则
[root@ecs-proxy ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   

5)设置防火墙的默认规则

[root@proxy ~]# iptables  -t  filter  -P  INPUT  DROP
02.[root@proxy ~]# iptables  -nL
03.Chain INPUT (policy DROP)
04.… …

二、filter过滤和转发控制

防火墙分为:

  • 主机型防火墙
  • 网络防火墙

1)防火墙规则的条件
常用的过滤的条件:
iptables的使用_第2张图片

  • 主机型防火墙
[root@proxy ~]# iptables -I INPUT -p tcp --dport 80 -j REJECT
02.[root@proxy ~]# iptables -I INPUT -s 192.168.2.100 -j REJECT
03.[root@proxy ~]# iptables -I INPUT -d 192.168.2.5 -p tcp --dport 80 -j REJECT
04.[root@proxy ~]# iptables -I INPUT -i eth0 -p tcp --dport 80 -j REJECT
05.[root@proxy ~]# iptables  -A  INPUT  -s 192.168.4.100  -j  DROP
06.//丢弃192.168.4.100发给本机的所有数据包
07.[root@proxy ~]# iptables  -A  INPUT -s  192.168.2.0/24  -j  DROP
08.//丢弃192.168.2.0/24网络中所有主机发送给本机的所有数据包
09.[root@proxy ~]# iptables -A  INPUT -s  114.212.33.12  -p tcp --dport 22 -j  REJECT
10.//拒绝114.212.33.12使用tcp协议远程连接本机ssh(22端口)

2)开启linux的路由转发功能

  • linux内核默认支持软路由功能,通过修改内核参数来开启和关闭转发功能。
[root@proxy ~]# echo 0 > /proc/sys/net/ipv4/ip_forward            //关闭路由转发
02.[root@proxy ~]# echo 1 > /proc/sys/net/ipv4/ip_forward            //开启路由转发
03.//注意以上操作仅当前有效,计算机重启后无效
04.[root@proxy ~]# echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
05.//修改/etc/sysctl.conf配置文件,可以实现永久有效规则
  • 网络型防火墙
    iptables的使用_第3张图片没设防火墙前web1网站可以访问
[root@proxy ~]# iptables -I FORWARD -s 192.168.4.100 -p tcp --dport 80 -j DROP
[root@client ~]# curl http://192.168.2.100   //失败               

1)禁止ping操作

[root@proxy ~]# iptables -I INPUT -p icmp -j DROP
//设置完上面的规则后,其他主机确实无法ping本机,但本机也无法ping其他主机
//当本机ping其他主机,其他主机回应也是使用icmp,对方的回应被丢弃

2)禁止其他主机ping本机,允许本机ping其他主机

[root@proxy ~]# iptables  -A  INPUT  -p icmp  --icmp-type echo-request  -j  DROP
//仅禁止入站的ping请求,不拒绝入站的ping回应包

你可能感兴趣的:(linux,网络)