CentOS6にpptpdをインストールしてPPTP接続できるようにする
iPhoneやAndroidでPPTP VPNで接続したかったので、CentOS6にインストールしてみましたのでメモとして設定方法を残すことにします。
/etc/pptpd.conf
option /etc/ppp/options.pptpd logwtmp debug connections 10 localip 192.168.20.1 remoteip 192.168.20.2-10
/etc/ppp/chap-secrets
以下の記述を追加する
user…接続ユーザー名
password…接続パスワード
# Secrets for authentication using CHAP # client server secret IP addresses user * password *
iptables
以下の設定を追加する。
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -s 192.168.20.0/255.255.255.0 -j MASQUERADE ! -d 192.168.0.0/16
内部でスタティックルーティングを構成している場合、ルーティングしているネットワークをIPマスカレードから除外する必要があるので、「! -d 192.168.0.0/16」という表記を追加する(プライベートIP等)。(これを設定しないとルーティングすべきトラフィックがルーティングされずにデフォルトゲートウェイから外部に出てしまう)なお、「192.168.0.0/16」は環境に応じてよしなにしてください。
設定例
#!/bin/bash VPN="10.1.0.1/32" LAN="192.168.0.0/16" /sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -P FORWARD DROP /sbin/iptables -A INPUT -i lo -j ACCEPT /sbin/iptables -A INPUT -s $VPN -j ACCEPT /sbin/iptables -A FORWARD -s $VPN -j ACCEPT /sbin/iptables -A INPUT -s $LAN -j ACCEPT /sbin/iptables -A FORWARD -s $LAN -j ACCEPT /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A INPUT -f -j LOG --log-level debug --log-prefix 'FRAGMENT DROP:' /sbin/iptables -A INPUT -f -j DROP /sbin/iptables -A INPUT -p tcp --dport 4126 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 25 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT /sbin/iptables -A INPUT -d 255.255.255.255 -j DROP /sbin/iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset /sbin/iptables -N PINGOFDEATH /sbin/iptables -A PINGOFDEATH -m limit --limit 1/s --limit-burst 4 -j ACCEPT /sbin/iptables -A PINGOFDEATH -j LOG --log-level debug --log-prefix 'PINGDEATH DROP:' /sbin/iptables -A PINGOFDEATH -j DROP /sbin/iptables -A INPUT -p icmp --icmp-type echo-request -j PINGOFDEATH /sbin/iptables -A INPUT -p tcp --dport 1723 -j ACCEPT /sbin/iptables -A INPUT -p 47 -j ACCEPT iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -s 192.168.20.0/255.255.255.0 -j MASQUERADE ! -d 192.168.0.0/16