1.uos支持的防火墙

   Iptables ufw firewalld Netfilter区别?

   Iptables ufw防火墙是前端管理,Netfilter是内核。

  统一UOS服务器操作系统是基于Debian开发的,所以很多命令和Debian、Ubuntu是一样的。在Debian和Ubuntu上能用的防火墙在UOS上也能正常使用。

  默认情况下,Debian使用iptables,Ubuntu有iptables,也使用简单的ufw。CentOS7之前用iptables,Centos 7开始用防火墙。在CentOS 7之前,可以使用iptables命令或者直接编辑/etc/sysconfig/iptables文件。一般来说,在防火墙中使用命令。在Debian和UOS中,使用iptables命令。因为配置文件不是直接编辑的,所以您需要熟悉iptables命令,然后您需要编辑文件设置以使重启生效。Ufw也可用于UOS。因为是一个简单的命令,所以本文主要讨论如何使用iptables来设置防火墙功能。

   2.防火墙设置

   Uo防火墙设置步骤:

  检查是否安装了iptables。如果你以前有CentOS的经验,你不能使用服务iptables状态来检查它。在CentOS中,iptables是服务的形式。这里iptables只是配置的前端命令,不能用yum list查看。相反,使用apt list

  grep iptables来查看它是否已经安装。说明已经正常安装了。如果没有安装,可以使用apt install iptables或者apt-get install iptables。如果要用ufw安装apt安装ufw,如果要用防火墙,安装后也可以使用。

  清除现有规则iptables -L以查看现有的有效规则。

   Iptables -P INPUT在清除规则前接受放开输入,否则清除后可能会造成远程连接。

   #空配置

   iptables-F[空规则]

   iptables-X[删除自建链]

   iptables-Z[重置过滤器数据包数据]

  创建新规则配置文件的第一种方法是编辑/etc/iptables.sh,然后授予执行权限chmod x /etc/iptables.sh.规则执行后,即生效。如果需要修改规则,每次都可以修改这个文件。

  第二种方法是配置文件/etc/iptables(您需要使用/sbin/iptables-restore导入规则,该规则可以配置为在您重新启动时执行该文件)

   #空配置

  防火墙

   iptables -X

   iptables -Z

   #配置、禁止进入、允许退出和允许环回网卡。

   iptables -P输入压降

  允许所有本机向外的访问

   iptables -A输入-i lo -j接受

   #允许ping

   iptables -A输入-p icmp -j接受

   #允许ssh

   iptables -A输入-p TCPdport 22-j接受

   #允许VNC

   iptables -A输入-p TCPdport 5900-j接受

   #向felix学习,将smtp设置为本地位置

   iptables -A输入-p TCP-m TCPdport 25-j接受-s 127.0.0.1

   iptables -A输入p TCP-m TCPdport 25-j拒绝

   #允许DNS

   iptables -A输入-p TCP-m TCPdport 53-j接受

   iptables-A INPUT-p UDP-m UDPdport 53-j ACCEPT

   #允许http和https

   iptables -A输入-p TCPdport 80-j接受

   iptables -A输入-p TCPdport 443-j接受

   #允许已建立或关联的流量

   iptables-输入-m状态-状态建立,相关-j接受

   #禁止其他不允许的规则访问

   Iptables -A INPUT -j REJECT #(注意:如果不允许22端口,直接断开SSH链接。)

   iptables-正向j拒绝

  导入规则iptables-save/etc/iptables[保存规则]

   /sbin

  /iptables-restore </etc/iptables 【导入规则】

  设置重启生效脚本

  1.)将iptables.sh脚本放到init.d中每次都重启【需要保障iptables脚本一致都是最新的规则,如果是后续临时修改的规则可能不在其中】

  2.)编辑/etc/network/if-pre-up.d/iptables,重启会自动生效。要保障/etc/iptables中规则一致是最新的,每次修改规则可以编辑/etc/iptables 如果是使用iptables命令新增,需要增加iptables-save >/etc/iptables 保存。

  #!/bin/sh

  /sbin/iptables-restore < /etc/iptables

  3. 防火墙脚本

  编辑如下脚本【第一次执行】,后续编辑/etc/iptables,使用/sbin/iptables-restore < /etc/iptables重新导入,或者直接iptables命令新增,iptables-save>/etc/iptables 保存,防止机器重启无效

  #!/bin/sh

  #防火墙脚本

  echo “#!/bin/sh

  /sbin/iptables-restore < /etc/iptables” >/etc/network/if-pre-up.d/iptables

  echo “#清空配置

  iptables -F

  iptables -X

  iptables -Z

  #配置,禁止进,允许出,允许回环网卡

  iptables -P INPUT DROP

  iptables -A OUTPUT -j ACCEPT

  iptables -A INPUT -i lo -j ACCEPT

  #允许ping

  iptables -A INPUT -p icmp -j ACCEPT

  #允许ssh

  iptables -A INPUT -p tcp –dport 22 -j ACCEPT

  #允许VNC

  iptables -A INPUT -p tcp –dport 5900 -j ACCEPT

  #学习felix,把smtp设成本地

  iptables -A INPUT -p tcp -m tcp –dport 25 -j ACCEPT -s 127.0.0.1

  iptables -A INPUT -p tcp -m tcp –dport 25 -j REJECT

  #允许DNS

  iptables -A INPUT -p tcp -m tcp –dport 53 -j ACCEPT

  iptables -A INPUT -p udp -m udp –dport 53 -j ACCEPT

  #允许http和https

  iptables -A INPUT -p tcp –dport 80 -j ACCEPT

  iptables -A INPUT -p tcp –dport 443 -j ACCEPT

  # 允许已建立的或相关连的通行

  iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

  #禁止其他未允许的规则访问

  iptables -A INPUT -j REJECT #(注意:如果22端口未加入允许规则,SSH链接会直接断开。)

  iptables -A FORWARD -j REJECT” > /etc/iptables.sh

  chmod +x /etc/iptables.sh

  chmod +x /etc/network/if-pre-up.d/iptables

  /etc/iptables.sh

  iptables-save > /etc/iptables

  /sbin/iptables-restore < /etc/iptables

  4. 关闭防火墙(清空所有规则,删除脚本,关闭重启)

  iptables -P INPUT ACCEPT

  iptables -F

  iptables -X

  iptables -Z

  rm /etc/iptables*

  rm /etc/network/if-pre-up.d/iptables

  5. 配置黑白名单

  #黑白名单

  ####当只有部分人可以访问使用白名单,当只有部分人不能访问使用黑名单

  ##设置链名

  iptables -N whitelist

  iptables -N blacklist

  ##设置自定义链规则

  iptables -A whitelist -s xxxx ACCEPT

  iptables -A blacklist -s xxxx DROP

  ##设置INPUT规则

  iptables -A INPUT -p tcp –dport 22 -j whitelist

  iptables -A INPUT -p tcp –dport 22 -j blacklist

  #删除规则

  iptables -D INPUT 数字(iptables -L INPUT –line-numbers 查看对应链的规则序号)

  iptables -D INPUT -p tcp –dport 22 -j whitelist (也可以使用设置规则时相同的命令把A改成D)

  #删除自定义链

  iptables -X 链名(注意内置链不可删除)

  iptables -Z 置零

  iptables -F 清空规则