在防火墙上放行端口111-udp/tcp、892-tcp/udp 20048 tcp/udp就可以;
[root@nfs ~]# firewall-cmd --zone=public --add-port=892/tcp --permanent(这个参数指定配置永久生效)
success
[root@nfs ~]# firewall-cmd --zone=public --add-port=111/udp --permanent success
firewall-cmd --zone=public --add-port=20048/udp --permanent
[root@nfs ~]# firewall-cmd --reload success [root@nfs ~]# firewall-cmd --zone=public --list-ports 892/tcp 111/udp
在RHEL7系统中,firewalld防火墙取代了iptables防火墙。我们都知道iptables的防火墙策略是交由内核层面的netfilter网络过滤器来处理的
,而firewalld则是交由内核层面的nftables包过滤框架来处理。
查看区域设置,默认public zone,--zone 指定zone的名字
firewall-cmd --list-all # 查看区域设置
firewall-cmd --zone=external --list-all
查看预定义zone
firewall-cmd --get-zones
设定默认区域:
firewall-cmd --set-default=zonename
查看已支持的服务:
firewall-cmd --zone=external --list-services
禁掉某个服务:
sudo firewall-cmd --permanent --zone=external --remove-service=ftp
既可以以service的方式管理,也可以以port的方式管理
配置白名单,ip地址集。也不只是白名单,就是想应用的ip地址集:
/etc/firewalld/ipsets/
查看ipset帮助文档:
man firewalld.ipset
This example configuration file shows the structure of an ipset configuration file:
<?xml version="1.0" encoding="utf-8"?>
<ipset type="hash:ip">
<short>My Ipset</short>
<description>description</description>
<entry>1.2.3.4</entry>
<entry>1.2.3.5</entry>
<entry>1.2.3.6</entry>
</ipset>
比如创建一个ip地址集:
cat /etc/firewalld/ipsets/white-list.xml
<?xml version="1.0" encoding="utf-8"?>
<ipset type="hash:ip">
<short>test env white list</short>
<description>description</description>
<entry>192.168.102</entry>
<entry>192.168.10</entry>
</ipset>
将地址集应用到规则
firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source ipset="white-list" accept'
firewall-cmd --reload
查看地址集白名单列表:
firewall-cmd --permanent --ipset=white-list --get-entries
新增,删除IP地址
firewall-cmd --permanent --ipset= --add-entry="192.168.81.190"
firewall-cmd --permanent --ipset= --remove-entry="192.168.81.190"
firewall-cmd --reload
注:此方法新增,删除是ipset配置文件配置项
清除或删除ipset
清除ipset的xml配置文件信息
firewall-cmd --permanent --delete-ipset=white-list
清除ipset list信息
ipset destroy white-list
5、查看ipset信息
1)查看ipset名称
firewall-cmd --get-ipsets
2)查看ipset详细信息
firewall-cmd --info-ipset white-list
白名单:
使mysql服务的3306端口只允许192.168.1.1/24网段的服务器能访问
#添加规则
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.1/24" port protocol="tcp" port="3306" accept"
#reload使生效
firewall-cmd --reload
IP 列表逐一加入 trusted 区域,使用命令如下:
$ firewall-cmd --permanent --zone=trusted --add-source=173.245.48.0/20
$ firewall-cmd --permanent --zone=trusted --add-source=131.0.72.0/22
使 trusted 区域设置生效,使用命令如下:
$ firewall-cmd --reload
确认 trusted 区域是否设置正确,使用命令如下:
$ firewall-cmd --zone=trusted --list-all
返回:
trusted (active)
target: ACCEPT
icmp-block-inversion: no
interfaces:
sources: 173.245.48.0/20 …… 131.0.72.0/22
services:
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
因为此时已经设置了 trusted 区域,所以还需要切换默认区域从 public 到 drop,以达到无视所有接入连接的目的。使用命令如下:
$ firewall-cmd --set-default-zone=drop
再将默认网卡 eth0 分配给 drop 区域,使用命令如下:
$ firewall-cmd --permanent --zone=drop --change-interface=eth0
使白名单最终生效,使用命令如下(注意:请再次确认你的所有 IP 都加入了 trusted 区域):
$ firewall-cmd --reload
至此,白名单设置正式生效。
网段表示规则
10.0.0.0/8 10.0.0.0-10.255.255.255
172.16.0.0/16 172.16.0.0-172.16.255.255
192.168.0.0/16 192.168.0.0-192.168.255.255
176.1.1.0/24 176.1.1.1-176.1.1.254
180.166.0.0/16 180.166.0.0-180.166.255.255
187.187.0.0/16 180.187.0.0-180.187.255.255
188.188.0.0/16 188.188.0.0-188.188.255.255
188.189.0.0/16 188.189.0.0-188.189.255.255
188.190.0.0/16 188.190.0.0-188.190.255.255
190.190.0.0/24 190.190.0.0.1-190.190.0.254
193.0.0.0/8 193.0.0.0-193.255.255.255
194.0.0.0/8 194.0.0.0-194.255.255.255
200.188.0.0/16 200.188.0.0-200.188.255.255
200.190.0.0/16 200.190.0.0-200.190.255.255
iptables:
原文:https://www.cnblogs.com/alimac/p/5848372.html
linux下IPTABLES配置详解
-A RH-Firewall-1-INPUT -s 121.10.120.24 -p tcp -m tcp --dport 18612 -j ACCEPT
Chain INPUT (policy ACCEPT)
target prot opt source destination
target prot opt source destination
target prot opt source destination
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0
ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
可以看出我在安装linux时,选择了有防火墙,并且开放了22,80,25端口.
Chain INPUT (policy ACCEPT)
target prot opt source destination
target prot opt source destination
target prot opt source destination
[root@tp ~]# iptables -X 清除预设表filter中使用者自定链中的规则
Chain INPUT (policy ACCEPT)
target prot opt source destination
target prot opt source destination
target prot opt source destination
[root@tp ~]# iptables -A INPUT -p tcp --dport 25 -j ACCEPT 如果做了FTP服务器,开启21端口
IPTABLES -A OUTPUT -o lo -p all -j ACCEPT(如果是OUTPUT DROP)
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
target prot opt source destination
SNAT all -- 192.168.0.0/24 anywhere to:211.101.46.235
target prot opt source destination
[root@tp sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP
[root@tp sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP 如果我们想,比如阻止MSN,QQ,BT等的话,需要找到它们所用的端口或者IP,(个人认为没有太大必要)
[root@tp ~]# iptables -A INPUT -m state --state INVALID -j DROP
[root@tp ~]# iptables -A OUTPUT -m state --state INVALID -j DROP
[root@tp ~]# iptables-A FORWARD -m state --state INVALID -j DROP 允许所有已经建立的和相关的连接
[root@tp ~]# iptables-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@tp ~]# iptables-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@tp ~]# /etc/rc.d/init.d/iptables save
这样就可以写到/etc/sysconfig/iptables文件里了.写入后记得把防火墙重起一下,才能起作用.
[root@tp ~]# service iptables restart
别忘了保存,不行就写一部保存一次.你可以一边保存,一边做实验,看看是否达到你的要求,1、防火墙分类
①包过滤防火墙(pack filtering)在网络层对数据包进行选择过滤,采用访问控制列表(Access control table-ACL)检查数据流的源地址,目的地址,源和目的端口,IP等信息。
②代理服务器型防火墙
2、iptables基础
①规则(rules):网络管理员预定义的条件
②链(chains): 是数据包传播的路径
③表(tables):内置3个表filter表,nat表,mangle表分别用于实现包过滤网络地址转换和包重构的功能
④filter表是系统默认的,INPUT表(进入的包),FORWORD(转发的包),OUTPUT(处理本地生成的包),filter表只能对包进行授受和丢弃的操作。
⑤nat表(网络地址转换),PREROUTING(修改即将到来的数据包),OUTPUT(修改在路由之前本地生成的数据包),POSTROUTING(修改即将出去的数据包)
⑥mangle表,PREROUTING,OUTPUT,FORWORD,POSTROUTING,INPUT
3、其它
iptables是按照顺序读取规则
防火墙规则的配置建议
Ⅰ 规则力求简单
Ⅱ 规则的顺序很重要
Ⅲ 尽量优化规则
Ⅳ 做好笔记
二、配置
1、iptables命令格式
iptables [-t 表] -命令 匹配 操作 (大小写敏感)
动作选项
ACCEPT 接收数据包
DROP 丢弃数据包
REDIRECT 将数据包重新转向到本机或另一台主机的某一个端口,通常功能实现透明代理或对外开放内网的某些服务
SNAT 源地址转换
DNAT 目的地址转换
MASQUERADE IP伪装
LOG 日志功能
2、定义规则
①先拒绝所有的数据包,然后再允许需要的数据包
iptalbes -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
②查看nat表所有链的规则列表
iptables -t nat -L
③增加,插入,删除和替换规则
iptables [-t 表名] <-A|I|D|R> 链名 [规则编号] [-i|o 网卡名称] [-p 协议类型] [-s 源ip|源子网] [--sport 源端口号] [-d 目的IP|目标子网] [--dport 目标端口号] [-j 动作]
参数:-A 增加
-I 插入
-D 删除
-R 替换
三、例子
①iptables -t filter -A INPUT -s 192.168.1.5 -i eth0 -j DROP
禁止IP为192.168.1.5的主机从eth0访问本机②iptables -t filter -I INPUT 2 -s 192.168.5.0/24 -p tcp --dport 80 -j DROP
禁止子网192.168.5.0访问web服务③iptables -t filter -I INPUT 2 -s 192.168.7.9 -p tcp --dport ftp -j DROP
禁止IP为192.168.7.9访问FTP服务
④iptables -t filter -L INPUT
查看filter表中INPUT链的规则
⑤iptables -t nat -F
删除nat表中的所有规则
⑥iptables -I FORWARD -d wwww.playboy.com -j DROP
禁止访问 www.playboy.com网站
⑦iptables -I FORWARD -s 192.168.5.23 -j DROP
禁止192.168.5.23上网