博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
防火墙
阅读量:6704 次
发布时间:2019-06-25

本文共 2797 字,大约阅读时间需要 9 分钟。

[root@localhost ~]# firewall-cmd --state

not running

[root@localhost ~]# firewall-cmd --state

running

放行http和https端口

[root@localhost ~]# firewall-cmd --permanent --add-port=80/tcp

success

[root@localhost ~]# firewall-cmd --permanent --add-port=443/tcp

success

--add-port:放行的端口

--permanent:firewalld在每次服务器启动时加载此规则

[root@localhost ~]# firewall-cmd --reload

success

--reload:将添加的规则适应当前会话

[root@localhost ~]# firewall-cmd --list-services

ssh dhcpv6-client

--list-services:查看当前防火墙的设置

 系统管理员需知的iptables 使用技巧

技巧#1: 开始之前先备份一下 iptables 配置文件。

用如下命令备份配置文件:

/sbin/iptables-save > /root/iptables-works

用如下命令加时间戳: 

技巧#2: 更妥当的做法,给文件加上时间戳。

/sbin/iptables-save > /root/iptables-works-`date +%F`

 然后你就可以生成如下名字的文件:

/root/iptables-works-2018-09-11

这样万一使得系统不工作了,你也可以很快的利用备份文件恢复原状:

/sbin/iptables-restore < /root/iptables-works-2018-09-11

技巧#3: 每次创建 iptables 配置文件副本时,都创建一个指向最新的文件的链接。

ln -s /root/iptables-works-`date +%F` /root/iptables-works-latest

技巧#4: 将特定规则放在策略顶部,底部放置通用规则。

避免在策略顶部使用如下的一些通用规则:

iptables -A INPUT -p tcp --dport 22 -j DROP 

你在规则中指定的条件越多,封锁自己的可能性就越小。不要使用上面非常通用的规则,而是使用如下的规则:

 iptables -A INPUT -p tcp --dport 22 -s 10.0.0.0/8 -d 192.168.100.101 -j DROP

 

此规则表示在INPUT 链尾追加一条新规则,将源地址为10.0.0.0/8目的地址是192.168.100.101、目的端口号是22 --dport 22 TCP(-p tcp )数据包通通丢弃掉。

技巧#5: 在策略规则顶部将你的 IP 列入白名单。

这是一个有效地避免封锁自己的设置:

 iptables -I INPUT -s <your IP> -j ACCEPT

你需要将该规则添加到策略首位置。-I 表示则策略首部插入规则,-A 表示在策略尾部追加规则。

技巧#6: 理解现有策略中的所有规则。

不犯错就已经成功了一半。如果你了解iptables 策略背后的工作原理,使用起来更为得心应手。如果有必要,可以绘制流程图来理清数据包的走向。还要记住:策略的预期效果和实际效果可能完全是两回事。

设置防火墙策略

 

按时间规定做限制- 场景1

应用场景:公司员工强烈反对限制一切对Facebook 的访问,这导致了 CEO 放宽了要求(考虑到员工的反对以及他的助理提醒说她负责更新他的 Facebook 页面)。然后 CEO 决定允许在午餐时间访问 Facebook(中午 12 点到下午 1 点之间)。假设默认规则是丢弃,使用 iptables 的时间功能便可以实现。

2 iptables -A OUTPUT -p tcp -m multiport --dport http,https -i eth0 -o eth1 -m time --timestart 12:00 --timestop 13:00 -d 31.13.64.0/18 -j ACCEPT

-m multiport:启用多端口扩展

-i eth0:从eth0网卡流入

-o eth1:从eth0网卡流出

--timestart:开始时间

 

按时间规定做限制- 场景2

应用场景:在计划系统维护期间,你需要设置凌晨2 点到 3 点之间拒绝所有的 TCP 和 UDP 访问,这样维护任务就不会受到干扰。使用两个 iptables 规则可实现: 

iptables -A INPUT -p tcp -m time --timestart 02:00 --timestop 03:00 -j DROP

iptables -A INPUT -p udp -m time --timestart 02:00 --timestop 03:00 -j DROP

 

该规则禁止(-j DROP)在凌晨2点(--timestart 02:00)到凌晨3点(--timestop 03:00)之间的TCP 和 UDP (-p tcp and -p udp)的数据进入(-A INPUT)访问。

限制连接数量

应用场景:你的web 服务器有可能受到来自世界各地的 DoS 攻击,为了避免这些攻击,你可以限制单个 IP 地址到你的 web 服务器创建连接的数量:

iptables -A INPUT -p tcp -syn -m multiport --dport http,https -m connlimit --connlimit-above 20 -j REJECT --reject-with-tcp-reset

-syn:防止SYN攻击 轻量级预防

-m connlimit --connlimit-above 20:限制一个客户端并发请求为20

--reject-with-tcp-reset:返回tcp重置

分析一下上面的命令。如果单个主机在一分钟之内新建立(-p tcp -syn)超过20 个(-connlimit-above 20)到你的web 服务器(--dport http,https)的连接,服务器将拒绝(-j REJECT)建立新的连接,然后通知对方新建连接被拒绝(--reject-with-tcp-reset)。

 

转载于:https://www.cnblogs.com/charon2/p/10349715.html

你可能感兴趣的文章
学习ASP.NET Core Razor 编程系列十八——并发解决方案
查看>>
functions and closures are reference types-函数和闭包是引用类型
查看>>
垃圾期刊列表
查看>>
对Kalman(卡尔曼)滤波器的理解
查看>>
【转】 Android BCM4330 蓝牙BT驱动调试记录
查看>>
NBear简介与使用图解
查看>>
[转]Apache重写中的flag说明
查看>>
iPhone控件之UILabel
查看>>
NHibernate自定义集合类型(上):基本实现方式
查看>>
IE9的css hack
查看>>
BZOJ 3218(a + b Problem-二分图套值域线段树)
查看>>
android 常用资料
查看>>
Web版RSS阅读器(三)——解析在线Rss订阅
查看>>
Android大图片导致内存问题小结
查看>>
SQL SERVER 服务启动后停止,某些服务由其它服务或程序使用时将自动停止
查看>>
能够免费做商业站点的CMS讨论
查看>>
Aix db2 经user a using b连接时报SQL30082N Security processing failed with reason &quot;42&quot;...
查看>>
Microsoft Build 2016 Day 2 记录(多图慎入)
查看>>
word异常关闭,找到丢失的word
查看>>
如何利用Boostrap做响应式设计的前端方案?
查看>>