标签归档:iptables

CentOS6使用yum搭建VPN

第一步:检查
如果检查结果没有这些支持的话,是不能安装pptp的。执行指令:
#modprobe ppp-compress-18 && echo ok
这条执行执行后,显示“ok”则表明通过。不过接下来还需要做另一个检查,输入指令:
#cat /dev/net/tun
如果这条指令显示结果为下面的文本,则表明通过:
cat: /dev/net/tun: File descriptor in bad state
上述两条均通过,才能安装pptp。否则就只能考虑openvpn,或者请你的服务商来解决这个问题。
注意:如果你显示的不是这个文本,而是别的,可能显示的就不一样,这是版本问题,(如你安装的简体中文可能就会出现error之类的一句话。)
#rpm -q ppp //查询当前系统的ppp是否默认集成了,以及ppp的版本

第二步:安装
1.安装ppp和iptables
PPTPD要求Linux内核支持mppe,一般来说CentOS安装时已经包含了
#yum install perl ppp iptables //centos默认安装了iptables和ppp
#chkconfig iptables on
#service iptables start
2.安装pptpd
#rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
#yum install pptpd
#chkconfig pptpd on
#service pptpd start
以下命令检查PPP是否支持MPPE:
#strings ‘/usr/sbin/pppd’ |grep -i mppe | wc –lines
如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持,MPPE(Microsoft Point to Point Encryption,微软点对点加密)。

第三步:配置
开启路由转发
#vim /etc/sysctl.conf
修改
net.ipv4.ip_forward = 1
执行:
#sysctl -p 让修改的内核参数生效

配置
#vi /etc/ppp/options.pptpd
修改:
ms-dns 8.8.8.8
ms-dns 8.8.4.4

#vi /etc/pptpd.conf
修改 :
localip 10.8.8.1 为vpn管道的ip (VPN主机IP)
remoteip 10.8.8.2-245 为给客户端连接分配的ip地址范围

添加账号
#echo -e ‘vpntest pptpd vpntestpassword *’ >> /etc/ppp/chap-secrets
注:chap-secrets保存的信息客户端连接信息依次是:用户名,服务名,密码,允许的ip。服务名在options.pptpd的name定义,默认为pptpd

iptables 配置
#iptables -A INPUT -p tcp –dport 22 -j ACCEPT #SSH使用的端口
#iptables -A INPUT -p tcp –dport 1723 -j ACCEPT
#iptables -A INPUT -p tcp –dport 47 -j ACCEPT
#iptables -A INPUT -p gre -j ACCEPT
#iptables -A POSTROUTING -t nat -s 10.8.8.0/24 -o eth0 -j MASQUERADE
#service iptables save
#service iptables restart

使用iptables封单个IP及各种IP段例子

封单个IP的命令是:
iptables -I INPUT -s 211.1.0.0 -j DROP
封IP段的命令是:
iptables -I INPUT -s 211.1.0.0/16 -j DROP
iptables -I INPUT -s 211.2.0.0/16 -j DROP
iptables -I INPUT -s 211.3.0.0/16 -j DROP
封整个段的命令是:
iptables -I INPUT -s 211.0.0.0/8 -j DROP
封几个段的命令是:
iptables -I INPUT -s 61.37.80.0/24 -j DROP
iptables -I INPUT -s 61.37.81.0/24 -j DROP
【解封】
iptables -D INPUT -s IP地址 -j REJECT

如果发现input连接 命令不起作用,则可以 路由连接参数 使用下面命令
iptables -A FORWARD -s 1.202.0.0/16 -j DROP

在unix中IP子网掩码可用16,24,32等数字来表示,意思是:16表示子网掩码的前16位是全1,24、32以此类推。

iptables -A FORWARD -s 61.172.0.0/16 -i 网卡名称 -j DROP

——–有人说这种方法比较好用,这句比你防火墙管用——–

那句只能禁止一个ip路由 #route add 61.172.0.0/16 reject
这句可以封整段 #route add -net 61.172.0.0 netmask 255.255.0.0 reject

下面看些实际例子,设计封第几个IP段的问题:

——如果要封的内容是 061.037.080.000->061.037.081.255 —–
iptables -I INPUT -s 61.37.80.0/24 -j DROP
iptables -I INPUT -s 61.37.81.0/24 -j DROP

—–用什么命令可以让iptables 封了 211.1.0.0 到 211.10.0.0 IP段?———–
platinum 回复于:2004-01-01 01:14:13
iptables -I INPUT -s 211.1.0.0/16 -j DROP
iptables -I INPUT -s 211.2.0.0/16 -j DROP
iptables -I INPUT -s 211.3.0.0/16 -j DROP

——如果要封的内容是整段的 比如 211.0.0.0 – 211.255.255.255 ————-
iptables -I INPUT -s 211.0.0.0/8 -j DROP