centos7中防火墙转为iptables

1、关闭firewall

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

2、安装iptables防火墙

yum install iptables-services #安装

vi /etc/sysconfig/iptables #编辑防火墙配置文件

Firewall configuration written by system-config-firewall

Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

-A INPUT -j REJECT –reject-with icmp-host-prohibited

-A FORWARD -j REJECT –reject-with icmp-host-prohibited

COMMIT

:wq! #保存退出

systemctl restart iptables.service #最后重启防火墙使配置生效

systemctl enable iptables.service #设置防火墙开机启动

20条IPTables防火墙规则用法

IPTables 包括一组内置和由用户定义规则的「链」,管理员可以在「链」上附加各种数据包处理规则。
FILTER 默认过滤表,内建的链有:
INPUT:处理流入本地的数据包
FORWARD:处理通过系统路由的数据包
OUTPUT:处理本地流出的数据包
NAT 实现网络地址转换的表,内建的链有:
PREROUTING:处理即将接收的数据包
OUTPUT:处理本地产生的数据包
POSTROUTING:处理即将传出的数据包
MANGLE 此表用于改变数据包,共 5 条链:
PREROUTING:处理传入连接
OUTPUT:处理本地生成的数据包
INPUT:处理报文
POSTROUTING:处理即将传出数据包
FORWARD:处理通过本机转发的数据包
接下来我们将由简入难介绍 25 条 Linux 管理员最常会用到的 IPTables 规则。
1、启动、停止和重启IPTables
虽然 IPTables 并不是一项服务,但在 Linux 中还是可以像服务一样对其状态进行管理。
基于SystemD的系统
systemctl start iptablessystemctl stop iptablessystemctl restart iptables
基于SysVinit的系统
/etc/init.d/iptables start/etc/init.d/iptables stop/etc/init.d/iptables restart
2、查看IPtables防火墙策略
你可以使用如下命令来查看 IPtables 防火墙策略:
iptables -L -n -v
以上命令应该返回数据下图的输出:
以上命令是查看默认的 FILTER 表,如果你只希望查看特定的表,可以在 -t 参数后跟上要单独查看的表名。例如只查看 NAT 表中的规则,可以使用如下命令:
iptables -t nat -L -v –n
3、屏蔽某个IP地址
如果你发布有某个 IP 向服务器导入攻击或非正常流量,可以使用如下规则屏蔽其 IP 地址:
iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
注意需要将上述的 XXX 改成要屏蔽的实际 IP 地址,其中的 -A 参数表示在 INPUT 链的最后追加本条规则。(IPTables 中的规则是从上到下匹配的,一旦匹配成功就不再继续往下匹配)
如果你只想屏蔽 TCP 流量,可以使用 -p 参数的指定协议,例如:
iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP
4、解封某个IP地址
要解封对 IP 地址的屏蔽,可以使用如下命令进行删除:
iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
其中 -D 参数表示从链中删除一条或多条规则。
5、使用IPtables关闭特定端口
很多时候,我们需要阻止某个特定端口的网络连接,可以使用 IPtables 关闭特定端口。
阻止特定的传出连接:
iptables -A OUTPUT -p tcp –dport xxx -j DROP
阻止特定的传入连接:
iptables -A INPUT -p tcp –dport xxx -j ACCEPT
6、使用Multiport控制多端口
使用 multiport 我们可以一次性在单条规则中写入多个端口,例如:
iptables -A INPUT -p tcp -m multiport –dports 22,80,443 -j ACCEPTiptables -A OUTPUT -p tcp -m multiport –sports 22,80,443 -j ACCEPT
7、在规则中使用 IP 地址范围
在 IPtables 中 IP 地址范围是可以直接使用 CIDR 进行表示的,例如:
iptables -A OUTPUT -p tcp -d 192.168.100.0/24 –dport 22 -j ACCEPT
8、配置端口转发
有时我们需要将 Linux 服务器的某个服务流量转发到另一端口,此时可以使用如下命令:
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 25 -j REDIRECT –to-port 2525
上述命令会将所有到达 eth0 网卡 25 端口的流量重定向转发到 2525 端口。
9、屏蔽HTTP服务Flood攻击
有时会有用户在某个服务,例如 HTTP 80 上发起大量连接请求,此时我们可以启用如下规则:
iptables -A INPUT -p tcp –dport 80 -m limit –limit 100/minute –limit-burst 200 -j ACCEPT
上述命令会将连接限制到每分钟 100 个,上限设定为 200。
10、禁止PING
对 Linux 禁 PING 可以使用如下规则屏蔽 ICMP 传入连接:
iptables -A INPUT -p icmp -i eth0 -j DROP
11、允许访问回环网卡
环回访问(127.0.0.1)是比较重要的,建议大家都开放:
iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT
12、屏蔽指定MAC地址
使用如下规则可以屏蔽指定的 MAC 地址:
iptables -A INPUT -m mac –mac-source 00:00:00:00:00:00 -j DROP
13、限制并发连接数
如果你不希望来自特定端口的过多并发连接,可以使用如下规则:
iptables -A INPUT -p tcp –syn –dport 22 -m connlimit –connlimit-above 3 -j REJECT
以上规则限制每客户端不超过 3 个连接。
14、清空IPtables规则
要清空 IPtables 链可以使用如下命令:
iptables -F
要清空特定的表可以使用 -t 参数进行指定,例如:
iptables -t nat –F
15、保存IPtables规则
默认情况下,管理员对 IPtables 规则的操作会立即生效。但由于规则都是保存在内存当中的,所以重启系统会造成配置丢失,要永久保存 IPtables 规则可以使用 iptables-save 命令:
iptables-save > ~/iptables.rules
保存的名称大家可以自己改。
16、还原IPtables规则
有保存自然就对应有还原,大家可以使用 iptables-restore 命令还原已保存的规则:
iptables-restore < ~/iptables.rules
17、允许建立相关连接
随着网络流量的进出分离,要允许建立传入相关连接,可以使用如下规则:
iptables -A INPUT -m conntrack –ctstate ESTABLISHED,RELATED -j ACCEPT
允许建立传出相关连接的规则:
iptables -A OUTPUT -m conntrack –ctstate ESTABLISHED -j ACCEPT
18、丢弃无效数据包
很多网络攻击都会尝试用黑客自定义的非法数据包进行尝试,我们可以使用如下命令来丢弃无效数据包:
iptables -A INPUT -m conntrack –ctstate INVALID -j DROP
19、IPtables屏蔽邮件发送规则
如果你的系统不会用于邮件发送,我们可以在规则中屏蔽 SMTP 传出端口:
iptables -A OUTPUT -p tcp –dports 25,465,587 -j REJECT
20、阻止连接到某块网卡
如果你的系统有多块网卡,我们可以限制 IP 范围访问某块网卡:
iptables -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j DROP
源地址可以是 IP 或 CIDR。

保存设置的规则到配置文件
service iptables save

iptables –F

删除已经存在的规则

iptables -P INPUT DROP

配置默认的拒绝规则。基本规则是:先拒绝所有的服务,然后根据需要再添加新的规则。

iptables -A INPUT -p tcp –dport 80 -j ACCEPT

打开WEB服务端口的tcp协议

iptables -A INPUT -p tcp –dport 110 -j ACCEPT

打开POP3服务端口的tcp协议

iptables -A INPUT -p tcp –dport 25 -j ACCEPT

打开SMTP服务端口的tcp协议

iptables -A INPUT -p tcp –dport 21 -j ACCEPT

打开FTP服务端口的tcp协议

iptables -A INPUT -p tcp -s 202.106.12.130 –dport 22 -j ACCEPT

允许IP地址为202.106.12.130这台主机连接本地的SSH服务端口

iptables -A INPUT -p tcp –dport 53 -j ACCEPT

允许DNS服务端口的tcp数据包流入

iptables -A INPUT -p udp –dport 53 -j ACCEPT

允许DNS服务端口的udp数据包流入

iptables -A INPUT -p icmp -icmp-type echo-request -i eth1 -j DROP

防止死亡之ping,从接口eth1进入的icmp协议的请求全部丢弃。

iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT

防止SYN Flood (拒绝服务攻击)

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.226 -j MASQUERADE

允许 192.168.0.226通过eth1 IP伪装出外网

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.4 -p tcp –dport 25 -j MASQUERADE

允许 192.168.0.4通过eth0 伪装访问外网的 25端口

Original: https://www.cnblogs.com/zops/p/13280726.html
Author: 物是人非a
Title: centos7中防火墙转为iptables

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578321/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Linux快速入门(八)效率工具(SSH)

    (1)Kali(源主机),IP:10.211.55.4/24(2)Ubuntu(目标主机),IP:10.211.55.5/24 OpenSSH用于在远程系统上安全的运行 Shell…

    Linux 2023年6月6日
    084
  • linux-查看公钥的指纹值或者部署密钥的指纹值

    背景 查看gitlab上面的[部署密钥],看到了指纹 [xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx],怎么知道这个部署密钥的指纹…

    Linux 2023年6月6日
    0107
  • 修改内核中的只读区内容

    研究到 apparmor 内核源码,其中涉及到只读变量 __lsm_ro_after_init,研究怎么修改只读区实现部分功能,这里记录一下。 思路上很简单,修改的时候禁用写保护,…

    Linux 2023年6月13日
    077
  • redis应用-sortedset实现排行榜(转载)

    package site.zy9.redisApp.test; import java.util.HashMap; import java.util.List; import ja…

    Linux 2023年5月28日
    0107
  • 【网络安全篇】常见的HTTP状态码小结(3位5类)

    HTTP 状态码(HTTP Status Code)用以表示网页服务器传输协议的响应状态;状态码为 三位数,响应分为 五种;状态码的第1位数字表示状态类型,第2、3位数字表示具体的…

    Linux 2023年6月13日
    085
  • mysql select语句查询流程是怎么样的

    mysql select查询的数据是查询内存里面,如果没有查询的数据没有在内存,就需要mysql的innodb引擎读取磁盘,将数据加载的内存后在读取。这就体现了,mysql查询大量…

    Linux 2023年6月8日
    093
  • redis开启远程访问

    redis默认只允许本地访问,要使redis可以远程访问可以修改redis.conf 打开redis.conf文件在 NETWORK部分有说明 By default, if no …

    Linux 2023年5月28日
    0146
  • 代码审计-PHP反序列化漏洞

    什么是序列化 序列化可以实现将对象压缩并格式化,方便数据的传输和存储。为什么要序列化?PHP 文件在执行结束时会把对象销毁,如果下次要引用这个对象的话就很麻烦,所以就有了对象序列化…

    Linux 2023年6月6日
    0113
  • redis client原理分析

    1:空闲连接池实现 空闲连接池存在一个双向链表中,一个连接用完后回收,就会从表头插入这个链表,当需要一个连接时也是从链表的表头取,从表头插入的时候会写入当前时间,所以链表是一个按时…

    Linux 2023年5月28日
    093
  • PTA 《基础编程题目集》 6-6 求单链表结点的阶乘和

    本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int范围内。 函数接口定义: int FactorialSum( List L ); 其中…

    Linux 2023年6月8日
    0128
  • 命名空间、作用域、LEGB法则、垃圾回收机制

    一、命名空间、作用域、LEGB法则、 1.命名空间和作用域 : &#x3000;&#x3000;&#x547D;&#x540D;&#x7A7…

    Linux 2023年6月8日
    084
  • 本篇还玩“障眼法”,一文解读HTML内联框架Iframes。

    写在开篇 假设有一个需求,想要在网页内显示其它网页,怎么搞?很简单,可以用iframe来解决,那啥是iframe?本篇的主题就是它,接下来我们一一解剖它的用法。 嵌入第三方url页…

    Linux 2023年6月7日
    0116
  • Linux 0.11源码阅读笔记-文件IO流程

    文件IO流程 用户进程read、write在高速缓冲块上读写数据,高速缓冲块和块设备交换数据。 何时将磁盘块数据读取到缓冲块? [En] when will the disk bl…

    Linux 2023年5月27日
    081
  • linux用户身份与文件权限

    tips:可以将安装好的系统设置为一次快照,这样即便系统彻底崩溃了,也可以在5秒的时间内快速还原出一台全新的系统,而不用担心数据丢失 1、用户身份和能力 Linux系统的管理员之所…

    Linux 2023年5月27日
    091
  • 安装了nodejs,但是npm命令没反应(因环境变量导致的问题)

    解决方法:在环境变量-系统变量的Path里添加nodejs的安装路径地址,默认为”C:\Program Files\nodejs”。 Original: h…

    Linux 2023年6月7日
    0100
  • Shell 脚本是什么?

    一个 Shell 脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell 脚本)来完成这…

    Linux 2023年5月28日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球