Loading

CentOS7--iptables的配置

     在红帽RHEL7系统中firewalld服务取代了iptables服务,如果我们不想用或者不习惯使用firewalld服务,请看下面的操作:

 

iptables命令中则常见的控制类型有:

  1. ACCEPT:允许通过.
  2. LOG:记录日志信息,然后传给下一条规则继续匹配.
  3. REJECT:拒绝通过,必要时会给出提示
  4. DROP:直接丢弃,不给出任何回应.

 

规则链则依据处理数据包的位置不同而进行分类:

  PREROUTING:在进行路由选择前处理数据包

  INPUT:处理入站的数据包

  OUTPUT:处理出站的数据包

  FORWARD:处理转发的数据包

  POSTROUTING:在进行路由选择后处理数据包

 

Iptables中的规则表:

      规则表的先后顺序:raw→mangle→nat→filter

规则链的先后顺序:

入站顺序:PREROUTING→INPUT

出站顺序:OUTPUT→POSTROUTING

转发顺序:PREROUTING→FORWARD→POSTROUTING

 

 iptables的基本参数:

参数 作用
-P 设置默认策略:iptables -P INPUT (DROP|ACCEPT)
-F 清空规则链
-L 查看规则链
-A 在规则链的末尾加入新规则
-I num 在规则链的头部加入新规则
-D num 删除某一条规则
-s 匹配来源地址IP/MASK,加叹号"!"表示除这个IP外。
-d 匹配目标地址
-i 网卡名称 匹配从这块网卡流入的数据
-o 网卡名称 匹配从这块网卡流出的数据
-p 匹配协议,如tcp,udp,icmp
--dport num 匹配目标端口号
--sport num 匹配来源端口号

 实例:iptables的filter的配置:

--关闭firewall:

[root@localhost ~]# systemctl stop firewalld.service            #停止firewall
[root@localhost ~]# systemctl disable firewalld.service        #禁止firewall开机启动

--安装安装iptables防火墙

[root@localhost ~]# yum install iptables-services            #安装

--清空已有的规则

iptables -F
iptables -X
iptables -Z

--配置允许指定网段主机SSH登陆端口进入

iptables -I INPUT -s 192.168.0.1/24 -p tcp --dport 22 -j ACCEPT

--允许本地所有主机进入

iptables -A INPUT -p tcp -s 192.168.0.0/24 -j ACCEPT

--允许本机lo通信

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

--设置默认的访问规则

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

--允许关联的状态包通过

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

--开放特定的端口,以80为例

iptables -A INPUT -p tcp --dport 80 -j ACCEP

 --保存配置

service iptables save

--重启

systemctl restart iptables.service

--设置开机自启动

 systemctl enable iptables.service 

 

 附录:

如果想使用系统默认的firewalld服务,请参考:

CentOS7--Firewalld防火墙

 

 

 

 

posted @ 2017-01-16 16:13  头痛不头痛  阅读(12677)  评论(0编辑  收藏  举报