防火墙 防火墙:动态防火墙后台程序FireWalld提供了一个动态管理防火墙,来支持网络的zones,以分配对一个网络及相关连接和界面一定程度的信任;它支持以太网桥,并有分离运行时间和永久行配置选择。 防火墙的域: 1.trusted:允许所有的数据包 2.block:拒绝所有网络连接 3.public:用于公共区域使用,仅接受dhcpv6-client,ssh服务 4.dmz:仅接受ssh服务连接 5.drop:任何接受的网络数据包都被丢弃,没有任何恢复 防火墙:企业7版本用firewalld 一.图形化配置防火墙: firewall-config 二.使用命令配置防火墙 命令: 1. systemctl start firewalld 打开防火墙 2. firewall-cmd --state 查看防火墙状态 3. firewall-cmd --get-active-zones 查看正在使用的域 4. firewall-cmd --get-default-zone 查看默认域是哪个 5. firewall-cmd --get-zones 查看 6. firewall-cmd --zone=public --list-all 查看public域的信息 7. firewall-cmd --get-services 查看域的所有服务 8. firewall-cmd --list-all-zones 查看所有的域 9. firewall-cmd --set-default-zone=dmz 将默认域改为dmz 10.firewall-cmd --remove-interface=eth1 删除eth1网卡 1. systemctl start firewalld 打开防火墙 2.firewall-cmd --stat查看防火墙状态 3. firewall-cmd --get-active-zones 查看正在使用的域 4. firewall-cmd --get-default-zone 查看默认域是哪个 5. firewall-cmd --get-zones 查看 6. firewall-cmd --zone=public --list-all 查看public域的信息 7. firewall-cmd --get-services 查看域的所有服务 8. firewall-cmd --list-all-zones 查看所有的域 9. firewall-cmd --set-default-zone=dmz 将默认域改为dmz 10.firewall-cmd --zone=trusted --add-source=172.25.254.107 将107主机添加进trusted域 11.firewall-cmd --zone=trused --remove-source=172.25.254.107 将107从trusted域移出 12.firewall-cmd --add-interface=eth1 添加eth1网卡 firewall-cmd --remove-interface=eth1 删除eth1网卡 三.接口控制访问不同域: 1.eth0IP:172.25.254.107 eth1IP:172.25.71.107 2.将eth0和eth1两个网卡都加在public域: 两块网卡都可ping通: 将eth1网卡从public域移出,加入block域,eth1会ping不通: 移出: 加入block域: rth1网卡ping不通: 四.添加端口:(默认端口为80,改为8080)可以改配置文件,也可以通过命令修改 1)通过配置文件修改: 1.firewall-cmd --list-all 查看默认域详细信息 2.firewall-cmd --add-service=http 添加http服务 3.vim /etc/httpd/conf/httpd.conf 编辑配置文件更改端口 内容: Listen 8080 将默认端口改为8080 4.systemctl restart httpd 重启服务 5.vim /use/lib/firewalld/services/http.xml 更改http端口 测试:在浏览器输入:http://172.25.254.107:8080 可以访问 2)通过命令修改: 1.firewall-cmd --set-default-zone=public 更改默认域为public2.firewall-cmd --list-all 查看默认域详细信息 3.firewall-cmd --add-service=http 添加http服务4.firewall-cmd --list-all 查看默认域详细信息8.firewall-cmd --add-port=8080/tcp 更改端口9.firewall-cmd --list-all 查看端口 测试:在浏览器输入:http://172.25.254.107:8080 可以访问 五.firewall-cmd --reload与firewall-cmd --complete-reload 1.firewall-cmd --permanent --remove-service=ssh 删除ssh服务2.firewall-cmd --reload 刷新,当前正在使用的服务不会断 测试:ssh root@172.25.254.107 连不上 1.firewall-cmd --complete-reload 刷新,当前正在使用的服务会断 测试:ssh root@172.25.254.107 连不上 六.Iptables命令管理 内核的3张表,5条列 filter表:经本机内核的数据:input,forward,ouput nat表:不经过本机内核的数据:input,ouput,prerouting,postrouting mangel表:所有经过主机的数据:input,forward,ouput,prerouting,postrouting 1.显示内核三张表信息 iptables -nL 默认为filter表 Direct Rules 详细规则 1.firewall-cmd --direct --add-rule ipv4 filter INPUT 2 -p tcp --dport 8080 -s 172.25.254.71 -j ACCEPT 允许71访问 测试:ssh root@172.25.254.107 可以连接 -p:类型 -s:转化成 -j:有三种: ACCEPT(接收),REJUCT(拒绝),DROP(丢弃) Rich Rules 高级规则 伪装:在路由前 1.firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.207 目的地转化到207 2.firewall-cmd --add-masquerade 打开伪装功能 测试:ssh root@172.25.254.107 会连接207 查看内核路由功能是否打开: 1. sysctl -a | grep ip_forward net.ipv4.ip_forward = 1 1表示打开,0表示没打开 2.vim /etc/sysctl.conf 编辑配置文件打开内核路由功能 七.端口转换: 服务端: 1.firewall-cmd --permanent --change-interface=eth1 --zone=public 将eth1端口加入域 2.systemctl restart firewalld 重启防火墙 3.firewall-cmd --add-masquerade 打开伪装功能 4. ifconfig 查看网卡和IP 客户端: 1.更改ip为:172.25.254.207,网关为:172.25.254.107 2.ping 172.25.71.107 可以ping通 八.企业7之前用:iptables 1.管理命令: 1.systemctl stop firewalld 关闭firewalld 2.systemctl mask firewalld 冻结firewalld 3.yum search iptables 查找iptables软件包 4.yum install iptables-services.x86_64 -y 安装软件 5.systemctl start iptables.service 打开软件 6.systemctl enable iptables.service 设置开机打开 7.iptables -nL 列出信息-n不做解析 8.iptables -t nat -nL 查看nat表 9.iptables -t mangle -nL 查看mangle表 2.制定策略:制定规则从前往后逐渐收缩:服务端 1.iptables -A INPUT -p tcp --dport 22 -j ACCEPT 允许所有访问ssh 2.iptables -A INPUT -s 172.25.254.107 -p tcp --dport 80 -j ACCEPT 允许107访问http 3.iptables -A INPUT ! -s 172.25.252.107 -p tcp --dport 53 -j REJECT 除了107访问dns全部拒绝 !:除了 REJECT:拒绝 4.iptables -A INPUT -j REJECT 全部拒绝 5.service iptables save 保存当前 3.地址转发:(207) 1.sysctl -a | grep ip_forward 查看内核路由功能状态 2.vim /etc/sysctl.conf 编辑配置文件 内容: net.ipv4.ip_forward = 1 打开内核路由功能 3.iptables -t nat -nL 查看nat表 4.iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 172.25.254.207 连接107转化到207上 -i:进来时转化到107 5. iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.0.107 207看到的ip为0.107 -o:出去时转化到172.25.0.107上 测试:ssh root@172.25.254.107 连接107会转化到207上,207看到的IP为172.25.0.107