linux服务器防火墙firewalld与iptables工具的友情互动

开机禁止防火墙

systemctl disable firewalld.service

查看firewalld的运行状态

firewall-cmd --state

1.3、firewalld开放端口(public)

公共区域设置开放21端口永久生效并写入配置文件(参数:–permanent)

#参数:–permanent,设置即立刻生效并且写入配置文件

firewall-cmd --zone=public --add-port=21/tcp --permanent

查询防火墙端口21是否开放

firewall-cmd --zone=public --query-port=21/tcp

移除开放的端口21

firewall-cmd --zone=public --remove-port=21/tcp --permanent

1.4、区域规则修改

查询防火墙规则列表

firewall-cmd --zone=public --list-all

新增一条区域规则httpd服务

firewall-cmd --permanent --zone=internal --add-service=http

验证规则

firewall-cmd --zone=internal --list-all

2、firewalld图形化界面

上面的简介也介绍到了firewalld提供了两种管理模式:其一是firewall-cmd命令管理工具,其二是firewall-config图形化管理工具。在之前版本中的iptables将规则保存在文件/etc/sysconfig/iptables中,现在firewalld将配置文件保存在/usr/lib/firewalld/etc/firewalld目录的xml文件中。

图形化界面中修改接口区域可以使用NetworkManager,也可以使用firewall-config工具。NetworkManager使用方法:打开终端执行命令nm-connection-editor,如下图弹出对话框:

2.1、图形化界面NetworkManager

终端执行:nm-connection-editor

2.2、图形化界面firewall-config

终端执行:firewall-config

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yTrrLrQb-1641217943101)(Snipaste_2022-01-03_20-27-59_proc.jpg)]

三、iptables防火墙工具


1、安装iptables

假如是centos6,默认是安装了iptables。

如果是centos7或者Redhat7系列,默认没有安装iptables。你需要关闭默认启动的firewalld,二选一即可。

临时关闭firewalld

systemctl stop firewalld

开机禁用firewalld

systemctl disable firewalld

开机启用firewalld

systemctl enable firewalld

通过yum在线安装iptables,检查是否安装了iptables

systemctl status iptables.service

service iptables status

安装iptables

yum -y install iptables

升级iptables

yum update iptables

安装iptables-services

yum -y install iptables-services.x86_64

设置iptables为开机自启

systemctl enable iptables.service

iptables规则组成

  • ACCEPT(接收,允许通过)

  • DROP(丢弃数据包不做任何反馈)

  • REJECT(丢弃数据包,客户端有对应消息返回)

查询已经设置的规则:-L命令

#一般配合-n命令使用

iptables -L

#不显示主机地址

iptables -nL

清除原来设置的规则:-F命令

iptables -F

删除某一条已经设置的规则:-D命令

iptables -D INPUT -p tcp --dport 80 -j ACCEPT

2、场景一放通端口

插入一些规则:-I命令,放通80、22、10~21(一段)这些端口

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

设置某一个固定的IP访问80端口:-s 192.168.xxx.xxx

iptables -I INPUT -p tcp -s (你的IP地址) --dport 80 -j ACCEPT

ssh远程连接本地服务器或者云服务器需要默认启用的端口

iptables -I INPUT -p tcp --dport 22 -j ACCEPT

设置10~21端口开放访问

iptables -I INPUT -p tcp --dport 10:21 -j ACCEPT

设置icmp规则允许访问

iptables -I INPUT -p icmp -j ACCEPT

注意:允许本机可以访问本机,本机访问外网

解决本机可以访问本机(telnet 127.0.0.1 22),添加-i lo(网卡)规则。

设置规则

iptables -I INPUT -i lo -p tcp -j ACCEPT

本机测试访问外网

curl https://www.baidu.com

设置规则

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

在设置的最后追加一条规则:-A命令

拒绝xx规则

iptables -A INPUT -j REJECT

3、场景二

ftp主动模式下iptables的规则配置(不建议)

ftp被动模式下iptables的规则配置(实际应用,推荐)

4、场景三

工作中的一些常用配置,设置好规则后保存到配置文件。chkconfig iptables on 设置开机启动规则。

snat(对原地址,发起地址)规则设置,dnat(目标地址,发往的地址)规则设置。

5、iptables防攻击企业应用

iptables防攻击企业应用(根据实际业务设置)

利用iptables防CC攻击

connlimit模块

作用: 用于限制每一个客户端IP的并发连接数。

参数: --connlimit-above n(次数),限制并发数

例如,限制次数为100

iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT

测试,限制某一固定IP并发次数

iptables -I INPUT -p tcp --dport 80 -s [ip地址] -m connlimit --connlimit-above 10 -j REJECT

6、limit模块

作用: 限速,控制流量

例如

iptable -A INPUT -m limit --limit 3/hour

--limit-burst 5,默认值为5

在设置最后追加一条过滤规则

iptables -A INPUT -p icmp -m limit --limit 1/m --limit-burst 10 -j ACCEPT

拒绝其它规则访问

iptables -A INPUT -p icmp -j DROP

设置完,测试接限制的IP地址:

#测试受限IP地址

ping 192.168.245.139

2、配置文件新增规则

文中介绍过iptables安装后的配置文件所在目录。

/etc/sysconfig/iptables

修改配置文件

vim /etc/sysconfig/iptables

四、UFW防火墙工具


Uncomplicated Firewall

简称UFW,是Ubuntu系统上默认的防火墙组件。UFW是为轻量化配置iptables而开发的一款工具。

UFW 提供一个非常友好的界面用于创建基于IPV4,IPV6的防火墙规则。UFW 在 Ubuntu 8.04 LTS 后的所有发行版中默认可用。

UFW 的图形用户界面叫Gufw。

1、开启与关闭防火墙

开启防火墙

ufw enable

关闭防火墙

ufw disable

2、显示防火墙状态

2.1、显示防火墙状态

ufw status

2.2、查看防火墙详细状态

ufw status verbose

3、允许与阻止

3.1、增加一条表示允许的规则

ufw allow

3.2、允许通过 21 连接端口使用 tcp 和 udp 协议连线本机

ufw allow 21

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
bose

3、允许与阻止

3.1、增加一条表示允许的规则

ufw allow

3.2、允许通过 21 连接端口使用 tcp 和 udp 协议连线本机

ufw allow 21

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-uYE8l9Gc-1714872536679)]

[外链图片转存中…(img-OiWWtKNv-1714872536679)]

[外链图片转存中…(img-WjypylMI-1714872536679)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 12
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值