- 积分
- 390
- 威望
-
- 金钱
-
- 注册时间
- 2017-3-30
- 在线时间
- 小时
- 最后登录
- 1970-1-1
|
iptables是运行在用户空间的应用软件,通过控制Linux内核netfilter模块,来管理网络数据包的处理和转发。在大部分Linux发行版中,可以通过手册页或 man iptables 获取用户手册。通常iptables需要内核模块支持才能运行,此处相应的内核模块通常是Xtables。
今天明月分享给大家的是一批iptables基础安全防护的配置,在部署VPS服务器的时候大家可以借用一下。明月的VPS上目前都已经用上了。
下面的防火墙脚本阻止任何除了允许:
来自HTTP(TCP端口80)的请求
来自ICMP ping的请求
ntp(端口123)的请求输出
smtp(TCP端口25)的请求输出
1.记录到日志,rsyslog.conf配置增加一行
vim /etc/rsyslog.conf
# iptables log
kern.info /var/log/iptables.log
重启日志服务
/etc/init.d/rsyslog restart
2.iptables配置
Drop limit
-A FORWARD -f -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
Drop sync limit 100 & DDOS
-A INPUT -i eth0 -p tcp --syn -m connlimit --connlimit-above 100 -j DROP
-A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
Drop tcp 0 adn 1
-A INPUT -p tcp --tcp-flags ALL ALL -j DROP
Drop sync
-A INPUT -i eth0 -p tcp ! --syn -m state --state NEW -j DROP
Drop Fragments
-A INPUT -i eth0 -f -j DROP
-A INPUT -i eth0 -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
-A INPUT -i eth0 -p tcp --tcp-flags ALL ALL -j DROP
Drop NULL packets
-A INPUT -i eth0 -p tcp --tcp-flags ALL NONE -m limit --limit 5/m --limit-burst 7 -j LOG --log-prefix " NULL Packets " --log-ip-options
-A INPUT -i eth0 -p tcp --tcp-flags ALL NONE -j DROP
-A INPUT -i eth0 -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
Drop XMAS
-A INPUT -i eth0 -p tcp --tcp-flags SYN,FIN SYN,FIN -m limit --limit 5/m --limit-burst 7 -j LOG --log-prefix " XMAS Packets " --log-ip-options
-A INPUT -i eth0 -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
Drop FIN packet scans
-A INPUT -i eth0 -p tcp --tcp-flags FIN,ACK FIN -m limit --limit 5/m --limit-burst 7 -j LOG --log-prefix " Fin Packets Scan " --log-ip-options
-A INPUT -i eth0 -p tcp --tcp-flags FIN,ACK FIN -j DROP
-A INPUT -i eth0 -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
Log and get rid of broadcast / multicast and invalid
-A INPUT -i eth1 -m pkttype --pkt-type broadcast -j LOG --log-prefix " Broadcast " --log-ip-options
-A INPUT -i eth1 -m pkttype --pkt-type broadcast -j DROP
-A INPUT -i eth1 -m pkttype --pkt-type multicast -j LOG --log-prefix " Multicast " --log-ip-options
-A INPUT -i eth1 -m pkttype --pkt-type multicast -j DROP
-A INPUT -i eth1 -m state --state INVALID -j LOG --log-prefix " Invalid " --log-ip-options
-A INPUT -i eth1 -m state --state INVALID -j DROP
|
|