############启用firewalld##########
yum install -y firewalld firewall-config #安装防火墙和图形界面
systemctl start firewalld #启动防火墙
systemctl enable firewalld #开机自启动防火墙
systemctl disable firewalld #开机不自启防火墙
systemctl stop firewalld #关闭防火墙
##########使用命令行接口配置防火墙################
firewall-config #显示图形界面
firewall-cmd --state #显示防火墙状态
firewall-cmd --get-active-zones #显示正在运行
firewall-cmd --get-default-zone #显示当前默认环境
firewall-cmd --get-zones #显示所有存在的环境
firewall-cmd --zone=public --list-all #显示public环境里的信息
firewall-cmd --get-services #显示所有的服务
firewall-cmd --list-all-zones #显示所有环境中的信息
firewall-cmd --set-default-zone=dmz #更改dmz为默认域
##############防火墙更改IP 网卡#################################
在虚拟机desktop中进行测试:
真机:172.25.254.51
dektop中两块网卡:
eth0: 172.25.254.151
eth1: 192.168.0.151
server中一块网卡:
eth0: 192.168.0.251
前提:启动httpd服务
firewall-cmd --add(添加)-source=172.25.254.55 --zone=trusted #此时真机可以访问虚拟机desktop
firewall-cmd --remove(移除)-source=172.25.254.55 --zone=trusted #此时真机不可以访问虚拟机desktop
firewall-cmd --remove-interface=eth1 --zone=public #移除虚拟网卡eth1
firewall-cmd --list-all #查看eth1已经被移除
firewall-cmd --add-interface=eth1 --zone=trusted
#将eth1放到trusted域中 此时虚拟机server可以访问desktop而真机不能呢个访问desktop 访问方式是真机:172.25.254.151 server中输入 :192.168.0.151
firewall-cmd --list-all --zone=trusted #查看eth1已经添加到trusted中
firewall-cmd --change(另一种用来改变网卡位置的方法)-interface=eth1 --zone=public #将eth1添加到public中
firewall-cmd --list-all #查看添加成功
###############################################################
火墙访问的数据:cd /usr/lib/firewalld
火墙访问的策略:cd /etc/firewalld/zones
–complete reload:刷新火墙状态,会断开连接
–reload:刷新火墙状态
–permanent
等同于 cd /usr/lib/firewalld/services 中写 服务名.xml文件
firewall-cmd --list-services #显示所允许的服务
firewall-cmd --get-services #显示所有服务
cd /usr/lib/firewalld #防火墙访问的数据
ls
icmptypes services(服务文件配置) zones(域)
可以书写.xml文件此过程等同于 --permanent --add-service=xxxx 添加允许服务
例:
vim iscsi
{
等同于 firewall-cmd --permanent --add-service=iscsi
firewall-cmd --list-ports #显示允许的端口
firewall-cmd --add-port=8080/tcp #添加允许的端口
firewall-cmd --list-ports
firewall-cmd --permanent --remove-service=ssh #删除ssh服务
firewall-cmd --reload #刷新防火墙服务
firewall-cmd --list-all #查看是否已经删除服务
真机ssh连接desktop后依旧可以操作
firewall-cmd --complete-reload
此时已经连接desktop的真机,不能进行操作
##############################
filter
nat
mangle
#实验环境
desktop(拥有两块网卡,且不为同一网段):
eth0:172.25.254.251 eth1:192.168.0.251
server(一块网卡,和desktop同网段):
eth1:192.168.0.151
真机(仅和desktop有一个同网段的网卡):
ip:172.25.254.55
#############################
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.55 -p tcp --dport 80 -j REJECT
#拒绝250用户访问http
测试:
浏览器中输入:172.25.254.251 #拒绝访问
######################################
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
firewall-cmd --list-all
masquerade:yes #将masquerade的状态改为yes
desktop(双网卡):
firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.55 #通过ssh(22端口)连接desktop的用户转连接向真机(ip:172.25.254.55)
firewall-cmd --list-all #显示是否添加成功
#当其他ip通过ssh连接desktop时访问的是真机
########################################
server:
vim /etc/sysconfig/network-scripts/ifcfig-eth0
{
GATEWAY=192.168.0.151 #设置网关
}
systemctl restart network
route -n #查看是否设置成功
ping 172.25.254.55 #可以ping通
########################################################
-t table(表名)
-j 添加一个动作
-m 状态
-A 添加(默认最后面)
-I 插入(默认最前面)
-D 删除
-R 替换
-F 刷新
-N 链名 #新建一个链
-E 重命名
-X 删除一个链名
-P 修改默认规则(ACCEPT(允许),DOPT(丢弃),REJECT(拒绝)),但是不能修改 REJECT为其他规则
-Z 将new全部转化为related,established状态
iptables-save > /etc/sysconfig/iptables #保存
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #开机不自启动防火墙
systemctl mask firewalld #锁定防火墙
yum install iptables -y #下载 iptables
systemctl start iptables #启动 iptables
systemctl enble iptables #开机自启动 iptables
iptables -nL
iptables -t filter -nL #查看 filter 内容
iptables -t nat -nL #查看 nat 内容
iptables -t filter -A -p tcp --dport 22 -j ACCEPT(允许) #添加
iptables -nL
iptables -t filter -A INPUT -s 172.25.254.55 -p tcp --dport 22 -j REJECT(拒绝)#添加 ip 55 用户,拒绝访问
iptables -nL
#此时 55 用户依旧可以访问,读取顺序自上向下,先读取允许所有,所以 55 用户依旧可以访问
iptables -D INPUT 2 #删除INPUT第二行内容
iptables -nL
iptables -t filter -I INPUT -s 172.25.254.55 -p tcp --dport 22 -j REJECT #插入
iptables -nL
iptables -t filter -R INPUT 2 -s 172.25.254.55 -p tcp --dport 22 -j REJECT #替换第二行
iptables -nL
#########################################################################
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW lo -j ACCEPT #
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 3128 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.251
iptables -t nat -nL
#server(ip:192.268.0.151)可以ping通真机(ip:172.25.254.55)
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-dest 192.168.0.151:22
iptables -t nat -nL
#真机(ip:172.25.254.55)连接desktop(eth0:172.25.254.251 eth1:192.162.0.251)时转到server(ip:192.268.0.151)
semanage port -l | grep httpd
semanage port -a -t httpd_port -p tcp 8888
semanage port -l | grep httpd