#!/bin/bash
echo Username
read un
echo Realname
read cm
finger $un
echo ===============================
read sure
RESULT="Error - Try other username again .. "
EXIST=0
id $un >/dev/null 2>/dev/null && EXIST=1
if [ $EXIST = 0 ]; then
useradd -g users -d /home/httpd/cgi-bin/$un -c "$cm" $un
chown $un:users /home/httpd/cgi-bin/$un
chmod 705 /home/httpd/cgi-bin/$un
usermod -d /home/httpd/cgi-bin/$un $un
ln -s /home/httpd/cgi-bin/$un /home/httpd/html/$un
passwd $un
RESULT="Complete"
fi
echo "Add new user : $RESULT"
Version 2: โปรแกรมข้างล่างนี้ใช้กับเครื่องที่ใช้งาน ssi ได้
#!/bin/bash
clear
echo _CRT version 2.June42001
echo User name
read un
echo Real Name
read cm
finger $un
echo ===============================
echo Are you ok?
RESULT="Error - Try other username again .. "
EXIST=0
id $un >/dev/null 2>/dev/null && EXIST=1
if [ $EXIST = 0 ]; then
read sure
useradd -g users -d /home/httpd/html/$un -c "$cm" $un
chmod 705 /home/httpd/html/$un
passwd $un
RESULT="Complete"
fi
echo "Add new user : $RESULT"
ตัวอย่างโปรแกรมที่ใช้งานอยู่
echo Username
read un
finger $un
echo =============================================
echo If already exist, you can delete this account.
echo If you are not sure, Please Ctrl-C
read sure
echo Ask you again and last time? Ctrl-C if you are not sure.
read sure
userdel -r $un
rm -r /home/httpd/html/$un
echo complete
เคยมีอาจารย์บางโรงเรียนที่เปิดบริการอินเทอร์เน็ต แล้วยอมให้นักเรียนเล็ก ๆ ของพวกเขาเล่นเกม online ได้
แต่ firewall ปิดการเล่นเกม online ไว้ ทำให้เล่นกันไม่ได้เลย ผมก็เลยหาจากเว็บว่า ragnarok ใช้ port อะไร จะได้เปิดให้นักเรียนได้เล่น
เรื่องห้าม ไม่ห้ามเล่น block หรือ ไม่ block ragnarok หรือเกมอื่น ๆ กำลังเป็นที่ถกเถียงกัน
เพียงแต่ port ที่ ragnarok เข้าใช้คือ 5000 และ 6900 ซึ่งอ่านได้จาก http://www.ragnarok.in.th/faq_n.html
# show ip interface brief ใช้แสดงสถานะ FastEthernet ซึ่งเป็นฝั่ง LAN และ Serial0/0 ซึ่งเป็นฝั่ง WAN
ตัวอย่างการ config router
c:\telnet router.yonok.ac.th
username : superman
password : supergirl
yonok-router>help
yonok-router>enable
Password:
yonok-router#?
yonok-router#config terminal
yonok-router(config)#
. . . . . . .
yonok-router(config)#interface Serial0/0
yonok-router(config)#ip access-group 101 out
yonok-router(config)#access-list 101 deny tcp host 202.29.78.9 any eq 5000
yonok-router(config)#access-list 101 deny tcp host 202.29.78.9 any eq 6900
yonok-router(config)#access-list 101 permit ip any any
. . . . . . .
type command by your self
type no in the front of the command if you want to delete
webguide: http://www.cisco.com
. . . . . . .
. . . . . . .
yonok-router(config)#
yonok-router(config)#exit
yonok-router#write
yonok-router#reload
yonok-router#show run
Building configuration...
Current configuration : 1905 bytes
!
version 12.2
service timestamps debug uptime
service timestamps log uptime
service password-encryption
service udp-small-servers
service tcp-small-servers
!
hostname yonok-router
!
aaa new-model
!
aaa session-id common
enable secret 5 aaaaQT$u.xb5Wxpxk5aaaaaaa
enable password 7 aaaa3080aaa
!
username superman password 7 aaaa81F1C354aaa
ip subnet-zero
!
interface FastEthernet0/0
ip address 202.29.78.254 255.255.255.0
speed auto
full-duplex
no cdp enable
!
interface Serial0/0
ip address 202.28.202.74 255.255.255.252
ip access-group 102 in
ip access-group 101 out
no cdp enable
!
router igrp 1
redistribute connected
network 202.28.29.0
network 202.29.78.0
!
ip classless
ip route 0.0.0.0 0.0.0.0 Serial0/0
ip route 0.0.0.0 0.0.0.0 202.28.29.41
no ip http server
ip pim bidir-enable
!
access-list 101 deny tcp host 202.29.78.13 any eq ftp
access-list 101 deny tcp host 202.29.78.13 any gt 6000
access-list 101 permit ip any any
access-list 102 deny tcp any 202.29.78.0 0.0.0.255 eq 135
access-list 102 deny udp any 202.29.78.0 0.0.0.255 eq 135
access-list 102 permit ip any any
access-list 103 deny tcp host 202.29.78.18 any eq ftp
access-list 103 deny tcp host 202.29.78.18 any gt 2000
access-list 103 permit ip any any
dialer-list 1 protocol ip permit
dialer-list 1 protocol ipx permit
no cdp run
snmp-server community public RO
banner login ^CC
**********************************************************************
* www.yonok.ac.th *
**********************************************************************
^C
!
line con 0
line aux 0
line vty 0 4
password 7 aaa385F5A0aaa
!
end
yonok-router#
แสดงสถานะการเชื่อมต่อกับอุปกรณ์นอกสถาบันว่า Serial กับ Protocol ปกติหรือไม่
ถ้า Protocol ไม่ up ก็จะ ping ไม่ได้ แต่ถ้า Serial ขึ้น แสดงว่าเชื่อมต่อกับ TOT ได้
yonok-router# show ip interface brief
yonok-router# show interface serial0/0
Serial0/0 is up, line protocol is up
Hardware is PowerQUICC Serial
Internet address is 202.28.202.74/30
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
reliability 255/255, txload 33/255, rxload 37/255
Encapsulation HDLC, loopback not set
Keepalive set (10 sec)
Last input 00:00:01, output 00:00:00, output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: weighted fair
Output queue: 0/1000/64/0 (size/max total/threshold/drops)
Conversations 0/12/256 (active/max active/max total)
Reserved Conversations 0/0 (allocated/max allocated)
Available Bandwidth 1158 kilobits/sec
5 minute input rate 227000 bits/sec, 46 packets/sec
5 minute output rate 203000 bits/sec, 67 packets/sec
25507 packets input, 15405951 bytes, 0 no buffer
Received 136 broadcasts, 0 runts, 6 giants, 0 throttles
158 input errors, 40 CRC, 102 frame, 0 overrun, 0 ignored, 16 abort
41777 packets output, 13772824 bytes, 0 underruns
0 output errors, 0 collisions, 21 interface resets
0 output buffer failures, 0 output buffers swapped out
2 carrier transitions
DCD=up DSR=up DTR=up RTS=up CTS=up
yonok-router#
เคยสั่ง 700 /tmp ซึ่งไม่เกิดปัญหา แต่มาพบว่า การใช้ห้ามใช้ห้อง /tmp จะทำให้ pop ใช้งานไม่ได้ และใช้ pine เปิด mail box ก็จะฟ้องว่าเป็น read only ผมจึงไม่สามารถปิด
If you use your Red Hat Linux system on a network (such as a local area network, wide area network, or the Internet), you must be aware that your system is at a greater degree of risk than if you were not connected to that network. Beyond brute attacks on password files and users having inappropriate access, the presence of your system on a larger network widens the opportunity for a security problem and the possible form it may appear.
A number of network security measures have been built into Red Hat Linux, and many open source security tools are also included with the primary distribution. However, despite your preparedness, network security problems may occur, due in part to your network topology or a dozen other factors. To help you determine the source and method of a network security problem, consider the the most likely ways such a problem can occur:
1. Sniffing for authentication data. Many default authentication methods in Linux and other operating systems depend on sending your authentication information "in the clear," where your username and password is sent over the network in plain text or unencrypted. Tools are widely available for those with access to your network (or the Internet, if you are accessing your system using it) to "sniff" or detect your password by recording all data transferred over the network and sifting through it to find common login statements. This method can be used to find any information you send unencrypted, even your root password. It is imperative that you implement and utilize tools like Kerberos 5 and OpenSSH to prevent passwords and other sensitive data form being sent without encryption. If, for whatever reason, these tools cannot be used with your system, then definitely never log in as root unless you are at the console.
2. Frontal attack Denial of Service (DoS) attacks and the like can cripple even a secure system by flooding it with improper or malformed requests that overwhelm it or create processes that put your system and its data, as well as other systems that communicate with it, at risk. A number of different protections are available to help stop the attack and minimize the damage, such as packet-filtering firewalls. However, frontal attacks are best handled with a comprehensive look at ways in which untrusted systems communicate with your trusted systems, putting protective barriers between the two, and developing a way to quickly respond to any event so that the disruption and possible damage is limited.
3. Exploiting a security bug or loophole Occasionally, bugs are found in software that, if exploited, could do grievous damage to an unprotected system. For that reason, run as few processes as root as possible. Also, use the various tools available to you, such as the Red Hat Network for package updates and security alerts, to fix security problems as soon as they are discovered. Also, make sure that your system has no unnecessary programs starting up at boot time. The fewer programs you have started, the fewer possible security bugs can affect you.
9.56 Procmail เพื่อกรอง spam mail และ junk mail : ใช้ keyword หยุด e-mail โดยตรวจสอบจาก from และ subject
ซึ่งเป็น Unix server ที่ดี จะใช้การ Reboot และกดปุ่ม stop a แล้วใช้คำสั่ง boot -s
9.62 แก้ไข httpd.conf เพื่อแก้ปัญหาของ Web Server : แฟ้มนี้คุมบริการต่าง ๆ ซึ่งสำคัญต่อต้องการ web server ในองค์กร
แก้ไขแฟ้ม /etc/httpd/conf/httpd.conf :
9.64 วิธีเปิดบริการ homepage ให้ ~username ใน linux : เปิดบริการ homepage โดยใช้ account ของระบบ linux
อ่านรายละเอียดเพิ่มเติมได้จาก http://httpd.apache.org/docs/misc/FAQ.html
การเปิดบริการ free homepage ของ Web server อีกแบบหนึ่ง ในการเปิดบริการแบบใหม่จะใช้โปรแกรม เช่น http://www.cyberscript.net/products/easyhost_free/ ที่ไม่ต้องสร้าง linux account แต่อย่างใด และมีความปลอดภัยในการบำรุงรักษาสูง
การเปิดบริการ free homepage แบบใช้ linux account เช่น http://www.isinthai.com/~username สามารถเปิดบริการได้ด้วยการแก้ไขแฟ้ม /etc/httpd/conf/httpd.conf แก้บรรทัดที่เขียนว่า UserDir Disable เป็น UserDir public_html แล้วต้อง chmod 711 ให้กับ home directory ของตนเอง แล้ว chmod 755 ให้กับ public_html ของตนเองหลังจากใช้คำสั่ง mkdir public_html ไว้ใน home directory แล้ว
9.65 วิธีเปิดบริการ samba : เปิดบริการให้ระบบ windows มองเห็นระบบแฟ้มใน linux
ทดสอบ samba ของ RH8.0 แก้ไขดังข้างล่างแล้วไม่พบปัญหาใดเลย .. ง่ายมากครับ
เปิดบริการ samba ด้วยคำสั่ง setup, system services แล้วเลือกเปิด smb แล้วเข้าไปในห้อง /etc/samba แล้วใช้ pico smb.conf จากนั้น restart ด้วย /etc/rc.d/init.d/smb restart และให้พิมพ์ chkconfig smb on จะทำให้ samba start ทุกครั้งที่เปิดเครื่อง
คำสั่งที่ใช้สร้าง user คือ smbpasswd -a [username] [userpassword]
::::::: เดิม :::::::
; hosts allow = 192.168.1. 192.168.2. 127.
security = user
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775
;[tmp]
; comment = Temporary file space
; path = /tmp
; read only = no
; public = yes
;[public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = @staff
::::::: ใหม่ :::::::
hosts allow = 192.168.1. 192.168.2. 127. 202.29.78
security = share
[homes]
comment = Home Directories
browseable = yes
writable = yes
create mode = 0664
directory mode = 0775
[tmp]
comment = Temporary file space
path = /tmp
read only = no
public = yes
[public]
comment = Public Stuff
path = /home/samba
public = yes
writable = yes
printable = no
write list = @staff
9.66 เปิดบริการ DNS server : บริการ Domain Name service เพื่อให้ทุกเครื่องสามารถเรียกเว็บ หรือบริการด้วยชื่อได้
เปิดบริการ DNS server เพื่อทำให้ระบบเครือข่ายเรียกชื่อเว็บ เป็นตัวอักษรได้ และเป็นชุดที่ใช้กำหนดชื่อเครื่องในระบบทั้งหมด ถ้าในระบบเครือข่ายของท่าน มีเครื่องที่ต้องการตั้งชื่อหลายเครื่อง แต่ถ้าท่านเป็นเครื่องใช้พิมพ์งานธรรมดาก็ไม่จำเป็นต้องมีชื่อให้ใครเรียกเข้ามา ปกติเครื่องที่จะมีชื่อมักเป็น web server หรือ ftp server
การเปิดบริการนี้ต้องเปิดด้วยการสั่ง #setup แล้วเข้าไปในส่วน system services แล้วเลือก named เมื่อจะสั่งให้ named ทำงานต้องสั่ง #/etc/init.d/named restart ตรวจสอบได้ว่า named ทำงานหรือไม่โดยพิมพ์ #ps aux|grep named
ทดสอบเปิดบริการ named แบบ foreground ด้วย #named -g -p 53 ถ้าเลิกก็กด CTRL-C
พบ error เรื่อง permission ของห้อง /var/run/named เดิมเป็น 755 ไม่สามารถ start named ผมต้องเปลี่ยนเป็น 777 จึง ok
ใช้คำสั่ง #nmap localhost ดูได้ว่า port 53 ถูกเปิดหรือไม่ ถ้าไม่เปิด ก็แสดงว่าเครื่องยังไม่เป็น DNS หรือ Domain server (หัวข้อ 2.29)
9.66.1 :: /etc/named.conf
# ใน DNS server (star.yonok.ac.th)
# เพิ่มเพียง 4 บรรทัดนี้เข้าไป
# ใน unix พบแฟ้มนี้ใน /export/local/etc
zone "yonok.ac.th" in {
type master;
file "db.yonok.ac.th";
allow-query {any;};
allow-transfer {202.28.18.65;};
};
zone "isinthai.com" in {
type master;
file "db.isinthai.com";
};
zone "78.29.202.in-addr.arpa" in {
type master;
file "db.202.29.78";
};
9.66.2 :: /var/named/db.isinthai.com
# ใน DNS server (star.yonok.ac.th)
# ถ้าเครื่องไม่เป็น ns ก็ไม่จำเป็นต้องมี
; isinthai.com
@ IN SOA www.isinthai.com. postmaster.www.isinthai.com. (
2001022605 43200 7200 1209600 172800 )
IN NS star.yonok.ac.th. ; ตรงกับ checkdomain.com
IN MX 5 www.isinthai.com.
www IN A 202.29.78.1
mail IN CNAME www.isinthai.com.
wichep IN CNAME yn2.yonok.ac.th.
9.66.3 :: /var/named/db.yonok.ac.th
; yonok.ac.th
@ IN SOA star.yonok.ac.th. postmaster.star.yonok.ac.th. (
2003011001 43200 7200 1209600 172800 )
IN NS star.yonok.ac.th.
IN NS mars.uni.net.th.
IN MX 5 star.yonok.ac.th.
star IN A 202.29.78.12
door IN A 202.29.78.254
email IN A 216.200.145.34
IN MX 6 sitemail.everyone.net.
mail IN CNAME star.yonok.ac.th.
;email IN CNAME siteurl.everyone.net.
9.66.4 :: /var/named/db.202.29.78
- ใน DNS server (star.yonok.ac.th)
- ถ้าเครื่องไม่เป็น ns ก็ไม่จำเป็นต้องมี
; Yonok.ac.th
$ORIGIN 78.29.202.IN-ADDR.ARPA.
@ IN SOA star.yonok.ac.th. postmaster.star.yonok.ac.th. (
2001022601 ;serial
43200 ;Refresh 12 hours
7200 ;Retry 2 hours
1209600 ;Expire 2 weeks
172800) ;TTL
IN NS star.yonok.ac.th.
1 IN PTR www.isinthai.com.
2 IN PTR isinthai.yonok.ac.th.
12 IN PTR star.yonok.ac.th.
9.69 ติดตั้ง DHCP server แจก Dynamic IP : เพื่อให้เครื่อง Server มีบริการแจก IP ปลอมให้กับเครื่องในองค์กร เพราะปกติองค์กรจะได้ IP มา 1 Class C มี 256 หมายเลข แต่ถ้าในองค์กรมีเครื่องจำนวนมากกว่านั้น ก็จำเป็นต้องสร้าง DHCP server เพื่อแจก IP ปลอม และยังมีประโยชน์ในเรื่องของความปลอดภัย เพราะเครื่องที่ได้ IP ปลอม ย่อมต้องมีการทำงานขึ้นกับเครื่อง server จะแอบออกไปน้องเครือข่ายได้ยาก
ขั้นตอนการทำให้ Linux server บริการ DHCP (Dynamic Host Configuration Protocol)
ทำให้เครื่องมี IP ปลอมเกิดขึ้นด้วย โดยพิมพ์สั่งใส่ใน /etc/rc.d/rc.local เพื่อกำหนด IP ปลอมแก่เครื่อง server นี้ ทุกครั้งที่เปิดเครื่อง
/sbin/ifconfig eth0:1 192.168.3.1
การทำให้ใช้ IP forwarding ต้องแก้แฟ้ม /etc/sysctl.conf จาก 0 เป็น 1 โดยแก้เป็นบรรทัดด้านล่าง
net.ipv4.ip_forward = 1
เมื่อแก้ไขเสร็จแล้วให้พิมพ์คำสั่งใน command line ดังนี้
echo "1" >/proc/sys/net/ipv4/ip_forward
ต้องสั่ง IP forwarding เพราะเครื่องลูกไปไหนไม่ได้ แต่เครื่อง server มี IP จริง และ IP ปลอม จึงต้องสั่งให้ IP ปลอมมาเข้ากับ IP จริง ด้วยการใช้ ipchains กำหนดการ forward
/sbin/ipchains -A forward -i eth0 -s 192.168.3.1/24 -j MASQ
แฟ้มที่เก็บ Top menu ด้านขวา คือ /usr/share/squirrelmail/functions/page_header.php
+ พบคำว่า You must be logged in to access this page. ตรวจแล้วเกิดจาก server เต็ม จึง login ผ่าน webmail ไม่ได้
+ แก้ไขโดยเข้าห้อง /var/mail แล้วใช้คำสั่ง ls -alSขั้นตอนการติดตั้ง adjeweb.com ข้อ 1 และ 2 จะทำเมื่อใช้คำสั่ง rpm -qa|grep imap แล้วไม่พบว่ามีอยู่แล้ว จึงต้องติดตั้งเพิ่ม
หากยังไม่ได้ mount cd ต้องทำก่อนโดยใช้คำสั่ง mount /dev/cdrom ก็จะทำให้มีห้อง /mnt/cdrom ขึ้นมา ใช้คำสั่ง cd เข้าไปดูได้
ติดตั้ง imap ซึ่งก็คือ pop3 นั่นเองจาก CD ที่ใช้ลง linux ด้วยคำสั่ง rpm -i imap-4.7-5.i386.rpm และ rpm -i imap-devel-4.7-5.i386.rpm
ถ้าต้องการให้เครื่องนี้บริการ pop3 เอง สามารถเปิดบริการ โดยแก้แฟ้ม /etc/inetd.conf นำ # ออกหน้าคำว่า pop3 pop2 imap มิเช่นนั้นจะไม่สามารถบริการ pop ได้ แต่สามารถรับส่ง mail ด้วย telnet หรือจะใช้ adje ไปขอบริการจาก pop server ตัวอื่นก็ได้
คำสั่งที่ใช้ re-read inetd.conf คือ killall -HUB inetd และคำสั่งที่น่ารู้คือ ntsysv เพื่อใช้เปิด หรือปิดบริการใน /etc/services
อาจตรวจสอบว่าเปิดบริการหรือไม่ด้วยคำสั่ง setup, system services ดูในส่วนบริการ ipop2 และ ipop3 จะต้องมีเครื่องหมาย x เพื่อแสดงว่าบริการนี้เปิดแล้ว
สร้าง user ชื่อ webmail แล้วใช้ user นี้ทำงาน หรือใช้ su - webmail เพื่อเปลี่ยนตนเองอย่างง่าย ๆ ก็ได้
ขั้นตอนการติดตั้ง squid ให้เครื่องเป็น proxy serverhttp://www.thailinux.com/1999/04/18/topic2.html
su
adduser squid
passwd squid
su squid (ไม่ใช้ user squid ก็ได้ แต่ถ้าใช้ดูด้วยว่า gcc เปิดหรือไม่)
cd /home/httpd/html/thaiall
tar xfvz squid-2.3-200103110000-src.tar.gz
cd squid-2.3-200103110000
./configure --prefix=/home/squid
make all
make install (แปลกมากที่ บรรทัดนี้ error แต่ก็ไม่เป็นไร เพราะใช้งานได้ปกติ)
cd /home/squid/etc
pico squid.conf