欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Linux细节 - Liunx防火墙/etc/sysconfig/iptables 详解 有大用

今天在虚拟机里安装了linux,安装的时候提示是成功地,但是访问的时候失败了。

这个文件想了一晚上,没有结果。
第二天得时候,在公司突然想到是不是iptables防火墙阻止了,我昨天记得配置80端口。于是在公司的时候,查了一下/etc/sysconfig/iptables 这个文件里面的配置和参数
我用vi /etc/sysconfig/iptables 命令打开iptables的文件
下面是默认的项
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A INPUT -j REJECT –reject-with icmp-host-prohibited
-A FORWARD -j REJECT –reject-with icmp-host-prohibited
COMMIT

然后我在最后加上了
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
还是没有办法访问nginx
然后我把iptables关闭
service iptables stop
看一下是否可以正常访问
竟然成功了
那就知道问题出在iptables里
在检查一下80端口的设置,可能是位置的问题,于是把80端口设置的代码放在22端口的下面,service iptables restart,

 

重新一下iptable测试一下
成功了,原来是自己没有注意位置的问题,郁闷啊,搞了这么长时间


*****************创建RH-Firewall-1-INPUT****************


[plain] view plain copy
  1. #头两行是注释说明  

  2. # Firewall configuration written by system-config-securitylevel  

  3. # Manual customization of this file is not recommended.  

  4. #使用filter表  

  5. *filter  

  6. #下面四条内容定义了内建的INPUT、FORWARD、ACCEPT链,还创建了一个被称为RH-Firewall-1-INPUT的新链  

  7. :INPUT ACCEPT [0:0]  

  8. :FORWARD ACCEPT [0:0]  

  9. :OUTPUT ACCEPT [0:0]  

  10. :RH-Firewall-1-INPUT - [0:0]  

  11. #将所有流入的数据写入到日志文件中  

  12. -A INPUT -j LOG --log-level crit  

  13. #下面这条规则将添加到INPUT链上,所有发往INPUT链上的数据包将跳转到RH-Firewall-1 //链上。  

  14. -A INPUT -j RH-Firewall-1-INPUT  

  15. #下面这条规则将添加到FORWARD链上,所有发往INPUT链上的数据包将跳转到RH-Firewall-1 //链上。  

  16. -A FORWARD -j RH-Firewall-1-INPUT  

  17. #下面这条规则将被添加到RH-Firewall-1-input链。它可以匹配所有的数据包,其中流入接口(-i)//是一个环路接口(lo)。  

  18. #匹配这条规则的数据包将全部通过(ACCEPT),不会再使用别的规则来和它们进行比较  

  19. -A RH-Firewall-1-INPUT -i lo -j ACCEPT  

  20. #下面这条规则是拒绝所以的icmp包-p 后是协议如:icmp、tcp、udp。端口是在-p后面--sport源端口,--dport目的端口。-j 指定数据包发送的  

  21. #目的地址如:ACCEPT、DROP、QUEUE等等  

  22. -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j DROP  

  23. -A RH-Firewall-1-INPUT -p 50 -j ACCEPT  

  24. -A RH-Firewall-1-INPUT -p 51 -j ACCEPT  

  25. -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT  

  26. -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT  

  27. -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT  

  28. -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  

  29. #-m state --state ESTABLISHED,RELATED这个条件表示所有处于ESTABLISHED或者  

  30. RELATED状态的包,策略都是接受的。  

  31. # -m state --state NEW 这个条件是当connection的状态为初始连接(NEW)时候的策略。  

  32. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT  

  33. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT  

  34. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT  

  35. -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT  

  36. -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT  

  37. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT  

  38. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT  

  39. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT  

  40. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j DROP -s 222.221.7.84  

  41. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT  

  42. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT  

  43. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT  

  44. -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited  

  45. COMMIT  

  46.   

  47. iptalbes 是状态检测防火墙!   



****************************************************************************************

参数讲解:
–A 参数就看成是添加一条规则
–p 指定是什么协议,我们常用的tcp 协议,当然也有udp,例如53端口的DNS
–dport 就是目标端口,当数据从外部进入服务器为目标端口
–sport 数据从服务器出去,则为数据源端口使用
–j 就是指定是 ACCEPT -接收 或者 DROP 不接收

禁止某个IP访问
iptables -A INPUT -p tcp -s 192.168.1.2 -j DROP
–s 参数是来源(即192.168.1.2)
后面拒绝就是DROP
删除规则
iptables -D INPUT 2
删除INPUT链编号为2的规则


来自  https://blog.csdn.net/hd243608836/article/details/79236744

普通分类: