【linux】iptables和ufw禁用IP和端口

2024-03-27 01:59
文章标签 linux ip 禁用 端口 iptables ufw

本文主要是介绍【linux】iptables和ufw禁用IP和端口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引言

有时候服务器,为了安全需要,会限制某些ip和端口对服务器的访问。那具体该如何配置呢?本文带你解决。
在这里插入图片描述

禁用IP和端口

1、方法1:iptables

iptables v1.8.4Usage: iptables -[ACD] chain rule-specification [options]iptables -I chain [rulenum] rule-specification [options]iptables -R chain rulenum rule-specification [options]iptables -D chain rulenum [options]iptables -[LS] [chain [rulenum]] [options]iptables -[FZ] [chain] [options]iptables -[NX] chainiptables -E old-chain-name new-chain-nameiptables -P chain target [options]iptables -h (print this help information)Commands:
Either long or short options are allowed.--append  -A chain            Append to chain--check   -C chain            Check for the existence of a rule--delete  -D chain            Delete matching rule from chain--delete  -D chain rulenumDelete rule rulenum (1 = first) from chain--insert  -I chain [rulenum]Insert in chain as rulenum (default 1=first)--replace -R chain rulenumReplace rule rulenum (1 = first) in chain--list    -L [chain [rulenum]]List the rules in a chain or all chains--list-rules -S [chain [rulenum]]Print the rules in a chain or all chains--flush   -F [chain]          Delete all rules in  chain or all chains--zero    -Z [chain [rulenum]]Zero counters in chain or all chains--new     -N chain            Create a new user-defined chain--delete-chain-X [chain]          Delete a user-defined chain--policy  -P chain targetChange policy on chain to target--rename-chain-E old-chain new-chainChange chain name, (moving any references)
Options:--ipv4      -4              Nothing (line is ignored by ip6tables-restore)--ipv6      -6              Error (line is ignored by iptables-restore)
[!] --protocol  -p proto        protocol: by number or name, eg. `tcp'
[!] --source    -s address[/mask][...]source specification
[!] --destination -d address[/mask][...]destination specification
[!] --in-interface -i input name[+]network interface name ([+] for wildcard)--jump -j targettarget for rule (may load target extension)--goto      -g chainjump to chain with no return--match       -m matchextended match (may load extension)--numeric     -n              numeric output of addresses and ports
[!] --out-interface -o output name[+]network interface name ([+] for wildcard)--table       -t table        table to manipulate (default: `filter')--verbose     -v              verbose mode--wait        -w [seconds]    maximum wait to acquire xtables lock before give up--wait-interval -W [usecs]    wait time to try to acquire xtables lockdefault is 1 second--line-numbers                print line numbers when listing--exact       -x              expand numbers (display exact values)
[!] --fragment  -f              match second or further fragments only--modprobe=<command>          try to insert modules using this command--set-counters PKTS BYTES     set the counter during insert/append
[!] --version   -V              print package version.
  • 🈲端口
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 5053 -j DROP
  • 🈲IP
iptables -I INPUT -s 10.115.10.129 -j DROP
  • 保存配置
    sudo service iptables save
    实测这条命令行不通,报错:iptables: unrecognized service
    下面这条可以
sudo iptables-save

2、方法2:ufw

UFW (Uncomplicated Firewall)是Ubuntu 自带的防火墙配置工具 。UFW 是一个用来管理 iptables 防火墙规则的用户友好的前端工具。它的主要目的就是为了使得管理 iptables 更简单。

Usage: ufw COMMANDCommands:enable                          enables the firewalldisable                         disables the firewalldefault ARG                     set default policylogging LEVEL                   set logging to LEVELallow ARGS                      add allow ruledeny ARGS                       add deny rulereject ARGS                     add reject rulelimit ARGS                      add limit ruledelete RULE|NUM                 delete RULEinsert NUM RULE                 insert RULE at NUMroute RULE                      add route RULEroute delete RULE|NUM           delete route RULEroute insert NUM RULE           insert route RULE at NUMreload                          reload firewallreset                           reset firewallstatus                          show firewall statusstatus numbered                 show firewall status as numbered list of RULESstatus verbose                  show verbose firewall statusshow ARG                        show firewall reportversion                         display version informationApplication profile commands:app list                        list application profilesapp info PROFILE                show information on PROFILEapp update PROFILE              update PROFILEapp default ARG                 set default application policy

Ubuntu安装完毕,默认没有启动ufw。所以如果直接运行上述语句,那么它启动后就会使用默认规则,禁止一切流量,包括SSH的22端口,如果本来就是在SSH上远程操作,那么悲剧了,所以要先启用SSH的端口(默认是22,如果你设置了其他端口就加上去)

sudo ufw allow 22
sudo ufw reject 80 #(拒绝,直接返回:Connection refused)
sudo ufw deny 5053 #(否认,过段时间后返回:Connection timed out)
sudo ufw enable
sudo ufw status
  • 查看ufw防火墙是否在工作,查看使用中的规则
ufw status
  • 启动/关闭/重置ufw防火墙
ufw enable
ufw disable
ufw reset
  • 允许其它主机访问本机21端口,协议包含tcp和udp
ufw allow 21

-允许其它主机使用tcp协议访问本机80端口

ufw allow 80/tcp
  • 可以使用in或out来指定向内还是向外。如果未指定,默认是in
    允许访问本机http端口
ufw allow in http
  • 禁止其它主机访问本机80端口,
    • reject,直接告诉拒绝,返回的提示信息更多,比如ssh该主机时,直接返回:Connection refused

    • deny,否认,返回的提示信息少,比如ssh该主机时,过段时间后才返回:Connection timed out

ufw reject 80
ufw deny 80
  • 禁止本机对外访问192.168.1.1
    (实测有用)
ufw deny out to 192.168.1.1
  • 禁止192.168.1.1对内访问本机
    (实测没用)
ufw deny from 192.168.1.1
  • 删除规则,只要在命令中加入delete就行了
ufw delete deny 80/tcp
  • 打开/关闭log
ufw logging on
ufw logging off

logging on后 默认是low 等级。ufw支持多个等级: ‘low’, ‘medium’, ‘high’ and ‘full’。简单说low记录事件做少,其他等级记录逐级增加。使用默认的low level就够了。log文件保存在/var/log/ufw.log 文件内,可以用tail -n COUNT file的形式显示最后几行

参考文档

Linux下iptables屏蔽IP和端口号
Ubuntu 18.04 防火墙设置ufw详解
如何在 Ubuntu 20.04 上使用 UFW 来设置防火墙
Ubuntu自带防火墙ufw配置和用法

这篇关于【linux】iptables和ufw禁用IP和端口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/850589

相关文章

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Linux命令之firewalld的用法

《Linux命令之firewalld的用法》:本文主要介绍Linux命令之firewalld的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux命令之firewalld1、程序包2、启动firewalld3、配置文件4、firewalld规则定义的九大

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文