1.防火墙常用规则

  1. systemctl start iptables
  2. systemctl stop iptables
  3. systemctl restart iptables
    iptables -nvL
  4.  
  5. 1.屏蔽ip地址和解封ip地址

iptables -A INPUT -s 22.22.22.22 -j DROP

iptables -D INPUT -s 22.22.22.22 -j DROP

iptables -I INPUT -s 117.81.61.88 -j ACCEPT
iptables -I INPUT -s 222.93.243.191 -j ACCEPT

2.阻止端口和同意端口

阻止特定的传出连接:

iptables -A OUTPUT -p tcp --dport 80 -j DROP

同意特定的传入连接:

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

使用 multiport 我们可以一次性在单条规则中写入多个端口,例如:

iptables -A INPUT  -p tcp -m multiport --dports 22,80,443 -j ACCEPT

iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT

在 IPtables 中 IP 地址范围是可以直接使用 CIDR 进行表示的,例如:

iptables -A OUTPUT -p tcp -d 192.168.100.0/24 --dport 22 -j ACCEPT

3.端口转发

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 20022 -j DNAT --to-destination 192.168.1.150:22

端口转出参考:http://www.cnblogs.com/kevingrace/p/5865792.html

4.屏蔽HTTP服务Flood攻击

命令会将连接限制到每分钟 100 个,上限设定为 200

iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT

5.禁止ping

iptables -A INPUT -p icmp -i eth0 -j DROP

6.允许访问回环网卡

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

12、屏蔽指定MAC地址

iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP

13、限制并发连接数

iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT

以上规则限制每客户端不超过 3 个连接

14、清空IPtables规则

iptables -F

要清空特定的表可以使用 -t 参数进行指定,例如:

iptables -t nat –F

15.保存规则

iptables-save > ~/iptables.rules

iptables-restore < ~/iptables.rules

service iptables save

17、允许建立相关连接

随着网络流量的进出分离,要允许建立传入相关连接,可以使用如下规则:

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

允许建立传出相关连接的规则:

iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT

18、丢弃无效数据包

很多网络攻击都会尝试用黑客自定义的非法数据包进行尝试,我们可以使用如下命令来丢弃无效数据包:

iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

19、IPtables屏蔽邮件发送规则

如果你的系统不会用于邮件发送,我们可以在规则中屏蔽 SMTP 传出端口:

iptables -A OUTPUT -p tcp --dports 25,465,587 -j REJECT

20、阻止连接到某块网卡

如果你的系统有多块网卡,我们可以限制 IP 范围访问某块网卡:

iptables -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j DROP

21、设置默认规则

iptables -P INPUT DROP  # 设置 filter 表 INPUT 链的默认规则是 DROP,如果前面没有添加允许的规则,会把自己的xshell连接DROP掉

22、按行号删除防火墙规则

  1. iptables -nL --line-number
  2. iptables -D INPUT
  3. iptables -D INPUT
  4.  
  5. iptables-save > ~/iptables.rules
  1.  

failwall 常用规则

http://bjyun.fujieace.com/help/9.html

防火墙安装

先禁用旧防火墙管理模式

systemctl stop firewalld && systemctl disable firewalld

安装 iptables:

yum -y install iptables-services

systemctl start iptables.service && systemctl enable iptables.service

iptables -F

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -p tcp -m multiport --dport 80,22,25,10051,10050,3306 -j ACCEPT

iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

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

iptables -t filter -A INPUT -m state --state INVALID -j DROP

iptables -P INPUT DROP

service iptables save

中新金盾防火墙简单了解

http://blog.sina.com.cn/s/blog_a90c9f9b0102y815.html

防火墙规则参考链接

https://www.cnblogs.com/blogforly/p/5997287.html

  1. iptables共享上网限速参考

1

  1. eth0: a.b.c.d(外网的上网地址)
  2. eth1: 172.16.44.1(做为内网的网关)

2.
配置iptables nat

  1. #开启ip_forward
  2. echo "">/proc/sys/net/ipv4/ip_forward #永久生效需要配置/etc/sysctl文件中修改
  3. #清除原来的防火墙规则
  4. iptables -F
  5. iptables -t nat -F
  6. iptables -t mangle -F
  7. #添加nat转发
  8. iptables -t nat -A POSTROUTING -s 172.16.44.0/ -o eth0 -j MASQUERADE

通过执行上面的代码后,局域网内的电脑就可以上网了。
3.
由于我的内网还挂了网站,所以要开启80端口的转发。

  1. iptables -t nat -I PREROUTING -p tcp -d a.b.c.d --dport -j DNAT --to 172.16.44.210:
  2. iptables -t nat -I POSTROUTING -p tcp -d 172.16.44.210 --dport -j SNAT --to 172.16.44.1

4.下载限速

  1. #删除原来的tc规则队列
  2. tc qdisc del dev eth1 root
  3. #添加tc规则队列
  4. tc qdisc add dev eth1 root handle : htb default
  5. #生成根类
  6. tc class add dev eth1 parent : classid : htb rate 100mbit ceil 100mbit
  7. #支类列表用于限制速度
  8. #这里的rate指的是保证带宽,ceil是最大带宽。
  9. tc class add dev eth1 parent : classid : htb rate 400kbps ceil 400kbps prio
  10.  
  11. #添加支类规则队列
  12. #采用sfq伪随机队列,并且10秒重置一次散列函数。
  13. tc qdisc add dev eth1 parent : handle : sfq perturb
  14.  
  15. #建立网络包过滤器,设置fw。
  16. tc filter add dev eth1 parent : protocol ip prio handle fw classid :
  17. #在iptables里面设定mark值,与上面的handle值对应。
  18. iptables -t mangle -A POSTROUTING -d 172.16.44.130 -j MARK --set-mark

通过上面的代码就可以限制172.16.44.130这台机子的下载速度到400kbps。

Tip
经过实际测试这里的kbps实际上就是KB/S每秒千字节。另一个单位是kbit,这个才是每秒千比特。这里的172.16.44.130也可以写成一个网段,比如:172.16.44.0/24
5.

上传限速的原理其实跟下载的差不多,只不过限制的网卡不同,要在eth0上过滤来源地址去限制。

  1. #删除原来的tc规则队列
  2. tc qdisc del dev eth0 root
  3.  
  4. #添加tc规则队列
  5. tc qdisc add dev eth0 root handle : htb default
  6.  
  7. #生成根类
  8. tc class add dev eth0 parent : classid : htb rate 100mbit ceil 100mbit
  9.  
  10. #支类列表用于限制速度
  11. tc class add dev eth0 parent : classid : htb rate 40kbps ceil 40kbps prio
  12.  
  13. #添加支类规则队列
  14. tc qdisc add dev eth0 parent : handle : sfq perturb
  15.  
  16. #建立网络包过滤器
  17. tc filter add dev eth0 parent : protocol ip prio handle fw classid :
  18. iptables -t mangle -A PREROUTING -s 172.16.44.130 -j MARK --set-mark

Tip

跟下载不同的是POSTROUTING要改成PREROUTING,-d改成-s。

观察连接数
通过iptables的nat连接可以通过下面的代码查看。至于统计连接数可以写代码实现,也可以利用awk,grep等工具。反正里面的内容就是文本,处理起来也比较简单。

cat /proc/net/ip_conntrack

参考于

http://outofmemory.cn/code-snippet/90/linux-usage-iptables-tc-limited-liuliang

  1. iptables -A OUTPUT -p tcp --dport -j DROP
  2. iptables -A INPUT -p tcp --dport -j ACCEPT
  3. iptables -I INPUT -s xx.163.94. -j ACCEPT
  4. iptables -I INPUT -s 192.168.1.0/ -j ACCEPT
  5. iptables -D INPUT -s xx.163.94. -j DROP
  6. 注意mac过滤
  7. 报文经过路由后,数据包中原有的 mac 信息会被替换,所以在路由后的 iptables 中使用 mac 模块是没有意义的

如果防火墙默认是禁止可以写计划任务来防止自己被墙

sh iptables.sh

  1. #!/bin/sh
  2. status=$(iptables -nvL | grep 192.168.100.118 | wc -l)
  3. if [ $status -eq ];
  4. then
  5. iptables -I INPUT -s 192.168.100.118 -j ACCEPT
  6. echo "防火墙设置完成"
  7. else
  8. echo "防火墙已经设置过了"
  9. exit ;
  10. fi

vi iptables.sh #通过调用函数的方式设置防火墙

  1. #!/bin/sh
  2. function admin() {
  3. status=$(iptables -nvL | grep 192.168.100.118 | wc -l)
  4. if [ $status -eq ];
  5. then
  6. iptables -I INPUT -s 192.168.100.118 -j ACCEPT
  7. echo "防火墙设置完成"
  8. else
  9. echo "防火墙已经设置过了"
  10. exit ;
  11. fi
  12. }
  13.  
  14. function admin2() {
  15. status=$(iptables -nvL | grep 192.168.100.119 | wc -l)
  16. if [ $status -eq ];
  17. then
  18. iptables -I INPUT -s 192.168.100.119 -j ACCEPT
  19. echo "防火墙设置完成"
  20. else
  21. echo "防火墙已经设置过了"
  22. exit ;
  23. fi
  24. }
  25. echo "设置防火墙通过100.119"
  26. admin2
  27. echo "设置防火墙通过100.118"
  28. admin

docker服务通过防火墙控制访问权限

  1. iptables -I DOCKER-USER -s xx.163.94.194 -j DROP
  2. iptables -L DOCKER-USER -n --line-number
  3. iptables -D DOCKER-USER
  4. 如果不生效可以重启一下docker服务
  5. systemctl restart docker
  6. iptables -I DOCKER-USER -s xx.163.94.194 -j ACCEPT
  7. iptables -I DOCKER-USER -s 192.168.1.0/ -j DROP
  8.  
  9. iptables -A DOCKER-USER -i eth0 -s xx.163.94.194 -p tcp -m conntrack --ctorigdstport -j ACCEPT
  10. iptables -A DOCKER-USER -i eth0 -s 192.168.1.0/ -p tcp -m conntrack --ctorigdstport -j ACCEPT
  11. iptables -A DOCKER-USER -i eth0 -p tcp -m conntrack --ctorigdstport -j DROP #默认禁用防火墙规则 从上到下生效
  12.  
  13. 199K 257M RETURN all -- * * 0.0.0.0/ 0.0.0.0/ #return需要删除下面的规则才能生效
  14.  
  15. iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -c -j ACCEPT
  16. iptables -A INPUT -m conntrack --ctstate INVALID -c -j DROP

centos7【防火墙】常用规则的更多相关文章

  1. Centos7 防火墙常用配置及说明

    一. Centos7和Centos6 防火墙的区别: 使用的工具不一样了.Centos6 使用的是iptables ,Centos7 使用的是filewall iptables 用于过滤数据包,属于网 ...

  2. Centos7防火墙常用命令

    有些人安装的linux的系统默认防火墙不是iptables,而是firewall,那就得使用以下方式关闭防火墙了. >>>关闭防火墙 systemctl stop firewalld ...

  3. Centos7 防火墙frewalld规则设置

    配置firewalld-cmd 查看版本: firewall-cmd --version 查看帮助: firewall-cmd --help 显示状态: firewall-cmd --state 查看 ...

  4. Centos7防火墙常用命令及mask锁定不能添加端口问题

    一.开放端口 sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent sudo firewall-cmd --reload 二. ...

  5. Centos7 防火墙常用命令 开启 关闭防火墙

    如果你的系统上没有安装使用命令安装 #yum install firewalld  //安装firewalld 防火墙 开启服务 # systemctl start firewalld.service ...

  6. Linux iptables 防火墙常用规则

    iptables 安装 yum install iptables iptables 规则清除 iptables -F iptables -X iptables -Z 开放指定的端口允许本地回环接口(即 ...

  7. (三) Docker 常用操作与CentOS7 防火墙命令

    参考并感谢 Docker 常用命令 https://docs.docker.com/engine/reference/commandline/docker/ Docker 登录docker账户 doc ...

  8. centOS7.2防火墙常用配置(转)

    centOS7.2防火墙常用配置   firewall-cmd --state #查看默认防火墙状态(关闭后显示not running,开启后显示running) systemctl stop fir ...

  9. CentOS7防火墙设置常用命令

    目录 开/关/重启防火墙 查看所有开启的端口号 CentOS7环境下防火墙常用命令 开/关/重启防火墙 查看防火墙状态 firewall-cmd --state 启动防火墙 systemctl sta ...

随机推荐

  1. Examples of Scikit-learn Usages

    Examples of Scikit-learn Usages KFold K-折交叉验证 >>> import numpy as np >>> from skle ...

  2. Qone 自动删除说说脚本

    请看图 script var delay = 1000; function del() { document.querySelector('.app_canvas_frame').contentDoc ...

  3. 解决*.props打开失败问题

    由于不同机器的绝对地址不一样,可能会出现解决*.props打开失败问题,解决方向如下: 1.找到这里缺失的.props文件,复制到固定路径下: 2.强行打开代码,这个时候是报错的 3.选择编辑 4.将 ...

  4. linux 压缩工具

    gzip gunzip zcat bzip2 bunzip2 bzcat xz unxz xzcat a:  gzip 用法 # gzip file  压缩文件 不会保留源文件 直接生成 file.g ...

  5. B/S交互过程及tomcat体系结构

    浏览器与服务器交互过程: 1.浏览器根据主机名,如www.baidu.com,去操作系统的hosts文件中查找主机名对应的ip地址. 2.如果查找不到,则会去互联网上的dns服务器上查找主机名对应的i ...

  6. 建立TCP连接过程

    1.服务器实例化一个ServerSocket 对象, 表示通过服务器上的端口通信. ServerSocket serverSocket = new ServerSocket(port); 2.服务器调 ...

  7. topcoder srm 500 div1

    problem1 link 如果decisions的大小为0,那么每一轮都是$N$个人.答案为0. 否则,如果答案不为0,那么概率最大的一定是一开始票数最多的人.因为这个人每一轮都在可以留下来的人群中 ...

  8. MUSIC分辨率与克拉美罗下界的关系

    https://www.cnblogs.com/rubbninja/p/4512765.html

  9. 永久修改VS include目录

    原文:https://blog.csdn.net/sysprogram/article/details/49214727 VS2008在选项里可以设置全局的Include目录和Lib目录, 但是VS2 ...

  10. .net 打包下载

      ZipArchive 打包下载 private IActionResult DownloadZipFromUrl(string[] guids,string zipFullName) { usin ...