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

 

# 0x01介绍

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

0x02注意事项

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

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

0x03检查是否安装了iptables

命令:service iptables status

0x04安装iptables

命令:yum install -y iptables

0x05升级iptables

命令:yum update iptables

0x06安装iptables-services

命令:yum install iptables-services

0x07开启防火墙

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

0x08关闭防火墙

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

0x09查看iptables状态

命令:systemctl status iptables.service

0x10查看iptables现有规则

命令:iptables -L -n

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

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

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

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

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

0x12重点:配置规则

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

0x13 重点:保存规则

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

0x14 重启防火墙

systemctl restart iptables.service

0x15 杂项

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

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

0x16 删除某个已有规则

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

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

0x17 例子:完整的设置脚本

 #!/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

(。・`ω´・) 哇哦

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

  1. CentOS 7设置iptables防火墙开放proftpd端口

    由于ftp的被动模式是这样的,客户端跟服务器端的21号端口交互信令,服务器端开启21号端口能够使客户端登录以及查看目录.但是ftp被动模式用于传输数据的端口却不是21,而是大于1024的随机或配置文件 ...

  2. CentOS 7 设置iptables防火墙开放proftpd端口

    由于ftp的被动模式是这样的,客户端跟服务器端的21号端口交互信令,服务器端开启21号端口能够使客户端登录以及查看目录.但是ftp被动模式用于传输数据的端口却不是21,而是大于1024的随机或配置文件 ...

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

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

  4. centos开启nginx服务成功,却无法访问。没有开启80端口。centos配置防火墙 开启80端口

    Linux配置防火墙 开启80端口 编辑配置文件/etc/sysconfig/iptables [root@weixinht ~]# vim /etc/sysconfig/iptables 1 # F ...

  5. CentOs7 使用iptables开启关闭端口

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

  6. CentOS系统iptables防火墙的启动、停止以及开启关闭端口的操作

    CentOS 配置防火墙操作实例(启.停.开.闭端口):注:防火墙的基本操作命令:查询防火墙状态:[root@localhost ~]# service   iptables status停止防火墙: ...

  7. CentOS7使用iptables防火墙开放端口

    背景:在CentOS上面安装了mysql.svn.tomcat等软件,发现访问不了,用telnet命令查看端口,发现都不通: telnet IP 端口 CentOS7 默认使用firewalld防火墙 ...

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

    Centos7默认安装了firewalld,如果没有安装的话,则需要YUM命令安装:firewalld真的用不习惯,与之前的iptable防火墙区别太大,但毕竟是未来主流讲究慢慢磨合它的设置规则: 安 ...

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

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

随机推荐

  1. document.querySelector获取不到html标签对象实例的原因

    官方给出的HTML中的ID的命名规范: 1.必须以字母 A-Z 或 a-z 开头2.其后的字符:字母(A-Za-z).数字(0-9).连字符("-").下划线("_&qu ...

  2. zabbix监控nginx连接数量

    #!/bin/bash conn=`netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}' | grep "E ...

  3. SQL优化思路大全

    一.百万级数据库优化方案 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断 ...

  4. QT获取窗口大小和位置等信息

    QT窗口尺寸,窗口大小和大小改变引起的事件 QResizeEvent. 来源:http://blog.csdn.net/dbzhang800/article/details/6741344?reloa ...

  5. Linux内核poll内部实现

    前言 poll机制用于实现IO多路复用.所谓IO多路复用,通俗的讲,其实就是线程复用,使其能在一个线程上处理多个IO. 用户空间 用户通过调用用户空间的poll函数使用该机制. 驱动部分的实现 用户如 ...

  6. spring,springmvc,mybatis整合ssm框架出现ORA-02289:序列不存在问题

    今天整合了一个SSM项目,完了后部署到Tomcat服务器,正常启动.但是当我发送请求时,报错,,如下 报错说序列不存在,可是我明明创建了序列呀,然后我测试了一下,测试语句:select tb_user ...

  7. 如何修改Oracle服务IP地址

    oracle数据库所在的机器更改IP地址后,发现无法连接,解决这个问题,需要修改一下对应的文件: F:\app\zhaohe\product\11.2.0\dbhome_1\NETWORK\ADMIN ...

  8. python游戏开发之俄罗斯方块(一):简版

    编程语言:python(3.6.4) 主要应用的模块:pygame (下面有源码,但是拒绝分享完整的源码,下面的代码整合起来就是完整的源码) 首先列出我的核心思路: 1,图像由"核心变量&q ...

  9. 同一个解决方案或有依赖关系的两个项目引用同名但不同版本的DLL

    问题描述 我们最近在使用Redis作Session的集中化,中间碰到了一个如下问题:我们有一些项目比较老,引用了NewtonJson的4.0.3.0版本的DLL,但是Redis提供的C#集成DLL引用 ...

  10. es5中for...in 和es6中 for..of遍历

    //定义一个数组 var arr=['A','B','C']; //定义一个对象 var obj={name:'张三',age:20} // for..in 遍历数组 得到索引 for(var x i ...