CentOs7 使用iptables开启关闭端口

介绍

iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分
iptables文件设置路径:命令:vim /etc/sysconfig/iptables-config

注意事项

如果说你以前使用的是contos7 那么默认使用的防火墙那么就是Firewall 这样的话,就要先把Firewall 给关闭在使用iptables

关闭Firewall 命令
命令:systemctl stop firewalld #关闭防火墙
命令:systemctl disable firewalld #禁止开机启动

检查是否安装了iptables

命令:service iptables status

安装iptables

命令:yum install -y iptables

升级iptables

命令:yum update iptables

安装iptables-services

命令:yum install iptables-services

开启防火墙

命令:systemctl start iptables.service #启动防火墙
命令:systemctl enable iptables.service #设置开机自启动

关闭防火墙

命令:systemctl stop iptables.service #关闭防火墙
命令:systemctl disable iptables.service #禁止开机启动

查看iptables状态

命令:systemctl status iptables.service

查看iptables现有规则

命令:iptables -L -n

重点:清除默认的防火墙规则

11.1 安装完成基本配置-允许所有请求防止悲剧
首先在清除前要将policy INPUT改成ACCEPT,表示接受一切请求。
这个一定要先做,不然清空后可能会直接悲剧
设置 INPUT 方向所有的请求都允许
命令:iptables -P INPUT ACCEPT

11.2 安装完成基本配置-清空所有默认规则
命令:iptables -F

11.3 安装完成基本配置-清空所有自定义规则
命令:iptables -X

11.4 安装完成基本配置-所有计数器归0
命令:iptables -Z

重点:配置规则

12.1允许来自于lo接口的数据包
如果没有此规则,你将不能通过127.0.0.1访问本地服务,例如ping 127.0.0.1
命令:iptables -A INPUT -i lo -j ACCEPT

12.2开启某个端口
iptables -A INPUT -p tcp --dport 端口 -j ACCEPT

12.2.1例子:开启80,22端口
命令:iptables -A INPUT -p tcp --dport 80 -j ACCEPT
命令:iptables -A INPUT -p tcp --dport 22 -j ACCEPT

12.3允许icmp包通过,也就是允许ping
命令:iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

12.4允许所有对外请求的返回包
本机对外请求相当于OUTPUT,对于返回数据包必须要接收啊,这相当于INPUT了
命令:iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

12.5如果要添加内网ip信任(接受其所有TCP请求)
iptables -A INPUT -p tcp -s 192.168.1.50(改为允许的内网IP即可) -j ACCEPT

12.6过滤除iptables规则之外的所有请求
命令:iptables -P INPUT DROP

重点:保存规则

注意:设置完成以后先执行命令iptables -L -n看一下配置是否正确。
没问题后,先不要急着保存,因为没保存只是当前有效,重启后就不生效,这样万一有什么问题,可以后台强制重启服务器恢复设置。
另外开一个ssh连接,确保可以登陆。
确保没问题之后在进行保存
保存命令:service iptables save

重启防火墙

systemctl restart iptables.service

杂项

15.1要封停一个IP,使用下面这条命令
命令:iptables -I INPUT -s ... -j DROP

15.2 要解封一个IP,使用下面这条命令
命令:iptables -D INPUT -s ... -j DROP

删除某个已有规则

要删除规则那么我们就需要先将所有iptables规则以序号标记显示,执行:
命令:iptables -L -n --line-numbers

比如要删除INPUT里序号为8的规则,执行:
命令:iptables -D INPUT 8

例子:完整的设置脚本

 #!/bin/sh  

#查看iptables现有规则
iptables -L -n  

#先允许所有,不然有可能会杯具
iptables -P INPUT ACCEPT  

#清空所有默认规则
iptables -F  

#清空所有自定义规则
iptables -X  

#所有计数器归0
iptables -Z  

#允许来自于lo接口的数据包(本地访问)
iptables -A INPUT -i lo -j ACCEPT  

#开放22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT  

#开放21端口(FTP)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT  

#开放80端口(HTTP)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT  

#开放443端口(HTTPS)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT  

#允许ping
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT  

#允许接受本机请求之后的返回数据 RELATED,是为FTP设置的
iptables -A INPUT -m state --state  RELATED,ESTABLISHED -j ACCEPT  

#其他入站一律丢弃
iptables -P INPUT DROP  

#所有出站一律绿灯
iptables -P OUTPUT ACCEPT  

#所有转发一律丢弃
iptables -P FORWARD DROP  

#保存
service iptables save 

#重启动
serv systemctl restart iptables.service

参考
作者:P喵呜_PHPoop
链接:https://www.jianshu.com/p/8fd07c60f23f

原文地址:https://www.cnblogs.com/fanweisheng/p/11183310.html

时间: 2024-11-10 14:33:16

CentOs7 使用iptables开启关闭端口的相关文章

linux下如何修改iptables开启80端口

最近在做本地服务器的环境,发现网站localhost能正常访问,用ip访问就访问不了,经常使用CentOS的朋友,可能会遇到和我一样的问题.开启了防火墙导致80端口无法访问,刚开始学习centos的朋友可以参考下. www.2cto.com 经常使用CentOS的朋友,可能会遇到和我一样的问题.最近在Linux CentOS防火墙下安装配置 ORACLE 数据库的时候,总显示因为网络端口而导致的EM安装失败,遂打算先关闭一下CentOS防火墙.偶然看到CentOS防火墙的配置操作说明,感觉不错.

[Linux.NET] CentOS 开启/关闭端口

最近一直在学习研究mvc网站部署到Linux上,Web服务器用的Jexus,linux版本是阿里云提供的centos.一个服务器又要放多个独立网站,对于学习阶段使用多个端口标识还是挺方便的,本文记录下开关端口的方式: //默认root用户登录 查看端口是否开放: # /sbin/iptables -L -n 编辑端口 # vi /etc/sysconfig/iptables 按i进入编辑模式 添加一行 这里开启1234端口 -A INPUT -p tcp -m state --state NEW

【linux】iptables 开启80端口

经常使用CentOS的朋友,可能会遇到和我一样的问题.开启了防火墙导致80端口无法访问,刚开始学习centos的朋友可以参考下. 经常使用CentOS的朋友,可能会遇到和我一样的问题.最近在Linux CentOS防火墙下安装配置 ORACLE  数据库的时候,总显示因为网络端口而导致的EM安装失败,遂打算先关闭一下CentOS防火墙.偶然看到CentOS防火墙的配置操作说明,感觉不错.执 行”setup”命令启动文字模式配置实用程序,在”选择一种工具”中选择”防火墙配置”,然后选择”运行工具”

CentOS7 防火墙打开和关闭端口

1.firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld  开机禁用  : systemctl disable firewalld 开机启用  : systemctl enable firewalld     2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体. 启动

iptables 开启3306端口

[[email protected] ~]# mysql -uroot -h 192.168.1.35 -p Enter password: ERROR 1130 (HY000): Host '192.168.1.66' is not allowed to connect to this MySQL server 下表可见3306端口没打开: [[email protected] online]# service iptables status Table: filter Chain INPUT

如何查看端口+如何开启/关闭端口

如何查看端口+如何关闭开放端口 在Windows 2000/XP/Server 2003中要查看端口,可以使用Netstat命令: 依次点击"开始→运行",键入"cmd"并回车,打开命令提示符窗口.在命令提示符状态下键入"netstat -a -n",按下回车键后就可以看 到以数字形式显示的TCP和UDP连接的端口号及状态. 小知识:Netstat命令用法命令格式:Netstat -a -e -n -o -s-an -a 表示显示所有活动的TCP

Linux iptables开启80端口

Linux下安装好apache的时候 测试apache 监听的端口80#netstat -lnt |grep 80tcp        0      0 :::80                      :::*                        LISTEN  安装成功了! 想到用本机telnet IP 80 不通- -  但是telnet IP 22  通了 ~ ~ 可能是80端口没开放.于是 开启80端口 1.开启80端口命令:/sbin/iptables -I INPUT

linux iptables开放/关闭端口命令

#开放端口:8080/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT#将更改进行保存/etc/rc.d/init.d/iptables save#重启防火墙以便改动生效:(或者直接重启系统)/etc/init.d/iptables restart #关闭iptable防火墙/etc/init.d/iptables stopservice iptables stop # 停止服务#查看防火墙信息/etc/init.d/iptables st

CentOS6、CentOS7 防火墙开放、关闭端口

当我们在CentOS服务器中装了一些开发环境(如 tomcat.mysql.nginx 等...)时,希望能从外界访问,就需要配置防火墙对指定端口开放. CentOS 6.5 1.开放指定端口/sbin/iptables -I INPUT -p tcp --dport 端口号 -j ACCEPT   //写入修改/etc/init.d/iptables save                                       //保存修改service iptables restar