iptables拒绝所有端口放开特定端口方法流程,iptables允许ping和拒绝ping、hosts阻止所有ip指定放开ip方法流程、脚本检测日志异常并自动执行封堵

这篇具有很好参考价值的文章主要介绍了iptables拒绝所有端口放开特定端口方法流程,iptables允许ping和拒绝ping、hosts阻止所有ip指定放开ip方法流程、脚本检测日志异常并自动执行封堵。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说明

  • 收到下面一封邮件,简单来说就是需要一个虚拟机,外网能ping同,但端口全封,给他们做渗透用。
    允许ping开放端口,玩转linux8+和bclinux8+,玩转linux7+,iptables,hosts.deny,hosts.allow
  • 问了需求 不需要登录,封死所有端口。
    所以 就用下面2个方式双重封死。

iptables拒绝所有端口放开特定端口方法流程

拒绝所有端口

  • 命令:

  • iptables -P INPUT DROP【我这就执行了这个进的】

  • iptables -P FORWARD DROP

  • iptables -P OUTPUT DROP

  • 注:上面执行以后,看不到具体规则且iptables -F是无法清除上面规则的,同时ping也不能使用。

  • 测试
    允许ping开放端口,玩转linux8+和bclinux8+,玩转linux7+,iptables,hosts.deny,hosts.allow

允许所有端口

  • 命令:iptables -P INPUT ACCEPT
    注:只有这个端口能放开上面拒绝的所有端口,iptables -F是不能删除上面规则的。

  • 验证
    之前默认是已经封堵了,无法访问百度,允许以后,百度可以访问
    允许ping开放端口,玩转linux8+和bclinux8+,玩转linux7+,iptables,hosts.deny,hosts.allow

允许特定端口

  • 我这需要放开2个ip段的22端口【这是放开端口,下面hosts是ip策略,分开做的】
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    允许ping开放端口,玩转linux8+和bclinux8+,玩转linux7+,iptables,hosts.deny,hosts.allow

  • 更多说明

#允许已建立的连接通过【不执行也可以,但有些特定版本不执行这个可能下面规则不会生效】
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


# 允许 SSH 连接
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 允许 HTTP 连接
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 允许 HTTPS 连接
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

临时规则写入配置文件永久生效

  • 上面做的是临时生效的,重启以后就没了,想要永久生效,执行下面命令【下面配置文件中的规则是基于iptables服务的,如果服务没启动,重启后下面规则依然不会生效】
  • 命令iptables-save > /etc/sysconfig/iptables

允许ping开放端口,玩转linux8+和bclinux8+,玩转linux7+,iptables,hosts.deny,hosts.allow

iptables允许ping和拒绝ping

  • 首先,我执行iptables -P INPUT DROP命令以后,外部就ping不通了,我执行iptables -F以后依然ping不通,折腾许久外部都无法ping通,我以为我网络出问题了,但每次重启就好,后来才发现这个命令的规则-F清除不掉,卧槽。

禁止允许ping说明

  • 下面内容来源网络整理,自行测试。

内核参数设置

禁止
  • 临时禁止ping设置
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
  • 永久禁止ping设置
echo net.ipv4.icmp_echo_ignore_all=1 >> /etc/sysctl.conf
  • 使/etc/sysctl.conf 配置文件生效
    注意:如果 /etc/sysctl.conf 配置文件里已经有net.ipv4.icmp_echo_ignore_all字段了,那么直接用 vim 进去直接修改0或1即可。
sysctl -p 
允许
  • 临时允许ping设置
echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
  • 永久允许ping设置
echo net.ipv4.icmp_echo_ignore_all=0 >> /etc/sysctl.conf
  • 使/etc/sysctl.conf 配置文件生效
    注意:如果 /etc/sysctl.conf 配置文件里已经有net.ipv4.icmp_echo_ignore_all字段了,那么直接用 vim 进去直接修改0或1即可
sysctl -p 

防火墙设置

  • 注:使用以下方法的前提是内核配置是默认值,也就是内核没有禁ping
禁止
  • 禁止PING设置
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
  • 上面代码参数说明
    • --icmp-type 8 echo request 表示回显请求(ping请求)
    • 0/0 表示所有 IP
允许
  • 允许PING设置 【方式1】
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
  • 允许PING设置 【方式2】
iptables -A INPUT -i eth+ -p icmp --icmp-type 8 -j ACCEPT
  • 允许PING设置 【方式1】
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
  • 允许PING设置 【方式2】
iptables -A OUTPUT -o eth+ -p icmp --icmp-type 0 -j ACCEPT

禁止ping

  • 我这用的是这种方式 iptables -P INPUT DROP【慎用,所以端口都无法进出】

允许ping

外部ping通虚拟机内部

  • 我执行了下面命令以后
    iptables -A INPUT -i eth+ -p icmp --icmp-type 8 -j ACCEPT【这条命令执行完外部就通虚拟机了】
    iptables -A OUTPUT -o eth+ -p icmp --icmp-type 0 -j ACCEPT【好像这个没生效?】
    外部就可以ping通该虚拟机ip
    允许ping开放端口,玩转linux8+和bclinux8+,玩转linux7+,iptables,hosts.deny,hosts.allow

虚拟机内部使用ping

  • 但我发现,虚拟机内部不能使用ping了。我以为是面中的output没生效。
    • 但我最后发现,换个方式执行INPUT以后,虚拟机内部就能使用ping了。
      iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
    • 所以这里的output到底是啥逻辑?

允许ping开放端口,玩转linux8+和bclinux8+,玩转linux7+,iptables,hosts.deny,hosts.allow

规则详细

至此未知,现在的规则详细如下:
允许ping开放端口,玩转linux8+和bclinux8+,玩转linux7+,iptables,hosts.deny,hosts.allow

hosts阻止所有ip指定放开ip方法流程

其实上面的iptables已经限制的死死的了,但怕iptables出意外,所以用hosts加固一下

允许需要访问ip

  • 这里以sshd服务为例,配置完成后,只允许配置允许的IP才能ssh连接本机服务器,其他IP拒绝
    注:一定要先允许在拒绝所有
  • 编辑hosts.allow配置文件

vi /etc/hosts.allow     
  • 允许1个或多个ip
    末尾添加允许的IP远程登录本机服务器,如果有多个IP,以逗号隔开连续写即可
sshd:111.2.3.4,111.6.7.8.9   
  • 以段添加
    添加允许的111.2.3网段的IP远程登录本机服务器
sshd:111.2.3.

内网地址出公网hosts放开地址说明

  • 假如你现在用的内网ip地址访问的公网,你在虚拟机上放开你现在用的ip地址是没用的
    如,我现在用的内网ip绑定的路由器,我把内网地址和我路由器地址都放开了,依然无法访问,放开ALL就能访问
    允许ping开放端口,玩转linux8+和bclinux8+,玩转linux7+,iptables,hosts.deny,hosts.allow

  • 如何看内网地址转换后访问过来的地址?
    先放开all,正常登录上虚拟机,然后虚拟机里面执行lastlog【这个命令会记录登录信息】
    如下,可以看到我这公网出口地址是70.92结尾的ip
    允许ping开放端口,玩转linux8+和bclinux8+,玩转linux7+,iptables,hosts.deny,hosts.allow

  • 现在回到虚拟机内部,放开这个70.92的ip地址,注释ALL,即可正常访问了
    允许ping开放端口,玩转linux8+和bclinux8+,玩转linux7+,iptables,hosts.deny,hosts.allow

拒绝所有

  • 编辑hosts.deny配置文件
vi /etc/hosts.deny
  • 拒绝所有所有IP远程登录本机服务器
    末尾添加下面内容即可
sshd:ALL         
  • 我有控制台,为了验证生效,我先做的拒绝,再放开
    允许ping开放端口,玩转linux8+和bclinux8+,玩转linux7+,iptables,hosts.deny,hosts.allow

脚本检测日志异常并自动执行封堵

  • 可以动态封锁ip的,脚本如下,如果怕死循环影响虚拟机性能,可以把死循环去掉,用定时任务执行,比如每分钟、每小时执行一次这样。
#!/bin/bash

while true; do
    # 读取系统日志文件进行监测
    grep -E "sgdifi|wa/xzwas|wa/higehfd|wa" /var/log/system.log | while read -r log; do
        # 解析日志行,获取用户信息和相关IP地址
        username=$(echo "$log" | grep -oE "sgdifi|wa/xzwas|wa/higehfd|wa")
        ip_address=$(echo "$log" | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b")

        # 锁定用户账户
        lock_user_account "$username"
        # 实施IP封堵
        block_ip_address "$ip_address"
    done

    sleep 300  # 暂停5分钟后再次监测
done

lock_user_account() {
    # 锁定用户账户的实际操作,这里作为示例,将用户添加到黑名单
    echo "$1" >> /etc/blacklist.txt
}

block_ip_address() {
    # 封堵IP地址的实际操作,这里作为示例,使用iptables命令封堵IP
    iptables -A INPUT -s "$1" -j DROP
}
  • 因为放开了攻击的ip,根据需求,还是需要采集用户和ip,所以就根据登录失败的信息,模拟处理方法
    上面代码是GPT生成的,不好使,而且代码还有点问题不能直接使用,但思路是好的,我根据上面的思路,去掉了死循环,每分钟执行了一次
    函数调用的形式写一个动态监控secure日志文件的sh脚本、过滤出secure日志异常用户名的ip并用iptables限制

允许ping开放端口,玩转linux8+和bclinux8+,玩转linux7+,iptables,hosts.deny,hosts.allow
允许ping开放端口,玩转linux8+和bclinux8+,玩转linux7+,iptables,hosts.deny,hosts.allow文章来源地址https://www.toymoban.com/news/detail-753733.html

到了这里,关于iptables拒绝所有端口放开特定端口方法流程,iptables允许ping和拒绝ping、hosts阻止所有ip指定放开ip方法流程、脚本检测日志异常并自动执行封堵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 服务器设置只允许特定IP和端口访问(Windows和Centos)

    1、单击 开始,选择 运行。 2、输入gpedit.msc,单击 确定,打开本地组策略编辑器。 3、在左侧依次找到 计算机配置 Windows设置 安全设置 IP安全策略 4、在右侧空白处单击右键,选择 创建IP安全策略。 5、在弹出的向导中,单击 下一步。 6、自定义安全策略名称,比如“远程连

    2024年04月13日
    浏览(60)
  • iptables -nvL查看linux系统的所有ip和端口情况

    1、查看规则 对规则的查看需要使用如下命令: 各参数的含义为: -L 表示查看当前表的所有规则,默认查看的是 filter 表,如果要查看 nat 表,可以加上 -t nat 参数。 -n 表示不对 IP 地址进行反查,加上这个参数显示速度将会加快。 -v 表示输出详细信息,包含通过该规则的数据

    2024年02月12日
    浏览(78)
  • iptables 限制所有ip访问22端口,仅开放个别ip访问 持续更新

    查看当前iptables 规则 添加已经建立tcp连接,就开放网络访问 添加允许访问22端口的ip 拒绝所有ip访问22端口 新加一个ip访问该主机22端口 保存iptables规则 参数详解 效果 本文参考:https://blog.csdn.net/zhougubei/article/details/120350467 本文参考:https://blog.csdn.net/qq_44273583/article/details/116661

    2024年02月07日
    浏览(50)
  • ubuntu 如何放开端口

     在 Ubuntu 上放开端口,可以通过以下步骤进行操作: 使用 root 用户或具有管理员权限的用户登录到 Ubuntu 系统。 使用防火墙工具(如ufw)放开特定的端口。ufw 是 Ubuntu 上的一个简化的防火墙配置工具,可以轻松管理端口和防火墙规则。 检查 ufw 是否已安装:在终端中执行

    2024年02月09日
    浏览(27)
  • 查看CentOS版本及系统位数与设置CentOS 7.9 2009 防火墙配置放开端口的命令与过程

    1.1 命令汇总 2023-11-8 21:31 : 更多关于Linux系统时间的详细操作可以参考 :Linux如何查看系统时间 1.2 截图 2.1 命令汇总 2.2 截图 设置CentOS7.9 2009 防火墙配置放开端口8083 查看端口占用信息

    2024年02月13日
    浏览(39)
  • iptables-ipset仅允许国内访问---DNAT入口

    前言:     境外肉鸡攻击有点多,并业务无境外访问需求,IDC机房网络防火墙无法实现8K多条的china大陆地址导入;为实现仅china大陆地址访问,在业务入口主机(DNAT端口映射或DNAT端口转发),使用iptables防火墙+ipset过滤实现访问控制,对于访问量不大的业务可考虑使用。 如

    2024年02月06日
    浏览(44)
  • uniapp小程序获取位置权限(不允许拒绝)

    小程序上如果需要一些定位功能,那么我们需要提前获取定位权限。我们页面的所有功能后续都需要在用户同意的前提下进行,所以一旦用户点了拒绝,我们应该给予提示,并让用于修改为允许。 1.打开手机GPS 经过测试发现即使手机GPS没有打开,小程序依旧可以获取定位信息

    2024年04月16日
    浏览(41)
  • windows开启远程桌面,防火墙拦截:只允许特定IP远程

    1、进入设置----系统----远程桌面----开启远程桌面  2、进入控制面板----系统和安全----Windows Defender 防火墙----开启防火墙----右上角 高级设置----入站规则----找到端口3389(3389为远程端口)----作用域----远程IP上添加允许访问的IP  3、配置完毕

    2024年02月13日
    浏览(49)
  • Vcenter安全加固-防火墙-只允许特定的IP地址访问Vcenter

    一、场景         1.只允许特定的IP地址访问Vcenter。         2、其余全部拒绝。 二、操作步骤         1、登录Vcenter管理界面                         https://Vcenter-ip:5480         2、点击防火墙-添加         3、添加规则                 1、先添加 允许访问的

    2024年02月15日
    浏览(68)
  • iptables封禁端口

    需求:之前运维的服务器,爆出漏洞,我要做的就是把5000接口封禁。 然后找了一些iptables的教程。最终解决方案如下: 执行完,立即生效 配套资料 1. 禁止指定 IP 2. 禁止指定 IP段 3. 禁止指定 IP和端口 4. iptables 解封禁止 IP 参数-I是表示 Insert (添加),-D表示 Delete (删除)。

    2024年02月15日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包