-
selinux临时关闭setenforce 0
-
selinux永久关闭vi /etc/selinux/config
-
netfilter(Centos5、6系统使用的防火墙)
-
firewalld(centos7使用的防火墙)
-
Centos7之前使用netfilter防火墙
-
Centos7开始使用firewalld防火墙
-
关闭firewalld开启netfilter方法
-
systemctl disable firewalled(禁止开机启动firewalled)
-
systemctl stop firewalld(停止firewalld)
-
yum install -y iptables-services(安装iptables(即 natfilter防火墙)工具)
-
systemctl enable iptables
-
systemctl start iptables
-
netfilter的5个表
-
filter表用于过滤包,最常用的表,有INPUT(数据包进入本机经过的链)、FORWARD(数据包不进入本机前往第三方时用到的链)、OUTPUT(在本机的包出去前所经过的链)三个链。
-
nat表用于网络地址转换,有PREROUTING(在进入本机前更改时经过的链)、OUTPUT(同上)、POSTROUTTIN(在出去本机前更改时经过的链)G三个链。
-
managle表用于各数据包做标记,几乎用不到。
-
raw表可以实现不追踪某些数据包,几乎用不到。
-
security表在centos6中并没有,用于强制访问控制(MAC)的网络规则,几乎用不到。
-
参考文章 http://www.cnblogs.com/metoy/p/4320813.html
-
数据包流向与netfilter的5个链。
-
PREROUTING:数据包进入路由表之前。
-
INPUT:通过路由表后目的地为本机。
-
FORWARD:通过路由表后,目的地不为本机。
-
OUTPUT:由本机产生,向外发出。
-
POSTROUTING:发送到网卡接口之前。
-
iptables相关用法
-
查看iptables规则:iptables -nvL
-
(etc/sysconfig/iptables为规则保存地址)
-
iptables -F(清空规则)(不影响配置文件所保存的规则)
-
service iptables save(保存当前配置规则)
-
iptables -t nat(-t指定表)
-
iptables -Z(可以把计数器清零)
-
iptables -A(增加一条规则,将规则放在最后面) INPUT -s(来源) 192.168.xxx.xxx(指定的来源IP) -p (指定协议) tcp(所指定的协议) --sport 1234(来源的端口) -d(指定目标地址) 192.168.xxx.xxx(目标IP) --dport xx(目标端口) -j DROP(放弃)(REJECT查看后放弃)
-
iptables -I(插入,将规则放在最前面) INPUT -S 1.1.1.1 -j DROP
-
iptables -A INPUT -S 1.1.1.1 -j DROP
-
iptables -D(删除) INPUT -S 1.1.1.1 -j DROP
-
iptables -I INPUT -s 192.168.xxx.xxx()/24 -i eth0 -j ACCEPT
-
iptables -nvl --line-numbers(将规则序列号显示出来)
-
iptables -D INPUT 1(删除指定编号规则)
-
iptables -P OUTPUT DROP(将默认规则DROP掉)(默认规则为ACCEPT)(会导致远程端断开,只能通过主机将规则放行才能恢复正常。执行命令iptables -P OUTPUT ACCEPT)
-
iptables -P INPUT DROP
-
案例将80端口21端口放行
-
vim /usr/local/sbin/iptables.sh
-
#!/bin/bash
-
ipt=”/usr/sbin/iptables”
-
$ipt -F(将之前规则清空)
-
$ipt -P INPUT DROP
-
$ipt -P OUTPUT ACCEPT
-
$ipt -P FORWARD ACCEPT
-
$ipt -A INPUT -m state --state RELATED,ESTABLISHED(指定的状态) -j ACCEPT
-
$ipt -A INPUT -s 192.168.xxx.xxx/24(IP段) -p tcp --dport 22 -j ACCEPT(将指定网段端口放行)
-
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT(将80端口放行)
-
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT(将21端口放行)
-
sh /usr/local/sbin/iptables.sh(将该脚本执行)
-
icmp示例
-
iptables -I INPUT -p icmp --icmp-type 8 -j DROP(执行该命令将导致可以ping通外网,但外网ping不通本地)
-
扩展
-
selinux教程 http://os.51cto.com/art/201209/355490.htm
-
selinux pdf电子书 http://pan.baidu.com/s/1jGGdExK
-
iptables应用在一个网段 http://www.aminglinux.com/bbs/thread-177-1-1.html
-
sant,dnat,masquerade http://www.aminglinux.com/bbs/thread-7255-1-1.html
-
iptables限制syn速率 http://www.aminglinux.com/bbs/thread-985-1-1.html http://jamyy.us.to/blog/2006/03/206.html
-
限速
-
http://ask.apelearn.com/question/985
-
http://jamyy.us.to/blog/2006/03/206.html
转载于:https://my.oschina.net/u/4095969/blog/3037876