Thứ Sáu, 27 tháng 12, 2013

4_ Viết chức năng thêm sửa xóa trong window form

Thiết kê 1 form quản lý sinh viên bao gồm 2 textbox, 4 btn thêm ,sửa , xóa, hiển thị, và 1 datagirdview như hình bên dưới

3_ Thao tác trên cơ sở dữ liệu sử dụng dataset,dataadapter,datatable

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;


2_Thực thi câu truy vấn SQL trên C#

1. Lấy ra họ tên và mã số sinh viên từ table sinh viên

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

1_ Kiểm tra Kết nối cơ sở dữ liệu trong C#

Để kết nối với cở sở dữ liệu,  Phải khai báo namespace "System.Data.SqlClient".

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient; //namespace de thao tac voi CSDL

Thứ Hai, 5 tháng 8, 2013

Hướng dẫn định tuyến IS-IS


Cấu hình trên R1:

Current configuration : 930 bytes
!
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
ip subnet-zero
ip cef
!
!
!
no ip domain lookup
ip domain name lab.local
ip audit po max-events 100
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 172.16.2.1 255.255.255.255
 ip router isis
!
interface FastEthernet0/0
 ip address 172.16.1.3 255.255.255.0
 ip router isis
 duplex auto
 speed auto
 isis circuit-type level-1
!
interface FastEthernet0/1
 no ip address
 shutdown
 duplex auto
 speed auto
!
router isis
 net 49.0001.1720.1600.2001.00
 is-type level-1
!
ip classless
!
no ip http server
no ip http secure-server
!
!
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
end


Cấu hình trên router R2


Current configuration : 975 bytes
!
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
ip subnet-zero
ip cef
!
!
!
no ip domain lookup
ip domain name lab.local
ip audit po max-events 100
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 172.16.3.1 255.255.255.255
 ip router isis
!
interface FastEthernet0/0
 ip address 172.16.1.4 255.255.255.0
 ip router isis
 duplex auto
 speed auto
 isis circuit-type level-1
!
interface FastEthernet0/1
 ip address 192.168.1.4 255.255.255.0
 ip router isis
 duplex auto
 speed auto
 isis circuit-type level-2-only
!
router isis
 net 49.0001.1720.1600.3001.00
!
ip classless
!
no ip http server
no ip http secure-server
!
!
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
end

Cấu hình trên router 3

Building configuration...

Current configuration : 920 bytes
!
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R3
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
ip subnet-zero
ip cef
!
!
!
no ip domain lookup
ip domain name lab.local
ip audit po max-events 100
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 192.168.2.1 255.255.255.255
 ip router isis
!
interface FastEthernet0/0
 ip address 192.168.1.5 255.255.255.0
 ip router isis
 duplex auto
 speed auto
 isis circuit-type level-2-only
!
interface FastEthernet0/1
 no ip address
 shutdown
 duplex auto
 speed auto
!
router isis
 net 49.0002.1921.6800.2001.00
!
ip classless
!
no ip http server
no ip http secure-server
!
!
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
end


Chủ Nhật, 21 tháng 7, 2013

1. Hướng dẫn cài đặt python,python mysql, django làm web

1. Cài đặt python
Hôm nay viết bài làm web với python trên framework python. Đầu tiên các bạn download python về đã. Phiên bản mới nhất là 3.3, những mình xài 2.7 quen rồi nên download 2.7 xài. Với lại 3.3 chưa có gói hỗ trợ mysql . Ai thích 3.3 thì cứ phang thôi :D

Link download http://www.python.org/download/.

Sau khi cài đặt xong, thì thư mục chứ python mặc định sẽ là C:\python27.
Click chuột phải vào Mycomputer\Chọn Properties\Change Settings \Tab Advanced.Click vào Environment Variables... Dưới ô System variables chọn varialbes là path,click vào nút Edit,thêm vào
;C:\Python27;C:\Python27\Scripts;C:\Python27\Lib\site-packages\django\bin


Click ok để hoàn thành.

2. Cài đặt python mysql.
Download tại đây http://sourceforge.net/projects/mysql-python/ , sau khi download nháy đúp vào cài chạy bình thường.Next next finish là xong :V

3. Cài đặt Django Framework
Ai mà code web python chay,ko xài framework thì không cần cài thằng này .Download tại đây .
Sau khi download về giải nén, ở đây mình giải nén trong ổ đĩa C, thay đổi tên thư mục thành Django cho dễ nhìn.Cấu trúc thư mục ta sẽ có như sau

Tiếp theo vào Cmd của Windows, truy cập vào thư mục django và gõ lệnh
cd C:\Django
C:\>python setup.py install

Đợi xí là nó báo cài xong. Ok
Sau khi chạy xong bà đã hoàn tất cài đặt framework django. Bài sau sẽ hướng dẫn các bạn cấu hình vào xây dựng ứng dụng đơn giản trên framework django sử dụng cơ sở dữ liệu mysql





Thứ Ba, 9 tháng 4, 2013

Cài đặt và cấu hình DHCP trên Centos 5.8


1.      Cài đặt dịch vụ DHCP
Cài đặt dịch vụ DHCP từ internet(yum install dhcp) hoặc từ đĩa DVD Centos. Thực hiện lệnh mount đĩa Centos.
#mount /dev/cdroom /mount
#cd /mount/Centos/
#rpm –ivh dhcp-3.0.5-31.el5.i386.rpm
#rpm –ivh dhcp-devel-3.0.5-31.el5.i386.rpm
Kiểm tra xem dhcp đã cài đặt trên hệ thống chưa
#rpm –qa |grep dhcp

2.      Cấu hình DHCP server.
Copy file cấu hình có sẵn bằng lệnh:
#cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
Sửa file cấu hình /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;

subnet 192.168.1.0 netmask 255.255.255.0 {

# --- default gateway
       option routers                     192.168.1.1;
       option subnet-mask          255.255.255.0;

       option nis-domain           "master.mydomain.com";
       option domain-name          "master.mydomain.com";
       option domain-name-servers  192.168.1.11;

       option time-offset          -18000;       # Eastern Standard Time
#      option ntp-servers          192.168.1.1;
#      option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#      option netbios-node-type 2;

       range dynamic-bootp 192.168.1.10 192.168.1.200;
       default-lease-time 21600;
       max-lease-time 43200;

       # we want the nameserver to appear at a fixed address
       host ns {
              next-server marvin.redhat.com;
              hardware ethernet 12:34:56:78:AB:CD;
              fixed-address 207.175.42.254;
       }
}

Ví dụ cấu hình trên mình cấu hình DHCP server cấp địa chỉ IP choc lien trong khoảng từ 192.168.1.10 đến 192.168.1.200.
Một số tùy chọn trong file cấu hình:
Ø  ddns-update-style interim ,ignore client-updates :Không cho phép DHCP cập nhật động DNS.
Ø  subnet …. netmask : Subnet và netmask
Ø  option routers : Default gateway
Ø  option subnet-mask : Netmask cấp cho client
Ø  option nis-domain : NIS domain
Ø  option domain-name : Domain mame
Ø  option domain-name-servers : IP DNS server
Ø  range dynamic-bootp : Vùng địa chỉ cấp phát cho các clients
Ø  default-lease-time : Thời gian mặc định cấp IP cho một client
Ø  max-lease-time : Thời gian tối đa cấp IP cho một client
Ø  host ns : Khái báo những máy luôn nhận IP cố định
Sau khi cấu hình xong, restart lại dịch vụ DHCP.
#service dhcpd restart
3.      Cấu hình DHCP client
Đối với Linux, thì truy cập vào cấu hình địa chỉ Ip card mạng
Ví dụ:
#vi /etc/sysconfig/network-script/ifconfig-eth0
Edit dòng BOOTPROTO=’’ thành BOOTPROTO=dhcp sau đó lưa lại.
Đối với Windows, vào network connection, chọn card mạng, chọn TCP/IP, chọn option Obtian  IP address auto.Chọn Ok, OK.DHCP sẽ cấp dãy địa chỉ IP mà người quản trị đã cấu hình.

4.      Theo dõi tình hình cấp phát DHCP trên server.
#tail –f /var/lib/dhcpd/dhcpd.release


Thứ Hai, 8 tháng 4, 2013

Hướng dẫn cấu hình MySQL Database Replication


1. Replication là gì?
  v  Replication có ý nghĩa là “nhân bản”, là có một phiên bản giống hệt phiên bản đang tồn tại, đang sử dụng.
  v  Với cơ sở dữ liệu, nhu cầu lưu trữ lớn, đòi hỏi cơ sở dữ liệu toàn vẹn, không bị mất mát trước những sự cố ngoài dự đoán là rất cao. Vì vậy, người ta nghĩ ra khái niệm “nhân bản”, tạo một phiên bản cơ sở dữ liệu giống hệt cơ sở dữ liệu đang tồn tại, và lưu trữ ở một nơi khác, đề phòng có sự cố.
  v  Phiên bản cơ sở dữ liệu phục vụ ứng dụng được lưu trữ trên server master. Phiên bản cơ sở dữ liệu “nhân bản” được lưu trữ trên server slave. Quá trình nhân bản từ master sang slave gọi là replication.
  v  Khi có một thay đổi trên cơ sở dữ liệu master, master sẽ ghi xuống log file (log ở dạng binary). Slave đọc log file, thực hiện những thao tác trong log file. Việc ghi, đọc log theo dạng binary được thực hiện rất nhanh.
2. Mô hình MySQL replication gồm có 2 thành phần:
a. MySQL master
b. MySQL slave

3. Cách thức hoạt động:
  • Tại thời điểm hoạt động bình thường mọi request sẽ được đưa đến vào MySQL master. Khi MySQL master gặp sự cố, request sẽ được đẩy qua cho MySQL slave xử lí. Khi MySQL master up lại bình thường, request sẽ được trả về cho MySQL master.
  • Quá trình chuyển đổi vai trò giữa MySQL master và MySQL slave sẽ được giới thiệu ở bài hướng dẫn sau.
  • Bài hướng dẫn đầu tiên chỉ nêu các bước để cấu hình MySQL master và MySQL slave replicate cho nhau.

4. Mục đích của bài hướng dẫn này:
a. Cấu hình MySQL master.
b. Cấu hình MySQL slave.
c. Mọi thay đổi trên MySQL master đều được thực hiện trên MySQL slave, luôn luôn đảm bảo dữ liệu trên MySQL master và MySQL slave là giống nhau.
5. Các bước cấu hình:

- Giả sử máy tính MySQL master có hostname là master.mydomain.com. Máy tính MySQL slave có hostname là slave.mydomain.com.
- Cài đặt mysql bằng các gói lệnh yum trên MySQL master và MySQL slave.
#yum install mysql-server
- Start mysql trên MySQL master và MySQL slave.
5.1 Cấu hình trên máy master.
Truy cập vào mysql bằng cách gõ lệnh sau:
#mysql –hlocalhost –uroot –p
Sau đó hệ thống yếu cầu nhập mật khẩu, mặc định mật khẩu rỗng nên nhấn enter dấu nhắc sẽ chuyển thành:
Mysql>
Tạo user cho phép MySQL slave được quyền REPLICATE
mysql> CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com';
Sửa trong file /etc/my.cnf những option sau.
[mysqld]
log-bin=mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
Khởi động mysqld trên master.
            #service mysqld start
5.2 Cấu hình trên Slave
Sửa trong file /etc/my.cnf option sau:
[mysqld]
server-id=2

Sau đó tiến hành khởi động lại mysql trên slave.
#service mysqld restart
5.3 Để replication, cần xem tình trạng ghi log hiện tại của MySQL master, để điều khiển slave bắt đầu replicate như thế nào.
Trên Master
Ngưng mọi tác động trên cơ sở dữ liệu.
mysql> FLUSH TABLES WITH READ LOCK;
Xem tình trạng của MySQL master
mysql > SHOW MASTER STATUS;

Trên Slave: Cấu hình những thông tin cần thiết để slave giao tiếp được với Master.
mysql> CHANGE MASTER TO
    ->     MASTER_HOST='master_host_name',
    ->     MASTER_USER='replication_user_name',
    ->     MASTER_PASSWORD='replication_password',
    ->     MASTER_LOG_FILE='recorded_log_file_name',
    ->     MASTER_LOG_POS=recorded_log_position;
Với mô hình trên chúng ta cấu hình như sau.
mysql> CHANGE MASTER TO
->MASTER_HOST='master.mydomain.com',
->MASTER_USER='repl',
->MASTER_PASSWORD='slavepass',
->MASTER_LOG_FILE=' mysql-bin.000001’,
->MASTER_LOG_POS=214;
Ghi chú: giá trị MASTER_LOG_FILE ở đây là file name [mysql-bin.000001] và MASTER_LOG_POS là giá trị [Position] của câu lệnh SHOW MASTER STATUS;/
Trên master
UNLOCK cơ sở dữ liệu trên Master.
Mysql>UNLOCK TABLES;
6. Kiểm tra
Trên Master tạo 1 database xxx;
           Mysql>create database xxx;
Trên Slave kiểm tra xem đã cập nhật database đó chưa
          Mysql>show databases;












Thứ Tư, 20 tháng 3, 2013

Đổi tên hostname trên Linux không cần restart

Đổi tên máy tính (hostname) là 1 công việc tuy đơn giản nhưng lại rất cần thiết nhất là khi bạn chuẩn bị cấu hình DNS, join máy tính vào Samba PDC...

Nếu thực hiện trên dòng RedHat/Fedora/CentOS bạn thực hiện như sau:

Xem tên máy tính hiện tại:

#hostname
localhost.localdomain

Thêm vào dòng sau trong file /etc/hosts

192.168.1.2 ns.thegioimang.org

→ ở đây 192.168.1.2 là IP tĩnh của máy

Sửa dòng sau trong file /etc/sysconfig/network

HOSTNAME=ns.thegioimang.org


Đến đây thông thường bạn phải reboot lại máy để các thao tác trên được update. Tuy nhiên bạn chỉ cần thực hiện thêm 3 bước sau đây thì hostname sẽ được update lập tức

Gõ lệnh:

# /bin/hostname ns.thegioimang.org

# /etc/init.d/network restart

# /etc/init.d/syslog restart

Kiểm tra lại bằng cách gõ lệnh hostname hoặc hostname -f để make sure

Thứ Hai, 18 tháng 3, 2013

Bảo mật mặc định của Kernel

Trong Kernel của một số hệ thống Linux hiện giờ có cấu hình sẵn vài Rules chuẩn với mục đích cung cấp những thông số căn bản nhất để cấu hình cho hệ thống dành cho những Admin không có nhiều kinh nghiệm về hệ thống. Các file và thông số đó thường được chứ ở /proc/sys/net
Về căn bản bên trong /proc/sys/net/ipv4 cung cấp các tính năng căn bản:


icmp_echo_ignore_all: Vô hiệu hoá tất cả các yêu phản hồi ICMP ECHO. Sử dụng tuỳ chọn
này nếu như bạn không muốn hệ thống của mình trả lời các yêu cầu Ping.

icmp_echo_ignore_broadcasts: Vô hiệu hoá tất cả các yêu cầu phản hồi ICMP ECHO trên
Broadcast và Multicast. Tuỳ chọn này được sử dụng để ngăn chặn nguy cơ hệ thống của bạn có
thể bị lợi dụng khai thác cho những cuộc tấn công DDOS.

ip_forward: Cho phép hay không cho phép sự chuyển tiếp IP giữa các giao diện mạng trong hệ
thống của bạn. Tuỳ chọn này được sử dụng khi bạn muốn Server của mình hoạt động như
Router.

ip_masq_debug: Kích hoạt hay vô hiệu hoá quá trình gỡ lỗi cho IP Masquerading
tcp_syncookies: Tuỳ chọn này được sử dụng để bảo vệ hệ thống của bạn chống các cuộc tấn
công sử dụng kỹ thuật ngập SYN đã từng gây kinh hoàng một thời trên Internet.

rp_filter: Chứng thực và xác định địa chỉ IP nguồn hợp lệ. Tuỳ chọn này được sử dụng để bảo
vệ hệ thống của bạn chống lại các cuộc tấn công giả mạo địa chỉ IP "IP Spoof".

secure_redirects: Chỉ chấp nhận chuyển tiếp những thông điệp ICMP cho những Gateway tin
tưởng trong danh sách.

log_martians: Ghi lại những Packet không được xử lý bở Kernel.

accept_source_route: Xác định xem liệu có phải những Source Routed Packet được chấp nhận
hay từ chối. Để an toàn bạn lên vô hiệu hoá tính năng này.

Nếu muốn sử dụng 1 tính năng sử dụng lệnh
#echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all