【Python学习】操作防火墙

Windows防火墙cmd
os.system("netsh firewall set opmode mode=disable")

命令:netsh firewall 

  参数: 

  ? // 显示命令列表 

  add // 添加防火墙配置 

  delete // 删除防火墙配置 

  dump // 显示一个配置脚本 

  help // 显示命令列表 

  reset // 将防火墙配置重置为默认值。 

  set // 设置防火墙配置 

  show // 显示防火墙配置 

  add allowedprogram // 添加防火墙允许的程序配置。 

  add portopening // 添加防火墙端口配置 

  delete allowedprogram // 删除防火墙允许的程序配置 

  delete portopening // 删除防火墙端口配置 

  set allowedprogram // 设置防火墙允许的程序配置 

  set icmpsetting // 设置防火墙 ICMP 配置 

  set logging // 设置防火墙记录配置 

  set multicastbroadcastresponse // 设置防火墙多播/广播响应配置 

  set notifications // 设置防火墙通知配置 

  set opmode // 设置防火墙操作配置 

  set portopening // 设置防火墙端口配置 

  set service // 设置防火墙服务配置 

  show allowedprogram // 显示防火墙允许的程序配置 

  show config // 显示防火墙配置。 

  show currentprofile // 显示当前防火墙配置文件 

  show icmpsetting // 显示防火墙 ICMP 配置 

  show logging // 显示防火墙记录配置 

  show multicastbroadcastresponse // 显示防火墙多播/广播响应配置 
  show notifications // 显示防火墙操作配置 

  show opmode // 显示防火墙端口配置 

  show portopening // 显示防火墙端口配置 

  show service // 显示防火墙服务配置 

  show state // 显示当前防火墙状态   

  例如: 

  命令:netsh firewall show allowedprogram //查看防火墙放行的程序 

  netsh firewall set portopening TCP 445 ENABLE //打开445端口 

  netsh firewall set portopening TCP 3389 ENABLE // 

  netsh firewall delete allowedprogram C:\A.exe //删除放行程序A.exe 

  netsh firewall set allowedprogram C:\A.exe A ENABLE //添加程序C盘下的A.exe并放行 

  netsh firewall add allowedprogram C:\A.exe A ENABLE //添加程序C盘下的A.exe并放行

    netsh firewall set icmpsettting type=ALL mode=enable //开启ICMP协议 

    netsh firewall set icmpsettting type=2 mode=enable  //允许出站数据包太大

 

Linux防火墙
查看:iptables -nvL

如上图所示,防火墙策略内容如下:
出入站放开mgr的ip(172.16.202.190)和本地ip(127.0.0.1)tcp、udp、icmp的所有端口
拒绝所有ip的tcp的8080端口的入站请求

# 禁止PING
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP
# 禁止UDP的80端口
# 禁止TCP的25端口
iptables -A INPUT -p udp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 25 -j DROP
iptables-save > /etc/iptables.rules
iptables -nvL

单个IP的命令是
iptables -I INPUT -s 211.1.0.0 -j DROP


封IP段的命令是 iptables -I INPUT -s 211.1.0.0/16 -j DROP iptables -I INPUT -s 211.2.0.0/16 -j DROP iptables -I INPUT -s 211.3.0.0/16 -j DROP
封整个段的命令是 iptables -I INPUT -s 211.0.0.0/8 -j DROP
封几个段的命令是 iptables -I INPUT -s 61.37.80.0/24 -j DROP iptables -I INPUT -s 61.37.81.0/24 -j DROP
查看iptables列表iptables -L

删除iptables
https://blog.csdn.net/wang0112233/article/details/93063542
iptables -L -n --line-number
iptables -D INPUT 2
INPUT大写,2表示序号

https://www.cnblogs.com/-mo-/p/11542320.html

永久生效
当你删除、添加规则后,这些更改并不能永久生效,这些规则很有可能在系统重启后恢复原样。为了让配置永久生效,根据平台的不同,具体操作也不同。下面进行简单介绍:
1.Ubuntu

首先,保存现有的规则:
iptables-save > /etc/iptables.rules
然后新建一个bash脚本,并保存到/etc/network/if-pre-up.d/目录下:
#!/bin/bash
iptables-restore < /etc/iptables.rules
这样,每次系统重启后iptables规则都会被自动加载。
/!\注意:不要尝试在.bashrc或者.profile中执行以上命令,因为用户通常不是root,而且这只能在登录时加载iptables规则。
2.CentOS, RedHat

# 保存iptables规则
service iptables save

# 重启iptables服务
service iptables stop
service iptables start
查看当前规则:
cat  /etc/sysconfig/iptables

 

posted @ 2020-04-10 13:06  gtea  阅读(2838)  评论(0编辑  收藏  举报