Centos 防火墙配置

今天翻了下有道笔记,发现 2-3 年以前还记了一些笔记,感觉有时候还用得着。所以整理一下,更新上来。实在是自己好久都没有写博文了。变懒了!!

Centos6 iptables

查看已开放端口

1
iptables -nL

添加 3306 端口入口允许

1
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

添加 3306 端口出口允许

1
iptables -I OUTPUT -p tcp  --sport 3306 -j ACCEPT

保存

1
service iptables save

查看打开的端口:

1
iptables status

重启:

1
service iptables restart

删除 OUTPUT 1 的规则

1
iptables -D OUTPUT 1

1、关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放。
下面是命令实现:

1
2
3
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

–dport 就是目标端口 当数据从外部进入服务器为目标端口
反之 数据从服务器出去 则为数据源端口 使用 –sport

-j 就是指定是 ACCEPT 接收 或者 DROP 不接收

禁止 192.168.1.2 的 IP 访问

1
iptables -A INPUT -p tcp -s 192.168.1.2 -j DROP

过滤无效的数据包
假设有人进入了服务器,或者有病毒木马程序,它可以通过 22,80 端口像服务器外传送数据。它的这种方式就和正常访问 22,80 端口区别。它发向外发的数据不是通过访问网页请求而回应的数据包。
下面要禁止这些没有通过请求回应的数据包,统统把它们堵住掉。
iptables 提供了一个参数 是检查状态的,下面来配置下 22 和 80 端口,防止无效的数据包。

1
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

可以看到和以前使用的:

1
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

多了一个状态判断。

参数详解
-t <表>:指定要操纵的表;
-A:向规则链中添加条目;
-D:从规则链中删除条目;
-i:向规则链中插入条目;
-R:替换规则链中的条目;
-L:显示规则链中已有的条目;
-F:清楚规则链中已有的条目;
-Z:清空规则链中的数据包计算器和字节计数器;
-N:创建新的用户自定义规则链;
-P:定义规则链中的默认目标;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型;
-s:指定要匹配的数据包源 ip 地址;
-j <目标>:指定要跳转的目标;
-i <网络接口>:指定数据包进入本机的网络接口;
-o <网络接口>:指定数据包要离开本机所使用的网络接口。


Centos7 Firewalld

关闭防火墙

1
systemctl stop firewalld.service

禁止 firewall 开机启动

1
systemctl disable firewalld.service        

开启访问 10050

1
firewall-cmd --zone=public --add-port=10050/tcp --permanent

命令含义:
–zone #作用域
–add-port=10050/tcp #添加端口,格式为:端口 / 通讯协议
–permanent #永久生效,没有此参数重启后失效

重启防火墙

1
firewall-cmd --reload

查看端口是否开启

1
firewall-cmd --query-port=10050/tcp

查看已开启的端口号

1
firewall-cmd --list-all

常用命令介绍
firewall-cmd –state ## 查看防火墙状态,是否是 running
firewall-cmd –reload ## 重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd –get-zones ## 列出支持的 zone
firewall-cmd –get-services ## 列出支持的服务,在列表中的服务是放行的
firewall-cmd –query-service ftp ## 查看 ftp 服务是否支持,返回 yes 或者 no
firewall-cmd –add-service=ftp ## 临时开放 ftp 服务
firewall-cmd –add-service=ftp –permanent ## 永久开放 ftp 服务
firewall-cmd –remove-service=ftp –permanent ## 永久移除 ftp 服务
firewall-cmd –remove-port=3000/tcp ## 临时移除 3000 端口
firewall-cmd –add-port=80/tcp –permanent ## 永久添加 80 端口
iptables -L -n ## 查看规则,这个命令是和 iptables 的相同的
man firewall-cmd ## 查看帮助