صفحه اصلی پورتال > مرکز آموزش > Config-Server > اموزش سیسکو


اموزش سیسکو




با سلام
با یه کانفیگ جدید در خدمت شما هستیم
مواد لازم : یک سرور Centos 6.6 64x خام

باید از ورژن 10.6 به بالا از ocserv استفاده بشه

کد:
  • Version 0.10.6 (released 2015-07-01)
    • Transmit packets to the last incoming source, allowing faster switch of the communication channel.
    • The worker processes will utilize the UDP socket address (if any), when reporting peer’s address if the listen-clear-file option is set.
    • Lifted the limit on the number of configuration options. That allows to add an "unlimited" number of route options.
    • Support encrypted key files. That adds the key-pin and srk-pin configuration options.
    • The dbus communication option has been dropped.
    • Radius: depend on radcli radius library. http://radcli.github.io/radcli/
    • occtl: added -j/--json option. That allows to output in a JSON format.

نصب پکیج های مورد نیاز با استفاده از YUM :
کد:
yum install autoconf automake gcc libtasn1-devel zlib zlib-devel trousers trousers-devel gmp-devel gmp xz texinfo libnl-devel libnl tcp_wrappers-libs tcp_wrappers-devel tcp_wrappers dbus dbus-devel ncurses-devel pam-devel readline-devel bison bison-devel flex gcc automake autoconf wget

ابتدا با نصب Radcli شروع میکنیم
کد:
wget https://github.com/radcli/radcli/releases/download/1.2.4/radcli-1.2.4.tar.gz
tar -zxf radcli-1.2.4.tar.gz
cd radcli-1.2.4
./configure --prefix=/usr --sysconfdir=/etc --enable-legacy-compat
make
make install 
کد:
 cd radcli-1.2.4/etc
cp dictionary /etc/radcli
نصب Nettel :


کد:
cd
wget http://www.lysator.liu.se/~nisse/archive/nettle-2.7.tar.gz
tar xvf nettle-2.7.tar.gz
cd nettle-2.7
./configure --prefix=/opt/
make
make install
کد:
cd
wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/gnutls-3.2.12.tar.xz
unxz gnutls-3.2.12.tar.xz tar xvf gnutls-3.2.12.tar cd gnutls-3.2.12
export LD_LIBRARY_PATH=/opt/lib/:/opt/lib64/:/usr/lib/
NETTLE_CFLAGS="-I/opt/include/" NETTLE_LIBS="-L/opt/lib64/ -lnettle" HOGWEED_CFLAGS="-I/opt/include" HOGWEED_LIBS="-L/opt/lib64/ -lhogweed" ./configure --prefix=/opt/
make
make install
کد:
cd
wget https://www.infradead.org/~tgr/libnl/files/libnl-3.2.24.tar.gz
tar xvf libnl-3.2.24.tar.gz
cd libnl-3.2.24
./configure --prefix=/opt/
make
make install
کد:
cd
wget ftp://ftp.infradead.org/pub/ocserv/ocserv-0.10.9.tar.xz
unxz ocserv-0.10.9.tar.xz
tar xvf ocserv-0.10.9.tar
cd ocserv-0.10.9
export LD_LIBRARY_PATH=/opt/lib/:/opt/lib64/:/usr/lib/
LIBGNUTLS_CFLAGS="-I/opt/include/" LIBGNUTLS_LIBS="-L/opt/lib/ -lgnutls" LIBNL3_CFLAGS="-I/opt/include" LIBNL3_LIBS="-L/opt/lib/ -lnl-3 -lnl-route-3" ./configure --prefix=/opt/ 
make
make install

درست کردن سرتیفیکیت ها :

ابتدا یه فولدر جهت درست کردن سرتیفیکیت درست می کنیم



کد:
cd
mkdir CA
cd CA
1- دستورات زیر رو برای درست کردن CA استفاده می کنیم

کد:
     /opt/bin/certtool --generate-privkey --outfile ca-key.pem
nano ca.tmpl
و بعد متن زیر رو عینا توی ویراشگر Nano کپی می کنید

کد:
cn = "VPN CA"
organization = "Big Corp"
serial = 1
expiration_days = 7300
ca
signing_key
cert_signing_key
crl_signing_key
و بعد دستورات زیر رو وارد می کنید

کد:
     /opt/bin/certtool --generate-self-signed --load-privkey ca-key.pem --template ca.tmpl --outfile ca-cert.pem
2- دستورات زیر رو برای درست کردن فایل Server استفاده می کنیم

کد:
     /opt/bin/certtool --generate-privkey --outfile server-key.pem
nano server.tmpl
و بعد متن زیر رو عینا توی ویراشگر Nano کپی می کنید

کد:
     cn = "www.example.com"
organization = "MyCompany"
serial = 2
expiration_days = 7300
encryption_key
signing_key
tls_www_server
و بعد دستورات زیر رو وارد می کنید

کد:
/opt/bin/certtool --generate-certificate --load-privkey server-key.pem --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem --template server.tmpl --outfile server-cert.pem
انتقال فایل سرتفیکیت ها به قسمت SSL :

با استفاده از دستورات زیر فایل های سرتیفیکیت ساخته شده در مرحله قبل رو به قسمت SSL منتقل بکنید


کد:
cd
cd CA
mkdir /etc/ocserv
mkdir /etc/ocserv/ssl
cp server-cert.pem /etc/ocserv/ssl
cp server-key.pem /etc/ocserv/ssl
ساختن فایل کانفیگ :

دستورات زیر رو وارد بکنید
کد:
nano /etc/ocserv/ocserv.conf
کد:
auth = "radius[config=/etc/radcli/radiusclient.conf,groupconfig=true]"
acct = "radius[config=/etc/radcli/radiusclient.conf]"  
stats-report-time = 30
max-clients = 0
rate-limit-ms = 0
max-same-clients = 2
#listen-host = [IP|HOSTNAME]
tcp-port = 800
udp-port = 800
listen-clear-file = /var/run/ocserv-conn.socket
keepalive = 32400
dpd = 90
mobile-dpd = 1800
try-mtu-discovery = false
server-cert = /etc/ocserv/ssl/server-cert.pem
server-key = /etc/ocserv/ssl/server-key.pem
compression = true
tls-priorities = "NORMAL:%SERVER_PRECEDENCE:%COMPAT:-VERS-SSL3.0"
auth-timeout = 40
idle-timeout = 1200
mobile-idle-timeout = 2400
min-reauth-time = 2
cookie-timeout = 300
deny-roaming = false
rekey-time = 172800
rekey-method = ssl
#connect-script = /usr/bin/myscript
#disconnect-script = /usr/bin/myscript
use-occtl = true
pid-file = /var/run/ocserv.pid
socket-file = /var/run/ocserv-socket
run-as-user = nobody
run-as-group = nobody
net-priority = 6
device = vpns
predictable-ips = true
default-domain = progmaster.net
ipv4-network = 20.30.40.0
ipv4-netmask = 255.255.255.0
dns = 8.8.8.8
dns = 4.2.2.4
mtu = 1200
#rx-data-per-sec = 40000
#tx-data-per-sec = 40000
cisco-client-compat = true
user-profile = /etc/ocserv/profile.xml
custom-header = "X-DTLS-MTU: 1200"
custom-header = "X-CSTP-MTU: 1200"
درست کردن فایل پروفایل :

با استفاده از دستور زیر فایل رو درست بکنید



کد:
nano /etc/ocserv/profile.xml
و متن زیر را توی ویرایشگر وارد بکنید


کد:
<?xml version="1.0" encoding="UTF-8"?>
<AnyConnectProfile xmlns="http://schemas.xmlsoap.org/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap.org/encoding/ AnyConnectProfile.xsd">

    <ClientInitialization>
        <UseStartBeforeLogon UserControllable="false">false</UseStartBeforeLogon>
        <StrictCertificateTrust>false</StrictCertificateTrust>
        <RestrictPreferenceCaching>false</RestrictPreferenceCaching>
        <RestrictTunnelProtocols>IPSec</RestrictTunnelProtocols>
        <BypassDownloader>true</BypassDownloader>
        <WindowsVPNEstablishment>AllowRemoteUsers</WindowsVPNEstablishment>
        <CertEnrollmentPin>pinAllowed</CertEnrollmentPin>
        <CertificateMatch>
            <KeyUsage>
                <MatchKey>Digital_Signature</MatchKey>
            </KeyUsage>
            <ExtendedKeyUsage>
                <ExtendedMatchKey>ClientAuth</ExtendedMatchKey>
            </ExtendedKeyUsage>
        </CertificateMatch>

        <BackupServerList>
            <HostName>VPN Server</HostName>
                <HostAddress>server ip</HostAddress>
        </BackupServerList>
    </ClientInitialization>

    <ServerList>
        <HostEntry>
                <HostName>VPN Server</HostName>
                <HostAddress>server ip</HostAddress>
        </HostEntry>
    </ServerList>
</AnyConnectProfile>
باز کردن IP Forwarding :

فایل زیر را با دستور زیر ادیت بکنید



کد:
nano /etc/sysctl.conf
و عبارت زیر را پیدا کرده



کد:
net.ipv4.ip_forward = 0
و به عبارت مقابل تبدیل بکنید



کد:
net.ipv4.ip_forward = 1
و با استفاده از ctrl + x و y سیو بکنید

و با دستور زیر خروجی را ببنید



کد:
sysctl -p
باز کردن فایروال برای NAT :

دستورات زیر را وارد بکنید
کد:
     

     iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -A INPUT -p tcp --dport 800 -j ACCEPT
iptables -A INPUT -p udp --dport 800 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 800 -j ACCEPT
iptables -A INPUT -m state --state NEW -m udp -p udp --dport 800 -j ACCEPT
iptables -t nat -A POSTROUTING -s 20.30.40.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -s 20.30.40.0/24 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 800 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 800 -j ACCEPT
service iptables save
service iptables restart
service iptables stop
service iptables start
غیرفعال کردن SELinux :

کد:

nano /etc/sysconfig/selinux
و در سطر 6 عبارت زیر را پیدا بکنید



کد:
SELINUX=enforcing
و به صورت زیر دربیارید



کد:
SELINUX=disabled

DeBug کردن و دیدن مشکلات و لاگ ها :
حالا نوبت به ران کردن برنامه و دیدن لاگ ها و ... هست
از کد زیر جهت این کار استفاده بکنید :

کد:
 
export LD_LIBRARY_PATH=/opt/lib/:/opt/lib64/:/usr/lib/
/opt/sbin/ocserv -c /etc/ocserv/ocserv.conf -f -d 1
اجرا به صورت سرویس :

ابتدا با دستورات زیر می ایید و پلاگین ها دیبیان رو نصب می کنید
کد:
cd
wget developer.axis.com/download/distribution/apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz
tar zxf apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz
mv apps/sys-utils/start-stop-daemon-IR1_9_18-2/ ./
rm -rf apps
cd start-stop-daemon-IR1_9_18-2/
cc start-stop-daemon.c -o start-stop-daemon
cp start-stop-daemon /usr/local/bin/start-stop-daemon
با دستورات بالا پکیج start-stop-daemon نصب می شود

حالا کافی است که فایل init را بنویسید
کد:
     nano /etc/init.d/ocserv
اگر از قبل چیزی نوشته شده باشد همه رو پاک بکنید

و عبارت زیر رو عینا کپی بکنید
کد:
#!/bin/sh
### BEGIN INIT INFO
# Provides:          ocserv
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO
# Copyright Rene Mayrhofer, Gibraltar, 1999
# This script is distibuted under the GPL

PATH=/bin:/opt/bin:/sbin:/opt/sbin
DAEMON=/opt/sbin/ocserv
PIDFILE=/var/run/ocserv.pid
DAEMON_ARGS="-c /etc/ocserv/ocserv.conf"

case "$1" in
start)
if [ ! -r $PIDFILE ]; then
echo -n "Starting OpenConnect VPN Server"
export LD_LIBRARY_PATH=/opt/lib/:/opt/lib64/:/usr/lib/
/usr/local/bin/start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ $DAEMON_ARGS > /dev/null echo else echo -n "OpenConnect VPN Server is already running" echo exit 0 fi ;; stop) echo -n "Stopping OpenConnect VPN Server" /usr/local/bin/start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON echo rm -f $PIDFILE ;; force-reload|restart) echo "Restarting OpenConnect VPN Server" $0 stop sleep 1 $0 start ;; status) if [ ! -r $PIDFILE ]; then echo -n "OpenConnect VPN Server Stoped" echo exit 3 fi PID=`cat $PIDFILE | sed 's/ //g'` EXE=/proc/$PID/exe if [ -x "$EXE" ] && [ "`ls -l \"$EXE\" | cut -d'>' -f2,2 | cut -d' ' -f2,2`" = \ "$DAEMON" ]; then echo -n "OpenConnect VPN Server run correctly" echo exit 0 elif [ -r $PIDFILE ]; then echo -n "OpenConnect VPN Server stoped but pid file exist" echo exit 1 else # no lock file to check for, so simply return the stopped status exit 3 fi ;; *) echo "Usage: /etc/init.d/ocserv {start|stop|restart|force-reload|status}" exit 1 ;; esac exit 0
و بعد باید دسترسی بهش رو درست بکنید
کد:
     chmod 755 /etc/init.d/ocserv
و بعد می تونید با استفاده از دستورات Start - Stop - Status - restart کار های عملیاتی ان را انجام دهید

برای اینکه هنگام ریستارت کردن و ... نرم افزار به طور اتوماتیک اجرا شود از دستور زیر استفاده بکنید
کد:
 chkconfig ocserv  on 
برای اتصال به IBSng کافیست
آی پی سرور را داخل بزنید
کد:
nano /etc/radcli/radiusclient.conf
کد:
authserver     ipserver
acctserver      ipserver
و سکرت را داخل این فایل

کد:
nano /etc/radcli/servers
کد:
## Server Name or Client/Server pair        Key        
## ----------------                ---------------
#
ipserver/ipserver       secret
با تشکر از کاربر ali_madadi برای کمک       

آیا این پاسخ مفید بود؟

افزودن به علاقه مندی ها افزودن به علاقه مندی ها    چاپ این مقاله چاپ این مقاله

خوانده شده
ConfigOpenVpn-Access Server (بازدید: 24)