今天在学习UDP组播通信是,两台主机之间不能顺利通信。 A机 - Ubuntu12.04,B机 - Centos7.0,相互之间可以ping通。 A作为发送端,B作为接收端,B接收不到数据。 B作为发送端,A作为接收端,A可以接收数据。 原因:B机的防火墙的问题,关闭了防火墙之后,通信正常。
CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。
firewallfirewall能够允许哪些服务可用,那些端口可用.... 属于更高一层的防火墙。firewall的底层是使用iptables进行数据过滤,建立在iptables之上。
firewall是动态防火墙,使用了D-BUS方式,修改配置不会破坏已有的数据链接。
关闭firewallsystemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动
iptablesiptables用于过滤数据包,属于网络层防火墙. 在设置iptables后需要重启iptables,会重新加载防火墙模块,而模块的装载将会破坏状态防火墙和确立的连接。会破坏已经对外提供数据链接的程序。可能需要重启程序。
iptables防火墙yum install iptables-services #安装iptablesvi /etc/sysconfig/iptables #编辑iptables防火墙配置文件
systemctl enable iptables.service #设置防火墙开机启动
SELinux
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。它不是用来防火墙设置的。但它对Linux系统的安全很有用。Linux内核(Kernel)从2.6就有了SELinux。 SELinux是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。任何程序对其资源享有完全的控制权。假设某个程序打算把含有潜在重要信息的文件扔到/tmp目录下,那么在DAC情况下没人能阻止他。SELinux提供了比传统的UNⅨ权限更好的访问控制。
vi /etc/selinux/config
setenforce 0 #使配置立即生效 (责任编辑:IT) |