Linux下的VPN配置

来源:互联网 发布:云陌知道软件 编辑:程序博客网 时间:2024/05/17 07:02

1、找到软件
  我用的软件是pptpd-1.1.4-b3.tar,不知道为什么,这里不让上传gz文件
  2、安装
  解压后,
  ./configure
  make
  make install
  3、配置文件
  vi /etc/pptpd.conf
  代码:
  speed 115200
  option /etc/ppp/options
  debug
  #localip 192.168.0.1 这句好象没什么用,我注释了
  remoteip 192.168.0.20-30 这句是分配IP的,但不知道为什么,CLIENT的IP不按这个分配 :cry:
  enable chap 起用chap机制
  vi /etc/ppp/options
  代码:
  lock
  debug
  # name platinum.com.cn 这个有没有都可以
  bsdcomp 0
  auth
  require-chap 用chap认证方式
  proxyarp
  # ms-dns 202.106.196.152 这个应该是给CLIENT重新分配DNS的,但好象没用,也没删,就先留着了
  vi /etc/ppp/chap-secrets 这是定义CLIENT密码的部分
  代码:
  # Secrets for authentication using PAP
  # client server secret IP addresses
  "platinum" * "vpntest" 192.168.0.10
  OK,到这里就配置完成了,运行pptpd启动服务
  先关掉防火墙测试,CLIENT:WIN2000
  建立VPN拨号,然后指定IP,61.149.xx.xx
  注意:在属性编辑里,不要选用加密,否则连不上(好象要下MS的MSCHAP补丁才可以,我没找到)
  连接,测试通过
  引用:
  [root@platinum ppp]# netstat -a|more
  Active Internet connections (servers and established)
  Proto Recv-Q Send-Q Local Address Foreign Address State
  tcp 0 0 *:1723 *:* LISTEN
  tcp 0 0 61.149.6.131:1723 202.204.224.130:1164 ESTABLISHED
  raw 0 0 61.149.6.131:gre 202.204.224.130:* 1
  内容略有删节
  注意:外部IP,202.204.224.130已经连接,VPN端口:1723
  此外还有一个GRE,协议名称非TCP、UDP、ICMP!!!
  这是VPN的主要传输协议,所以要配置防火墙,一定要开这个
  4、配置防火墙
  我的FIREWALL代码如下:
  代码:
  #! /bin/bash
  #初始设置,允许内网转发
  echo 1
  /proc/sys/net/ipv4/ip_forward
  /sbin/iptables -F -t filter
  /sbin/iptables -F -t nat
  /sbin/iptables -P INPUT ACCEPT
  /sbin/iptables -P OUTPUT ACCEPT
  /sbin/iptables -P FORWARD ACCEPT
  /sbin/iptables -t nat -P PREROUTING ACCEPT
  /sbin/iptables -t nat -P POSTROUTING ACCEPT
  /sbin/iptables -t nat -P OUTPUT ACCEPT
  # 允许内网所有IP做所有事情
  /sbin/iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
  # 打开FTP端口:211
  /sbin/iptables -A INPUT -p tcp --dport 211 -j ACCEPT
  # 打开VPN端口1723,还有GRE!!!
  /sbin/iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
  /sbin/iptables -A INPUT -p gre -j ACCEPT
  # WWW:801,SWAT:901
  /sbin/iptables -A INPUT -p tcp --dport 801 -j ACCEPT
  /sbin/iptables -A INPUT -p tcp --dport 901 -j ACCEPT
  # SOCKS5:8039
  /sbin/iptables -A INPUT -p tcp --dport 8039 -j ACCEPT
  # ICMP(PING)
  # 这句话是允许除了公网上所有IP的ICMP协议的echo-request标志
  # 也就是允许网内机器PING,但不向外发PONG
  /sbin/iptables -A INPUT -p icmp --icmp-type ! echo-request -j ACCEPT
  # NAT
  /sbin/iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE
  # DENY OTHERS
  # 这句很关键,做IP地址的主动连接状态设置,避免了以往防火墙的漏洞
  /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  # 其余未登记的端口全部DROP掉!
  /sbin/iptables -A INPUT -j DROP
  当然,从我的FIREWALL还可以看出,我还配置了其他服务,我添加了SAMBA服务,不登陆VPN,是无法访问的。自此,VPN+IPTABLES+SAMBA+FTP+WWW+SOCKS5配置完成你可以对自己的机器再添加其他服务,想对外开端口,改FIREWALL即可 。

原创粉丝点击