一、Firewalld
1..启动服务
systemctl start firewalld
firewall-config ##打开图形管理界面
图示:图形管理界面
Configuration 的设置有两种:permanent 永久设定
Runtime 临时设定,设定临时后需(reload),重新加载
示例:永久添加http服务到public
[root@localhost ~]# vim /etc/firewalld/zones/public.xml
ZONE:【一般默认public】
Trusted(信任):可接受所有的网络连接
Home(家庭):用于家庭网络,仅接受ssh、mdns、ipp-client、或dhcpv6-client服务连接
Inter(内部):用于内部网络,仅接受ssh、mdns、ipp-client、或dhcpv6-client服务连接
Work(工作):用于工作区,仅接受ssh、ipp-client、或dhcpv6-client服务连接
Public(公共):在公共区域内使用,仅接受ssh或dhcpv6-client赴俄u连接,为firewalld的默认区域
Enternal(外部):出去的ipv4网络连接通过此区域伪装和转发,仅接受ssh服务连接
Dmz(非军事区):仅接受ssh服务连接
Block(限制):拒绝所有网络连接
Drop(丢弃):任何接收的网络数据包被丢弃,没有任何恢复
内容:
Services ##firewalld提供的服务
Ports ##端口
Masquerading ##伪装
Port forwarding ##端口转发
Interfaces ##接口
Sources ##指定源地址
2..基本参数的设定
查看firewall当前状态
查看当前活动的工作区域
查看当前默认的工作区域
查看所拥有的工作区域
查看所有可设置的服务
查看当前默认区域的内容
查看指定的trusted区的内容
设置默认区域为trusted
永久添加可接收数据包来源,需要重新加载
永久移除可接收数据包来源
永久在trusted区域添加数据包来源
移除
在trusted区域添加eth0接口
在默认区添加可访问端口8080,协议为tcp
移除8080端口
Firewall-cmd --reload (执行明快ing为永久的时候,每次执行完徐重新加载,不然命令不会生效。如果向取消可以执行--complete-reload)
3.direct参数设定
查看当前国有的direct rules
添加direct rules,设置为ipv4,在filter表中第一条,60主机可以访问,访问端口22,协议tcp
4.伪装和端口转发
开启伪装
添加伪装
测试伪装:用ssh去连接60主机,用(w -i)查看登陆历史,显示的是121主机IP,伪装成功
端口转发(不转发之前不能连接)
测试:用1虚拟机访问60主机,查看是IP为121主机进行访问
注意:
/usr/lib/firewalld/services 中存放了firewalld策略可以添加的服务,都以xml格式存在
二、IPTABLES 【防火墙的管理工具】
实验前需要关闭firewalld,得到一个纯净的环境
安装iptables
开启iptables服务
iptables -F##刷新策略
iptables -t ##指定列表,默认filter
iptables -I INPUT 2 -p tcp --dport 23 -j DROP:插入到第二条策略
iptables -E allowed disallowed:修改规则链名称
iptables -D INPUT 3:删除filter表中的第三条规则
iptables -R INPUT 3 -j ACCEPT:将原来编号为3的规则内容替换为-j
iptables -P INPUT DROP: 设置filter表INPUT链的默认规则 ,当数据包没
有被规则列表里的任何规则匹配到时,按此默认规则处理
iptables -t nat -nL:查看nat策略
iptables -t nat -L PREROUTING:查看nat表PREROUTING链的规则
iptables
iptables
iptables
iptables
有4可以连接
-N redhat:添加自定义链名
-D redhat 1:删除自定义链下的策略
-X redhat:删除自定义链
-A INPUT -s !192.168.0.4 -p tcp --dport 23 -j REJECT:只
-i eth0:匹配从网络接口 eth0 进来
-o eth0:匹配从网络接口 eth0 出去
-s 192.168.0.1:匹配来自 192.168.0.1 的数据包
-d 202.106.0.0/16 匹配去往 202.106.0.0/16 网络的数据包
1.部分示例:
查看filter表中的策略
刷新filter表中的策略
保存之前的策略到kelnel
Iptables -A INPUT -i lo -j ACCPET ##允许lo访问
Iptables -A INPUT -P tcp -dporp 22 -j ACCPET ##允许访问22端口
Iptables -A INPUT -s 172.25.254.60 -j ACCPET ##允许60主机访问所有
Iptables -A INPUT -j REJECT ##拒绝所有
Iptables -nL | cat -b ##在执行cat时加行号
插入到第2条策略
删除INPUT链的第三条策略
修改INPUT中的第二条策略
把INPUT的policy由之前默认ACCEPT修改为DROP
2..标识策略:
Iptables -A INPUT -m state --state NEW -i lo -j ACCEPT ##检测第一次使用lo用户访问,访问成功后可以直接允许访问
Iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT ##检测第一次使用端口22访问,访问成功后可以直接允许访问
Iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
Iptables -A INPUT -j REJECT ##除以上条件的全部拒绝
3.NAT的设置
SNAT:改变转发数据包的源地址 --to-source:
DNAT:改变转发数据包的目的地址 --to-dest:
Iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.121 ##改变转发数据包的目的地址为172.25.254.121
Iptables -t nat -A POSTROUTING -i eth0 -d 172.25.254.121 -j DNAT --to-dest 172.25.0.1 ##改变转发数据包的源地址为172.25.0.1
本文转自 無緣 51CTO博客,原文链接:http://blog.51cto.com/13352594/2048137