1.1 iptables防火墙简介Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的安全自由的**基于包过滤的防火墙工具**,它的功能十分强大,使用非常灵活,可以对流入和流出服务器的数据包进行很精细的控制。特别是它可以在一台非常低的硬件配置下跑的非常好 Iptables是Linux2.4及2.6内核中集成的服务。其功能与安全性比其**ipfwadm,ipchains**强大的多,iptables主要工作在OSI七层的二、三、四层,如果重新编译内核,iptables也可以支持**7层控制**(squid代理+iptables) 1.2 iptables 名词和术语容器:包含和被包含的关系 iptables是表的容器 iptables包含表 (4张表)表是链的容器,每个表都包含若干个链 链是规则的容器,真正过滤规则是属于链里面的 级别介绍 iptables 国家 表 省 链 市 规则 县 1.3 iptables工作流程iptables是采用数据包过滤机制工作的,所以它会对请求的数据包的包头数据进行分析,并根据我们预先设定的规则来进行匹配是否可以进入到主机。 iptables工作流程小结
1.4 iptables表(tables)和链(chains)iptables根据功能和表的定义划分包含三个表,filter,nat,mangle,其每个表又包含不同的操作链(Chains) Filter表 是真正的防火墙功能 INPUT 进服务器 OUTPUT出服务器 FORWARD 流经服务器 Nat 表 负责数据包改写 网关共享上网、IP和端口映射 OUTPUT PREROUTING POSTROUTING Mangle表 路由标记 用的不多 ####所有链全有 RAW 表 用处很少和Mangle一样 我们可以通过man iptables 来获取 1.5 表介绍对于filter表的控制是我们实现本机防火墙的重要手段,特别是对INPUT链的控制 1.6 iptables表和链工作流程图提示: iptables主要由2个作用,第一是防火墙,第二是路由。 NAT功能:企业案例:1)局域网上网共享(路由和网关)NAT POSTROUTING 2)外部IP和端口映射为内部IP和端口(DMZ功能),NAT PREROUTING Filter功能:即防火墙FILTER INPUT FORWARD 企业案例:主要应用于服务器防火墙 2.1 配置iptablesiptables默认已经安装 [root@web02 ~]# iptables -V iptables v1.4.7 [root@web02 ~]# rpm -qa iptables iptables-1.4.7-16.el6.x86_64 [root@web02 ~]# /etc/init.d/iptables status iptables: Firewall is not running. 查看iptables规则 [root@web02 ~]# iptables -nL Chain INPUT (policy ACCEPT) 表示针对input链 ACCEPT是默认规则,默认是运行通过的 target prot opt source destination input链下面具体的规则 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination 如果没有指定表,默认就是filfer表 iptables默认加载的内核模块 [root@web02 ~]# lsmod |egrep "nat|filter|ipt" ipt_REJECT 2351 2 iptable_filter 2793 1 ip_tables 17831 1 iptable_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 再次过滤,查看生效情况 [root@web02 ~]# lsmod |egrep "nat|filter|ipt" nf_nat_ftp 3443 0 nf_conntrack_ftp 11953 1 nf_nat_ftp iptable_nat 5923 0 nf_nat 22676 2 nf_nat_ftp,iptable_nat ipt_REJECT 2351 2 nf_conntrack_ipv4 9154 5 iptable_nat,nf_nat nf_conntrack 79206 6 nf_nat_ftp,nf_conntrack_ftp,iptable_nat,nf_nat,nf_conntrack_ipv4,xt_state iptable_filter 2793 1 ip_tables 17831 2 iptable_nat,iptable_filter 清空所有的规则,只留下默认规则 [root@web02 ~]# iptables -F [root@web02 ~]# iptables -X [root@web02 ~]# iptables -Z iptables -F 清除所有规则 iptables -X 删除用户自定义规则 iptables -Z 链的计数器清零 2.2 禁止规则查看端口 [root@web02 ~]# netstat -lntup|grep ssh tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1329/sshd tcp 0 0 :::22 :::* LISTEN 1329/sshd 命令如下: iptables -t filter -A INPUT -p tcp --dport 22 -j DROP -A 添加规则到指定链的结尾,最后一条 -I 添加规则到指定链的开头,第一条 -t 指定表,也可以不指定默认是filter -p 指定协议(all.tcp,udp.icmp)默认all --dport 指定端口 -j 处理的行为 ACCPET接收、DROP丢弃、REJECT拒绝 最好使用ACCPET和DROP,因为拒绝会返回给用户信息。 清除规则可以使用iptables -F 还可以使用iptables -D INPUT 1 -D指定删除的链 --line-number 显示序列号 iptables -nl --line-number 提示:需要写上链和序列号 温馨提示:恢复刚才断掉的SSH连接 1)去机房重启系统或登录服务器删除刚才的禁止规则 2)让机房人员重启服务器或者让机房人员拿用户密码登录进去 3)通过服务器的远程管理卡管理(推荐) 4)先写一个定时任务,每5分钟就停止防火墙 5)测试环境测试好,写成脚本,批量执行 企业案例3.1: 加-A和-I的区别[root@web02 ~]# iptables -A INPUT -p tcp --dport 80 -j DROP [root@web02 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT 按照iptables匹配规则,首先会先匹配第一行,依次向下。这样设置拒绝就没有用 如果想在中间插入可以指定插入行号 [root@web02 ~]# iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 还可以通过序列号插入iptables 命令 [root@web02 ~]# iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT [root@web02 ~]# iptables -nL --line-number Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 3 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 Chain FORWARD (policy ACCEPT) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination 小结:总结下删除规则的方法1. iptables -D INPUT -p tcp --dport 8080 -j DROP 2. iptables -F 删所有规则 3. /etc/init.d/iptables restart (用iptables命令行配置的命令都是临时生效) 4. iptables -D INPUT 规则序号 3.2:禁止10.0.0.0网段接入基于客户端网段控制 [root@web02 ~]# iptables -A INPUT -s 10.0.0.0/24 -j DROP -s指定源地址 还可以使用不是这个网段的进行操作 [root@web02 ~]# iptables -A INPUT ! -s 10.0.0.0/24 -j DROP 案例:控制22端口 eth0网卡进来的数据 iptables -A INPUT -p tcp --dport 22 -i eth0 ! -s 10.0.0.0/24 -j DROP iptables -A INPUT -p tcp --dport 22 -i eth0 ! -s 192.168.1.1 -j DROP 封掉3306端口 iptables -A INPUT -p tcp --dport 3306 -j DROP 匹配指定的协议 iptables -A INPUT -p tcp iptables -A INPUT -p udp 匹配指定协议外的所有协议 iptables -A INPUT ! -p tcp ``匹配单一端口** iptables -A INPUT -p tcp --sport 22 源端口 iptables -A INPUT -p udp --dport 22 目的端口 匹配端口范围: iptables -A INPUT -p tcp --sport 22:80 iptables -A INPUT -p tcp --dport 21,22,23 -j DROP---->错误语法 iptables -I INPUT -p tcp -m multiport --dport 22,23,24,25 -j DROP iptables -I INPUT -p tcp -m multiport ! --dport 22,23,24,25 -j DROP iptables -I INPUT -p tcp --dport 3306:8809 -j ACCEPT iptables -I INPUT -p tcp --dport 18:80 -j DROP <----最佳方法 匹配ICMP类型 iptables -A INPUT -p icmp-type 8 icmp中有很多类型,其中8代表ping 例: iptables -A INPUT -p icmp --icmp-type 8 -j DROP iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT 因为icmp类型很多可以使用any,icmp的所有类型全禁 iptables -A INPUT -s 192.168.1.0/24 -p icmp -m icmp --icmp-type any -j ACCEPT 企业场景禁ping iptables -A INPUT -p icmp --icmp-type 8 -s 10.0.0.0/24 -j ACCEPT 匹配网络状态 -m state --state NEW:已经或启动新的连接 ESTABLISHED:已建立的连接 RELATED:正在启动的新连接 INVALID:非法或无法识别的 FTP服务是特殊的,需要配状态连接 允许关联的状态包通过(Web服务不要使用FTP服务) iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 限制指定时间包的允许通过数量及并发数 -m limit --limit n/{second/minute/hour} 指定时间内的请求速率“n”为速率,后面为时间分别为:秒、分、时 --limit-burst [n] 在同一时间内允许通过的请求“n”为数字,不指定默认为5 iptables -I INPUT -s 10.0.1.0/24 -p icmp --icmp-type 8 -m limit --limit 5/min --limit-burst 2 -j ACCEPT 手动执行iptables命令配置企业生产环境防火墙生产环境配置主机防火墙的两种模式 1. 允许所有程序,对操作伤害的进行拒绝操纵 应用场景:企业配置上网网关路由 2. 拒绝所有操作,允许指定的操作 应用场景:服务器主机防火墙 配置企业主机防火墙[root@web02 ~]# iptables -F [root@web02 ~]# iptables -X [root@web02 ~]# iptables -Z 1.设置允许SSH登录端口 [root@web02 ~]# iptables -A INPUT -p tcp --dport 22 -j ACCETP [root@web02 ~]# iptables -A INPUT -p tcp -s 10.0.0.1/24 -j ACCEPT 2.设置允许本机lo通信规则 [root@web02 ~]# iptables -A INPUT -i lo -j ACCEPT [root@web02 ~]# iptables -A OUTPUT -o lo -j ACCEPT 3.设置默认规则 [root@web02 ~]# iptables -P INPUT DROP [root@web02 ~]# iptables -P OUTPUT ACCEPT [root@web02 ~]# iptables -P FORWARD DROP 查看规则(现在的服务器是最安全的) [root@web02 ~]# iptables -nL --line-number Chain INPUT (policy DROP) num target prot opt source destination 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 2 ACCEPT tcp -- 10.0.0.0/24 0.0.0.0/0 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy DROP) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 4.开启信任的IP网段 允许IDC LAN/WAN 和办公网IP的访问,及对外合作机构访问 iptables -A INPUT -s 124.23.62.96/27 -p all -j ACCEPT #办公室固定IP段 iptables -A INPUT -s 192.168.2.0/24 -p all -j ACCEPT #IDC机房的内网网段 iptables -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT #其他机房的内网网段 iptables -A INPUT -s 203.82.24.0/24 -p all -j ACCEPT #IDC机房的外网网段 iptables -A INPUT -s 203.82.23.0/24 -p all -j ACCEPT #其他IDC机房的外网网段 现在还只是我们可以访问,对外还无法访问 5.允许icmp类型协议通过 iptables -A INPUT -p icmp -m icmp-type any -j ACCEPT 提示:如果不想开,就不执行此命令 iptables -A INPUT -p icmp -s 10.0.0.0/24 -m icmp --icmp-type any -j ACCEPT 6.允许关联的状态包通过(Web服务不要使用FTP服务) iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 提示:以上配置就是合格服务器应该配置的 保存默认使用iptables并没有永久保存,重启失效。 第一种方法: /etc/init.d/iptables save 保存到/etc/sysconfig/iptables 下面 显示如下格式 [root@web02 ~]# cat /etc/sysconfig/iptables # Generated by iptables-save v1.4.7 on Mon Aug 15 01:33:44 2016 *nat :PREROUTING ACCEPT [1413:153792] :POSTROUTING ACCEPT [132:8834] :OUTPUT ACCEPT [132:8834] COMMIT # Completed on Mon Aug 15 01:33:44 2016 # Generated by iptables-save v1.4.7 on Mon Aug 15 01:33:44 2016 *filter :INPUT DROP [1798:662465] :FORWARD DROP [0:0] :OUTPUT ACCEPT [288:21100] -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -s 10.0.0.0/24 -p tcp -j ACCEPT -A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT COMMIT # Completed on Mon Aug 15 01:33:44 2016 第二种方法: [root@web02 ~]# iptables-save >/etc/sysconfig/iptables 推荐使用第一种方式 测试:我通过其他服务器扫描我们配置的防火墙 使用nmap工具进行分析,此工具需要安装 [root@web02 ~]# yum -y install nmap 使用如下:更多可以使用nmap --help [root@web02 ~]# nmap 10.0.0.8 -p 1-65535 Starting Nmap 5.51 ( http://nmap.org ) at 2016-08-15 04:28 CST Nmap scan report for 10.0.0.8 Host is up (0.0000070s latency). Not shown: 65532 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 3306/tcp open mysql Nmap done: 1 IP address (1 host up) scanned in 14.21 seconds 生产维护(1)确定的规则; 编辑/etc/sysconfig/iptables 加入想要的规则:例如 -A INPUT -p tcp -m tcp --dport 873 -j ACCEPT /etc/init.d/iptables reload 或者改配置的同时命令在执行,也是永久生效。 (2)命令试错,没问题了,然后放配置文件,这时不需要重启了 恶意IP封杀封IP,在第一行封。10.0.0.1 这个机器攻击我们服务器或者在BBS里发垃圾帖子 手工封IP: iptables -I INPUT -s 10.0.0.1 -j DROP #粗,范围大,外部攻击者 Iptables -I INPUT -s 10.0.0.1 -j DROP iptables -I INPUT -p tcp -s 10.0.0.1 --dport 80 -j DROP #细,范围小。内部 自动封IP:分析Web或应用日志或者网络连接状态封掉垃圾IP 脚本: #!/bin/bash #this is a server firewall created by oldboy 17:03 2006-7-26 # e_mail:31333741@qq.com # qqinfo:49000448 # function: a server firewall # version:1.1 ################################################ # oldboy trainning info. # QQ 1986787350 70271111 # site: http://www.etiantian.org # blog: http://oldboy.blog.51cto.com # oldboy trainning QQ group: 208160987 45039636 ################################################ #define variable PATH IPT=/sbin/iptables #Remove any existing rules $IPT -F $IPT -X $IPT -Z #setting default firewall policy $IPT --policy OUTPUT ACCEPT $IPT --policy FORWARD DROP $IPT -P INPUT DROP #setting for loopback interface $IPT -A INPUT -i lo -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT #setting access rules #one,ip access rules,allow all the ips of $IPT -A INPUT -s 10.0.10.0/24 -p all -j ACCEPT $IPT -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT ##下面的是重复的,作为知识点保留,单个服务的配置 #second,port access rules #nagios $IPT -A INPUT -s 10.0.10.0/24 -p tcp --dport 5666 -j ACCEPT $IPT -A INPUT -s 10.0.0.0/24 -p tcp --dport 5666 -j ACCEPT #db $IPT -A INPUT -s 10.0.0.0/24 -p tcp --dport 3306 -j ACCEPT $IPT -A INPUT -s 10.0.0.0/24 -p tcp --dport 3307 -j ACCEPT $IPT -A INPUT -s 10.0.10.0/24 -p tcp --dport 3306 -j ACCEPT $IPT -A INPUT -s 10.0.10.0/24 -p tcp --dport 3307 -j ACCEPT #ssh difference from other servers here.>> $IPT -A INPUT -s 10.0.0.0/24 -p tcp --dport 52113 -j ACCEPT $IPT -A INPUT -s 10.0.10.0/24 -p tcp --dport 52113 -j ACCEPT $IPT -A INPUT -p tcp --dport 22 -j ACCEPT #http $IPT -A INPUT -p tcp --dport 80 -j ACCEPT #snmp $IPT -A INPUT -s 10.0.0.0/24 -p UDP --dport 161 -j ACCEPT $IPT -A INPUT -s 10.0.10.0/24 -p UDP --dport 161 -j ACCEPT #rsync $IPT -A INPUT -s 10.0.0.0/24 -p tcp -m tcp --dport 873 -j ACCEPT $IPT -A INPUT -s 10.0.10.0/24 -p tcp -m tcp --dport 873 -j ACCEPT #icmp #$IPT -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT #others RELATED $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 企业案例:写一个脚本解决DOS攻击生产案例 提示:根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频率每隔3分钟。防火墙命令为:iptables -I INPUT -s 10.0.1.10 -j DROP 本脚本使用测试文件进行编写 [root@db02 scripts]# cat test_6.sh #!/bin/sh # [ -f /etc/init.d/functions ] && . /etc/init.d/functions IP_file="/server/scripts/ddos.txt" IP_filter_command="iptables -I INPUT -j DROP -s" IP_recover_command="iptables -D INPUT -j DROP -s" function IP_check(){ grep "EST" ${IP_file}|awk -F "[ |:]+" '{print $6}'|sort |uniq -c|sort -rn -k1 > /server/scripts/ip.txt } function IP_filter(){ exec < /server/scripts/ip.txt while read line do IP_count=`echo $line|awk '{print $1}'` IP=`echo $line|awk '{print $2}'` IP_fil=`iptables -L -n|grep "\b${IP}\b"|wc -l` if [ ${IP_count} -gt 25 -a ${IP_fil} -eq 0 ];then ${IP_filter_command} ${IP} echo "${IP}" >> /server/scripts/ip_filtered.txt action "Filter ${IP}" /bin/true fi done } function IP_recover(){ exec < /server/scripts/ip.txt while read line do IP_count=`echo $line|awk '{print $1}'` IP=`echo $line|awk '{print $2}'` IP_fil=`iptables -L -n|grep "\b${IP}\b"|wc -l` if [ ${IP_count} -le 25 -a ${IP_fil} -eq 1 ];then ${IP_recover_command} ${IP} echo "${IP}" >> /server/scripts/ip_filtered.txt action "Recover ${IP}" /bin/true fi done } function main(){ case "$1" in filter) IP_check echo "$(date +%F-%H:%M:%S) filtered by $(whoami)" >> /server/scripts/ip_filtered.txt IP_filter ;; recover) IP_check echo "$(date +%F-%H:%M:%S) recovered by $(whoami)" >> /server/scripts/ip_filtered.txt IP_recover ;; *) echo "USAGE:$0 {filter|recover}" exit 1 esac } main $* 生产环境iptables脚本讲解技巧:具备外网IP的服务器不对外的服务最好要做源地址限制。对外提供的服务,不能做源地址限制,例如:80 端口 问题:企业硬件防火墙和IPTABLES防火墙是否要同时用。 解决:可以同时使用企业硬件防火墙一般放在网关位置,相当于大厦的保安,但是楼里的每个屋子还是需要有人锁门的iptables 问题: IDC机房部署了硬件防火墙,我们的服务器可以不开防火墙吗? 解答:绝对不可以,大厦有了保安,你的办公室门就不锁了吗? NAT表设置共享上网设置 linux网关B: 局域网共享的两条命令方法: 方法1:适合于有固定外网地址的: iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.7 (1)-s192.168.1.0/24 办公室或IDC内网网段。 (2)-oeth0 为网关的外网卡接口。 (3)-jSNAT --to-source 10.0.0.7 是网关外网卡IP地址。 方法2:适合变化外网地址(ADSL): iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE #伪装。 配置如下 第一步:外网服务器配置 [root@lb01 ~]# iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT --to-source 10.0.0.5 [root@lb01 ~]# iptables -t nat -L -n 开启内核转发 net.ipv4.ip_forward = 1 vim /etc/sysctl.conf sysctl -p #生效 需要上网服务器设置 添加路由 route add default gw 172.16.1.5#此处写提供外网的IP地址 vim /etc/resolv.conf 添加 nameserver 223.5.5.5 route -n 检查 案例2:实现把访问10.0.0.5:80的请求转到172.16.1.8:80 [root@web02 ~]# iptables -t nat -A PREROUTING -d 10.0.0.5 -p tcp --dport 80 -j DNAT --to-destination 172.16.1.8:80 [root@web02 ~]# iptables -P FORWARD DROP iptables常用企业案例:1、Linux主机防火墙(表:FILTER 控制链:INPUT) 2、局域网机器共享上网(表:NAT 控制链:POSTROUTING) iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.7 3、外部地址和端口,映射为内部地址和端口(表:NAT 控制的链:PREROUTING) iptables -t nat -A PREROUTING -d 10.0.0.7 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.8:9000 企业案例:实现外部IP 124.42.34.112 一对一映射到内部server 10.0.0.8 网关Ip:eth0:124.42.60.109 eth1:10.0.0.254 首先在路由网关上绑定VIP 124.42.34.112,可以是别名或辅助IP的方式。 -A POSTROUTING -s 10.0.0.0/255.255.240.0 -d 124.42.34.112 -j SNAT --to-source 10.0.0.254 -A PREROUTING -d 124.42.34.112 -j DNAT --to-destination 10.0.0.8 -A POSTROUTING -s 10.0.0.8 -o eth0 -j SNAT --to-source 124.42.34.112 iptables 生产应用场景1)局域网共享上网(适合做企业内部局域网上网网关,以及IDC机房内网的上网网关[nat POSTROUTING]) 2)服务器防火墙功能(适合IDC机房具有外网IP的服务器)(主要是filter INPUT的控制) 3)把外部IP及端口映射到局域网内部(可以一对一IP映射,也可以针对某一个端口映射)也可能是IDC把网站的外网VIP及网站端口映射到负载均衡器上(硬件防火墙)。(nat PREROUTING) 4)办公路由器+网关功能(zebra路由+iptables过滤及NAT+squid正向透明代理)80+ntop/iftop/iptraf流量查看+tc/cbq流量控制限速 5)邮件的网关 iptables防火墙的应用1)主机防火墙 2)网关的应用(IP映射,端口映射) 3)过滤信息,监控限制流量及员工上网行为(squid(正向代理缓存加过滤)+ntop(图形流量监控)+通常(流量限制)+iptraf/iftop(流量查看)) 如果IPTABLES的服务器升级内核可以实现类似squid的过滤功能 4)网关装杀毒软件监听9999端口,(网关杀毒) iptables -A PREROUTING -i eth0 -d 211.167.253.109 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.10.6:9025 5)结合zebra配置企业级路由器 映射多个外网IP上网iptables -t nat -A POSTROUTING -s 10.0.0.1/255.255.255.0 -o eth0 -j SNAT --to-source 124.42.60.11-124.42.60.16 iptables -t nat -A POSTROUTING -s 172.16.1.0/255.255.255.0 -o eth0 -j SNAT --to-source 124.42.60.103-124.42.60.106 #iptables -t nat -A postrouting -S 192.168.1.0/22 -o eth0 -j SNAT --to-source 10.0.0.241-10.0.0.249 问题: 1、2000人被封 2、可用65535端口资源有限 企业案例: ip_conntrack: table full, dropping packet.的错误提示 以下是我的生产环境的某个服务器的配置: net.ipv4.tcp_fin_timeout = 2 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_keepalive_time = 600 net.ipv4.ip_local_port_range = 4000 65000 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_max_tw_buckets = 36000 net.ipv4.route.gc_timeout = 100 net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_synack_retries = 1 #5、dmesg里面显示ip_conntrack: table full, dropping packet.的错误提示.如何解决。 #以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理。 c58: net.ipv4.ip_conntrack_max = 25000000 net.ipv4.netfilter.ip_conntrack_max=25000000 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180 net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60 net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120 ################################################################ C64: net.nf_conntrack_max = 25000000 net.netfilter.nf_conntrack_max = 25000000 net.netfilter.nf_conntrack_tcp_timeout_established = 180 net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120 net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60 net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120 调整内核参数/etc/sysctl.conf后,需执行/sbin/sysctl -p使得修改生效。 强调:如果并发比较大,或者日PV多的情况下,开启防火墙要注意,很可能导致网站访问缓慢 大并发(并发1万,PV日3000万)要么购买硬件防火墙,要么不开iptables防火墙 iptables 参数简介-n 数字 -L 列表 -F 清除所有规则,不会处理默认规则 -X 删除用户自定义的链 -Z链的计数器清零 -A 添加规则到指定链的结尾,最后一条 -I 添加规则到指定链的开头,第一条 -t指定表,也可以不指定默认是filter -p 指定协议(all.tcp,udp.icmp)默认all -P 设置默认规则 -s指定源地址 -d 目的地址 --dport 指定端口 -j处理的行为 ACCPET接收、DROP丢弃、REJECT拒绝 -iinput 匹配进入的网卡接口 -ooutput 匹配出去的网卡接口 -m state --state 匹配网络状态 以上linux防火墙iptables的详细介绍和配置方法就是小编为大家收集整理的全部内容了,希望对大家有所帮助。如果您喜欢这篇文章,可以收藏或分享给您的小伙伴们吧!欢迎持续关注我们的后续更新。 |
免责声明:本站部分文章和图片均来自用户投稿和网络收集,旨在传播知识,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系我们及时修正或删除。谢谢!
始终以前瞻性的眼光聚焦站长、创业、互联网等领域,为您提供最新最全的互联网资讯,帮助站长转型升级,为互联网创业者提供更加优质的创业信息和品牌营销服务,与站长一起进步!让互联网创业者不再孤独!
扫一扫,关注站长网微信
当我们在共享网络访问的时候,可能会遇到提示指定的网络名不再可用的问题,这可能是由于我们的共享网络出现了错误,也可能是被共享的对象所拒绝了。指定的网络名 ......
文/曹杨 原标题:谁还看电视? 爸爸戴一副老花镜,妈妈戴一副近视镜,一人坐在沙发,一人躺在床上,各自刷着自己关注的博主更新的短视频。电视也许开着,但只是背景。 这样的画面,几乎成了洛奇家的常 ...
图片来源于简书 文/郭开森 杨帆 陆玖财经准备开新栏目了,每周一创始人郭开森和杨帆合体郭德帆,对行业进行一些观察和评论,第一篇我们仍是打算写社区团购,这是当下最火的话题。 来过陆玖财经做客的朋友们...
一、软件冲突1、首先确认是否是应用程序冲突导致的。2、查看是否只有特定几个游戏或应用会导致该问题。3、如果是应用冲突,那么只要卸载这些app就可以解决了。二 ......
1、首先进入到“百度”软件中, 2、然后在其中输入“百度识图”, 3、之后点击图中的“开始使用”按钮, 4、紧接着点击右下角的“相册”功能, 5、在相册下 ......
电脑端:1、大家可以点击右边链接进入网页版的百度网盘,进入之后点击“去登录”。https://pan.baidu.com/2、之后正确的输入账号密码进行登录就好啦。手机端:1 ......
在填写一些项目申请书中,总是免不了要选择一些数字,但是在方框中如何插入数字,该怎么办呢?那么下面就由学习啦小编给大家分享下word在方框里输入数字的技巧, ......
8月15日消息 上周,有媒体报道前身为百度图片的“榴莲”APP含有大量不雅视频内容被用户举报。对此,百度图片官方进行了回应,百度图片表示已经对报道中所涉及的“生吃旋风哥”等争议内容进行了下线处理。 此外,百度...
一、N100对比intel i3 1、N100的跑分达到了147210分,这个数据可以达到i3的七代级别。 2、在跑分上也是超越了大部分的I3七代CPU,不过比I3八代要弱势一些。 3 ......
WPS Office手机版怎么加横线?很多用户还不知道WPS Office手机版怎么加横线,WPS Office手机版怎么加横线,WPS Office手机版怎么打横线,WPS Office手机版怎么弄 ......
迅雷前缀是什么 答:迅雷前缀是(magnet:?xt=urn:btih:)括号里的就是了。 我们只要在这段文字之后输入后续的内容,就可以创建下载链接了。 1、磁力链接不基于文 ......
一、内容特权。 1、半价点播。 许多站内视频都需要付费观看,而大会员用户可以直接半价享受; 购买成功后的48h内无限次观看。有部分的内容是只限在中国大陆内观 ......
1、首先打开小米运动的“实验室功能”。 2、接着点击“门卡模拟”。 3、然后点击“我知道了”。 4、最后贴近就可以刷卡成功了。...
答:华为P系列: 华为p40,华为p40plus,华为p50,华为p50e,华为p60 华为mate系列: 华为mate40,华为mate50,华为mate50e,华为mate60 华为nova系列: 华为n ......
近期有用户反映,电脑在更新Windows 11 Insider Preview 25252.1000后,出现了应用和已压缩的文件点击毫无反应,拖拽都不行,只能从开始菜单打开的情况,这是怎 ......
文/黎明 一场针对中国互联网巨头的反垄断风暴正在酝酿,而且这次动真格了。 11月10日,国家市场监管总局发布《关于平台经济领域的反垄断指南(征求意见稿)》,要加大对互联网巨头涉嫌垄断的调查和监管。 ...
答:骁龙8+更好。 骁龙7+gen2实际上就是骁龙8+的低配版本。 在一些其他的核心架构方面都是保持一致的,比如说CPU的架构、GPU的架构等等。 骁龙7+和骁龙8+具体 ......
可见单元格就是不包括隐藏或者筛选筛选后隐藏起来的单元格区域。方法:筛选或隐藏数据,复制需要粘贴的值,在目标单元格区域左上角的第一个单元格处右击,选择【 ......
win11系统如何释放掉系统默认保留的存储空间?一般情况下,Windows会保留一些存储空间,以便设备获得良好性能和成功更新。但是当出现系统盘储存空间不足时,我们会将几个G的保留空间释放出来,以解燃眉之急。本期教...
文件被win10系统误报病毒自动删除了如何进行恢复?有用户下载了某些破解软件却被Win10系统误认为是病毒文件而自动删除,当然系统自带杀毒软件其实挺不错的,就是有时候会误报,大家遇到这种情况的时候就希望把误删的...
win11系统快速跳过联网创建本地管理账户3种方法?现在市面上销售的品牌笔记本和台式机基本上都预装Windows11家庭中文版正版操作系统,联网后系统会自动激活。当用户拿到新机器后还需要按照cortana(小娜)的提示一步...
罗技g304dpi灯颜色代表什么:1、蓝色:这种情况是正常工作的显示,如果说是常亮或者闪烁,那都没有问题这是在正常工作呢。2、红色:如果说是红灯闪烁的话那就是 ......
答:在3DMark压力测试当中,显卡需要超高97%才能够算合格,证明显卡的稳定性是过关的。 1、一般的默认情况下在2500~3000分就算很正常的了。 2、分数越高说明显卡 ......
相信有非常多使用过笔记本的用户都听说过独显直连这个词,但很多用户并不了解独显直连是什么,又有什么用处,那么下面就和小编一起来看看什么是独显直连和开启这 ......
win11系统开机总是自动登录OneDrive如何关闭?win11系统开机的时候,会自动启动OneDrive,不想要启动,该怎么操作呢?下面我们就来看看详细的教程。 在OneDrive界面点小齿轮按钮,下拉菜单中点【设置】。 单击【...
背景 有时候我们需要获取文件的创建时间。 例如: 我在研究 《xtrabackup 原理图》的时候,想通过观察确认 xtrabackup_log 是最早创建 并且是 最晚保存的 ......
假设有 A、 B 两台 Linux 服务器,我们希望能够从其中一台服务器通过 SSH 免密码登录到另一台服务器。 两台服务器的信息如下:  ......
答:性能上差不多是和天玑9000以及骁龙8+处于差不多的水平。 也可以看成是骁龙8+的降配版本 骁龙7+处理器介绍 1、高通称这款芯片为“骁龙史上最强 7 系平台” ......
1、先打开机顶盒进入主界面,并且使用遥控器打开设置。 2、然后选择“账号与安全”,并且进入。 3、最后往下面翻就可以看到“ADB调试”的选项,直接开启就行了 ......