网卡配置
配置文件
/etc/sysconfig/network-script/ifcfg-xxxxxxx
配置文件内容如下(核心内容)
TYPE=Ethernet
IPADDR=10.109.11.22
NETMASK=255.255.255.0
ONBOOT=yes
nmtui(尼玛tui)
简单好用
防火墙
- 目前iptables与firewalld并存于RHEL7,两者采用的内核服务不同,但是实现的功能相同。
iptables
iptables通过对五个不同处理位置的配置,每个位置的不同策略构成了规则链(之所以称为规则链,在我看来是因为链的线性结构,需要从头遍历到尾)不同的位置的规则链构成了规则表,也就是为什么命令叫iptables,tables就是表,又因为五个位置互不干涉,所以当请求到位置一则遍历一的规则链,到了三则遍历三的规则链,在每个规则链上,如果有符合的策略则根据策略的要求对数据进行处理,如果没有匹配上,则执行默认规则,允许,拒绝等。
规则的分类
- ACCEPT 允许
- REJECT 拒绝(告诉来请求的客户机,不允许访问)、
- LOG 登记(允许通过,但是会记录下来)
- DROP 丢弃(不处理请求,也不回应)
iptables配置的五个位置
- 在进行路由选择前处理数据包(PREROUTING);
- 处理流入的数据包(INPUT);
- 处理流出的数据包(OUTPUT);
- 处理转发的数据包(FORWARD);
- 在进行路由选择后处理数据包(POSTROUTING)。
常用的就是INPUT
iptables命令用法
参数 | 作用 |
---|---|
-P | (public 公共的策略)设置默认策略,默认拒绝只能是DROP |
-F | (flush)清空规则链 |
-L | (list)查看规则链 |
-A | (add增加一般都在后面)在规则链的末尾加入新规则 |
-I num | (insert 插入一般都在前面)在规则链的头部加入新规则 |
-D num | (delete)删除某一条规则 |
-s | (source)匹配来源地址IP/MASK,加叹号“!”表示除这个IP外 |
-d | (deriction)匹配目标地址 |
-i | (in interface)网卡名称 匹配从这块网卡流入的数据 |
-o | (out interface)网卡名称 匹配从这块网卡流出的数据 |
-p | (protocol)匹配协议,如TCP、UDP、ICMP |
–dport num | (derection port)匹配目标端口号 |
–sport num | (source port)匹配来源端口号 |
-j | 哪个位置 |
service iptables save 路由永久生效
- 一台新的服务器,可以先清空策略设置默认拒绝
iptables -F -- 清空路由表
iptables -P DROP -- 默认拒绝
- 增加新的策略,根据重要性添加,越重要的越靠前
例如只允许某台内网服务器访问本地的1521和88,其他的都不允许访问
iptables -I INPUT -s 192.168.10.2 -p tcp --dport 1521 -j ACCEPT
iptables -I INPUT -s 192.168.10.2 -p tcp --dport 88 -j ACCEPT
- 保存策略
service iptables save
书上写着iptables -A INPUT -p tcp --dport 1521(88)-j ACCEPT,是基于默认是DROP
Firewalld
可以维护多个区域,所谓区域就是多套策略,每套策略有默认的一些规则,用户可以基于该规则进行规则调整或更详细的配置,配置内容类似于iptables,同时多套策略可根据情况随时切换,切换的意思就是把网卡绑定到不同的策略上,更改后后需要重新加载。
以上涉及到几个知识点
- 多套策略(区域)及默认的规则
区域 | 默认规则策略 |
---|---|
trusted | 允许所有的数据包 |
home | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量 |
internal | 等同于home区域 |
work | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量 |
public | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量 |
external | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量 |
dmz | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量 |
block | 拒绝流入的流量,除非与流出的流量相关 |
drop | 拒绝流入的流量,除非与流出的流量相关 |
- 规则调整
firewalld-cmd --zone=public --add-service=https
firewalld-cmd --zone=public --remove-service=https - 更详细的配置
firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10 - 切换
firewall-cmd --permanent --zone=external --change-interface=eno16777728
firewall-cmd --zone=external --change-interface=eno16777728 - 重新加载
firewall-cmd --reload
参数 | 作用 |
---|---|
–get-default-zone | 查询默认的区域名称 |
–set-default-zone=<区域名称> | 设置默认的区域,使其永久生效 |
–get-zones | 显示可用的区域 |
–get-services | 显示预先定义的服务 |
–get-active-zones | 显示当前正在使用的区域与网卡名称 |
–add-source= | 将源自此IP或子网的流量导向指定的区域 |
–remove-source= | 不再将源自此IP或子网的流量导向某个指定区域 |
–add-interface=<网卡名称> | 将源自该网卡的所有流量都导向某个指定区域 |
–change-interface=<网卡名称> | 将某个网卡与区域进行关联 |
–list-all | 显示当前区域的网卡配置参数、资源、端口以及服务等信息 |
–list-all-zones | 显示所有区域的网卡配置参数、资源、端口以及服务等信息 |
–add-service=<服务名> | 设置默认区域允许该服务的流量 |
–add-port=<端口号/协议> | 设置默认区域允许该端口的流量 |
–remove-service=<服务名> | 设置默认区域不再允许该服务的流量 |
–remove-port=<端口号/协议> | 设置默认区域不再允许该端口的流量 |
–reload | 让“永久生效”的配置规则立即生效,并覆盖当前的配置规则 |
–panic-on | 开启应急状况模式 |
–panic-off | 关闭应急状况模式 |
firewalld-config
和firewalld-cmd差不多,图形界面版本
iptables 与 firewalld对比
- iptables没有多套策略可以选择
- iptables的规则表类似于firewalld的一套策略
- 两者拥有四种规则,允许,拒绝,登记,抛弃,iptables置于命令最后
iptables -I INPUT -s 192.168.10.2 -p tcp --dport 1521 -j ACCEPT
firewalld配置在富规则里 - iptables有策略的作用位置之分,firewalld没有
- firewalld是先配置一个大致范围,再配置明细(富规则),iptables直接配置明细,iptables的配置更像是富规则的设置
- firewalld可以实现端口转发,iptables不能
- firewalld更容易实现SNAT,iptables不好实现
- firewalld有两种配置状态,permanent及running,配置时,最好都配置上,一个即时生效,一个重启生效,然后reload才能生效,iptables配置了再save就当时和重启都生效。
- firewalld可以通过firewall-cmd --panic-on 与 firewall-cmd --panic-off实现紧急的关闭网卡,与systemctl network stop效果不同
- 命令上的异同
作用 | iptables命令 | firewalld命令 |
---|---|---|
新增 | -I(-A) | –add-rich-rule |
删除 | -D | –remove-rich-rule |
目的端口号 | -dport | –add-port=<端口号/协议> |
源IP | -s | –add-source= |
查看当前策略 | iptables -L | –list-all |
服务 | -p | –add-service |
保存 | service iptables save | firewall-cmd --reload |
默认 | -P | –set-default-zone=<区域名称> |
- firewalld的富规则优先级最高,其他的不清楚