zoukankan      html  css  js  c++  java
  • 防火墙

    [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)。

  • 相关阅读:
    Linux环境下Nginx的安装
    Hibernate JPA 动态criteria语句针对null查询条件的特殊处理
    easyPOI使用
    Spring JdbcTemplate中关于RowMapper的使用实例
    十分钟了解分布式计算:Google Dataflow
    十分钟了解分布式计算:GraphX
    十分钟了解分布式计算:Petuum
    十分钟了解分布式计算:GraphLab
    文本深度表示模型Word2Vec
    Max Points on a Line
  • 原文地址:https://www.cnblogs.com/charon2/p/10349715.html
Copyright © 2011-2022 走看看