当前位置: 首页 > 工具软件 > firewall > 使用案例 >

iptables和firewall

羊舌赞
2023-12-01

iptables

iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT

-A表示添加,INPUT表示添加的位置
-D表示删除
-s表示源,192.168.1.0/24表示数据包中源ip是192.168.1.0/24网段将会被匹配
-p表示协议,tcp就表示匹配的协议是tcp将会被匹配
--dport表示目的端口 22就表示目的端口是22将会被匹配
-j表示动作 ACCEPT就表示接受(允许),REJECT表示拒绝

iptables默认规则
iptables -P INPUT DROP/ACCEPT #默认的不让进/让进
iptables -P FORWARD DROP/ACCEPT  #默认的不允许转发/允许
iptables -P OUTPUT DROP/ACCEPT #默认的不可以出去/可以

黑名单和白名单的概念

黑名单就是默认放行所有,把想拒绝的规则写进去
白名单就是默认拒绝所有,把想放行的规则写进去

白名单的安全远高于黑名单
一般iptables是不会针对output和forward流量进行控制的,因为一般服务器操作系统不会开启流量转发,第二就是output的流量没有必要限制

firewalld

firewalld提供了zone的概念,zone是区域的意思,firewalld将我们的系统划分成一个个的zone
zone的边界取决于网卡。
firewalld提供了zone,一个网卡只能属于一个zone,那zone的边界就是始于该zone的网卡。

firewalld的zone里面有网卡,有规则(rule)。如果一个网卡属于firewalld的某个zone,那么这个zone里面的所有规则都会应用到该zone的规则
service规则
[root@server-1 ~]# firewall-cmd --add-service=tftp
success
[root@server-1 ~]# firewall-cmd --remove-service=tftp
success

port规则

rich rule(富规则)
[root@server-1 ~]# firewall-cmd --add-rich-rule="rule family=ipv4 source address=1.1.1.0/24 port port=8080 protocol=tcp reject"
[root@server-1 ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 3000/tcp 9100/tcp 9090/tcp
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
        rule family="ipv4" source address="1.1.1.0/24" port port="8080" protocol="tcp" reject
  
  以上规则都是临时的
  在规则后面加上--permanent,就能永久生效	
  [root@server-1 ~]# firewall-cmd --runtime-to-permanent ##是临时规则全部变为永久规则
success  
[root@server-1 ~]# firewall-cmd --reload #不中断服务的重新加载,同时也会清除临时规则
success #

为了避免防火墙规则reload,建议敲两次,一次带--permenent,一次不带
 类似资料: