首页 > 系统相关 >Harley浅谈Linux的iptables

Harley浅谈Linux的iptables

时间:2022-08-22 17:56:54浏览次数:71  
标签:iptables sbin 浅谈 -- ACCEPT tcp Linux INPUT

 

简介

  iptables 是 Linux 防火墙系统的重要组成部分,iptables 的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者由该设备转发、路由时,都可以使用 iptables 进行控制

  iptables 是集成在 Linux 内核中的包过滤防火墙系统。使用 iptables 可以添加、删除具体的过滤规则,iptables 默认维护着 4 个表和 5 个链,所有的防火墙策略规则都被分别写入这些表与链中。

  "四表" 是指 iptables 的功能,默认的 iptable s规则表有 filter 表(过滤规则表)、nat 表(地址转换规则表)、mangle(修改数据标记位规则表)、raw(跟踪数据表规则表):

  filter 表:控制数据包是否允许进出及转发,可以控制的链路有 INPUT、FORWARD 和 OUTPUT。
  nat 表:控制数据包中地址转换,可以控制的链路有 PREROUTING、INPUT、OUTPUT 和 POSTROUTING。
  mangle:修改数据包中的原数据,可以控制的链路有 PREROUTING、INPUT、OUTPUT、FORWARD 和 POSTROUTING。
  raw:控制 nat 表中连接追踪机制的启用状况,可以控制的链路有 PREROUTING、OUTPUT。
  "五链" 是指内核中控制网络的 NetFilter 定义的 5 个规则链。每个规则表中包含多个数据链:INPUT(入站数据过滤)、OUTPUT(出站数据过滤)、FORWARD(转发数据过滤)、PREROUTING(路由前过滤)和POSTROUTING(路由后过滤),防火墙规则需要写入到这些具体的数据链中。
————————————————
版权声明:本文为CSDN博主「一口Linux」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/daocaokafei/article/details/115091313

 

常用命令

 

CentOS6

1、查看防火墙状态:service iptables status/etc/init.d/iptables status

2、启/停/重启防火墙:service iptables start/stop/restart

3、查看防火墙是否开机启动:chkconfig iptables --list

4、设置防火墙开机自启/不自启:chkconfig iptables on/off

 

CentOS7

1、查看防火墙状态:systemctl status firewalld

2、启/停/重启防火墙:systemctl start/stop/restart firewalld.service

3、设置防火墙开机自启/不自启:systemctl enable/disable firewalld.service

4、开启端口:firewall-cmd --zone=public --add-port=80/tcp -permanent

 

 

设置防火墙策略指定IP端口进行访问

第一种修改防火墙的方式(命令版)
# 首先关闭所有对80端口的访问
iptables -I INPUT -p tcp --dport 80 -j DROP


# 开启某个IP对该电脑的某个端口进行访问
iptables -I INPUT -s xxx.xxx.x.x -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s xxx.xxx.x.x -p tcp --dport 80 -j ACCEPT

# 首先把防火墙配置文件备份
cp /etc/sysconfig/iptables /var/tmp

# 对上面所有修改的配置进行保存
service iptables save

# 重启防火墙
service iptables restart
第二种修改防火墙的方式(修改配置文件)
# 首先把防火墙配置文件备份
cp /etc/sysconfig/iptables /var/tmp

# 进行编辑
vi /etc/sysconfig/iptables

# 把下面命令放到文件中即可
-I INPUT -p tcp --dport 80 -j DROP
-I INPUT -s 192.168.1.1 -p tcp --dport 80 -j ACCEPT
-I INPUT -s 192.168.1.2 -p tcp --dport 80 -j ACCEPT

# 然后退出编辑(按ESC)、保存(英文状态下 Shift + z(两下z))

 

注意:一定不要把命令放到 COMMIT 后面

/etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Fri Aug 19 10:54:44 2022
*filter
:INPUT ACCEPT [4550:591530]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [3365:312047]
-A INPUT -s 192.168.1.1/32 -p tcp -m tcp --dport 2181 -j ACCEPT
-A INPUT -s 192.168.1.1/32 -p tcp -m tcp --dport 2181 -j ACCEPT
-A INPUT -s 192.168.1.1/32 -p tcp -m tcp --dport 2181 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2181 -j DROP
COMMIT
# Completed on Fri Aug 19 10:54:44 2022
~
~
~
~

 

更多……
/sbin/iptables --delete-chain
/sbin/iptables --flush
/sbin/iptables -P INPUT DROP #1
/sbin/iptables -P FORWARD DROP#1
/sbin/iptables -P OUTPUT DROP #1
/sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #2
/sbin/iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT #3
/sbin/iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT #3
/sbin/iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT#3
/sbin/iptables -A INPUT -p tcp -m tcp --dport 873 -j ACCEPT #3
/sbin/iptables -A INPUT -i lo -j ACCEPT #4
/sbin/iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT#5
/sbin/iptables -A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT #5
/sbin/iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #6
/sbin/iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT #7
/sbin/iptables -A OUTPUT -o lo -j ACCEPT #4
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT #8
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 25 -j ACCEPT #9
/sbin/iptables -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT#10
/sbin/iptables -A OUTPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT #10

 

解释:
#1、设置INPUT,FORWARD,OUTPUT链默认target为DROP,也就是外部与服务器不能通信。
#2、设置当连接状态为RELATED和ESTABLISHED时,允许数据进入服务器。
#3、设置外部客户端连接服务器端口80,22,21,873。
#4、允许内部数据循回。
#5、允许外部ping服务器。
#6、设置状态为RELATED和ESTABLISHED的数据可以从服务器发送到外部。
#7、允许服务器使用外部dns解析域名。
#8、设置服务器连接外部服务器端口80。
#9、允许服务器发送邮件。
#10、允许从服务器ping外部。
iptables保存:iptables-save
iptables还原:iptables-restore

 

标签:iptables,sbin,浅谈,--,ACCEPT,tcp,Linux,INPUT
From: https://www.cnblogs.com/harleyblogs/p/16601668.html

相关文章

  • 阿里云Linux服务器部署JDK8实战教程
    下载地址https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html文件上传把下载的文件上传到阿里云服务器/usr/local/software的......
  • AMD PetaLinux 2022.1中部分语法改变,不支持IMAGE_CLASSES_remove、IMAGE_FSTYPES_DEBU
    付汉杰[email protected]最新的AMDPetaLinux2022.1,不支持IMAGE_CLASSES_remove、IMAGE_FSTYPES_DEBUGFS_remove、PREMIRRORS_prepend。如果有上述关键词,会报告类似下面的错......
  • linux开机卡死-end tarce dcec58a1576e8cea
    故障表述:因为机房空调其中一台不制冷,机房内温度过高,关闭部分非正式环境的服务器以减少散热。修好空调后,观察半天,没有问题。重新打开前面关闭的linux服务器,发生以下错误:见......
  • Arch Linux的error: failed to synchronize all databases (unable to lock database)
    我一开始是没有问题的,只是使用了reflector,然后执行reflector--verbose-l20-phttp--sortrate--save之后,我就有了20个离我所在路由器最快的连接,事实上这种做法固然没......
  • linux中查找nginx指定时间范围内的日志信息
    需求:在nginx中过滤出凌晨3:18-6:36的日志信息1、使用sed方式过滤注意:此方式开始和结束时间必须要在日志中真实存在,否则会匹配不到内容或匹配到末尾sed-n'/2022:03:18......
  • Linux rsync使用
    rsync的优点1.它有效地将文件复制和同步到远程系统或从远程系统同步文件到本地。2.支持复制链接、设备、所有者、组和权限。3.它比scp(SecureCopy)更快,因为rsync使用......
  • 解决linux删除文件空间未释放
    问题描述linux系统,磁盘占用率很高,删除一些正在使用的大文件,实际空间未得到释放,文件的句柄未被关闭问题解决lsof|grepdelete//删除的文件进程kill-9piddf-h......
  • Linux到底要做什么?
    从上一回分析了Linux到底是什么之后。我觉得得具体地思考一下我们到底在实际应用中会拿Linux做什么?从产品应用上来说:如手机、智能电视、智能音箱、车载中控1.手机性能调......
  • Linux启动Mysql出现command not found的解决方法
    当在Linux中安装Mysql后,不管是在根目录下还是在安装mysql的bin下执行mysql-uroot-p结果都是commandnotfound,如下图所示:问题原因,linux默认启动Mysql,会在根目录下的bin中......
  • Linux-->vi和vim编辑器的基本操作
    vim编辑器介绍vi或者vim就是对linux下的文本进行编辑的一种编辑器比如说a.cpp文件这种Linux会内置vi文本编辑器Vim可以简单的认为vi的增强版Linux是区分大小写的!用......