卡牌桌游
iptables,iptables禁止某个ip访问80端口
1年前 (2024-07-11)类别:卡牌桌游
- 发布日期:2025-11-22 01:16:17
- 所属类别:卡牌桌游
- 下载人数:6382
- 版本:
- 大小:
扫二维码手机浏览
iptables,iptables禁止某个ip访问80端口介绍
大家好,今天我将为大家揭秘iptables和iptables禁止某个ip访问80端口的奥秘,希望我的分享能给你带来新的启发和知识。
Linux防火墙iptables简明教程
前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔除了许多冗余的内容,提取出尽量多的精华部分成文,和大家共同学习,本文涉及的内容包括如下
Linux防火墙iptables简明教程
1.安装iptables
2.查看现有的iptables规则
3.删除某iptables规则
4.清除现有iptables规则
5.创建规则
6.设置开机启动
7.保存iptables规则
8.iptables在手动防CC攻击中的简单应用
1.安装iptables
很多Linux已经默认安装iptables,可使用后文的查看命令测试是否安装
CentOS/RedHat下执行:
yum install iptablesDebian/Ubuntu下执行:
apt-get install iptables
2.查看现有的iptables规则
命令后面的line-number为显示行号(将规则一则一则输出,并显示行号),可选,方便后文的删除指令。
iptables-L-n--line-numbers
3.删除某iptables规则
例如,删除第12行的规则,行号可由之前的命令查看
iptables-D INPUT 12
4.清除现有iptables规则
iptables-F
iptables-X
iptables-Z
5.创建规则
a).开放端口
命令iptables-A INPUT-j REJECT将屏蔽其他未授权的端口,因此请务必开放22端口以保障SSH连接正常~
**代码
代码如下:
#允许本机访问
iptables-A INPUT-s 127.0.0.1-d 127.0.0.1-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
#允许FTP服务的21和20端口
iptables-A INPUT-p tcp--dport 21-j ACCEPT
iptables-A INPUT-p tcp--dport 20-j ACCEPT
#如果有其他端口的话,规则也类似,稍微修改上述语句就行
#禁止其他未允许的规则访问
iptables-A INPUT-j REJECT
iptables-A FORWARD-j REJECT
b).屏蔽ip
iptables-I INPUT-s 123.123.123.123-j DROP可通过更换上述ip为ip段来达到屏蔽ip段的目的~
若需屏蔽整个ip段(123.0.0.1到123.255.255.254)则换为123.0.0.0/8
若需屏蔽ip段123.123.0.1到123.123.255.254,则换为124.123.0.0/16
若需屏蔽ip段123.123.123.1到123.123.123.254则换为123.123.123.0/24
6.设置开机启动
一般在安装iptables完成后,开机启动会自动设置成功,但在个别CentOS系统上,貌似还有些问题,可以使用如下命令手动设置
chkconfig--level 345 iptables on
7.保存iptables规则
service iptables save
8.iptables在手动防CC攻击中的简单应用
关于获取攻击者ip的方法,可以通过很多方法获取,如查看网站日志等,本文不再赘述。
a).建立要屏蔽的ip/ip段文件,名为ip.txt
#屏蔽的ip
123.4.5.6
#屏蔽的ip段(编写方法,同前文)
123.4.5.6/24b).建立block_ip.sh脚本文件
**代码
代码如下:
#!/bin/sh
# Filename: block_ip.sh
# Purpose: blocks all IP address/network found in a text file
# The text file must have one IP address or network per line
#################################################################
# Change the following path/filename to match yours
IP_LIST_FILE=/path/to/ip.txt
#################################################################
# Don't change anything below unless you are a **arty pant!
#################################################################
IPTABLES_BIN=/**in/iptables
# Get the IP address/network from the file and ignore any line starting with#(comments)
BAD_IP_ADDR_LIST=$(grep-Ev"^#"$IP_LIST_FILE)
# Now loop through the IP address/network list and ban them using iptabels
for i in$BAD_IP_ADDR_LIST
do
echo-n"Blocking$i...";
$IPTABLES_BIN-A INPUT-s$i-j DROP
$IPTABLES_BIN-A OUTPUT-d$i-j DROP
echo"DONE.";
done
##################################################################
# END OF SCRIPT- NOTHING TO SEE HERE- THAT'S ALL FOLKS!
##################################################################
c).运行脚本
sh/path/to/block_ip.sh
d).查看iptables规则是否生效/正确,这一步的命令,之前有提到哦,开动脑筋,实在忘了,点击此处~
iptables是什么命令
是刷新dns缓存命令。
刷新dns缓存只需要通过用刷新dns缓存的命令即可刷新好。那么刷新dns缓存的命令是什么呢?就是【ipconfig/flushdns】。具体操作步骤如下:
步骤一、首先按住键盘win+R组合键,打开了一个运行窗口,之后在运行窗口上输入“CMD”命令,执行该命令即可打开命令提示符窗口了。如图所示:
步骤二、然后在命令提示符上线查看下你的电脑上的dns缓存的全部信息,输入“ipconfig/displaydns”即可查询dns缓存信息了。之后在输入“ipconfig/flushdns”命令敲回车键即可将你本机上的dns缓存清空了。当然如果你不信的话,可以重新输入“ipconfig/displaydns”查询dnd缓存就能知道是否清空了本机dns缓存信息了。如图所示:
以下是相关的命令补充:
运行:ipconfig/displaydns这个命令,查看一下本机已经缓存了那些的dns信息的,然后输入下面的命令
ipconfig/flushdns
这时本机的dns缓存信息已经清空了,我们可以再次输入第一次输入的命令来看一下,
ipconfig/displaydns
ipconfig/displaydns显示dns缓存
ipconfig/flushdns刷新DNS记录
ipconfig/renew重请从DHCP服务器获得IP
先可以输入ipconfig/displaydns显示dns缓存根据显示结果你可以很直观的看到现在你的DNS所指上的IP,然后运行ipconfig/flushdns刷新DNS记录和ipconfig/renew重请从DHCP服务器获得IP就可以了,如果一次刷新没有用,可以多次用ipconfig/flushdns进行刷新。
浅谈iptables
iptables是linux系统下用来做防火墙的二进制文件(linux上位于/**in/iptables,android中位于/system/bin/iptables),底层依赖于内核的netfilter模块,用来完成封包过滤、封包重定向和网络地址转换(NAT)等功能(在android上需要root使用)。
举个例子来简单看看iptables命令的基本用法。
意思是在nat转发表的OUTPUT输出链中增加这样一条规则:倘若OUTPUT输出链拦到了tcp请求,则将其重定向到本地的8123端口。
可以看到iptables中有表、链和规则的概念,那么先通过iptables传输数据包的过程来简单了解下表和链是什么以及他们之间的关系。
可以看到链就是对数据包传输路径的一种抽象,一个数据包根据其具体场景以固定的顺序依次经过PREROUTING、INPUT等各个链,在经过各个链时,又有不同的表在监听这个链,而nat、filter等表中有包含一系列的规则,当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则。
值得注意的是,
至此我们了解了表、链和规则是什么以及他们之间的关系,下面来具体看下 iptables命令的基本用法。
更多关于各command、parameter的具体含义以及用法可以参考
iptables对网络数据包做过滤或拦截时其维度只能局限于网络数据包收发的ip地址、端口号、网卡、tcp/udp协议,因此可以推测iptables最终是在ip层对网络数据包做的拦截。
那iptables基于netfilter具体是怎么做到在各个链上对数据包做拦截的呢?
/net/ipv4/ip_output.c
/net/ipv4/ip_input.c
/net/ipv4/ip_forward.c
可以看到内核在每一个数据转发的关键节点都调用了NF_HOOK这个宏,来看下NF_HOOK这个宏干了啥
关于NF_HOOK相关具体逻辑可参见
版权说明:如非注明,本站文章均为皮努努下载原创,转载请注明出处和附带本文链接;
相关推荐
- 排行榜
