Ubuntu 的ufw防火墙

1.防火墙和端口

  1. # ubuntu的防火墙和端口,一般ufw 和iptables两大类
  2. sudo ufw status # 查看防火墙的状态
  3. sudo ufw enable # 开机自启
  4. sudo ufw default deny # 关闭外部全部访问
  5. ## 新增端口
  6. sudo ufw allow 8080
  7. ## 删除端口
  8. sudo ufw delete allow 8080
  9. ## 允许特定来源ip的访问
  10. sudo ufw allow from 192.168.1.199
  1. # iptables下的一般使用
  2. ## 添加iptables允许|关闭 端口
  3. 参数:-A 追加规则
  4. -D 删除规则
  5. -I 插入
  6. -R 修改
  7. -L 查看规则
  8. -N 新的规则
  9. -p rotocol
  10. -m module_name
  11. iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
  12. iptables -A INPUT -p udp --dport 21 -j ACCEPT
  13. iptables -A INPUT -p tcp --drop 端口号 -j DROP # 关闭端口
  14. iptables -L -n #添加的情况记录

2.检查网络

  1. ## 查看允许的网络
  2. netstat -tunlp # 显示tcp、udp的端口清空
  3. netstat -tunlp |grep 端口号 #查看端口情况
  4. ## lsof的命令
  5. lsof -i:22 #查看端口占用情况
  6. lsof -i tcp:22 #查看协议对应的端口
  7. lsof -g gid #显示归属gid进程情况
  8. lsof -c abc #显示开启文件abc.txt的进程
  9. lsof +d /usr/loca/ #显示目录下被进程开启的文件

3.ubuntu18.04 - 修改网卡名称

  1. #修改默认网卡名
  2. sudo vim /etc/default/grub
  3. ## 修改内容 GRUB_CMDLINE_LINUX
  4. GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
  5. # 更新grub
  6. sudo update-grub
  7. # 服务重启
  8. sudo init 6

Docker模式:

1.Docker部署时,只有tcp6没有tcp,即只支持ipv6 情形

  1. # 针对docker映射的端口,只有ipv6方式才能访问,ipv4没法访问
  2. sudo vim /etc/sysctl.conf
  3. ## 添加或修改内容:
  4. net.ipv4.ip_forward = 1
  5. # 加载环境
  6. sysctl -p /etc/sysctl.conf
  7. ## 操作完成,通过netstat -tunlp|grep 8080 ,镜像端口可能仍然显示tcp6,但已经可以通过ipv4地址访问了

2.对启动docker需要指定主机IP

ufw 拦截不住 Docker映射出来的端口:

  1. ## 启动容器的时候,指定宿主机的ip地址
  2. docker run -itd -p 127.0.0.1:3306:3306 -name tomcat8 \
  3. -v /usr/local/docker/tomcat/logs:/usr/local/tomcat/logs \
  4. -v /usr/local/docker/tomcat/webapps:/usr/local/tomcat/webapps \
  5. tomcat:8.5

iptables的防火墙配置

1. iptables的配置

  1. # 1.安装iptables
  2. apt-get install -y iptables
  3. # 2.检查iptables端口开放情况
  4. iptables -L
  5. iptables -L -n
  6. # 3.配置iptables模板
  7. vim /etc/iptables/iptables.test.rules
  8. ### 添加内容
  9. # Generated by iptables-save
  10. *filter
  11. :INPUT ACCEPT [0:0]
  12. :FORWARD ACCEPT [0:0]
  13. :OUTPUT ACCEPT [0:0]
  14. -I INPUT -p tcp --dport 8080 -j ACCEPT
  15. -I INPUT -p udp --dport 8080 -j ACCEPT
  16. -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  17. -A INPUT -p icmp -j ACCEPT
  18. -A INPUT -i lo -j ACCEPT
  19. -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
  20. -A INPUT -j REJECT --reject-with icmp-host-prohibited
  21. -A FORWARD -j REJECT --reject-with icmp-host-prohibited
  22. COMMIT
  23. # Completed
  24. # 加载规则
  25. iptables-restore < /etc/iptables.test.rules
  26. # 开机启动
  27. vim /etc/network/if-pre-up.d/iptables
  28. ### 添加内容
  29. #!/bin/bash
  30. /sbin/iptables-restore < /etc/iptables.test.rules
  31. root@localhost:/home# chmod +x /etc/network/if-pre-up.d/iptables

2. debain的凝思版本开放端口

  1. # 1. 修改的配置文件
  2. vim /etc/rc.local
  3. ## 在exit 0 上面添加规则
  4. iptables -A INPUT -p tcp -s 127.0.0.1 --dport 22 -j ACCEPT
  5. /sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  6. /sbin/iptables -A INPUT -p tcp --dport 23306 -j ACCEPT
  7. /sbin/iptables -A INPUT -p tcp --dport 21 -j ACCEPT
  8. /sbin/iptables -A INPUT -p tcp --dport 12000 -j ACCEPT
  9. /sbin/iptables -A INPUT -p tcp --dport 12443 -j ACCEPT
  10. /sbin/iptables -A INPUT -p tcp --dport 23306 -j ACCEPT
  11. /sbin/iptables -A INPUT -p tcp --dport 12000 -j ACCEPT
  12. /sbin/iptables -A INPUT -p tcp --dport 19000 -j ACCEPT
  13. #/sbin/iptables -A INPUT -p udp -m udp --sport 1900 -j DROP
  14. #/sbin/iptables -A INPUT -p udp -m udp --dport 1900 -j DROP
  15. ## 重启让他生效
  16. source /etc/rc.local