介绍

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

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

  1. CentOs7 使用iptables防火墙开启关闭端口

    CentOs7 使用iptables防火墙开启关闭端口   # 0x01介绍 iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分iptables文件设置路径:命令:v ...

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

    linux下如何修改iptables开启80端口   最近在做本地服务器的环境,发现网站localhost能正常访问,用ip访问就访问不了,经常使用CentOS的朋友,可能会遇到和我一样的问题.开启了 ...

  3. memcache和iptables开启11211端口

    linux下安装完memcached后,netstat -ant | grep LISTEN 看到memcache用的11211端口已在监听状态,但建立php文件连接测试发现没有输出结果,iptabl ...

  4. linux中用iptables开启指定端口

    linux中用iptables开启指定端口   centos默认开启的端口只有22端口,专供于SSH服务,其他端口都需要自行开启. 1.修改/etc/sysconfig/iptables文件,增加如下 ...

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

    最近一直在学习研究mvc网站部署到Linux上,Web服务器用的Jexus,linux版本是阿里云提供的centos.一个服务器又要放多个独立网站,对于学习阶段使用多个端口标识还是挺方便的,本文记录下 ...

  6. 【linux】iptables 开启80端口

    经常使用CentOS的朋友,可能会遇到和我一样的问题.开启了防火墙导致80端口无法访问,刚开始学习centos的朋友可以参考下. 经常使用CentOS的朋友,可能会遇到和我一样的问题.最近在Linux ...

  7. Centos7(Firewall)防火墙开启常见端口命令

    使用云服务器的,一定要注意开启安全组配置的响应端口 Centos7默认安装了firewalld,如果没有安装的话,则需要YUM命令安装:firewalld真的用不习惯,与之前的iptable防火墙区别 ...

  8. linux iptables开放/关闭端口命令

    在CentOS/RHEL 7以前版本上开启端口 #开放端口:8080/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT#将更改进行保存/etc/ ...

  9. SELinux 和 iptables 开启关闭

    SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制(MAC)系统.对于目前可用的 Linux安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在 20 年的 MA ...

随机推荐

  1. spring JdbcTemplate最基本的使用

    package com.com.jdbctemplate; import org.springframework.jdbc.core.JdbcTemplate; import org.springfr ...

  2. IO 性能 $ iostat -kx 2$ vmstat 2 10$ mpstat 2 10$ dstat --top-io --top-bio

    这些命令对于调试后端性能非常有用. 检查磁盘使用量:服务器硬盘是否已满?  是否开启了swap交换模式 (si/so)? CPU被谁占用:系统进程? 用户进程? 虚拟机? dstat 是我的最爱.用 ...

  3. System V启动脚本启动的服务

    /etc/rc.d/init.d/目录下的内容如下:这些常用的服务器都是System v的服务,要控制System V 的服务,我们可以使用以下命令 #/etc/rc.d/init.d/script  ...

  4. 阿里云合作伙伴峰会SaaS加速器专场 | 商业加持,迈进亿元俱乐部

    导语:本文中,阿里云智能运营专家朱以军从宏观角度分析了SaaS市场的机遇和挑战,重点介绍了阿里云的商业操作系统.同时,阿里云SaaS加速器也在招募更多ISV合作伙伴和我们一起共创专注面向未来的应用,用 ...

  5. 精密MRAM芯片制造系统

    MRAM是一种非常复杂的薄膜多层堆叠,由10多种不同材料和超过30层以上的薄膜与堆叠组成,部分薄膜层的厚度仅达数埃,比人类的发丝还要薄500000倍,相近于一颗原子的大小,如何控制这些薄膜层的厚度.沉 ...

  6. golang数组 排序和查找

    package main import "fmt" func BubbleSort(arr *[5]int){ fmt.Println("排序前arr=",(* ...

  7. js 详解setTimeout定时器

    setTimeout: 定时器函数 第一个参数是匿名函数,第二个参数是延迟执行时间 setTimeout(function(){},time) 注意: 1.setTimeout函数是Window对象提 ...

  8. 【风马一族_Android】无线连接|调试Android手机

    原文来自:http://www.cnblogs.com/sows/p/6269396.html   (博客园的)风马一族 侵犯版本,后果自负 2017-01-10 15:03:31 准备阶段 1. 软 ...

  9. OSGi教程:Framework Namespaces Specification

    此教程基于OSGi Core Release 7 OSGi命名空间规范 详细的教程上面的英文教程里面有详细说明. 我就记录一下自己看完之后的简单理解: OSGi的Namespace规范就是规定了你Ma ...

  10. Python 中的 map, reduce, zip, filter, lambda基本使用方法

    map(function, sequence[, sequence, ...] 该函数是对sequence中的每个成员调用一次function函数,如果参数有多个,则对每个sequence中对应的元素 ...