การใช้ 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 ต่างกันอย่างไร

ปัญหาและเฉลยวิชาธรรม นักธรรมชั้นตรี สอบในสนามหลวง วันอังคาร ที่ ๒๙ กันยายน พ.ศ.๒๕๕๒

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