一、iptables防火墙

1、基本操作

#查看防火墙状态
service iptables status
#停止防火墙
service iptables stop
#启动防火墙
service iptables start
#重启防火墙
service iptables restart
#永久关闭防火墙
chkconfig iptables off
#永久关闭后重启
chkconfig iptables on

2、开启80端口

vim /etc/sysconfig/iptables
#加入如下代码
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT保存退出后重启防火墙
 service iptables restart

二、firewall防火墙

1、查看firewall服务状态

systemctl status firewalld
加粗样式
出现Active: active (running)切高亮显示则表示是启动状态。

出现 Active: inactive (dead)灰色表示停止,看单词也行。

2、查看firewall的状态

firewall-cmd --state

3、开启、重启、关闭、firewalld.service服务

开启
 service firewalld start#重启
 service firewalld restart#关闭
 service firewalld stop

4、查看防火墙规则
firewall-cmd --list-all

5、查询、开放、关闭端口

#查询端口是否开放
 firewall-cmd --query-port=8080/tcp#开放80端口
 firewall-cmd --permanent --add-port=80/tcp#移除端口
 firewall-cmd --permanent --remove-port=8080/tcp#重启防火墙(修改配置后要重启防火墙)
 firewall-cmd --reload

#参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、–permanent:表示设置为持久;
3、–add-port:标识添加的端口;

CentOS7 默认使用firewalld防火墙,如果想换回iptables防火墙,可关闭firewalld并安装iptables。

1、关闭firewall:

停止firewall
systemctl stop firewalld.service

禁止firewall开机启动
systemctl disable firewalld.service

查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
firewall-cmd --state

2.安装iptables-services

yum install iptables-services

3.修改防火墙配置文件

vi /etc/sysconfig/iptables

默认的文件为:

在修改之前使用telnet命令查看端口是否开放。

1.启动telnet。控制面板–>程序和功能–>打开或关闭windows功能–>勾选Telnet的两个选项。
2.打开cmd窗口,输入telnet,如果端口关闭或者无法连接,则显示不能打开到主机的链接,链接失败;端口打开的情况下,链接成功,则进入telnet页面(全黑的),证明端口可用。

(1)telnet IP 端口。

(2)telnet 域名 端口。

如果成功连接会进入的界面

连接失败

添加端口80、8080、3306、3690端口:

esc :wq! 退出保存修改。

注意:添加在端口22上面或者下面,不要放在最后,不然不起作用。

4.重启防火墙使配置生效

systemctl restart iptables.service

刚刚yum install iptables.service之后系统如果没有重启,iptables.service是找不到的,会报unit not fount。耽误时间的小坑!

设置防火墙开机启动:
systemctl enable iptables.service

三:开启防火墙白名单

允许192.168.1.10所有访问所有端口

firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.1.10" accept' --permanent

移除192.168.1.10所有访问所有端口

firewall-cmd --zone=public --remove-rich-rule 'rule family="ipv4" source address="192.168.1.10" accept' --permanent

允许192.168.2.0/24(0-255)所有访问所有端口

firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.2.0/24" accept' --permanent

允许192.168.1.10所有访问TCP协议的22端口

firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.1.10" port port=22 protocol=tcp accept' --permanent

拒绝192.168.1.10所有访问TCP协议的22端口

firewall-cmd --zone=public --remove-rich-rule 'rule family="ipv4" source address="192.168.1.10" port port=22 protocol=tcp reject' --permanent

防火墙重新载入(必须重新载入后才能生效)

firewall-cmd --reload

查看rich-rules(富规则)

firewall-cmd --list-rich-rules

查看防火墙服务规则

firewall-cmd --list-services

查看 防火墙所有规则

firewall-cmd --list-all

查看防火墙所有区域的配置规则

firewall-cmd --list-all-zones

查看默认区域

firewall-cmd --get-default-zone

查看网络接口使用区域

firewall-cmd --get-active-zones

查看默认的可用服务

firewall-cmd --get-services

要启用或禁用HTTP服务

firewall-cmd --zone=public --add-service=http --permanent

firewall-cmd --zone=public --remove-service=http --permanent

提示
可以根据自己的需求更改设置
accept 允许
reject 拒绝 drop 拒绝

–add-rich-rule 添加设置
–remove-rich-rule 移除设置
–permanent 永久生效, 需要重新载入后生效

其他参考

firewall-cmd --list-all-zones    #查看所有的zone信息

firewall-cmd --get-default-zone     #查看默认zone是哪一个

firewall-cmd --zone=internal --change-zone=p3p1  #临时修改接口p3p1所属的zone为internal

firewall-cmd --add-service=http    #暂时开放http

firewall-cmd --permanent --add-service=http  #永久开放http

firewall-cmd --zone=public --add-port=80/tcp --permanent  #在public中永久开放80端口

firewall-cmd --permanent --zone=public --remove-service=ssh   #从public zone中移除服务

firewall-cmd --reload   #重新加载配置

systemctl restart firewalld    #重启firewalld服务,使配置生效/可查