Linux-防火墙Firewall的基础命令配置

本文介绍了RHEL7系统中Firewalld服务的基本配置方法,包括启动、停止、更改默认区域及添加服务等操作。通过一系列命令示例展示了如何管理防火墙设置。

Firewalld服务是RHEL7系统默认的防火墙软件,有图形配置工具(firewall-config)和命令配置工具(firewall-cmd)

FIrewalld的区域(zone),默认情况下,有以下的区域(zone)可用

##firewalld域   ##默认配置
trusted		##信任,可接受所有的网路连接
home		##家庭,仅接受ssh、mdns、ipp-client、samba-client、dhcpv6-client服务连接
internal	##内部,仅接受ssh、mdns、ipp-client、samba-client、dhcpv6-client服务连接
work		##工作,仅接受ssh、ipp-client、dhcpv6-client服务连接
public		##公共,仅接受ssh、dhcpv6-client服务连接,firewalld默认区域
external	##外部,传出的网络连接通过此区域伪装和转发,仅接受ssh服务连接
dmz		##非军事区,仅接受ssh服务连接
block		##限制,拒绝所有传入的网络数据包,有回应
drop		##丢弃,丢弃所有传入的网络数据包,无回应

启动Firewalld服务,并在系统引导时启动

[root@desktop ~]# systemctl start[root@desktop services]# firewall-cmd --list-all
work (default, active)
  interfaces: eth0
  sources: 
  services: dhcpv6-client http https ipp-client ssh
  ports: 1234/tcp
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 
 firewalld
[root@desktop ~]# systemctl enable firewalld
ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/basic.target.wants/firewalld.service'

停止Firewalld服务,并禁用该服务

[root@desktop ~]# systemctl stop firewalld
[root@desktop ~]# systemctl disable firewalld
rm '/etc/systemd/system/basic.target.wants/firewalld.service'
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'

查看FIrewalld进程状态

[root@desktop ~]# systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
   Active: active (running) since Thu 2018-06-07 08:48:22 EDT; 12s ago
 Main PID: 1984 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─1984 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Jun 07 08:48:22 desktop.jinx.com systemd[1]: Starting firewalld - dynamic fi....
Jun 07 08:48:22 desktop.jinx.com systemd[1]: Started firewalld - dynamic fir....
Hint: Some lines were ellipsized, use -l to show in full.

这里主要列出有关命令配置工具的一些基本命令

检查Firewalld服务的状态

[root@desktop ~]# firewall-cmd --state 
running

列出默认的区域

[root@desktop ~]# firewall-cmd --get-default-zone 
public

列出可用的区域

[root@desktop ~]# firewall-cmd --get-zones
ROL block dmz drop external home internal public trusted work

改变默认的区域

[root@desktop ~]# firewall-cmd --set-default-zone=work
success
[root@desktop ~]# firewall-cmd --get-default-zone 
work

列出所有可用的服务

[root@desktop services]# firewall-cmd --get-services 
amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability 
http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls 
mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql 
proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client 
transmission-client vnc-server wbem-https

为work区域永久添加添加http服务(80)和https服务(443)端口

[root@desktop services]# firewall-cmd --zone=work --add-service=http --permanent
success
[root@desktop services]# firewall-cmd --zone=work --add-service=https --permanent
succes
###    ---remove-service=     删除信任服务
###    --permanent            永久生效的,如不带此参数则临时生效,重启服务后失效

为work区域添加指定端口

[root@desktop services]# firewall-cmd --zone=work --add-port=1234/tcp --permanent
success
###    --remove-port=    删除端口

为work区域添加信任区域

[root@desktop services]# firewall-cmd --zone=work --add-source=172.25.254.0/24
success
###    --remove-source=    删除信任区域

指定网卡到work区域

[root@desktop services]# firewall-cmd --permanent --add-interface=eth0 --zone=work
success
###    --change-interface=    改变
###    --remove-interface=    删除

重新加载防火墙

[root@desktop services]# firewall-cmd --reload 
success

查看相关配置

[root@desktop services]# firewall-cmd --list-all
work (default, active)
  interfaces: eth0
  sources: 
  services: dhcpv6-client http https ipp-client ssh
  ports: 1234/tcp
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 
### 配置和管理Linux防火墙 #### 使用`firewalld` `Firewalld` 提供了一种动态管理防火墙的方式,允许更新规则而不中断现有连接。对于大多数现代Linux发行版,默认情况下会安装并启用 `firewalld`。 要查看当前状态可以运行如下命令: ```bash sudo systemctl status firewalld ``` 为了启动或停止服务可分别执行下面两条指令之一: ```bash sudo systemctl start firewalld # 启动服务 sudo systemctl stop firewalld # 停止服务 ``` 如果希望开机自动加载,则需设置为开启状态: ```bash sudo systemctl enable firewalld ``` 通过图形界面配置也很简单,只需打开应用程序菜单找到名为 "Firewall Configuration" 或者直接在终端里键入 `firewall-config` 即可进入GUI模式进行操作[^2]。 #### 添加端口和服务到特定区域 默认情况下,公共区(`public`)被选作活跃区;但是可以根据需求更改此设定。向指定区域内添加开放端口的例子如下所示: ```bash sudo firewall-cmd --zone=public --add-port=80/tcp --permanent ``` 上述命令永久性地将TCP协议下的HTTP(80)端口加入到了公网访问列表之中。记得每次修改后都要重新载入配置文件使改动生效: ```bash sudo firewall-cmm --zone=public --remove-port=80/tcp --permanent ``` 当涉及到具体的应用程序而非单一端口号时,比如SSH、HTTPS等常用的服务名同样适用这种方式处理: ```bash sudo firewall-cmd --zone=public --add-service=https --permanent ``` 这行代码的作用就是让HTTPS流量能够顺利穿过防火墙屏障到达目标主机上监听该类型的进程那里去[^1]。 #### 利用`iptables`实现更精细控制 尽管`firewalld`已经足够满足日常维护工作所需的功能特性了,但对于某些特殊场景下可能还是需要用到更为底层也更加灵活多变的工具——即`iptables`本身。它能让我们直接针对IPv4层面的数据流制定详尽而又复杂的过滤策略。 创建一条简单的INPUT链规则阻止来自某个IP地址的所有传入请求样例如下: ```bash sudo iptables -A INPUT -s 192.168.1.100 -j DROP ``` 这里的意思是从源地址为`192.168.1.100`过来的一切尝试都将遭到拒绝响应。当然实际应用当中往往不会这么绝对化,而是配合其他条件一起使用形成复杂逻辑判断结构[^3]。 保存这些自定义好的表项以便重启之后仍然有效非常重要: ```bash sudo sh -c "iptables-save > /etc/iptables/rules.v4" ``` 以上就是在Linux环境中围绕着两个主流防火墙解决方案展开的一些基本介绍与实践指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值