首页 > 系统相关 >Linux防火墙

Linux防火墙

时间:2024-06-12 19:55:32浏览次数:27  
标签:iptables -- 防火墙 192.168 Linux INPUT 数据包

Netfilter是Linux内核中构建防火墙的网络子系统。firewalld是iptables的一个封装,更容易地管理iptables,firewalld和iptables一样,它们的作用都用于维护规则,而真正使用规则干活的是内核的netfilter。
firewalld:
firewalld是较新的防火墙管理工具,主要在基于RHEL/CentOS 7及更高版本的系统中使用,并逐渐取代了iptables成为默认的防火墙配置工具。
firewalld采用了动态的、面向服务的管理方式,相较于iptables更加灵活和易于管理。
firewalld提供了一个抽象层,通过定义服务(services)、区域(zones)和规则(rules)等概念来组织和管理防火墙配置。
firewalld支持实时动态更新防火墙规则,可以在运行时添加、删除或修改规则,而无需重启或重新加载配置。

iptables:
iptables是Linux系统中最经典和传统的防火墙工具,早期版本的Linux默认使用iptables作为防火墙配置工具。
iptables基于内核空间的netfilter框架,通过直接操作内核中的iptables规则表来过滤和处理网络数据包。
iptables使用规则链(rule chains)和表(tables)的概念来组织和管理防火墙规则,例如常见的filter表、nat表和mangle表等。
配置iptables需要手动编写规则,并且规则是静态的,一旦配置完成后,除非重新加载或重启,否则规则不会自动更新。

firewalld命令:
查看规则
firewall-cmd --zone=public --list-services
firewall-cmd --zone=public --list-ports

查看防火墙状态
firewall-cmd --state
systemctl status firewalld

关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

重启防火墙
firewall-cmd --reload
systemctl restart firewalld

添加服务
firewall-cmd --permanent --zone=public --add-service=http --permanent

开放端口
firewall-cmd --permanent --zone=public --add-port=80/tcp --permanent

删除端口
firewall-cmd --permanent --zone=public --remove-port=80/tcp --permanent

删除某个IP
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.51" accept"

针对某个IP开放端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.10" port protocol="tcp" port="6379" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.10" accept"

针对一个ip段访问
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="9200" accept"

iptables 命令:
iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]
说明:表名、链名用于指定 iptables命令所操作的表和链,命令选项用于指定管理iptables规则的方式(比如:插入、增加、删除、查看等;条件匹配用于指定对符合什么样 条件的数据包进行处理;目标动作或跳转用于指定数据包的处理方式(比如允许通过、拒绝、丢弃、跳转(Jump)给其它链处理。
iptables防火墙常用的策略
1.拒绝进入防火墙的所有ICMP协议数据包
iptables -I INPUT -p icmp -j REJECT

2.允许防火墙转发除ICMP协议以外的所有数据包
iptables -A FORWARD -p ! icmp -j ACCEPT
使用“!”可以将条件取反。

3.拒绝转发来自192.168.1.10主机的数据,允许转发来自192.168.0.0/24网段的数据
iptables -A FORWARD -s 192.168.1.11 -j REJECT
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT

4.丢弃从外网接口(eth1)进入防火墙本机的源地址为私网地址的数据包
iptables -A INPUT -i eth1 -s 192.168.0.0/16 -j DROP
iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

5.封堵网段(192.168.1.0/24),两小时后解封。
# iptables -I INPUT -s 10.20.30.0/24 -j DROP
# iptables -I FORWARD -s 10.20.30.0/24 -j DROP
# at now 2 hours at> iptables -D INPUT 1 at> iptables -D FORWARD 1

6.只允许管理员从202.13.0.0/16网段使用SSH远程登录防火墙主机。
iptables -A INPUT -p tcp --dport 22 -s 202.13.0.0/16 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

7.允许本机开放从TCP端口20-1024提供的应用服务。
iptables -A INPUT -p tcp --dport 20:1024 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20:1024 -j ACCEPT

8.允许转发来自192.168.0.0/24局域网段的DNS解析请求数据包。
iptables -A FORWARD -s 192.168.0.0/24 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -p udp --sport 53 -j ACCEPT

9.禁止其他主机ping防火墙主机,但是允许从防火墙上ping其他主机
iptables -I INPUT -p icmp --icmp-type Echo-Request -j DROP
iptables -I INPUT -p icmp --icmp-type Echo-Reply -j ACCEPT
iptables -I INPUT -p icmp --icmp-type destination-Unreachable -j ACCEPT

10.禁止转发来自MAC地址为00:0C:29:27:55:3F的和主机的数据包
iptables -A FORWARD -m mac --mac-source 00:0c:29:27:55:3F -j DROP
iptables中使用“-m 模块关键字”的形式调用显示匹配。咱们这里用“-m mac –mac-source”来表示数据包的源MAC地址。

11.允许防火墙本机对外开放TCP端口20、21、25、110以及被动模式FTP端口1250-1280
iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT
这里用“-m multiport –dport”来指定目的端口及范围

12.禁止转发源IP地址为192.168.1.20-192.168.1.99的TCP数据包。
iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP
此处用“-m –iprange –src-range”指定IP范围。

13.禁止转发与正常TCP连接无关的非—syn请求数据包。
iptables -A FORWARD -m state --state NEW -p tcp ! --syn -j DROP
“-m state”表示数据包的连接状态,“NEW”表示与任何连接无关的,新的嘛!

14.拒绝访问防火墙的新数据包,但允许响应连接或与已有连接相关的数据包
iptables -A INPUT -p tcp -m state --state NEW -j DROP
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

标签:iptables,--,防火墙,192.168,Linux,INPUT,数据包
From: https://www.cnblogs.com/larks-islands/p/18244599

相关文章

  • Linux——ansible的应用
    要让ansible管理业务里的主机1.得先知道,有哪些主机  用IP地址,用主机名2.知道了有哪些主机以后,精细、细分管理  主机要用某些办法,分组管理在ansible里,要用一个东西:清单->inventoryinventory这个东西的存在形式ansible是为了人方便使用,为了简单所以,inventory,就是个......
  • Linux命令-⽤户、权限管理
    目录<1>查看当前⽤户:whoami<2>查看登录⽤户:who<3>退出登录账户:exit<4>添加⽤户账号:useradd<5>设置⽤户密码:passwd<6>删除⽤户:userdel<7>切换⽤户:su<8>查看有哪些⽤户组⽅法⼀:⽅法⼆:<9>添加、删除组账号:groupadd、groupdel<10>修改⽤户所在组:usermod<11>查......
  • linux内存管理(九)- 页面回收
    参考《深入理解linux内核架构》和这篇博客Linux中的内存回收[一]-知乎(zhihu.com)内核代码v6.8-rc2内存在计算机系统中经常是稀缺资源,当系统中内存不足甚至耗尽,为了让系统继续运行必须回收一部分内存。为了回收内存,我们必须首先知道系统中的内存都处于什么状态。内存中的页......
  • linux mysql麒麟系统部署
    1、安装mysqlapt-getinstallmysql-servermysql-common2、取消大小写敏感 (1)、先删除mysql数据库rm-rf/var/lib/mysql (2)、设置my.cnf[mysqld]lower-case-table-names=1 (3)、初始化数据库,取消大小写敏感mysqld--initialize--user=mysql--lower-case-tab......
  • Linux Mint 21.3简介
    LinuxMint21.3是一个更新版本,其中包含了许多新特性和改进。以下是一些主要更新内容:1.Cinnamon6.0桌面环境:LinuxMint21.3采用了最新的Cinnamon6.0桌面环境,带来了新的功能和改进,例如支持Wayland会话(尽管仍处于实验性阶段)、改进的声音和电源小部件、对AVIF图像格式的新支......
  • 云原生Kubernetes系列项目实战-k8s集群+高可用负载均衡层+防火墙
    一、Kubernetes区域可采用Kubeadm方式进行安装:名称主机部署服务master192.168.91.10docker、kubeadm、kubelet、kubectl、flannelnode01192.168.91.11docker、kubeadm、kubelet、kubectl、flannelnode02192.168.91.20docker、kubeadm、kubelet、kubectl、flannel1.系统初......
  • DBeaver Ultimate Edtion 24.1 Multilingual (macOS, Linux, Windows) - 通用数据库工
    DBeaverUltimateEdtion24.1Multilingual(macOS,Linux,Windows)-通用数据库工具Onetoolforalldatasources请访问原文链接:https://sysin.org/blog/dbeaver/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org通用数据库工具DBeaver是一个通用的数据库管......
  • Nexpose v6.6.255 for Linux & Windows - 漏洞扫描
    Nexposev6.6.255forLinux&Windows-漏洞扫描Rapid7VulnerabilityManagement,releaseJun05,2024请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org您的本地漏洞扫描程序搜集通过实时覆盖整个网络,随......
  • Linux命令-系统管理
    目录<1>查看当前⽇历:cal<2>显示或设置时间:date<4>动态显示进程:top<5>终⽌进程:kill<6>关机重启:reboot、shutdown、init<7>检测磁盘空间:df<8>检测⽬录所占磁盘空间:du<9>查看或配置⽹卡信息:ifconfig<10>测试远程主机连通性:ping<1>查看当前⽇历:calcal命令⽤于查看......
  • 每天一个 Linux 命令(7):cd
    Github地址:https://github.com/mingongge/Learn-a-Linux-command-every-day命令简介cd(ChangeDirectory),用来切换工作目录至指定的目录。指定的目录可以是绝对路径或相对路径。若指定目录名称省略,则直接切换至当前用户的homedirectory(也就是刚login时所在的目录)。另外,~也表......