CentOS7安装和配置iptables防火墙

18 篇文章 0 订阅

环境配置

从CentOS7(RHEL7)开始,官方的标准防火墙设置软件从iptables变更为firewalld。 因此,为了使Fail2ban与iptables联动,需禁用自带的firewalld服务,同时安装iptables服务。

首先,使用如下命令停止和禁用自带的firewalld服务。

systemctl stop firewalld
systemctl mask firewalld

然后,使用如下命令安装iptables。

yum install -y iptables
yum update iptables 
yum install iptables-services

为了记录iptables防火墙丢弃的数据包到日志文件,还需修改/etc/rsyslog.conf文件。

vim  /etc/rsyslog.conf
kern.*     /var/log/iptables.log

service rsyslog restart

另外,还需对日志文件每隔一段时间(一周)进行切割,所以需要编辑/etc/logrotate.d/syslog文件。

vim /etc/logrotate.d/syslog
然后填入以下内容。

/var/log/iptables.log

规则设定

关于iptables的书写规则网上已经有很多说明。本文列举一份针对Web服务器的iptables脚本然后对其进行说明。

以下是一份完整的iptables脚本。

iptables -P INPUT ACCEPT
iptables -F
iptables -X
iptables -Z
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT  -p tcp -j LOG --log-prefix "iptables denied"
iptables -P INPUT   DROP
iptables -P OUTPUT  ACCEPT
iptables -P FORWARD ACCEPT
然后重启防火墙
service iptables save
service iptables restart
查看iptables现有规则
iptables -L -n

脚本说明

iptables -P INPUT ACCEPT
表示先允许所有的输入通过防火墙,以防远程连接断开
iptables -F
表示清空所有默认规则。
iptables -X
表示清空所有自定义规则。
iptables -Z
表示将所有计数器归0
iptables -A INPUT -i lo -j ACCEPT
表示允许来自于lo接口(本地访问)的数据包
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
表示开放22端口(SSH)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
表示开放80端口(HTTP)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
表示开放443端口(HTTPS)
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
表示允许接受本机请求之后的返回数据。
iptables -A INPUT -p tcp -j LOG --log-prefix “iptables denied”
表示所有被丢弃的包都会被记录到/var/log/iptables.log文件中,且每条记录会以”iptables denied”作为前缀。
ptables -P INPUT DROP
表示其他入站一律丢弃
iptables -P OUTPUT ACCEPT
表示所有出站一律通过
iptables -P FORWARD DROP
表示所有转发一律通过

设定其他规则

如果要添加可信任网段:192.168.0.1/24,接受其所有请求。
iptables -A INPUT -s 192.168.0.1/24 -j ACCEPT
如果要添加可信任ip:192.168.0.1,接受其所有TCP请求。
iptables -A INPUT -p tcp -s 192.168.0.1 -j ACCEPT
如果要添加可信任ip:192.168.0.1,接受其对某个端口:3306的所有TCP请求。
iptables -I INPUT -p tcp -s 192.168.0.1 --dport 3306 -j ACCEPT
如果要封停一个IP:192.168.0.1。
iptables -I INPUT -s 192.168.0.1 -j DROP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在 CentOS 上安装 iptables 防火墙的步骤: 1. 首先,使用 root 用户登录您的 CentOS 服务器。 2. 打开终端,执行以下命令安装 iptables: ``` yum install iptables-services ``` 3. 安装完成后,启动 iptables 服务: ``` systemctl start iptables ``` 4. 接着,将 iptables 服务设置为开机自启动: ``` systemctl enable iptables ``` 5. 确认 iptables 服务已经启动: ``` systemctl status iptables ``` 如果状态为 active(运行中),则表示 iptables 服务已经成功启动。 6. 配置 iptables 规则: 在 CentOS 上配置 iptables 规则有两种方式,一种是手动配置,另一种是使用防火墙配置工具。 手动配置: 编辑 /etc/sysconfig/iptables 文件,添加相应的规则。例如,开放 SSH 连接的端口: ``` -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT ``` 配置完毕后,保存文件并重启 iptables 服务使配置生效: ``` systemctl restart iptables ``` 防火墙配置工具: CentOS 提供了防火墙配置工具 firewalld,您可以使用以下命令安装: ``` yum install firewalld ``` 安装完成后,启动 firewalld 服务并设置开机自启动: ``` systemctl start firewalld systemctl enable firewalld ``` 然后,使用 firewall-cmd 命令添加防火墙规则。例如,开放 SSH 连接的端口: ``` firewall-cmd --zone=public --add-port=22/tcp --permanent ``` 配置完毕后,重新加载防火墙规则使其生效: ``` firewall-cmd --reload ``` 以上就是在 CentOS 上安装 iptables 防火墙的步骤,您可以根据需要进行配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值