input,output,forward,postrouting,prerouting firewall的图形管理 firewall-config 运行该命令进入以下界面
该图分别对应firewalld的域,默认只有ssh与dhcpv6-client可以被火墙允许。 使用ssh命令远程连接172.25.254.142 ssh root@172.25.254.142(可以连接,因为ssh在firewalld的默认域中)
在网页中查看172.25.254.142的默认发布文件无法查看(apache不在firewalld的默认域中) 修改域至trustd域,并添加http至trustd域中再次使用http查看文件
firewall-cmd --state 获取firewalld状态 firewall-cmd --reload重新加载防火墙 firewall-cmd --get-zones获取支持的区域列表 firewall-cmd --get-services获取支持的服务 firewall-cmd --get-icmptypes 获取所有支持的ICMP类型 firewall-cmd --list-all-zones 列出全部启用的区域特性 firewall-cmd [--zone=] --list-all firewall-cmd --list-all 显示默认区域的信息 firewall-cmd -zone=public --list-all列出public域启动的特性 firewall-cmd --set-default-zone=drop设置默认区域 firewall-cmd --get-active-zones 获取活动的区域 firewall-cmd --get-zone-of-interface=接口名 输出接口所属区域的名称 firewall-cmd --get [--zone=] -add-interface=接口名 将接口(网卡)增加到区域,若接口不属于任何区域,接口将被增加到区域,如果区域被省略,将使用默认区域。重新加载后接口便可以使用了。 firewall-cmd --change-interface=接口名 修改接口所属区域 firewall-cmd --zone=internal --add-source=172.25.254.42 添加172.25.254.42的服务到internal区域中 firewall-cmd --zone=internal --remove-source=172.25.254.42 从internal区域移除172.25.254.42的数据 firewall-cmd --zone=trusted --add-interface=eth0添加接口eth0至trusted区域 firewall-cmd --zone=trusted --change-interface=eth0 修改接口eth0至trusted区域 firewall-cmd --reload重新加载服务,不会断开客户机的连接 firewall-cmd --complete reload 重新加载服务,断开所有客户机的连接服务器有两块网卡,一个ip为172.25.254.142,一个为1.1.1.142
服务器安装httpd并开启服务,编辑默认发布文件 默认发布文件的信息 客户机1(ip为172.25.254.42)无法访问服务器的发布文件
对来自172.25.254.42的数据默认都为trusted区域中 客户机1再次访问服务器 在客户机2(ip为1.1.1.242)的主机中访问服务器无法访问
因为服务器的eth1网卡在公共区域
修改eth1为信任区域 再次访问服务器 修改ssh的端口
cd /lib/firewalld/services 进入该目录(该目录存放各个服务的信息) vim ssh.xml编辑ssh服务的信息(修改端口为23) firewall-cmd --reload重新加载防火墙 firewall-cmd --list-service 查看火墙允许的服务可以看到服务器中火墙允许ssh服务运行 查看ssh.xml的文件信息,可以看到其端口号被修改为了23 在ip为172.25.254.42的主机上连接服务器发现无法连接(线路不可达,端口号被修改) 并 还原ssh.xml的文件端口号并重启服务 firewall-cmd --reload 再次连接服务器,发现可以连接 如何指定特定的域去访问服务器 去除服务器的默认域中的ssh服务 然后添加rule来只允许172.25.254.42的ip去访问服务器
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.42 -p tcp --dport 22 -j ACCEPT 1 表示优先级 -s 172.25.254.42表示来源为172.25.254.42 -p tcp表示使用tcp协议 --dport 22 表示目的端口为22 -j ACCEPT 表示采取的行动为‘ACCEPT’查看规则 firewall-cmd --direct --get-all-rules 查看所有制定的规则 使用ip为172.25.254.42的机器使用ssh登陆服务器可以登陆 使用ip为172.25.254.242的机器使用ssh登录服务器不可以访问 删除规则 firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -s 172.25.254.42 -p tcp --dport 22 -j ACCEPT 再次使用ip为172.25.254.42的机器登陆服务器无法登录 添加规则除172.25.254.42的机器外,其余机器都可以使用22端口 firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.42 -p tcp --dport 22 -j ACCEPT ! 172.25.254.42表示除172.25.254.42以外的机器 使用ip为172.25.254.42的机器ssh连接服务器无法连接 使用ip为172.25.254.242的机器使用ssh访问服务器可以访问 如何连接到自己想要访问的主机 服务机开启地址伪装服务
给客户机添加网关 使得客户机可以域服务机建立连接 使用另一台主机的ssh服务连接客户机 查看ip
iptables管理火墙 在filter表中先添加允许接受来自172.25.254.42的数据,在拒绝来自172.25.254.42的数据,可以发现依旧可以在ip为172.25.254.42的主机使用ssh连接服务器
iptables -t filter -A INPUT -s 172.25.254.42 -j ACCEPT 允许接受来自主机为172.25.254.42的数据 iptables -t filter -A INPUT -s 172.25.254.42 -j REJECT 拒绝接受来自主机为172.25.254.42的数据可以连接服务器
删除策略
iptables -D INPUT 3 删除INPUT链中的第三个策略只接受来自主机172.25.254.42的22端口的数据,其它来自172.25.254.42的数据都不接受
iptables -t filter -A INPUT -s 172.25.254.42 -p tcp --dport 22 -j ACCEPT修改默认策略为DROP
iptables -P INPUT DROPip为172.25.254.42的主机可以通过ssh连接服务机 但服务器无法访问该主机的http默认发布文件
iptables -N aicheng 添加新链aichengiptables -E aicheng aining 修改链名aicheng为aining iptables -X aining删除链aining 地址伪装与端口转发 地址伪装 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-dest 1.1.1.242:22 接受所有来自eth0网卡22号端口的目的地全部指向1.1.1.242的22端口 解释:当外网来访问内网时(已知),由于不再同一个网段,需要先到相同ip的网卡eth0.到达eth0后,eth0则可以加入策略直接让其访问目的地。(不需要经过路由转换) 端口转发 iptables -t nat -A POSTEROUTING -o eth0 -j SNAT --to-source 172.25.254.142 所有从出去的数据全部使用172.25.254.142的端口号 解释:当我们访问外网时,也不再同一个网段,我们需要通过eth0来将自己的网段与访问的外网ip网段相同,及将所有来自eth0的来源数据都改为172.25.254.142(与我们访问的外网网段相同,需要经过路由转换)
可以看到使用ssh命令连接172.25.254.142,查看ip可以看到ip为1.1.1.142。