firewall 简单配置

firewall 本质上还是操作 iptables,一些 iptables 命令也能用在 firewall 上。这和 systemctlhe service 来操作服务类似。

firewall-cmd [options] 来操作
firewall 分两种配置,第一种是只在运行时有效(临时配置),第二种是只在重启后有效(保存配置)。
要想保存配置有想及时生效就两种一起用。

firewall-cmd [options] #让它立刻生效,重启后就失效。

firewall-cmd [options] --permanent #它只是重启后才生效。
firewall-cmd --reload #重新读取配置文件,不会断开当前进程。

在 Windows 中开启防火墙后有请求进来会让你选择是家庭还是工作区对吗?firewall 中有 zone 这个概念,所有数据都通过 zone 筛选进入服务器,每个 zone 限制规则都有所不同,Firewall 默认使用的 zone 是 public。

[root@Cenos7 usr]# firewall-cmd --get-default-zone
public

查看当前 zone 的权限配置,只允许 ssh 和 dhcp 服务的流量进来。

[root@Cenos7 usr]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
      forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
  
[root@Cenos7 usr]# firewall-cmd --list-all-zones #查看所有 zone 的权限

[root@Cenos7 usr]# firewall-cmd --info-zone=zone_name#查看指定 zone 的权限

查看有那些服务

[root@Cenos7 ~]# firewall-cmd [--zone=zone] --get-services #可以指定 zone

让某些服务添加到当前zone区中或者开放某些端口。

[root@Cenos7 ~]# firewall-cmd [--zone=zone] --add-service=http #--remove-service 是移除,可以为指定 zone 来添加,不填就默认为当前 zone。
[root@Cenos7 ~]# firewall-cmd [--zone=zone] --add-port=portid/portocol #--remove-port 是移除。

一些不重要操作

firewall-cmd --set-default-zone=zone_name #设置 zone 区

iptables

在我实际工作中遇到大部分服务器还都是 CentOS6,这里整理一些常用套餐。

iptables 很傻的它是一条一条往下执行。设置完成即刻生效。

# 只接受指定IP访问本机xx端口。
iptables -A INPUT -p tcp -s 白名单IP,白名单IP --dport 端口,端口 -j ACCEPT
iptables -A INPUT -p tcp --dport 端口,端口 -j -DROP

# 不让任何机器连接本机 3306 端口
iptables -A INPUT -p tcp --dport 3306  -j DROP

# 操作完成后保存配置,防止重启失效。
service iptables save

# 删除INPUT链第二条规则
iptables -D INPUT 2

ufw

一款简单易用的防火墙。

参考链接

标签: none

讨论讨论讨论!