GIT- Góc IT xin giới thiệu các bạn một số tips về : Vô hiệu hóa ping response trong , Cấm IP bằng cách sử dụng route trong , Khắc phục lỗi ‘/bin/rm: Argument list too long’ khi xóa file trong , Cấm 1 người dùng tạo kết nối ra ngoài bằng trên , Lỗi khi biên dịch Apache 2.4 trên

1. Vô hiệu hóa ping response trong Linux

Ngoài chặn ping response bằng iptables, chúng ta còn có thể vô hiệu hóa ping response bằng câu lệnh sau:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

Và có thể kích hoạt lại ping response bằng lệnh sau:

echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

2. Cấm IP bằng cách sử dụng null route trong Linux

Để cấm 1 IP hoặc 1 dãy IP truy cập đến hệ thống Linux thì có thể sử dụng Iptables.  Tuy nhiên chúng ta sử dụng phương pháp null route để làm được điều đó. Null route còn được gọi là blackhole route, hoạt động của null route giống như một tường lửa bị giới hạn.

Ví dụ: Giả sử IP 123.20.1.7 là IP cần cấm:

route add 123.20.1.7 gw 127.0.0.1 lo

Có thể kiểm tra lại bằng lệnh sau:

netstat -nr

Hoặc

route -n

Để loại bỏ IP đã bị cấm:

route delete 123.20.1.7

3. Khắc phục lỗi ‘/bin/rm: Argument list too long’ khi xóa file trong Linux

Trong linux, khi xóa rất nhiều file trong thư mục hiện tại bằng câu lệnh: rm -fr * thường sẽ xuất hiện lỗi -bash: /bin/rm: Argument list too long . Do danh sách file để xóa quá dài. Khắc phục lỗi này bằng sự kết hợp find, xargs, rm lại với nhau như ví dụ dưới đây.

Ví dụ:

Mình đang cần xóa các file session của tạo ra ở thư mục /tmp//session/ nhưng khi xóa với rm -fr * sẽ sinh ra lỗi và  khắc phục như sau:

# cd session/
# rm -fr *
-bash: /bin/rm: Argument list too long
# find . -type f -print0 | xargs -0 /bin/rm

4. Cấm 1 người dùng tạo kết nối ra ngoài bằng Iptables trên Linux!

Iptables có 1 module gọi là “owner” (ipt_owner cho kernel <2.6.25 và xt_owner cho kernel >=2.6.25) cho phép người quản trị có thể cấm 1 người dụng nhất định trên hệ thống cục bộ  tạo kết nối ra ngoài. Module “owner” chỉ hợp lệ trong chain OUTPUT và POSTROUTING của iptables. Sau đây là cú pháp:

iptables -A OUTPUT -o ethX -m owner –uid-owner {USERNAME} -j DROP|REJECT

Ví dụ: Muốn cấm người dụng có tên là “jenny” có user id là 505 thì rule iptables sẽ như sau:

iptables -A OUTPUT -m owner –uid-owner jenny -j DROP

Hoặc:

iptables -A OUTPUT -m owner –uid-owner 505 -j DROP

Tham số: “uid-owner” : thì sử dụng username hoặc userid đều được.
Cuối cùng nhớ lưu rules iptables lại!

5. Lỗi khi biên dịch Apache 2.4 trên CentOS 6

– Khi bạn biên dịch Apache HTTP Server phiên bản 2.4.2 có thể bạn sẽ gặp lỗi tương tự dưới đây khi biên dịch đến phần “rotatelogs”:

rotatelogs.c: In function ‘post_rotate’:
rotatelogs.c:298: warning: implicit declaration of function ‘apr_file_link’
/usr/lib64/apr-1/build/libtool –silent –mode=link gcc -std=gnu99 -pthread -o rotatelogs rotatelogs.lo /usr/lib64/libaprutil-1.la -ldb-4.7 -lexpat -ldb-4.7 /usr/lib64/libapr-1.la -lpthread
rotatelogs.o: In function `post_rotate’:
rotatelogs.c:(.text+0x5ed): undefined reference to `apr_file_link’
collect2: ld returned 1 exit status
make[2]: *** [rotatelogs] Error 1
make[2]: Leaving directory `/root/httpd-2.4.2/support’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/httpd-2.4.2/support’
make: *** [all-recursive] Error 1

– Lí do xảy ra lỗi này có thể do phiên bản APR(1.3.9-3) và APR-util (1.3.9-3) đi kèm CentOS 6 quá cũ trong khi bản APR mới nhất là 1.4.6 và APR-util là 1.4.1. Các bạn có thể xem thông tin phiên bản mới nhất của APR(Apache Portable Runtime) tại địa chỉ http://apr.apache.org/.

– Cách giải quyết lỗi này :
+ Tải APR và APR-util mới nhất từ trang chủ về và chép vào thư mục srclib của mã nguồn apache 2.4.2 như sau (ở đây thư mục mã nguồn apache nằm tại /root/httpd-2.4.2 ):

# wget http://apache.osuosl.org/apr/apr-1.4.6.tar.gz
# wget http://apache.osuosl.org/apr/apr-util-1.4.1.tar.gz
# tar zxf apr-1.4.6.tar.gz
# tar zxf apr-util-1.4.1.tar.gz
# mv apr-1.4.6 httpd-2.4.2/srclib/apr
# mv apr-util-1.4.1 httpd-2.4.2/srclib/apr-util

+ Thêm vào lệnh “./configure” tham số:

--with-included-apr

để sử dụng APR bạn vừa cho vào thư mục srclib tương tự ví dụ sau :

./configure --prefix=/opt/apache24 \
--enable-so \
--enable-rewrite \
--enable-remoteip \
--enable-unique-id \
--enable-suexec \
--with-mpm=event \
--with-included-apr

+ Sau đó dùng lệnh “make” để biên dịch và “make install” để cài đặt như bình thường.

6.Cấu hình địa chỉ IP tĩnh trong Linux

Để cấu hình địa chỉ IP tĩnh trong Linux, bạn phải chỉnh sửa một số tập tin cấu hình network tùy vào bản phân phối Linux mà bạn đang sử dụng:

* Đối với Fedora/RHEL/CentOS : /etc/sysconfig/network-scripts/ifcfg-yyy ( trong đó yyy là tên interface)

* Đối với Debian/Ubuntu/LinuxMint/etc/network/interfaces

Ví dụ: Cấu hình địa chỉ IP tĩnh theo các thông số dưới đây:

IP Address : 192.168.255.103

Subnetmask : 255.255.255.0

Default gateway: 192.168.255.1

DNS 1 : 8.8.8.8

DNS 2 : 8.8.4.4

– Đối Fedora/RHEL/CentOS :

+. Cần chỉnh sửa /etc/sysconfig/network để thiết lập hostname và default gateway :

NETWORKING=yes

HOSTNAME=gocit.vn

GATEWAY=192.168.255.1

+. Chỉnh sửa /etc/sysconfig/network-scripts/ifcfg-eth0 để thiết lập IP, subnetmask cho eth0 (Lưu ý: Bạn hãy chỉnh sửa địa chỉ MAC 52:24:ff:ff:ff:04cho phù hợp với card mạng mà bạn đang cấu hình ):

DEVICE=eth0

BOOTPROTO=static

HWADDR=52:24:ff:ff:ff:04

ONBOOT=yes

TYPE=Ethernet

IPADDR=192.168.255.103

NETMASK=255.255.255.0

+. Chỉnh sửa /etc/resolv.conf để thiết lập các DNS Server dùng để phân giải:

nameserver 8.8.8.8

nameserver 8.8.4.4

+. Sau đó bạn phải chạy lệnh service network restart để áp dụng cấu hình mới

– Đối với Debian/Ubuntu/LinuxMint:

+. Chỉnh sửa /etc/hostname để thiết lập hostname:

gocit.vn

+. Chỉnh sửa /etc/network/interfaces để thiết lập IP/subnetmask/default gateway (ví dụ với eth0):

iface eth0 inet static

address 192.168.255.103

netmask 255.255.255.0

gateway 192.168.255.1

+. Chỉnh sửa /etc/resolv.conf để thiết lập các DNS Server dùng để phân giải:

nameserver 8.8.8.8

nameserver 8.8.4.4

+. Sau đó bạn phải chạy lệnh /etc/init.d/networking restart để áp dụng cấu hình mới.

7.Tắt innodb trong MySQL 5.5

Để tắt innodb trong MySQL Server 5.5, bạn cần phải thêm vào phần “[mysqld]” trong tập tin cấu hình my.cnf 2 dòng sau :

skip-innodb
default_storage_engine=MyISAM

Sau đó khởi động lại MySQL Server.

8.Recursive Chmod Tricks

Chỉ chmod  thư mục :

find . -type d -exec chmod 755 {} \;

Chỉ chmod tập tin :

find . -type f -exec chmod 644 {} \;

Chỉ chmod tập tin có phần mở rộng là .php:

find . -type f -name ‘*.php’ -exec chmod 600 {} \;

9.Tạo đoạn hash md5 của 1 chuỗi kí tự trong Linux

– Cách 1: Sử dụng OpenSSL:

echo -n ‘www.gocit.vn’ | openssl md5

– Cách 2: Sử dụng md5sum:

echo -n ‘www.gocit.vn’ | md5sum –

– Cách 3: Sử dụng php:

php -r ‘echo md5(“www.gocit.vn”) . “\n”;’

Trên đây là những cách phổ biến. Ngoài ra còn nhiều cách để tạo hash md5 trong linux nữa!

10.Thiết lập mật khẩu cho Single user mode trong FreeBSD

Mặc định khi khởi động vào single user mode trong FreeBSD thì không cần mật khẩu. Tuy nhiên có thể thiết lập mật khẩu cho single user mode trong FreeBSD như sau:
– Sử dụng 1 trình soạn thảo văn bản quen thuộc như vi để chỉnh sửa tập tin /etc/ttys

vi /etc/ttys

– Tìm dòng văn bản sau:

console none unknown off secure

và chỉnh sửa thành:

console none unknown off insecure

Lưu lại và thoát trình soạn thảo vi !
Lưu ý: từ khóa insecure (tạm dịch là không an toàn) có nghĩa ngụ ý là console không an toàn phải xác thực bằng mật khẩu.

Thảo luận bài viết tại forum : http://forum.gocit.vn/threads/mot-so-thu-thuat-tren-linux.537/

Bài viết này nằm trong dự án  website : www.gocit.vn, forum hổ trợ forum.gocit.vn , xem thêm tại link http://www.gocit.vn/du-an-linux-toan-tap/
Print Friendly

Comments

comments

Bài viết liên quan