Linux - 防火墙配置
目录
firewall 简单配置
firewall 本质上还是操作 iptables,一些 iptables 命令也能用在 firewall 上。这和 systemctl/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(待补充)
一款简单易用的防火墙。
参考链接
最近更新:
发布时间: