yzq 发表于 2019-2-16 09:14:13

Centos7.2 如何使用iptables

  一、防火墙iptables 简洁介绍
  iptables 和 firewalld 都是工作在用户空间、用来定义规则的工具,本身不是防火墙,他们定义的规则,可以让内核空间当中的netfilter读取,并且实现防火墙工作。
  netfilter是操作系统核心层内部的一个数据包处理模块,它具有如下功能:
  1.网络地址转换 nat
  2.数据包内容修改 mangle
  3.数据包过滤的防火墙功能 filter  
  CentOS7.2默认使用firewalld ;iptables默认无法被systemctl控制,需要安装iptables-services、iptables-devel这两个依赖包
  二、将firewalld切换到 iptables

[*]停止并禁用 firewalld
  systemctl stop firewald.service
  systemctl disable firewald.service
  2.安装iptables-services、iptables-devel
  yum install iptables-services iptables-devel
  3.启用并启动iptables
  systemctl enable iptables.service
  systemctl start iptables.service
  4.查看iptables配置文件
  vim /etc/sysconfig/iptables
  5.开启转发功能
  (1) 在 /etc/sysctl.conf 中添加 net.ipv4.ip_forward=1
  (2) sudo sysctl -p 同步内核参数
  (3) 继续查看内核参数 less /proc/sys/net/ipv4/ip_forward如果为1 则配置生效
  1 # sample configuration for iptables service
  2 # you can edit this manually or use system-config-firewall
  3 # please do not ask us to add additional ports/services to this default configuration
  4 *filter
  5 :INPUT ACCEPT
  6 :FORWARD ACCEPT
  7 :OUTPUT ACCEPT

  8 -A INPUT -m state --state>  9 -A INPUT -p icmp -j ACCEPT
  10 -A INPUT -i lo -j ACCEPT
  11 -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
  12 -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
  13 -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
  14 -A INPUT -p tcp -m state --state NEW -m tcp --dport 139 -j ACCEPT
  15 -A INPUT -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT
  16 -A INPUT -p tcp -m state --state NEW -m tcp --dport 137 -j ACCEPT
  17 -A INPUT -p tcp -m state --state NEW -m tcp --dport 138 -j ACCEPT
  18 -A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT
  19
  20 -A INPUT -j REJECT --reject-with icmp-host-prohibited
  21 -A FORWARD -j REJECT --reject-with icmp-host-prohibited
  22 COMMIT
  #查看iptables现有规则
  iptables -L -n
  #先允许所有,不然有可能会杯具
  iptables -P INPUT ACCEPT
  #清空所有默认规则
  iptables -F
  #清空所有自定义规则
  iptables -X
  #所有计数器归0
  iptables -Z
  #允许来自于lo接口的数据包(本地访问)
  iptables -A INPUT -i lo -j ACCEPT
  #开放22端口
  iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  #开放21端口(FTP)
  iptables -A INPUT -p tcp --dport 21 -j ACCEPT
  #开放80端口(HTTP)
  iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  #开放443端口(HTTPS)
  iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  #允许ping
  iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

  #允许接受本机请求之后的返回数据>
  iptables -A INPUT -m state --state >  #其他入站一律丢弃
  iptables -P INPUT DROP
  #所有出站一律绿灯
  iptables -P OUTPUT ACCEPT
  #所有转发一律丢弃
  iptables -P FORWARD DROP
  #保存上述规则
  service iptables save
  

页: [1]
查看完整版本: Centos7.2 如何使用iptables