#####防火墙###
yum install iptables-services
防火墙分为firewalld和iptables
两者之间的转换
由firewalld转换为iptables
systemctl stop firewalld
systemctl mask firewalld ###冻结火墙
systemctl start iptables.service
systemctl enable iptables.service
systemctl status iptables.service
iptables -nL ###显现信息
有iptables转换为firewalld
systemctl stop iptables.service
systemctl mask iptables.service
systemctl unmask firewalld
systemctl start firewalld
firewall-cmd --state ###查看防火墙的状态
firewall-cmd --get-active-zones ##查看设定的网络名称
firewall-cmd --get-default-zone ###查看默认的网络名称
firewall-cmd --get-zones ##查看所有的网络名称
firewall-cmd --zone=public --list-all ##网络名称为公共,列出所有允许的服务
firewall-cmd --get-services ##允许的服务有那些
firewall-cmd --list-all-zones ##列出所有网络名称的详细信息
firewall-cmd --set-default-zone=trusted ##设置网络名称为信任
###做下列实验可以将网络名称设为公共
firewall-cmd --set-default-zone=public
firewall-cmd --list-all
firewall-cmd --add-source=172.25.254.49 --zone=trusted###49主机可以等http验证,这是在没有http服务的情况下
firewall-cmd --remove-source=172.25.254.49 --zone=trusted ##49主机不可以登 移出
添加网卡eth1并且设ip
firewall-cmd --list-all
firewall-cmd --remove-interface=eth1 --zone=public
firewall-cmd --list-all
firewall-cmd --add-interface=eth1 --zone=trusted
firewall-cmd --get-active-zones
firewall-cmd --add-service=http ##添加服务
vim /etc/httpd/conf/httpd.conf 改8080端口
systemctl restart httpd
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload
firewall-cmd --list-all
firewall-cmd --permanent --zone=pinlic --remove-port=8080/tcp ##移出8080端口
firewall-cmd --reload
firewall-cmd --list-all
firewall-cmd --permanent --remove-service=ssh ##火墙移除ssh
firewall-cmd --reload ##不会立即中断ssh服务时别人还能连他
firewall-cmd --complete-reload ##立即中断此服务别人不能连他
firewall-cmd --direct --add-rule ipv4 filter INPUT 2 -s 172.25.254.49 -p tcp --dport 22 -j ACCEPT ##允许49来 ssh这是在移除ssh的情况下做的
firewall-cmd --direct --remove-rule ipv4 filter INPUT 2 -s 172.25.254.49 -p tcp --dport 22 -j ACCEPT ##49不能ssh
firewall-cmd --direct --add-rule ipv4 filter INPUT 2 ! -s 172.25.254.49 -p tcp --dport 22 -j ACCEPT ##其他人能ssh
##除过49,其他能访问
firewall-cmd --direct --get-all-rules ##查看规则信息
###进去伪装
firewall-cmd --add-masquerade
firewall-cmd --add-forward-
port=port=22:proto=tcp:toport=22:toaddr=172.25.254.249
ssh [email protected] 到达249
###出去伪装
vim /etc/sysctl.conf ##改1 net.ipv4.ip_forward=1
改ip,改网关
server 192.168.0.49 gateway 192.168.0.149
desktop eth1 192.168.0.149
移除进去的伪装
server ssh [email protected] 发现是desktop ping 的他
firewall-cmd --add-rich-rule="rule family=ipv4 source address=172.25.254.149 masquerade"
###ping 不通
firewall-cmd --add-icmp-block=echo-request ##别人平不同自己
firewall-cmd --add-icmp-block=echo-request --timeout=5 #5秒之后能连
firewall-cmd --remove-icmp-block=echo-request
firewall-cmd --get-icmptypes ##查看要求
###iptables 的地址转换
廷掉firewalld 启用iptables
systemctl stop firewalld
systemctl mask firewalld
systemctl unmask iptables
systemctl start iptables
iptables -t filter -F ###刷掉filter
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.149 ##192可以连172网段,看到的是14
iptables -t nat -nL ##产看自己的设定
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 192.168.0.49 ##49连149到192
w -i ##查看是谁进的
iptables -t filter -nL ##查看自己的设定
iptables -nL
systemctl start iptables ##启动iptables
systemctl status iptables ##打开iptables
iptables -nL ##不加-t filter 默认看filter
iptables -F ##刷掉filter
service iptables save ##拯救,重启时不会有filter出现
iptables -A INPUT -i lo -j ACCEPT ##增加回环接口允许插入
iptables -nL ##显现有没有插入
iptables -A INPUT -s 172.25.254.49 -j ACCEPT
iptables -nL
iptables -I INPUT 2 -s 172.25.254.10 -p tcp --dport 22 -j REJECT ##-I 表示插入,不允许10ssh我
iptables -nL
iptables -R INPUT 2 -s 172.25.254.10 -p tcp --dport 22 -j DROP #-R表示替换
iptables -nL
iptables -nL
iptables -P INPUT DROP ##表示改变总体为DROP
iptables -nL
iptables -P INPUT ACCEPT ##表时改变总体为ACCEPT
iptables -nL
iptables -E westos WESTOS ##改变新增加的链的名称
iptables -D WESTOS ##删除自定义链下的策略
iptables -F ##刷新filter
iptables -nL
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ##已经进来的和正在检测的允许iptables -nL
iptables -A INPUT -m state --state new -i lo -j ACCEPT ##新来的允许
iptables -nL
iptables -A INPUT -m state --state new -p tcp --dport 22 -j ACCEPT ###ssh允许
iptables -nL
iptables -A INPUT -m state --state new -p tcp --dport 80 -j ACCEPT ##http允许
iptables -nL
iptables -A INPUT -m state --state new -p tcp --dport 53 -j ACCEPT ##dns允许
iptables -nL
iptables -A INPUT -j REJECT ##其他的拒绝
iptables -nL
service iptables save ##将自己设定的保存
iptables -nL