当启用防火墙后,iptables -vnL显示出全部规则,但咱们不使用默认规则,清空规则,本身定义网络
一、iptable -t filter -A INPUT -s 192.168.239.70 -j DROP(末尾添加),设置源地址是192.168.239.70发出的请求,全丢弃,即不回应并发
以前是通的,但设置完防火墙规则后的DROP(丢弃)就卡在这里,光标不停闪烁ssh
二、iptables -I INPUT -s 192.168.239.70 -j REJECT,插入规则,源地址为192.168.239.70的主机发出的请求所有拒绝,这里直接返回目标端口不可到达tcp
iptables -I INPUT 2 -s 192.168.239.70 -j REJECT,插入第二条ide
三、iptables -D INPUT 2,删除INPUT中的第二条规则函数
四、iptables -R INPUT 2 -s 192.168.1.1 -j REJECT,替换规则中第2条源地址ip由192.168.239.70更改成192.168.1.1测试
五、iptables -A INPUT -s 192.168.239.70,192.168.239.71 -j REJECT,一次加入两条ipspa
六、iptables -A INPUT -s ! 192.168.239.70 -j REJECT,除了192.168.239.70的ip,所有拒绝
生产中为了不本身设置规则时候不当心把本身踢出,应作防火墙备份,再用at执行计划,设置5分钟后执行,等规则设置完成后再取消计划,避免产生没必要要的麻烦
七、iptables -P INPUT DROP,更改策略中只要不匹配就DROP,默认为ACCEPT(只支持ACCEPT和DROP,不支持REJECT),最好不要进行更改
八、iptables -A OUTPUT -d 192.168.239.70 -j DROP,拒绝本机流出报文访问目标地址192.168.239.70
此时192.168.239.70也不会ping通本机,由于报文的传导是有去有回的
iptables -A INPUT ! -s 192.168.239.1 -j REJECT
iptables -A INPUT -s 192.168.239.0/24 -j ACCEPT
这里记录了防火墙的规则,若是另外一台设备也须要一样的防火墙规则,能够将其生存文件,并
while read line; do done iptables $line < iptables.log
iptables -A INPUT -s 192.168.239.70 -p icmp -j REJECT
因为禁止的是icmp协议,ssh基于的是tcp协议,但ssh仍是能够
iptables -A INPUT -i eth0 -j ACCEPT,从eth0网卡流入的数据报文所有容许,适用于多种网卡状况
打开个人云服务器,lastb发现有几个ip尝试登录个人云服务器,将这些ip所有加入黑名单
iptables -A INPUT -s 103.207.37.253,118.123.244.228,119.6.103.44,5.188.10.156,103.207.37.253,103.207.38.226,14.226.255.211,78.198.69.64 -j REJECT
--tcp-flags SYN表示第一次握手,等于--syn
输入指令iptables -A INPUT -p tcp --syn -j REJECT,查看
以前已经链接到192.168.239.60的主机能够继续使用,而其余主机链接被拒绝
iptables -A INPUT -p icmp --icmp-type 8 -j REJECT,拒绝进来请求报文,测试结果为
以SAMBA服务举例,链接SAMBA服务须要开放13九、445端口,未开放前
输入指令iptables -A INPUT -p tcp --dport 139 -j ACCEPT和iptables -A INPUT -p tcp --dport 445 -j ACCEPT以后,已经能够链接
iptables -N WEBSRV FILESRV,自定义链更名由WEBSRV变为FILESRV
iptables -A FILESRV -p tcp --dport 139 -j ACCEPT,向FILESRV添加容许139端口经过的规则
iptables -A INPUT -s 192.168.239.71 -j FILESRV
自定义链相似于shell中的函数调用理念,提早预设好,等使用时候直接用便可
iptables -I INPUT -p tcp -m multiport --dports 80,443,3306 -j ACCEPT
若是命令是iptables -I INPUT -p tcp -m multiport --dports 80:88,443,3306 -j ACCEPT,添加的端口是80,81,82,83,84,85,86,87,88,443,3306
iptables -A INPUT -m iprange --src-range 192.168.239.60-192.168.239.69 -j ACCEPT
本机192.168.239.60没法ping通192.168.239.70,此时添加规则
iptables -A INPUT -s 192.168.1.1 [!] -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptable -A OUTPUT -m string --string "baidu" --algo bm -j REJECT
查看iptables规则,此时能够ping通www.baidu.com
设置string扩展规则,以后再次ping www.baidu.com失败
iptables -A OUTPUT -m time --timestart 1:00 --timestop 9:00 --weekdays 2,4,6 -j REJECT
设置UTC时间1:00-9:00(北京时间9:00-18:00),周二四六不能流出报文
控制单个ip最多能够发起多少个链接数,防止******(cc***,挑战黑洞)
iptables -A INPUT -m connlimit --connlimit-above 100 -j REJECT
iptables -I INPUT 2 -m limit --limit 6/minute --limit-burst 10 -j ACCEPT
一分钟前十次ping 本机不理会,超过十个后拒绝,后面ping中均匀分布每分钟ping通6次
NEW:新发出请求;链接追踪信息库中不存在此链接的相关信息条目,所以,将其识别为第一次发出的请求,即新链接,但不影响正在链接的
ESTABLISHED:NEW状态以后,链接追踪信息库中为其创建的条目失效以前期间内所进行的通讯状态,即正在链接的
RELATED:新发起的但与已有链接相关联的链接,如:ftp协议中的数据链接与命令链接之间的关系
iptables -A INPUT -s 192.168.239.60 -j LOG --log-prefix "iptables:" ,--log-prefix,前缀的意思
和state相结合,能够iptables -I INPUT 3 -s 192.168.239.0/16 -m state --state NEW -j LOG --lgo-prefix "自定义字符",只要192.168.239.0网段的新主机访问本主机,日志都会记录下来
CentOS6的保存service ipatables save,系统会自动保存到 /etc/sysconfig/iptables
CentOS7的保存,iptables-save > /DIR/FILE,读取时候iptables-restore < /DIR/FILE,
所以须要在/etc/rc.d/rc.local中写入iptables-restore < /DIR/FILE(记得对rc.local加执行权限)
iptables -t nat -A POSTROUTING -s 192.168.31.0/24 -j SNAT --to-source 172.18.0.123