赞
踩
我们常说的防火墙是什么呢?所谓的防火墙是一个由软件和硬件设备组合而成的、在内部网络和外部网路之间、专用网络与公共网络之间的界面上构造的保护屏障。用来保护服务器的安全以及网络安全,减少被攻击的可能,它是有一种计算机硬件和软件的结合,使Internet与intranet之间建立起一个安全网关。
防火墙分为软件和硬件防火墙两大类:
service iptables status
service iptables stop
service iptables start
service iptables restart
chkconfig iptables off
chkconfig iptables on
iptables -L --line-numbers
-A INPUT -p tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp -dport 22 -j DROP
[root@localhost ~]# systemctl start firewalld.service
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
[root@localhost ~]# systemctl enable --now firewalld.service
Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.
[root@localhost ~]# systemctl disable --now firewalld.service
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# firewall-cmd --version
0.8.0
// 下面两条命令都可以
[root@localhost ~]# firewall-cmd --list-ports
3306/tcp
[root@localhost ~]# firewall-cmd --permanent --zone=public --list-ports
3306/tcp
[root@localhost ~]# firewall-cmd --get-zones // 查看有哪些区域
block dmz drop external home internal public trusted work
[root@localhost ~]# firewall-cmd --zone=public --query-port=3306/tcp //zone表示区域,public是公共的意思,而区域默认是上面的九个区域,--query-port表示查看3306端口号以及tcp协议是否支持
yes // yes表示开放,若是no的话就表示没有开放
网络区名称 | 默认配置 |
---|---|
block(限制) | 拒绝所有网络连接 |
dmz(非军事区) | 仅接受ssh服务连接 |
drop(丢弃) | 任何接收的网络数据包都被丢弃,没有任何回复 |
external(外部) | 出去的ipv4网络连接通过此区域伪装和转发,仅接受ssh服务连接 |
home(家庭) | 用于家庭网络,仅接受ssh、mdns、ipp-client、samba-client、dhcpv6-client服务连接 |
internal(内部) | 用于内部网络,仅接受ssh、mdns、ipp-client、ssamba-client、dhcpv6-client服务连接 |
public(公共) | 在公共区域内使用,仅接受ssh或dhcpv6-client服务连接,为firewalld的默认区域 |
trusted(信任) | 可接受所有的网络连接 |
wark(工作) | 用于工作区,仅接受ssh、ipp-client或dhcpv6-clinet服务连接 |
[root@localhost ~]# firewall-cmd --get-default-zone
public //默认区域
[root@localhost ~]# firewall-cmd --set-default-zone=work //修改默认区域为work
[root@localhost ~]# firewall-cmd --list-all-zones block target: %%REJECT%% icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: dmz target: default icmp-block-inversion: no interfaces: sources: services: ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: drop target: DROP icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: external target: default icmp-block-inversion: no interfaces: sources: services: ssh ports: protocols: masquerade: yes forward-ports: source-ports: icmp-blocks: rich rules: home target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client mdns samba-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: internal target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client mdns samba-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: public (active) target: default icmp-block-inversion: no interfaces: ens160 sources: services: cockpit dhcpv6-client ssh ports: 3306/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: trusted target: ACCEPT icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: work target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
[root@localhost ~]# firewall-cmd --get-active-zones
public
interfaces: ens160
// Interfaces (接口)是系统中的硬件和虚拟的网络适配器的名字,所有的活动的接口都将被分配到区域,要么是默认的区域,要么是用户指定的一个区域。但是,一个接口不能被分配给多于一个的区域。
[root@localhost ~]# firewall-cmd --zone=public --list-all
public (active) // 活动的区域
target: default // 默认启动的区域
icmp-block-inversion: no
interfaces: ens160 // 列出此区域上关联的接口
sources: // 列出这个区域的源。现在这里什么都没有,如果这里有内容,它们应该是这样的格式
services: cockpit dhcpv6-client ssh // 列出允许通过这个防火墙的服务。你可以通过运行 firewall-cmd --get-services 得到一个防火墙预定义服务的详细列表
ports: 3306/tcp // 列出允许通过这个防火墙的目标端口
protocols: // 协议值可以是一个协议 ID 数字,或者一个协议名
masquerade: no // 表示这个区域是否允许 IP 伪装。如果允许,它将允许 IP 转发,它可以让你的计算机作为一个路由器。
forward-ports: // 列出转发的端口
source-ports: //
icmp-blocks: // 阻塞的 icmp 流量的黑名单
rich rules: // 在一个区域中优先处理的高级配置。
[root@localhost ~]# firewall-cmd --add-port=3306/tcp --permanent //这里写要添加的端口号/协议,--permanent为永久生效,如果不写,重启之后就会失效。
// 开放之后需要使用下面的命令重新加载使其立即生效
[root@localhost ~]# firewall-cmd --reload
[root@localhost ~]# firewall-cmd --query-service ftp
no
[root@localhost ~]# firewall-cmd --add-service=ftp --permanent
[root@localhost ~]# firewall-cmd --remove-service=ftp --permanent
[root@localhost ~]# firewall-cmd --panic-on
[root@localhost ~]# firewall-cmd --panic-off
[root@localhost ~]# firewall-cmd --query-panic
[root@localhost ~]# firewall-cmd --remove-port=3306/tcp --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# firewall-cmd --query-port=3306/tcp
no //删除成功
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens160
public
[root@localhost ~]# firewall-cmd --add-forward-port=6666:porto=tcp:toaddr=另一台服务器的IP地址:toport=8888 //如果使用的是udp协议进行通讯将tcp改为udp即可。
[root@localhost ~]# firewall-cmd --reload //重新加载防火墙规则使其生效。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。