iptables

Posted on 2013-09-06 21:51 H2O 阅读(166) 评论(0)  编辑  收藏
http://www.vpser.net/security/linux-iptables.html
http://bbs.csdn.net/topics/350076518

http://serverfault.com/questions/480564/iptables-is-blocking-nginx-from-being-a-reverse-proxy-for-node-js

打开文件 /etc/sysconfig/iptables 编辑如下内容

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 9000 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 9001 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9222 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9200 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5222 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5269 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

这个文件为Linux启动时iptables自动加载的规则文件,不用再启动后自己手工输入一条条规则了,而且也便于维护。

如果这个时候系统正在运行,修改了这个文件想要重新加载,输入如下命令
iptables-restore /etc/sysconfig/iptables
重新加载规则

输入iptables --list 查看规则 是不是和自己想要的一样了~

纯粹mark,linux的命令用一次忘一次。

http://www.cnblogs.com/bangerlee/archive/2013/02/27/2935422.html


===============================================

分类: LINUX

 

iptables -F   #清除所有规则
iptables -X  #清除所有自定义规则
iptables -Z   #各项计数归零
iptables -P INPUT DROP  #将input链默认规则设置为丢弃
iptables -P OUTPUT DROP  #将output链默认规则设置为丢弃
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT #对运行在本机回环地址上的所有服务放行
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT  #把这条语句插在input链的最前面(第一条),并且对状态为ESTABLISHED,RELATED的连接放行。
iptables -A OUTPUT -p tcp –dport 80 -j ACCEPT  #允许本机访问其他80服务
iptables -A OUTPUT -p udp –dport 53 -j ACCEPT #允许本机发送域名请求
iptables -A OUTPUT -p icmp -j ACCEPT  #对本机出去的所有icmp协议放行,其实如果仅仅只是允许本机ping别的机器,更为严谨的做法是将此语句修改为:
iptables -A OUTPUT -p icmp  –icmp-type  echo-request -j ACCEPT

对状态为ESTABLISHED和RELATED的包放行,简单的说,就是说对允许出去的包被对方主机收到后,对方主机回应进来的封包放行。这条语句很重要,可以省去写很多iptables语句,尤其是在有ftp服务器的场合。你理解了这个意思,就应该知道,有了这条语句,第6条语句其实是可以省略的。

封网站:
iptables -F
iptables -X
iptables -Z
iptables -P OUTPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -p udp –dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp -s 192.168.1.10 -d www.qq.com -j DROP(禁止网站)
iptables -A FORWARD -p tcp -s 192.168.1.11/24 -d www.qq.com -o eth0 -j DROP(禁止网段)
iptables -A FORWARD -p tcp -s 192.168.1.12 -d 192.168.1.13  -o eth0 -j DROP(禁止IP)
iptables -A OUTPUT -p tcp –dport 80 -j ACCEPT (这条写在禁止网站的下面)

#安全规则类似windows防火墙
iptables -A INPUT -p tcp –dport 1:1024 -j DROP
iptables -A INPUT -p udp –dport 1:1024 -j DROP   这两条可以防止nmap探测
iptables -A INPUT -p tcp –dport ** -j ACCEPT  (要开放的端口)
#允许的端口,相对协议改一下就可以了,                         (端口过虑)
============================================

iptables架设安全的vsftp服务器

在实际工作中,可用以下脚本架设一台很的内部FTP;当然也可以配合Wireshark理解 vsftpd的被动与主动的区别,以本机192.168.0.10为例,脚本如下:

#!/bin/bash
-F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
#开启ip转发功能
echo “1″ > /proc/sys/net/ipv4/ip_forward
#加载ftp需要的一些模块功能
modprobe ip_conntrack_ftp
modprobe ip_conntrack-tftp
modprobe ip_nat_ftp
modprobe ip_nat_tftp
#为了更安全,将OUTPUT默认策略定义为DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ACCEPT
#开放本机的lo环回口,建议开放,不开放的会出现些莫名其妙的问题
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#下面的脚本是架设安全的vsftpd关健,后二句脚本是放行服务器向客户端作回应的和已建立连接的数据包,因被动FTP比较复杂,六次握手,所以这里采用状态来做
iptables -A INPUT -s 192.168.0.0/24 -p tcp –dport 21 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -p tcp –sport 21 -j ACCEPT
iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

=====================================
内网web服务器 适用于中小型公司有内网服务器发布的IPT
=====================================

防止攻击扫描
防止同步包洪水(Sync Flood)
# iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT
也有人写作
#iptables -A INPUT -p tcp –syn -m limit –limit 1/s -j ACCEPT
–limit 1/s 限制syn并发数每秒1次,可以根据自己的需要修改
防止各种端口扫描
# iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT
Ping洪水攻击(Ping of Death)
# iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT
# Null Scan(possibly)XiKc.om
iptables -A INPUT -i eth0 -p tcp –tcp-flags ALL NONE -j DROP

#ubuntu保存与开机加载
iptables-save > iptables.up.rules
cp iptables.up.rules /etc/
vi /etc/network/interfaces

iptables-save > iptables.up.rules cp iptables.up.rules /etc/ vi /etc/network/interfaces

#在interfaces末尾加入
pre-up iptables-restore < /etc/iptables.up.rules
pre-up iptables-restore < /etc/iptables.up.rules

#也可以设置网卡断开的rules。
post-down iptables-restore < /etc/iptables.down.rules
post-down iptables-restore < /etc/iptables.down.rules

#保存
service iptables save
强制所有的客户机访问192.168.1.100这个网站
iptables -t nat -I PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to-destination 192.168.1.100 (PREROUTING和DNAT一起使用,POSTROUTING和SNAT一起使用)
发布内网的web服务器192.168.1.10
iptables -t nat -I PREROUTING -p tcp –dport 80 -j DNAT –to-destination 192.168.1.10
端口映射到内网的3389
iptables -t nat -I PREROUTING -p tcp –dport 3389 -j DNAT –to-destination 192.168.1.10:3389



===============================================

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 0, comments - 21, trackbacks - 0, articles - 101

Copyright © H2O