Linux中iptables安装配置、命令讲解、防御DDOS和CC攻击

  • A+
所属分类:网上赚钱
摘要

iptables安装、配置、以及使用教程,iptables修改端口、防御ddos和cc攻击,都属于安全措施,让你的linux主机更安全。

iptables是linux下的过滤防火墙,用来设置、维护和检查Linux内核的IP包过滤规则的。

检查是否安装了iptables,以及iptables的运行状态,使用第三个重启命令重启下iptables,如果依然无法运行就从新安装吧。

rpm -aq|grep iptables

service iptables status

service iptables restart

状态如果为停止或异常,则不会显示已经设置的规则列表。

iptables

iptables安装

如果没有安装iptables,使用下边命令安装,一般linux默认都安装了iptables。

yum install iptables

yum install iptables-services

iptables配置

使用Putty登录ssh,用以下命令来配置iptables,查询默认配置的命令有哪些。

iptables -L -n

清除所有规则和计数器

iptables -F(这个命令清除后可能会断开SSH,所以要先执行/sbin/iptables -P INPUT ACCEPT

iptables -X

iptables -Z

开放端口,比如ssh22,ftp21,http80,https443,stmp25,POP3110,DNS53,mysql3306

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -p tcp --dport 443 -j ACCEPT

iptables -A INPUT -p tcp --dport 110 -j ACCEPT

iptables -A INPUT -p tcp --dport 53 -j ACCEPT

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

禁止指定的端口,例如禁止21端口

iptables -A INPUT -p tcp --dport 21 -j DROP

关于IP段的表示,要学习使用,比如家庭IP为106.114.165.65,那么家庭IP段就是104.114.0.0/16

 

从104.0.0.1到104.255.255.254,表示为104.0.0.0/8

从104.45.0.1到104.45.255.254,表示为104.45.0.0/16

从104.45.6.1到104.45.6.254,表示为104.45.6.0/24

只允许某个IP、此IP所在的ip段访问http80端口

iptables -A INPUT -p tcp -m tcp --dport 80 -j DROP

iptables -I INPUT -s 106.114.165.65 -p tcp --dport 80 -j ACCEPT

iptables -I INPUT -s 106.114.0.0/16 -p tcp --dport 80 -j ACCEPT

禁止某个IP、此IP所在的ip段访问所有端口

iptables -I INPUT -s 106.114.165.65 -j DROP

iptables -I INPUT -s 106.114.0.0/8 -j DROP

禁止某个IP、此IP所在的ip段访问80端口

iptables -I INPUT -p tcp –dport 80 -s 106.114.165.65 -j DROP

iptables -I INPUT -p tcp –dport 80 -s 106.114.0.0/8 -j DROP

禁止其他未允许的规则访问

iptables -A INPUT -j REJECT

iptables -A FORWARD -j REJECT

允许所有本机向外的访问

iptables -A OUTPUT -j ACCEPT

允许本机访问本机

iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

允许已建立的或相关连的通行

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables防御攻击

只允许某个IP端访问SSH22端口,不建议用这个命令,一旦改变IP,主机就无法登录了,所以还是建议修改端口或使用秘钥登录ssh,避免被黑客扫描。

iptables -A INPUT -p tcp --dport 22 -s 106.114.0.0/16 -j ACCEPT

iptables -A INPUT -p tcp --dport 22 -j DROP

iptables 防止SYN攻击

iptables -N syn-flood

iptables -A INPUT -p tcp --syn -j syn-flood

iptables -I syn-flood -p tcp -m limit --limit 3/s --limit-burst 6 -j RETURN

iptables -A syn-flood -j REJEC

防止每个IP最多20个初始连接,超过的丢弃

iptables -A INPUT -i eth0 -p tcp --syn -m connlimit --connlimit-above 20 -j DROP

iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables防御DDOS攻击

iptables -A INPUT -p tcp --syn -m limit --limit 12/s --limit-burst 24 -j ACCEPT

iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

iptables防止CC攻击,允许单个IP的最大连接数为 30

iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j REJECT

删除已添加的iptables规则

查询已经添加的iptables规则

iptables -L -n -v

将所有iptables规则排号

iptables -L -n --line-numbers

删除某个序号规则,比如7

iptables -D INPUT 7

iptables生效

设置完成后,先保存,再重启iptables,保存的设置就生效了。

service iptables save

service iptables restart

CentOS安装在/etc/sysconfig/iptables,你也可以使用winscp在线编辑,打开iptables文件,你会看到一排的命令列表,只需要添加或删除你要配置的命令即可,命令前去掉iptables,下边是对民网的iptables。

# Generated by iptables-save v1.4.7 on Sun Jan 7 12:17:56 2018
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:40]
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1888 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6888 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 888 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 39000:40000 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8888 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT
-A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT
-A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT
-A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Sun Jan 7 12:17:56 2018

PS:

一大片的iptables命令,不一定全用上,一般iptables只用于端口的访问和禁止,还有端口流量转发命令,不过很少有人使用,一台主机就够用了,iptables主要是端口的禁止和访问比较给力,如果说防御ddos和cc攻击,算是白给的,根本防不住各种模式的数据包,还得靠金盾防火墙。

发表评论

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen: