iptables使用隐含扩展管理相关服务

  • iptables放行sshd服务对于本机的访问
  • 首先查看filter的规则
[root@server23 ~]# iptables  -t filter -L -n
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  
  • 上面是没有默认的规则的,接下来添加,放行的规则,这里放行的是172.25.23.0/24这个网段来进行访问,首先在INPUT链上面进行添加
[root@server23 ~]# iptables -t filter -A INPUT -s 172.25.23.0/24 \
-d 172.25.23.23 -p tcp --dport 22 -j ACCEPT
  • 上面只是放行了进入本机的请求,接下来放行sshd出去的数据,这里需要更改源地址和目标地址以及源端口;
[root@server23 ~]# iptables -t filter -A OUTPUT -s 172.25.23.23 -d 172.25.23.0/24 -p tcp --sport 22 -j ACCEPT
  • 查看filter表添加的规则
    这里写图片描述
  • 添加-v选项,查看匹配到的报文数量
    这里写图片描述
  • 检测打开默认策略为DROP服务的访问状态
  • 因为这个表的默认规则是ACCEPT的,所以sshd服务并没有断开链接,接下来尝试更改默认的策略为DROP,因为INPUT OUTPUT FORWARD的默认规则不能够修改为REJECT;
  • 这里打开几个服务httpd:80 mysql-server:3306 vsftpd:21,来检测规则是否生效,对于filter修改规则需要修改三个链INPUT OUTPUT FORWARD上面的默认规则
[root@server23 ~]# iptables -P INPUT DROP
[root@server23 ~]# iptables -P OUTPUT DROP
[root@server23 ~]# iptables -P FORWARD DROP
  • 接下来查看规则
[root@server23 ~]# iptables -L -n 
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  172.25.23.0/24       172.25.23.23        tcp dpt:22 

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  172.25.23.23         172.25.23.0/24      tcp spt:22 
  • 因为添加了允许22/tcp端口的访问,所以ssh的连接是正常的;
  • 对于sshd之外的服务都是不能够正常访问的
    这里写图片描述
  • 对于ping /icmp协议的服务访问也是不能够访问的
    这里写图片描述
  • 接下来放行httpd服务
  • 首先需要了解httpd服务使用的端口信息,在INPUT OUTPUT链上面放行这个服务请求
[root@server23 ~]# iptables -I INPUT -d 172.25.23.23 -p tcp --dport 80 -j ACCEPT
[root@server23 ~]# iptables -I OUTPUT -s 172.25.23.23 -p tcp --sport 80 -j ACCEPT
  • httpd服务访问正常
    这里写图片描述

  • 放行本机对于本机的ping请求

  • 更改默认的策略之后,对于本机对于本机的ping请求默认也是拒绝的,这里添加规则,来允许本机对于本机的ping请求
    这里写图片描述
  • 添加规则,同样需要两条规则,应为数据的流向是双向的
[root@server23 ~]# iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -i[数据流入流出的接口] lo -j ACCEPT
[root@server23 ~]# iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -o lo -j ACCEPT
  • 查看添加的规则
    这里写图片描述
  • ping服务已经是正常的了
    这里写图片描述
  • 对于外部的ping请求,来说,包括两种状态echo-request,使用数字8来进行表示,echo-replay使用数字0来进行表示,对于外部的ping请求进行放行,就包括两种情况,使用自己来ping外部的主机,或者使用外部的主机来ping自己,这两种放行的规则是不一样的;
  • 首先实现自己ping外部主机的过程
[root@server23 ~]# iptables -A OUTPUT -s 172.25.23.23 -p icmp --icmp-type 8 -j ACCEPT
[root@server23 ~]# iptables -A INPUT -d 172.25.23.23 -p icmp --icmp-type 0 -j ACCEPT

这里写图片描述
* 如果需要实现外部主几ping内部主机

[root@server23 ~]# iptables -A OUTPUT -s 172.25.23.23 -p icmp --icmp-type 0 -j ACCEPT
[root@server23 ~]# iptables -A INPUT -d 172.25.23.23 -p icmp --icmp-type 8
-j ACCEPT
  • 外部主机的ping请求就会正常
    这里写图片描述

  • DNS服务器的防火墙配置

  • 仅仅对于UDP协议来说,就需要四条规则,首先DNS服务器首先需要作为server接收用户请求,返回对应的数据,这就需要两条,其次,DNS服务器还需要作为client向上层DNS服务器发起请求,还需要两条,这就需要四条规则;
[root@server23 ~]# iptables -A INPUT -d 172.25.23.23 -p udp --dport 53 -j ACCEPT
[root@server23 ~]# iptables -A OUTPUT -s 172.25.23.23 -p udp --sport 53 -j ACCEPT
[root@server23 ~]# iptables -A OUTPUT -s 172.25.23.23 -p udp --dport 53 -j ACCEPT
[root@server23 ~]# iptables -A INPUT -d 172.25.23.23 -p udp --sport 53 -j ACCEPT
  • 仅仅对于udp就需要上面四条规则,对于tcp来说同样还需要四条规则;

猜你喜欢

转载自blog.csdn.net/qq_36294875/article/details/80032185