linux系统中的firewall防火墙和iptables管理防火墙

原文地址:https://blog.csdn.net/weixin_42709236/article/details/81806597

简介:这篇文章只是简单记录(很多东西很少用,会忘记一些东西),可读性不高(对初学者不太友善)

linux防火墙

yum install iptables-services
防火墙分为firewalld和iptables
两者之间的转换

由firewalld转换为iptables

先检查是否安装了iptables

service iptables status

备注:
关闭防火墙(firewalld)
systemctl stop firewalld.service #关闭防火墙服务
systemctl disable firewalld.service #禁止防火墙开启启动

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    -D  INPUT   2  ##表示删除


iptables  -nL
iptables  -P  INPUT  DROP   ##表示改变总体为DROP
iptables  -nL


iptables  -P  INPUT  ACCEPT   ##表时改变总体为ACCEPT
iptables  -nL


iptables  -N  westos   ##增加新的链


iptables   -E  westos  WESTOS  ##改变新增加的链的名称


iptables  -X  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

你可能感兴趣的:(linux)