linux防火墙
一、概述
防火墙(Firewall),也称防护墙,是由Check Point创立者Gil Shwed于1993年发明并引入国际互联网(US5606668(A)1993-12-15)。它是一种位于内部网络与外部网络之间的网络安全系统。一项信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。
firewalld 域
- home(家庭):用于家庭网络,仅接受dhcpv6-client、ipp-client、mdns、samba-client、ssh服务
- internal(内部):用于内部网络,仅接受dhcpv6-client、ipp-client、mdns、samba-client、ssh服务
- public(公共):用于公共区域使用,仅接受dhcpv6-client、ssh服务
- trusted(信任):接受所有网络连接
- work(工作):用于工作区,仅接受dhcpv6-client、ipp-client、ssh服务
- block(限制):拒绝所有网络连接
- dmz(非军事区):仅接受ssh服务连接
- drop(丢弃):任何接收的网络数据包都被丢弃,没有任何回复
- external(外部):出去的ipv4网络连接通过此区域伪装和转发,仅接受ssh服务连接
二、防火墙相关命令
- systemctl start firewalld #打开防火墙
- systemctl status firewalld #查看防火墙状态
- firewall-cmd --state #查看防火墙状态
- firewall-cmd --get-active-zones #查看active域
- firewall-cmd --get-default-zone #查看default域
- firewall-cmd --get-zones #查看所有域
- firewall-cmd --zone=public --list-all #查看public域的详细信息
- firewall-cmd --get-services #查看防火墙服务
- firewall-cmd --set-default-zone=trusted #更改默认域为trusted域
- firewall-cmd --get-default-zone #查看默认域
- firewall-config #打开防火墙图形界面
三、简单配置
1、接口访问控制
此时和eth0网卡处于同一网段的主机是ping不同eth0ip的
2、端口访问控制
此时8080端口允许通过流量数据
3、禁止172.25.254.1主机连接、
4、--reload和--complete-reload的区别
--complate-reload会中断防火墙更改后不允许的服务,而--reload则不会强制中断。
四、高级规则配置
访问控制
3个表,5个链
- filter:经过本机内核的数据,input,forward,ouput
- nat:不经过本机内核的数据,input,ouput,prerouting,postrouting
- mangle:所有经过主机上的数据,prerouting,input,forward,ouput,postrouting
Direct Rules
1、只允许172.25.254.1主机访问本机
2、IP转发
3、内核路由
4、rich rules
通过“ rich language” 语法 , 可以用比直接接口方式更易理解的方法建立复杂防火墙规则。此外 , 还能永久保留设置。这种语言使用关键词值 , 是 iptables 工具的抽象表示。
- man firewalld.richlanguage命令查看详细使用规则
五、Iptables命令管理
一、基本命令
- iptables -nL ##默认为filter表
- iptables -nL -t nat ##显示nat表
- iptables -nL -t mangle ##显示mangle表,备用
表格规则
- iptables -A INPUT -s 172.25.254.101 -j REJECT ##添加
- iptables -D INPUT 6 ##删除INPUT链的第6条
- iptables -I INPUT 1 -s 172.25.254.100 -j REJECT ##插入至第1条
- iptables -R INPUT 1 -j ACCEPT ##将INPUT第1条规则改为ACCEPT
- iptables -F ##清空iptables表中数据
- service iptables save #保存到文件
- iptables -P FORWARD DROP ##将FORWARD链规则改为DROP,-P更改默认规则
- iptables -N redhat ##新建redhat自定义链
- iptables -E redhat REDHAt ##修改自定义链的名称
- iptables -X REDHAt ##删除自定义链
二、ip转发
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-dest 172.25.254.1
三、内核路由
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 172.25.0.101
当有从eth0进入的prerouting流量,修改源地址修改为172.25.254.101,通常用于其他主机的翻墙。不同网段的ip通信。