linux下iptables详解
1.selinux 关闭
vim /etc/sysconfig/selinux
设置⽅法:
1      #SELINUX=enforcing    #注释掉
2      #SELINUXTYPE=targeted  #注释掉
3      SELINUX=disabled  #增加
4    :wq  #保存,关闭。
5    shutdown -r now  #重启
View Code
2.iptables 内⽹关闭,外⽹打开,⼤并发情况下,不能开iptables,影响性能,硬件防⽕墙。
iptables ⼯作流程⼩结
1.防⽕墙是⼀层层过滤的。实际是按照配置规则的顺序从上到下,从前到后进⾏过滤的。
2.如果匹配上规则,即明确表明是阻⽌还是通过,此时数据包就不再向下匹配新规则了。
3.如果所有规则中没有明确表明是阻⽌还是通过这个数据包,也就是没有匹配上规则,向下进⾏匹配,直到匹配默认规则得到明确的阻⽌还是通过。
4.防⽕墙的默认规则是对应链的所有的规则执⾏完才会执⾏的。
5.iptables 配置实战:
iptables  -V 查看iptables 版本
man iptables 查看iptables帮助
查看防⽕墙的状态
/etc/init.d/iptables status
iptables  -nL
6.查看liunx内核默认加载模块
lsmod |egrep "nat|filter"
加载如下模块到linux内核
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state
7.iptables 命令
-
n 数字
-L 列表
-F  清除所有规则 ,只留下默认规则,允许所有通过。
-X  删除⽤户⾃定义的链
-Z  链的计数器清零
-t 指定表
--line-numbers 显⽰序号
-A添加规则到指定链的结尾,最后⼀条
-I添加规则到指定链的开头,是第⼀条
-D 删除规则  ##删除指定规则  iptables -D INPUT  -p tcp --dport 1000 -j ACCEPT
这个区别的意义在意,规则是由上先下执⾏匹配;可以应⽤与防DDOS。
测试规则端⼝是否⽣效,可以再 cmd 上  telnet 10.0.0.18 80 看是否能连接。
iptables -I INPUT 2 -p tcp --dort 1000 -j ACCEPT        (2为第⼆⾏,插⼊在第⼆⾏的前⾯)
-p协议 (all,tcp , udp,icmp). 默认all
--dport⽬的端⼝
--sport 源端⼝
-j  (jump)处理的⾏为
-s 指定源地址
-d 指定⽬的地址
-i INPUT  匹配进⼊的⽹卡接⼝
-o OUTPUT 匹配出去的⽹卡接⼝
==========================
基本的处理⾏为:ACCEPT(接受),DROP(丢弃),REJECT(拒绝)
8. 查看某个服务的端⼝
netstat -lntup|grep mysql
netstat -lntup|grep ssh
拒绝ssh远程连接(加了这条⽆法⽤xshell进⾏远程连接了),iptables默认的就是filter表,可以不指定,下⾯两条相等。iptables -t filter -A INPUT -p tcp --dport  22  -j  DROP
iptables  -A INPUT -p tcp --dport  22  -j  DROP
-t指定filter表(不加这条,默认也是filter), -A增加规则,-p指定协议 --dport 指定端⼝,-j指定⾏为 DROP 为拒绝。
断掉后,得在远程主机,删除这条规则,或者清空规则才可以进⾏远程连接。
9.禁⽌⽹段连⼊
iptables  -A INPUT -i  etho -s 10.0.0.0/24  -j DROP
10.匹配端⼝范围(⽤冒号连接)--最佳写法
iptables -I INPUT -p tcp --dport 8080:8090  -j ACCEPT
还可以⽤列表形式添加多端⼝匹配 -m multiport
iptables -I INPUT -p tcp -m multiport --dport 21,80,8088,8080,3306 -j ACCEPT ,第⼀天允许,下⾯的不DROP 规则不匹配;
11.禁⽌ping (--imcp type8为ping)
iptables  -I INPUT -p icmp  --icmp-type 8 -j DROP
12 匹配⽹络状态
-m  state --state
NEW :已经或将启动新的连接
ESTABLISHED : 已经建⽴的连接
RELATED:正在启动的新连接
INVALID:⾮法或⽆法识别的
13.允许关联的数据包通过(web服务不要使⽤FTP服务)
#others RELATED ftp协议
#允许关联的状态包
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
14.⽣产环境中iptables 配置
#清除所有规则
ipatbles -F
#清除⽤户⾃定义的链
iptables -X
#清除当前所有链的计数器
iptables -Z
#允许ssh远程连接端⼝
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 允许⽹卡回环接⼝(服务器本机)
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#设置DROP掉FORWARD,INPUT链,允许OUTPUT链
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#允许指定⽹段通过(外⽹⽹段与内⽹⽹段)
iptables -A INPUT -s  211.154.152.0/24 -p all -j ACCEPT
iptables -A INPUT -s  192.168.152.0/24 -p all -j ACCEPT
#允许对外提供服务80端⼝
iptables -A INPUT -p tcp  --dport 80 -j ACCEPT
#允许icmp类型通过(所有ip都能ping)
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
# 允许关联的包通过(⼀般应⽤与ftp)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#永久保存防⽕墙配置,预防重启后失效
/
etc/init.d/iptables save
或⽤重定向⽅式保存(很少⽤)
iptables-save >/etc/sysconfig/iptables
iptables
⽣产环境中
使⽤iptables  -F 切忌(特别是托管机房)
要先执⾏
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
/
etc/init.d/iptables save
然后执⾏
iptables -F
要不然,没有规则,全部是drop ,ssh 断开了,所有连接失效,很严重;
15.⽣产环境中iptables 维护
#编辑规则
vim /etc/sysconfig/iptables
#加⼊想要的规则
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
/etc/init.d/iptables reload
##改DROP ⼀定要线下先测试⼀通,避免把⾃⼰DROP掉
#封IP,第⼀⾏封,范围⼩,影响不⼤
iptables -I INPUT -p tcp  -s 10.0.0.106 --dport 80 -j DROP
View Code
16 nat 表的核⼼功能: IP及端⼝的映射转换
1.共享上⽹
2.端⼝映射
17
扩展匹配
指定-m选项,表⽰⽤什么模块来匹配,如:
linux重定向-m state --state
NEW,ESTABLISHED,RELATED 表⽰⽤state模块来匹配当前连接状态为这三种状态的连接
-
m iprange
--src-range ⽤iprange模块匹配来源的ip地址范围
--dst-range ⽤iprange模块匹配⽬的的ip地址范围
-m multiport
--source-ports ⽤multiport模块来匹配来源的端⼝范围
--destination-ports ⽤multiport模块来匹配⽬的的端⼝范围
我们看如下⼀条例⼦来解读:
-A INPUT -p tcp -m iprange --src-range 121.21.30.36-121.21.30.100 -m multiport --destination-ports 3326,3327,3328 -m state --state NEW -j ACCEPT
这表⽰来⾃121.21.30.36-121.21.30.100这个地址范围的,请求端⼝为3326,3327,3328并且是新建的连接,都给予放⾏

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。