centos7 使用iptables配置防火墙

本文介绍如何在CentOS 7中使用iptables替代FirewallD进行防火墙规则配置,包括安装、配置静态规则及开启指定端口的方法。

centos7 默认是FirewallD 提供支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具,利用FirewallD开启80端口操作上一篇已经介绍了,接下来介绍使用iptables来配置防火墙规则:

yum install iptables-services
systemctl mask firewalld.service
systemctl enable iptables.service
systemctl enable ip6tables.service

静态防火墙规则配置文件是 /etc/sysconfig/iptables 以及 /etc/sysconfig/ip6tables .
注: iptables 与 iptables-services 软件包不提供与服务配套使用的防火墙规则. 这些服务是用来保障兼容性以及供想使用自己防火墙规则的人使用的. 你可以安装并使用 system-config-firewall 来创建上述服务需要的规则. 为了能使用 system-config-firewall, 你必须停止 firewalld.
为服务创建规则并停用 firewalld 后,就可以启用 iptables 与 ip6tables 服务了:

systemctl stop firewalld.service
systemctl start iptables.service
systemctl start ip6tables.service

打开防火墙添加端口:


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

重启防火墙:

service  iptables restart

接下来就可以通过端口来远程访问了。

### 配置 CentOS 7 上的 iptables 防火墙规则 在 CentOS 7 系统中,`iptables` 已被 `firewalld` 取代作为默认防火墙管理工具。然而,仍可通过安装 `iptables-services` 来使用传统的 `iptables` 命令进行配置。 #### 安装与启用 iptables 1. **停止并禁用 firewalld** ```bash systemctl stop firewalld systemctl disable firewalld.service ``` 2. **安装 iptables 及其服务组件** ```bash yum -y install iptables iptables-services ``` 3. **启动 iptables 并设置开机自启** ```bash systemctl start iptables systemctl enable iptables ``` 4. **保存当前配置以确保重启后生效** ```bash service iptables save ``` #### 基础配置命令 - **查看现有规则** ```bash iptables -L -n -v ``` - **清空所有规则(谨慎操作)** ```bash iptables -F ``` - **允许特定端口流量通过** 比如开放 TCP 协议的 80 端口: ```bash iptables -A INPUT -p tcp --dport 80 -j ACCEPT ``` - **限制特定 IP 地址访问** 添加对来自 192.168.10.103 的请求的限制,例如阻止 8601 端口: ```bash iptables -A INPUT -s 192.168.10.103 -p tcp --dport 8601 -j DROP ``` - **允许本地回环接口通信** ```bash iptables -A INPUT -i lo -j ACCEPT ``` - **设置默认策略** 设置默认拒绝所有传入连接,接受所有传出连接: ```bash iptables -P INPUT DROP iptables -P OUTPUT ACCEPT ``` - **保存更改** ```bash service iptables save ``` #### 示例:开放 SSH 访问 为了保证服务器的安全性同时又能远程管理,通常会开放 SSH 服务(默认为 22 端口),可以执行如下命令: ```bash iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT ``` 此命令添加了一条规则,允许新的 SSH 连接进入系统[^1]。 #### 示例:配置 SNAT DNAT 对于需要网络地址转换的情况,比如将内部网络的多个设备映射到一个公网 IP 上,可以配置 SNAT 或者 DNAT 规则: - **SNAT(源地址转换)** ```bash iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE ``` - **DNAT(目标地址转换)** 将外部请求转发至内网某台主机(假设为 192.168.1.100)上的 Web 服务: ```bash iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80 ``` 以上是基本的 `iptables` 配置流程一些常用示例。实际应用中应根据具体需求调整规则,并测试其有效性以确保网络安全性功能性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值