标签:iptables 防火墙 ACCEPT 企业级 tcp INPUT icmp IPTAB
iptables优化案例
[root@ghzz ~]# vi /root/shell/iptables.sh
#!/bin/bash
#by qiuyuetao
#--------------------------------------------------------------------------
IPTAB=/sbin/iptables #定义环境变量
$IPTAB -X #清空自定义链
$IPTAB -Z #清空计数器
$IPTAB -F #清空当前表的所有规则
$IPTAB -t nat -F #清空nat表的所有规则
$IPTAB -t mangle -F #清空mangel 表规则
$IPTAB -t raw -F #清空raw表规则
$IPTAB -X -t nat #清空自定义链
$IPTAB -X -t raw
$IPTAB -X -t mangle
#--------------------------------------------------------------------------
$IPTAB -A INPUT -i lo -j ACCEPT #允许回环地址访问
$IPTAB -A INPUT -s 127.0.0.1 -j ACCEPT #允许自己访问
$IPTAB -A INPUT -s 192.168.0.0/22 -j ACCEPT# 允许内网访问
$IPTAB -A INPUT -s 119.161.189.1 -j ACCEPT #允许跳板机访问
#--------------------------------------------------------------------------
$IPTAB -A INPUT -p icmp -j ACCEPT #允许icmp 也就是ping
$IPTAB -A INPUT -p tcp -m multiport --dport 80,22,3306,2188 -j ACCEPT #对外开放的端口
$IPTAB -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #对进来的包的状态进行检测。已经建立tcp连接的包以及该连接相关的包允许通过!
$IPTAB -P INPUT DROP #除了上面的fiter表input链
$IPTAB -P FORWARD DROP
$IPTAB -P OUTPUT ACCEPT
#--------------------------------------------------------------------------
$IPTAB-save > /etc/sysconfig/iptables
##修改iptables -F -X -Z 都需要 /etc/init.d/iptables save
## -t:指定要保存的表的名称。
# iptables-save -t filter > iptables.bak
恢复备份的iptables配置:
iptables-restor < /etc/sysconfig/iptables
iptables日常配置
防火墙是否开启Linux就该这么学
[root@m01 ~] /etc/init.d/iptables status
开启iptables
iptables -F #清空当前表规则
iptables -X #清空自定义链
iptables -Z #清空计数器
开启内核转发
将net.ipv4.ip_forward = 1 由0改为1
sed -i 'snet.ipv4.ip_forward = 0net.ipv4.ip_forward = 1g'
sysctl -p 生效
添加iptables模块
lsmod 显示已经加载到内核中的模块的状态信息
lsmod|egrep "nat|filter" 查看nat 与filter表加载的模块信息
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack_ftp 连接跟踪
modprobe ip_nat_ftp nat模块
modprobe ipt_state 状态模块
企业级的防火墙模式选择
"两种思想:"
逛公园:
1、默认规则默认是允许的状态。
看电影:
2、默认规则默认是不允许的状态。更安全。
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#允许内网IP地址段访问
iptables -A INPUT -d 172.16.1.0/24 -j ACCEPT
#允许回环地址可以进出
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
修改默认规则
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
添加允许的服务及端口
#允许访问http服务80 443
iptables -A INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT
#只允许内网ping
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -s 172.16.1.0/24 -j ACCEPT
#允许ftp请求
#iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#允许某端口映射
iptables -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --sport 53 -j ACCEPT
NAT 共享上网
/proc/sys/net/ipv4/ip_forward 开启内核转发
iptables -t filter -A FORWARD -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.61
#所有内网172.16.1.0网段地址,都通过10.0.0.61这个IP 转发上外网
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE
#MASQUERADE 自动获取服务端IP,做IP地址转发(例如:openvpn)
其他应用服务规则案例
"1)http服务"
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m multiport --dport 8080,8081,8082 -j ACCEPT
iptables -A INPUT -p tcp --dport 22000:22030 -j ACCEPT
#:冒号代表一段端口从22000-22030所有端口都允许
"2) db数据服务"
iptables -A INPUT -s 10.1.8.0/24 -p tcp --dport 3306 -j ACCEPT
"3) snmp 网络管理"
iptables -A INPUT -s 10.1.8.0/24 -p UDP --dport 161 -j ACCEPT
"4) rsync 实时同步"
iptables -A INPUT -s 10.1.8.0/24 -p tcp -m tcp --dport 873 -j ACCEPT
" 5) nfs 2049,rpc 111 (NFS网络文件共享、rpc)"
iptables -A INPUT -s 10.1.8.0/24 -p udp -m multiport --dport 111,892,2049 -j ACCEPT
iptables -A INPUT -s 10.1.8.0/24 -p tcp -m multiport --dport 111,892,2049 -j ACCEPT
" 6) 允许所有ping"
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
" 7)允许内网172.16.1.0 网段ping"
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -s 172.16.1.0/24 -j ACCEP
"8) keepalived vrr"
-A INPUT -d 172.16.1.0/24 -j ACCEPT
-A INPUT -p vrrp -j ACCEPT
"9) zabbix端口开放"
-A INPUT -p tcp -m tcp --dport 10050:10051 -j ACCEPT
-A INPUT -p tcp -m udp --dport 10050:10051 -j ACCEPT
iptable安全配置
1)限速
iptables -A INPUT -p tcp --syn -m limit --limit 100/s --limit-burst 100 -j ACCEPT
2)没秒ping不超过10个
iptables -A FORWAD -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 10 -j ACCPET
3)将SYN及ACK SYN限制为每秒不超过200
iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 20/sec --limit-burst 200 -j ACCEPT
4)防范 SYN-Flood 碎片***
iptables -N syn-flood
iptables -A INPUT -syn -j syn-flood
iptables -A syn-flood -m limit -limit 5000/s -limit-burst 200 -j RETURN
iptables -A syn-flood -j DROP
prevent all Stealth Scans and TCP State Flags
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
All of the bits are cleared
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
SYN and RST are both set
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
SYN and FIN are both set
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
FIN and RST are both set
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
FIN is the only bit set, without the expected accompanying ACK
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
PSH is the only bit set, without the expected accompanying ACK
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
URG is the only bit set, without the expected accompanying ACK
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP
Linux资源站
发布了10 篇原创文章 · 获赞 37 · 访问量 17万+
私信
关注
标签:iptables,防火墙,ACCEPT,企业级,tcp,INPUT,icmp,IPTAB 来源: https://blog.csdn.net/Linuxprobe18/article/details/103694863
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。