Custom Search

Isnin, 4 Julai 2011

Pasang Sendiri OpenVPN: Persediaan Pelayan (kemaskini 2015-06-27)

Salam sejahtera pengunjung budiman,

Dalam Bahagian 1, saya telah membincangkan mengenai definisi dan penjelasan mengenai apa itu VPN secara ringkas. Kali ini saya akan membawa anda ke penyediaan pelayan OpenVPN anda sendiri.

Tutorial kali ini akan menumpukan kepada penyediaan pelayan OpenVPN sebagai terowong (tunnel) yang membolehkan anda melepasi sekatan dan juga menegelakkan transaksi Internet anda dihidu (sniff) oleh orang lain.


Panduan membeli pelayan (server)

Mungkin anda tertanya-tanya bagaimana untuk membeli Virtual Private Server(VPS) ataupun Dedicated Server. Saya akan beri sedikit tips sekadar yang saya tahu untuk kegunaan OpenVPN.

  • Pastikan dalam terma dan syarat (ToS) pembekal VPS anda memberi kebenaran untuk memasang VPN.
  • Pastikan TUN/TAP enabled pada VPS anda. Boleh hubungi Support Ticket pembekal anda untuk maklumat lanjut.
  • Kalau VPS anda berasaskan OpenVZ, minta hosting anda untuk menghidupkan "iptables_nat" pada VPS/container anda.
  • Pastikan harga mengikut bajet poket anda
  • Mahukan cadangan saya? Kalau jenis bajet rendah macam saya, dahulu saya beli dari BudgetVM. Sekarang saya beli dedicated server dari Online.net.
  • Tambahan info: Pastikan waktu pelayan anda dan waktu komputer anda diselaraskan dengan pelayan waktu(time server) seperti time.nasa.gov Anda boleh gunakan arahan
    sudo ntpdate time.nasa.gov
    di komputer anda dan meminta penyedia perkhidmatan pelayan anda untuk menyelaraskan waktu di server anda juga.
Selepas membeli VPS/Dedicated server anda sendiri. Seterusnya, kita perlu memasang sistem pengendali (OS) di server.Saya memilih Ubuntu 14.04 LTS Server Edition untuk sistem pengendali pelayan (server) saya. Tutorial ini akan fokus kepada pemasangan openvpn server di Ubuntu 14.04 LTS Server Edition.

Pemasangan OpenVPN

Periksa dulu sama ada TUN/TAP sudah diupayakan (enabled) atau belum dengan arahan (command).
cat /dev/net/tun  
Anda sepatutnya akan mendapat keputusan seperti ini.
cat: /dev/net/tun: File descriptor in bad state
Jikalau anda mendapat ralat (error) seperti ini.
 cat: /dev/net/tun: No such device
Anda perlu menghubungi pembekal VPS anda untuk mengupayakan (enable) TUN/TAP di VPS anda.

Sekarang bolehlah kita teruskan dengan memasang openvpn,openssl,dnsmasq, dan juga iptables-persistent
di pelayan.

sudo apt-get install openvpn openssl iptables-persistent
Selepas melaksanakan arahan di atas.

Laksanakan arahan berikut untuk menduplikasi sample config openvpn ke direktori /etc/openvpn/easy-rsa


sudo mkdir /etc/openvpn/easy-rsa

cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/

sudo cp -R * /etc/openvpn/easy-rsa

cd /etc/openvpn/easy-rsa
UPDATE 2013-04-07: sample easy-rsa pada  pakej asal Ubuntu sekarang mengalami masalah. Sila ikuti langkah berikut sebagai ganti.

Laksanakan arahan berikut untuk gunakan sample easy-rsa dari github OpenVPN

sudo mkdir /etc/openvpn/easy-rsa
wget -c https://github.com/OpenVPN/easy-rsa/archive/master.zip
unzip master.zip
sudo cp -R easy-rsa-master/easy-rsa/2.0/* /etc/openvpn/easy-rsa
# UPDATE 2014-01-22 , versi baru sudah tiada perbezaan 2.0 dengan 3.0

sudo cp -R easy-rsa-master/easy-rsa/* /etc/openvpn/easy-rsa
 
cd /etc/openvpn/easy-rsa


Sekarang kita akan edit fail vars menggunakan nano.

sudo nano vars
Contoh sample fail vars

Link: http://pastebin.com/CE7s1kn4

sudah edit? Bagus.

Sekarang kita copy config openssl dengan arahan berikut mengikut versi openssl distro yang kita gunakan. Untuk server saya, saya guna openssl 1.X

sudo cp openssl-1.0.0.cnf openssl.cnf
Sekarang, kita jalankan arahan berikut:

source ./vars
sudo ./clean-all

Seterusnya kita bina CA.

sudo ./build-ca

Link: http://pastebin.com/9sS7YzF9
Kalau anda perasan, default value adalah yang anda set di fail vars.cuma perlu tekan enter je dan untuk yang default value 'changeme' setkan kepada '.' (tanpa pembuka/penutup kata). Tak naktukar pun tak jadi masalah besar.

Sekarang, kita bina sijil (certificate) untuk pelayan openvpn kita.

sudo ./build-key-server server Link: http://pastebin.com/Enc9rb1u

Sekarang kita bina Diffie-Helman

 sudo ./build-dh

Link: http://pastebin.com/6PShAG8t
Okay, sekarang kita akan sunting config untuk server

cd /usr/share/doc/openvpn/examples/sample-config-files/
cp server.conf.gz /etc/openvpn/
cd /etc/openvpn/
gzip -d server.conf.gz
nano server.conf

Contoh server.conf: http://pastebin.com/0C018VcT

Saya akan menerangkan serba sedikit mengenai tetapan di dalam serv.conf ini.
Berikut adalah lokasi fail2 yang diperlukan iaitu CA, cert, key dan diffie-helman.
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem


Berikut adalah port dan protokol yang akan digunakan oleh OpenVPN server. Dalam config contoh untuk tutorial ini saya gunakan UDP/53.

# open up this port on your firewall.
port 53
# TCP or UDP server?
;proto tcp
proto udp
Sekarang masa untuk kita menjalankan service  openvpn dengan menaip arahan berikut:
service openvpn start server
Setkan port forwarding

sudo sysctl -w net.ipv4.ip_forward=1
 
Sudah selesai langkah di atas, kita kena config iptables pula.

Simpan script ini sebagai iptables.ipt di folder /etc/openvpn Link: 

http://pastebin.com/v81NYU5j

Pastikan anda tukar nombor IP pada fail tersebut kepada IP server anda.

Selepas anda simpan fail tersebut, jalankan arahan berikut:

sudo iptables-restore < iptables.ipt 
UPDATE 2013-04-07: Skrip di atas bermasalah bila saya cuba untuk pasang openvpn di server sahabat saya. Kita buat konfigurasi iptables secara manual seperti berikut:

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to-source 999.888.777.666
Sila tukarkan 999.888.777.666 kepada IP server anda.

Selesai sudah persiapan dan konfigurasi pelayan.

Konfigurasi untuk pelanggan (client) akan bersambung ke pos baru bertajuk "Pasang Sendiri OpenVPN: Persediaan Pelanggan"

Rujukan:

 OpenVPN server ubuntu guide

 IPTables HowTo - Community Ubuntu Documentation

OpenVPN on Ubuntu 10.04 LTS - Ubuntu Help 
 
openvpn setup guide by dimenxion for Debian 6.x




    Rabu, 16 Februari 2011

    Pasang Sendiri OpenVPN: Pengenalan kepada VPN (kemaskini 20/1/2013)

    Assalamualaikum dan salam sejahtera,

    Sudah lama saya tidak membuat sebarang pos baru di blog ini. Kali ini saya akan kongsikan mengenai Virtual Private Network (VPN) , OpenVPN, cara pemasangan pada Virtual Private Server/ komputer sendiri, dan masalah2 berbangkit.

    Saya akan jadikan tutorial ini dalam bersiri untuk memudahkan kefahaman anda. Untuk siri pertama ini saya jadikan sebagai mukaddimah atau intro kepada VPN secara umum. Harap-harap siri ini tidak menjadi terbengkalai seperti siri Silat SQL.

    Apakah itu VPN?



    Menurut Wikipedia,

    Rangkaian persendirian maya(virtual private network, VPN) ialah sebuah rangkaian yang menggunakan insfrastruktur telekomunikasi awam, seperti Internet, untuk membekalkan pejabat-pejabat jarak jauh atau pengguna persendirian dengan capaian selamat terhadap rangkaian organisasi mereka. Tujuannya adalah untuk mengelakkan sistem talian bermilik atau berpajak yang mahal tetapi boleh digunakan untuk satu organisasi sahaja. Matlamat VPN adalah untuk membekalkan organisasi terbabit dengan kebolehan selamat yang sama tapi dengan kos yang lebih rendah.

    Ia mengkapsulkan pindahan data antara dua atau lebih peranti rangkaian yang tidak berada pada rangkaian persendirian yang sama dengan tujuan supaya data yang dipindahkan kekal sulit daripada peranti-peranti lain pada satu atau lebih rangkaian kawasan setempat atau luas yang berselang.

    Ok, ayat wikipedia susah nak faham ? Tak mengapa, saya cuba jelaskan dalam gaya bahasa yang mudah. Pernah guna LAN? kita tak boleh akses dari luar. Bagaimana nak akses dari luar? di sinilah gunanya VPN sebagai pengantara antara rangkaian luar seperti Internet. Dengan VPN, sesebuah organisasi boleh mencapai keselamatan seperti menggunakan dedicated line. Pengguna boleh menggunakan talian internet sendiri di rumah untuk menyambung ke rangkaian pejabat.

    Antara aplikasi VPN ini seperti mesin-mesin ATM yang menyambung ke rangkaian bank pusat seolah-olah mesin-mesin ATM ini ada di dalam rangkaian yang sama. Penyulitan (Encryption) yang ketat yang digunakan dalam VPN menyukarkan penceroboh/penggodam menghidu paket trafik ATM-ATM ini.

    VPN juga digunakan sebagai terowong (tunnel) untuk melepasi sekatan di tembok api (firewall) di pejabat,kolej, atau universiti. Dengan melencongkan semua trafik ke port yang biasa dibuka seperti HTTPS(TCP port 443). Disebabkan trafik ini disulitkan (encrypted), sistem pemantaun trafik tidak dapat mengesan trafik sebenar yang berlaku di antara pengguna dan pelayan VPN.

    Pengumuman mengenai Silat SQL

    Assalamualaikum dan selamat sejahtera,

    Silat SQL akan ditulis semula(rewritten) dengan menambahkan intro kepada pangkalan data(database)  dan Bahasa Pertanyaan Berstruktur(SQL) itu sendiri. Saya tak nak ia sekadar dijadikan rujukan untuk "hacker wannabe" semata-mata yang kabur mengenai proses,konsep dan teori suntikan SQL. Yang tak tahu SQL atau database tu apa pun ada. Sekadar gunakan tools/perisian tertentu semata2, nak mengaku penggodam terhebat di alam maya. Sigh...

    Pakai tools tiada masalah selagi kita faham konsep dan manfaatkan tools untuk belajar kaedah serangan yang kita mungkin tak tahu dengan kejuruteraan terbalik (reverse engineering) tools tersebut. Atau pantau dengan perisian pemantau rangkaian seperti Wireshark mungkin? :D Hayati kata2 hikmah di bawah ini.


    The best offense is defense.

    Siri ini akan fokus kepada serangan dan pertahanan untuk MySQL sahaja. Kalau ada pertanyaan/komen/cadangan, anda digalakkan untuk komen di bawah. Saya galakkan untuk tulis ayat penuh dan elakkan gaya bahasa SMS. Manfaatkan papan kekunci anda sebaiknya. Terima Kasih. Artikel mengenai VPN dan OpenVPN akan meyusul.

    carian google

    Custom Search