侧边栏壁纸
博主头像
Z同学博主等级

工作磨平激情前,坚持技术的热忱。 欢迎光临Z同学的技术小站。 分享最新的互联网知识。

  • 累计撰写 290 篇文章
  • 累计创建 57 个标签
  • 累计收到 98 条评论

Linux iptables 防火墙安装与配置

Z同学
2020-09-07 / 0 评论 / 0 点赞 / 665 阅读 / 1,702 字
温馨提示:
本文最后更新于 2021-12-08,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

iptables 我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的"安全框架"中,这个"安全框架"的名字叫netfilter

netfilter是防火墙的安全框架(framework),netfilter位于内核空间。

iptables是一个命令行工具,位于用户空间,用户用这个工具操作netfilter。

下面主要基于CentOS 7 进行的配置命令。

常用配置方法

1.安装iptables

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

如果是Debian or Ubuntu 执行下面命令进行安装

apt-get install iptables -y
apt-get install iptables-persistent -y 

2.清除已有iptables规则

iptables -F
iptables -X
iptables -Z

3.配置iptables 端口规则

可以控制指定端口可以访问,指定端口不可以访问

#允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -i lo -j ACCEPT
# 允许已建立的或相关连的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许所有本机向外的访问
iptables -A OUTPUT -j ACCEPT
# 允许访问22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#允许访问80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#允许访问443端口
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#允许FTP服务的21和20端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#如果有其他端口的话,规则也类似,稍微修改上述语句就行
#允许ping
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
#禁止其他未允许的规则访问 
#(注意:如果22端口未加入允许规则,SSH链接会直接断开。)
iptables -A INPUT -j REJECT 
iptables -A FORWARD -j REJECT

4.屏蔽IP 的规则配置

#屏蔽单个IP的命令是
iptables -I INPUT -s 222.42.7.9 -j DROP
#封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP
#封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP
#封IP段即从123.45.6.1到123.45.6.254的命令是
iptables -I INPUT -s 123.45.6.0/24 -j DROP

5.屏蔽或允许某IP访问指定端口

#屏蔽某IP访问指定端口,以22端口为例命令是
iptables -I INPUT -s 222.42.7.9 -p tcp --dport 22 -j DROP
#允许某IP访问指定端口,以22端口为例命令是
iptables -I INPUT -p tcp --dport 22 -j DROP
iptables -I INPUT -s 222.42.7.9-p tcp --dport 22 -j ACCEPT

6.查看已添加的iptables规则

iptables -L -n

v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
x:在 v 的基础上,禁止自动单位换算(K、M) vps侦探
n:只显示IP地址和端口号,不将ip解析为域名

7.删除iptables规则

将所有iptables以序号标记显示,执行:

iptables -L -n --line-numbers
比如要删除INPUT里序号为8的规则(要删除OUTPUT的话就改成OUTPUT,以此类推),执行:

iptables -D INPUT 8
0

评论区