การใช้ Shell Script เพื่อทำการ Config ระบบ

ใน การทำ Linux Internet Server ผู้เขียนได้ลองถูกลองผิดหลายครั้งหลายครา จนในที่สุดคิดว่าวิธีการง่ายๆสำหรับผู้เริ่มต้นในการลงก็คือ การเลือกติดตั้งแบบ Server แล้วทำการ Config ระบบโดยใช้ Shell Scripts ที่ผู้เขียนทำขึ้นมาดังนี้

# This script file will Setup your existing Red Hat Linux 7.3 OS to
# to become Linux Internet Server
#
#!/bin/sh

cd /home/util/
cp dhcpd.conf /etc
/etc/init.d/dhcpd start
cp named.conf /etc
cp 1.168.192.rev /var/named
cp abcdef.com.zone /var/named
/etc/init.d/named start
mkdir /home/samba
chmod 1777 /home/samba
chown nobody.nobody /home/samba
/etc/init.d/smb start
cp swat /etc/xinetd.d
/etc/init.d/xinetd start
cp -R /var/www /home/httpd
cp httpd.conf /etc/httpd/conf
/etc/init.d/httpd start
cp squid.conf /etc/squid
chmod 750 /var/spool/squid
chown squid.squid /var/spool/squid
squid -z
/etc/init.d/squid start
cp sendmail.mc /etc/mail
m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
cp access /etc/mail
cd /etc/mail
makemap hash access < access
cd /home/util
cp local-host-names /etc/mail
cp ipop3 /etc/xinetd.d
/etc/init.d/sendmail restart
/etc/init.d/xinetd restart
iptables -t nat -A POSTROUTING -d ! 192.168.1.0/24 -o ppp0 -j MASQUERADE
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -j DROP
/etc/init.d/iptables save
/etc/init.d/iptables restart
cp sysctl.conf /etc
/etc/init.d/network restart
wvdialconf /etc/wvdial.conf
tar zxpf webmin-1.050.tar.gz
cd webmin-1.050
./setup.sh
cd ..
tar zxpf usermin-0.980.tar.gz
cd usermin-0.980
./setup.sh
cd /var/tmp
cp /home/util/squidGuard-1.2.0.tar.gz .
tar zxpf squidGuard-1.2.0.tar.gz
cd squidGuard-1.2.0
cd /var/tmp/squidGuard-1.2.0
CFLAGS="-O2 -march=i686 -funroll-loops" ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-sg-config=/etc/squid/squidGuard.conf --with-sg-logdir=/var/log/squid/squidGuard --with-sg-dbhome=/var/spool/squid/squidGuard --with-db-inc=/usr/include --with-db-lib=/usr/lib
make
cd
find /* > SquidGuard1
cd /var/tmp/squidGuard-1.2.0
make install
cd samples/
install -m 511 squidGuard.cgi /home/httpd/cgi-bin/
cd dest/
mkdir -p /var/spool/squid/squidGuard
chown -R squid.squid /var/spool/squid/squidGuard/
chmod 0750 /var/spool/squid/squidGuard/
chown -R squid.squid /var/log/squid/squidGuard/
chmod 0750 /var/log/squid/squidGuard/
cp blacklists.tar.gz /var/spool/squid/squidGuard/
cd /var/spool/squid/squidGuard/
mkdir -p aggressive
mkdir -p gambling
mkdir -p hacking
mkdir -p porn
chown -R squid.squid aggressive/
chown -R squid.squid gambling/
chown -R squid.squid hacking/
chown -R squid.squid porn/
tar zxpf blacklists.tar.gz
cd blacklists
install -m 644 aggressive/domains
install -m 644 aggressive/domains ../aggressive/
install -m 644 aggressive/urls ../aggressive/
install -m 644 gambling/domains ../gambling/
install -m 644 gambling/urls ../gambling/
install -m 644 hacking/domains ../hacking/
install -m 644 hacking/urls ../hacking/
install -m 644 porn/domains ../porn/
install -m 644 porn/urls ../porn/
install -m 644 porn/expressions ../porn/
cd ..
chown -R squid.squid *
strip /usr/bin/squidGuard
/sbin/ldconfig
rm -rf blacklists blacklists.tar.gz
cd
find /* > SquidGuard2
diff SquidGuard1 SquidGuard2 > SquidGuard-Installed
cd /var/tmp/
rm -rf squidGuard-1.2.0
rm -f squidGuard-1.2.0.tar.gz
cp /home/util/squidGuard.conf /etc/squid/
cd /etc/squid/
cp /home/util/squidGadd.conf squid.conf
cp /home/util/squidGuard.cgi /home/httpd/cgi-bin
chmod 755 /home/httpd/cgi-bim/squidGuard.cgi
/etc/init.d/squid restart
cd /home/util/
cp Mail-SpamAssassin-2.42.tar.gz /var/tmp/
cd /var/tmp/
tar zxpf Mail-SpamAssassin-2.42.tar.gz
cd Mail-SpamAssassin-2.42
perl Makefile.PL
make test
cd
find /* > spam1
cd /var/tmp/Mail-SpamAssassin-2.42
mkdir -p /etc/mail/spamassassin
make install
cd
chmod 0444 /usr/share/spamassassin/*
chmod 0640 /etc/mail/spamassassin/*
cd
find /* > spam2
diff spam1 spam2 > SpamAssassin-Installed
cd /var/tmp/
rm -rf Mail-SpamAssassin-2.42
rm -f Mail-SpamAssassin-2.42.tar.gz
cd /etc/init.d/
cp /home/util/spamd spamd
chmod 700 /etc/init.d/spamd
chown 0.0 /etc/init.d/spamd
chkconfig --add spamd
chkconfig --level 2345 spamd on
/etc/init.d/spamd start

ทั้งนี้การแบ่ง Partition ต้องมี /var/spool/squid เตรียมเอาไว้ 5120M นะครับถ้าเป็นอย่างอื่น ให้แก้ไข
แฟ้ม squid.conf และ squidGuard.conf ตรงบรรทัด

cache_dir diskd /var/spool/squid 5100 16 256

โดยที่ ตัวเลข 5100 จะเปลี่ยนไปเท่ากับที่ท่านตั้งเอาไว้ตอน Partition เช่น
ถ้าท่านตั้งไว้ 3072M ตัวเลขนี้ก็เปลี่ยนไปเป็น 3000 คงเข้าใจนะครับ
ท่านอาจจะสงสัยว่าทำไมผู้เขียนไม่ใช้เต็ม 5120 หรือ 3172 ก็เพราะว่า
ต้องการที่จะกันเนื้อที่ไว้สำหรับ squidGuard นะครับ

ในการทำงานโดยที่ท่านต้องมีแฟ้มต่างๆใน Script นี้ไปไว้ใน /home/util ก่อนนะครับ
หรือ download แฟ้มทั้งหมดที่จะใช้ ได้จากที่นี่ แฟ้มประมาณ 15 Mbytes นะครับ
หลังจากนั้น ให้แตก zip แล้วใช้ winSCP ซึ่งมีรวมอยู่ด้วยแล้ว ทำการ upload แฟ้มทั้งหมดไปไว้ใน Server ที่ /home/util
แล้วใช้ Putty ซึ่งมีรวมอยู่ด้วยเหมือนกันทำการ ssh ไปยัง Server

ก่อนที่จะสั่ง run ตัว Shell Script ให้เปลี่ยนโหมดก่อนเพื่อให้ Shell Script ทำงานได้โดย

[root@one root]# cd /home/util
[root@one util]# chmod 700 install.sh

จากนั้นก็สั่งให้ Shell Script ทำงานโดย

[root@one util]# ./install.sh

และอย่าลืมแก้ไขแฟ้ม /etc/wvdial.conf ด้วยนะครับ

เพียงแค่นี้ท่านก็จะได้ Linux Internet Server แล้วละครับ

รึว่าจะ download เพียงบาง file ก็ได้ตามนี้นะครับ สำหรับ one.zip เป็นแฟ้มรวมของทุกๆ file นะครับ

โพสต์ยอดนิยมจากบล็อกนี้

ปัญหาและเฉลยธรรม นักธรรมชั้นโท สอบในสนามหลวง พ.ศ. ๒๕๔๓ วันพฤหัสบดี ที่ ๑๖ พฤศจิกายน พ.ศ. ๒๕๔๓

ปัญหาและเฉลยวินัยบัญญัติ นักธรรมชั้นเอก สอบในสนามหลวง พ.ศ. ๒๕๔๓ วันเสาร์ ที่ ๑๘ พฤศจิกายน พ.ศ. ๒๕๔๓

I miss you all กับ I miss all of you ต่างกันอย่างไร