Σίγουρα όλα τα παραπάνω δεν θα είναι κατανοητά από όλους αλλά τουλάχιστον είναι ένας καλός μπούσουλας για newbiews στο Linux....
IPtables + CBT = Firewall & QOS
Για όσους θέλουν να ξεκινήσουν να διαβάζουν iptables συνιστώ να ξεκινήσουν με το tutorial του Oskar Andreasson. http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html
Αν και είναι λίγο μεγάλο σίγουρα στο τέλος θα θέλουν να το διαβάσουν τουλάχιστον δύο - τρεις φορές ακόμη μέχρι να το χορτάσουν...
Friday, 27 August 2010
Linux IPTables Firewall #4
4o Script (Firewall)
#!/bin/bash
PATH="/bin:/sbin:/usr/bin"
# Script
pid="/var/run/stats.pid" # PID file
setup="/etc/firewall"
sysiptables="/etc/sysconfig/iptables"
# Interfaces
INET="eth0" # Upload Interface
WNET="eth1" # Internet Interface - Upload
FAKE="eth1" # Wireless Bridge
LAN="eth2" # Download Interface - Download
VPN="ppp0" # VPN
# Firewall
BANNED="192.168.0.254"
LAN_MASK="192.168.0.0/24"
WNET_MASK="11.11.11.0/29"
LAN_IP="192.168.0.1"
INET_IP="11.11.11.4"
WNET_IP="10.122.7.62"
DSL_IP="11.11.11.1"
FAKE_IP="192.168.1.2"
VPN_IP="192.168.3.1"
VPN_MASK="192.168.3.0/24"
NICK="192.168.0.3"
DREAM="192.168.0.4"
DB="192.168.0.11"
start () {
if [ "$1" = "firewall" ]
then
. $setup/iptables
elif [ "$1" = "qos" ]
then
. $setup/iproute
elif [ $1 = ]
then
. $setup/iptables
. $setup/iproute
fi
}
stop () {
if [ "$1" = "firewall" ]
then
# IPTABLES Rules
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
elif [ "$1" = "qos" ]
then
# IPROUTE Rules
tc qdisc del dev $INET root
tc qdisc del dev $LAN root
elif [ $1 = ]
then
# IPTABLES Rules
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# IPROUTE Rules
tc qdisc del dev $INET root
tc qdisc del dev $LAN root
fi
if [ -f $pid ]
then
rm -rf $pid
fi
}
mrtgstats () {
if [ -z $1 ]
then
echo "Please specify a QOS queue"
else
bw=`tc -s class ls dev $LAN
grep -A1 "htb $1 "
grep Sent
awk '{print $2}'`
echo $bw
echo 0
fi
}
genfire () {
iptables -Z INVALID
iptables -Z INVPACKETS
iptables -Z GOOD_TCP_PACKETS
iptables -Z BAD_TCP_PACKETS
iptables -Z BADPACKETS
iptables -Z TCP_FLAGS
iptables -Z BADFLAGS
iptables -Z IEXT
iptables -Z WEXT
iptables -Z LAN
iptables -Z OK
iptables -Z LAN_NET
iptables -Z NET_LAN
iptables -Z INPUT
iptables -Z OUTPUT
iptables -Z FORWARD
iptables -t nat -Z
iptables -t mangle -Z
echo y
iptables-save > $sysiptables
}
case "$1" in
start)
start $2
;;
stop)
stop $2
;;
restart)
stop
start
;;
mrtgstats)
mrtgstats $2
;;
genfire)
genfire
;;
*)
echo $"Usage: `basename $0` {start
stop
restart
mrtgstats
genfire}"
exit 1
esac
# EOF
#!/bin/bash
PATH="/bin:/sbin:/usr/bin"
# Script
pid="/var/run/stats.pid" # PID file
setup="/etc/firewall"
sysiptables="/etc/sysconfig/iptables"
# Interfaces
INET="eth0" # Upload Interface
WNET="eth1" # Internet Interface - Upload
FAKE="eth1" # Wireless Bridge
LAN="eth2" # Download Interface - Download
VPN="ppp0" # VPN
# Firewall
BANNED="192.168.0.254"
LAN_MASK="192.168.0.0/24"
WNET_MASK="11.11.11.0/29"
LAN_IP="192.168.0.1"
INET_IP="11.11.11.4"
WNET_IP="10.122.7.62"
DSL_IP="11.11.11.1"
FAKE_IP="192.168.1.2"
VPN_IP="192.168.3.1"
VPN_MASK="192.168.3.0/24"
NICK="192.168.0.3"
DREAM="192.168.0.4"
DB="192.168.0.11"
start () {
if [ "$1" = "firewall" ]
then
. $setup/iptables
elif [ "$1" = "qos" ]
then
. $setup/iproute
elif [ $1 = ]
then
. $setup/iptables
. $setup/iproute
fi
}
stop () {
if [ "$1" = "firewall" ]
then
# IPTABLES Rules
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
elif [ "$1" = "qos" ]
then
# IPROUTE Rules
tc qdisc del dev $INET root
tc qdisc del dev $LAN root
elif [ $1 = ]
then
# IPTABLES Rules
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# IPROUTE Rules
tc qdisc del dev $INET root
tc qdisc del dev $LAN root
fi
if [ -f $pid ]
then
rm -rf $pid
fi
}
mrtgstats () {
if [ -z $1 ]
then
echo "Please specify a QOS queue"
else
bw=`tc -s class ls dev $LAN
grep -A1 "htb $1 "
grep Sent
awk '{print $2}'`
echo $bw
echo 0
fi
}
genfire () {
iptables -Z INVALID
iptables -Z INVPACKETS
iptables -Z GOOD_TCP_PACKETS
iptables -Z BAD_TCP_PACKETS
iptables -Z BADPACKETS
iptables -Z TCP_FLAGS
iptables -Z BADFLAGS
iptables -Z IEXT
iptables -Z WEXT
iptables -Z LAN
iptables -Z OK
iptables -Z LAN_NET
iptables -Z NET_LAN
iptables -Z INPUT
iptables -Z OUTPUT
iptables -Z FORWARD
iptables -t nat -Z
iptables -t mangle -Z
echo y
iptables-save > $sysiptables
}
case "$1" in
start)
start $2
;;
stop)
stop $2
;;
restart)
stop
start
;;
mrtgstats)
mrtgstats $2
;;
genfire)
genfire
;;
*)
echo $"Usage: `basename $0` {start
stop
restart
mrtgstats
genfire}"
exit 1
esac
# EOF
Linux IPTables Firewall #3
3o Script (iproute)
#!/bin/bash
#
# Binaries
#
PATH="/bin:/sbin:/usr/bin"
#
# QOS DOWNLOAD
#
#
# Mark Packets
#
iptables -t mangle -A SHAPEIN -p all -d $DB -j MARK --set-mark 3
iptables -t mangle -A SHAPEIN -p all -d $NICK -j MARK --set-mark 4
iptables -t mangle -A OUTPUT -o $LAN -p all -d 192.168.0.0/24 -j MARK --set-mark 5
iptables -t mangle -A SHAPEIN -p tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 1
iptables -t mangle -A SHAPEIN -p icmp -j MARK --set-mark 1
iptables -t mangle -A SHAPEIN -p tcp -m length --length :64 -j MARK --set-mark 1
iptables -t mangle -A SHAPEIN -p tcp --dport 22 -j MARK --set-mark 1 #ssh
iptables -t mangle -A SHAPEIN -p tcp --sport 22 -j MARK --set-mark 1 #ssh
iptables -t mangle -A SHAPEIN -p udp --dport 53 -j MARK --set-mark 1 #dns
iptables -t mangle -A SHAPEIN -p udp --sport 53 -j MARK --set-mark 1 #dns
iptables -t mangle -A SHAPEIN -p tcp --sport 20 -j MARK --set-mark 2 #ftp
iptables -t mangle -A SHAPEIN -p tcp --dport 20 -j MARK --set-mark 2 #ftp
iptables -t mangle -A SHAPEIN -p tcp --dport 21 -j MARK --set-mark 2 #ftp
iptables -t mangle -A SHAPEIN -p tcp --sport 21 -j MARK --set-mark 2 #ftp
iptables -t mangle -A SHAPEIN -p tcp --dport 80 -j MARK --set-mark 2 #web
iptables -t mangle -A SHAPEIN -p tcp --sport 80 -j MARK --set-mark 2 #web
iptables -t mangle -A SHAPEIN -p tcp --dport 6901 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p tcp --sport 6901 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p tcp -m tcp --sport 6891:6900 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p tcp -m tcp --dport 6891:6900 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp --dport 6901 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp --sport 6901 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp --dport 6801 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp --sport 6801 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp -m udp --sport 2001:2120 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp -m udp --dport 2001:2120 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp --sport 5060 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp --dport 5060 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp --sport 11113 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp --dport 11113 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp -m udp --sport 10300:10311 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp -m udp --sport 10300:10311 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp -m udp --sport 6901:6920 -j MARK --set-mark 2 #msn-voipbuster
iptables -t mangle -A SHAPEIN -p udp -m udp --sport 6901:6920 -j MARK --set-mark 2 #msn-voipbuster
iptables -t mangle -A SHAPEIN -p tcp -m multiport --ports 6667,6668,6669,7000 -j MARK --set-mark 2 #irc
iptables -t mangle -A SHAPEIN -p tcp --dport 10001 -j MARK --set-mark 2 #dreambox
iptables -t mangle -A SHAPEIN -p tcp --sport 10001 -j MARK --set-mark 2 #dreambox
#
# Classify Packets
#
iptables -t mangle -A SHAPEIN -m mark --mark 1 -j CLASSIFY --set-class 1:10
iptables -t mangle -A SHAPEIN -m mark --mark 2 -j CLASSIFY --set-class 1:20
iptables -t mangle -A SHAPEIN -m mark --mark 3 -j CLASSIFY --set-class 1:31
iptables -t mangle -A SHAPEIN -m mark --mark 4 -j CLASSIFY --set-class 1:32
iptables -t mangle -A OUTPUT -o $LAN -p all -d 192.168.0.0/24 -m mark --mark 5 -j CLASSIFY --set-class 1:40
#
# TOS
#
iptables -t mangle -A SHAPEIN -m mark --mark 1 -j TOS --set-tos Minimize-Delay
iptables -t mangle -A SHAPEIN -m mark --mark 2 -j TOS --set-tos Maximize-Reliability
iptables -t mangle -A SHAPEIN -m mark --mark 3 -j TOS --set-tos Maximize-Throughput
iptables -t mangle -A SHAPEIN -m mark --mark 4 -j TOS --set-tos Maximize-Throughput
iptables -t mangle -A OUTPUT -o $LAN -p all -d 192.168.0.0/24 -m mark --mark 5 -j TOS --set-tos Maximize-Throughput
#
# QOS UPLOAD
#
#
# Mark Packets
#
iptables -t mangle -A SHAPEOUT -p all -s $DB -j MARK --set-mark 6
iptables -t mangle -A SHAPEOUT -p all -s $NICK -j MARK --set-mark 7
iptables -t mangle -A OUTPUT -o $INET -p all -j MARK --set-mark 8
#
# Classify Packets
#
iptables -t mangle -A SHAPEOUT -m mark --mark 6 -j CLASSIFY --set-class 1:10
iptables -t mangle -A SHAPEOUT -m mark --mark 7 -j CLASSIFY --set-class 1:20
iptables -t mangle -A OUTPUT -o $INET -m mark --mark 8 -j CLASSIFY --set-class 1:30
#
# TOS
#
iptables -t mangle -A SHAPEOUT -m mark --mark 6 -j TOS --set-tos Minimize-delay
iptables -t mangle -A SHAPEOUT -m mark --mark 7 -j TOS --set-tos Minimize-delay
iptables -t mangle -A SHAPEOUT -m mark --mark 8 -j TOS --set-tos Maximize-Throughput
# DOWNLOAD
tc qdisc add dev $LAN root handle 1: htb default 40
tc class add dev $LAN parent 1: classid 1:1 htb rate 100mbit ceil 100mbit
tc class add dev $LAN parent 1:1 classid 1:10 htb rate 256bit ceil 10mbit prio 1
tc class add dev $LAN parent 1:1 classid 1:20 htb rate 256kbit ceil 10mbit prio 2
tc class add dev $LAN parent 1:1 classid 1:30 htb rate 512kbit ceil 10mbit prio 4
tc class add dev $LAN parent 1:30 classid 1:31 htb rate 256kbit ceil 10mbit prio 4
tc class add dev $LAN parent 1:30 classid 1:32 htb rate 256kbit ceil 10mbit prio 4
tc class add dev $LAN parent 1:1 classid 1:40 htb rate 512kbit ceil 100mbit prio 4
tc qdisc add dev $LAN parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $LAN parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev $LAN parent 1:31 handle 31: sfq perturb 10
tc qdisc add dev $LAN parent 1:32 handle 32: sfq perturb 10
tc qdisc add dev $LAN parent 1:40 handle 40: sfq perturb 10
#
# UPLOAD
tc qdisc add dev $INET root handle 1: htb
tc class add dev $INET parent 1: classid 1:1 htb rate 384kbit ceil 384kbit
tc class add dev $INET parent 1:1 classid 1:10 htb rate 32kbit ceil 384kbit prio 1
tc class add dev $INET parent 1:1 classid 1:20 htb rate 32kbit ceil 32kbit prio 8
tc class add dev $INET parent 1:1 classid 1:30 htb rate 128kbit ceil 384kbit prio 4
tc qdisc add dev $INET parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $INET parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev $INET parent 1:30 handle 30: sfq perturb 10
#!/bin/bash
#
# Binaries
#
PATH="/bin:/sbin:/usr/bin"
#
# QOS DOWNLOAD
#
#
# Mark Packets
#
iptables -t mangle -A SHAPEIN -p all -d $DB -j MARK --set-mark 3
iptables -t mangle -A SHAPEIN -p all -d $NICK -j MARK --set-mark 4
iptables -t mangle -A OUTPUT -o $LAN -p all -d 192.168.0.0/24 -j MARK --set-mark 5
iptables -t mangle -A SHAPEIN -p tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 1
iptables -t mangle -A SHAPEIN -p icmp -j MARK --set-mark 1
iptables -t mangle -A SHAPEIN -p tcp -m length --length :64 -j MARK --set-mark 1
iptables -t mangle -A SHAPEIN -p tcp --dport 22 -j MARK --set-mark 1 #ssh
iptables -t mangle -A SHAPEIN -p tcp --sport 22 -j MARK --set-mark 1 #ssh
iptables -t mangle -A SHAPEIN -p udp --dport 53 -j MARK --set-mark 1 #dns
iptables -t mangle -A SHAPEIN -p udp --sport 53 -j MARK --set-mark 1 #dns
iptables -t mangle -A SHAPEIN -p tcp --sport 20 -j MARK --set-mark 2 #ftp
iptables -t mangle -A SHAPEIN -p tcp --dport 20 -j MARK --set-mark 2 #ftp
iptables -t mangle -A SHAPEIN -p tcp --dport 21 -j MARK --set-mark 2 #ftp
iptables -t mangle -A SHAPEIN -p tcp --sport 21 -j MARK --set-mark 2 #ftp
iptables -t mangle -A SHAPEIN -p tcp --dport 80 -j MARK --set-mark 2 #web
iptables -t mangle -A SHAPEIN -p tcp --sport 80 -j MARK --set-mark 2 #web
iptables -t mangle -A SHAPEIN -p tcp --dport 6901 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p tcp --sport 6901 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p tcp -m tcp --sport 6891:6900 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p tcp -m tcp --dport 6891:6900 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp --dport 6901 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp --sport 6901 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp --dport 6801 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp --sport 6801 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp -m udp --sport 2001:2120 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp -m udp --dport 2001:2120 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp --sport 5060 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp --dport 5060 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp --sport 11113 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp --dport 11113 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp -m udp --sport 10300:10311 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp -m udp --sport 10300:10311 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp -m udp --sport 6901:6920 -j MARK --set-mark 2 #msn-voipbuster
iptables -t mangle -A SHAPEIN -p udp -m udp --sport 6901:6920 -j MARK --set-mark 2 #msn-voipbuster
iptables -t mangle -A SHAPEIN -p tcp -m multiport --ports 6667,6668,6669,7000 -j MARK --set-mark 2 #irc
iptables -t mangle -A SHAPEIN -p tcp --dport 10001 -j MARK --set-mark 2 #dreambox
iptables -t mangle -A SHAPEIN -p tcp --sport 10001 -j MARK --set-mark 2 #dreambox
#
# Classify Packets
#
iptables -t mangle -A SHAPEIN -m mark --mark 1 -j CLASSIFY --set-class 1:10
iptables -t mangle -A SHAPEIN -m mark --mark 2 -j CLASSIFY --set-class 1:20
iptables -t mangle -A SHAPEIN -m mark --mark 3 -j CLASSIFY --set-class 1:31
iptables -t mangle -A SHAPEIN -m mark --mark 4 -j CLASSIFY --set-class 1:32
iptables -t mangle -A OUTPUT -o $LAN -p all -d 192.168.0.0/24 -m mark --mark 5 -j CLASSIFY --set-class 1:40
#
# TOS
#
iptables -t mangle -A SHAPEIN -m mark --mark 1 -j TOS --set-tos Minimize-Delay
iptables -t mangle -A SHAPEIN -m mark --mark 2 -j TOS --set-tos Maximize-Reliability
iptables -t mangle -A SHAPEIN -m mark --mark 3 -j TOS --set-tos Maximize-Throughput
iptables -t mangle -A SHAPEIN -m mark --mark 4 -j TOS --set-tos Maximize-Throughput
iptables -t mangle -A OUTPUT -o $LAN -p all -d 192.168.0.0/24 -m mark --mark 5 -j TOS --set-tos Maximize-Throughput
#
# QOS UPLOAD
#
#
# Mark Packets
#
iptables -t mangle -A SHAPEOUT -p all -s $DB -j MARK --set-mark 6
iptables -t mangle -A SHAPEOUT -p all -s $NICK -j MARK --set-mark 7
iptables -t mangle -A OUTPUT -o $INET -p all -j MARK --set-mark 8
#
# Classify Packets
#
iptables -t mangle -A SHAPEOUT -m mark --mark 6 -j CLASSIFY --set-class 1:10
iptables -t mangle -A SHAPEOUT -m mark --mark 7 -j CLASSIFY --set-class 1:20
iptables -t mangle -A OUTPUT -o $INET -m mark --mark 8 -j CLASSIFY --set-class 1:30
#
# TOS
#
iptables -t mangle -A SHAPEOUT -m mark --mark 6 -j TOS --set-tos Minimize-delay
iptables -t mangle -A SHAPEOUT -m mark --mark 7 -j TOS --set-tos Minimize-delay
iptables -t mangle -A SHAPEOUT -m mark --mark 8 -j TOS --set-tos Maximize-Throughput
# DOWNLOAD
tc qdisc add dev $LAN root handle 1: htb default 40
tc class add dev $LAN parent 1: classid 1:1 htb rate 100mbit ceil 100mbit
tc class add dev $LAN parent 1:1 classid 1:10 htb rate 256bit ceil 10mbit prio 1
tc class add dev $LAN parent 1:1 classid 1:20 htb rate 256kbit ceil 10mbit prio 2
tc class add dev $LAN parent 1:1 classid 1:30 htb rate 512kbit ceil 10mbit prio 4
tc class add dev $LAN parent 1:30 classid 1:31 htb rate 256kbit ceil 10mbit prio 4
tc class add dev $LAN parent 1:30 classid 1:32 htb rate 256kbit ceil 10mbit prio 4
tc class add dev $LAN parent 1:1 classid 1:40 htb rate 512kbit ceil 100mbit prio 4
tc qdisc add dev $LAN parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $LAN parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev $LAN parent 1:31 handle 31: sfq perturb 10
tc qdisc add dev $LAN parent 1:32 handle 32: sfq perturb 10
tc qdisc add dev $LAN parent 1:40 handle 40: sfq perturb 10
#
# UPLOAD
tc qdisc add dev $INET root handle 1: htb
tc class add dev $INET parent 1: classid 1:1 htb rate 384kbit ceil 384kbit
tc class add dev $INET parent 1:1 classid 1:10 htb rate 32kbit ceil 384kbit prio 1
tc class add dev $INET parent 1:1 classid 1:20 htb rate 32kbit ceil 32kbit prio 8
tc class add dev $INET parent 1:1 classid 1:30 htb rate 128kbit ceil 384kbit prio 4
tc qdisc add dev $INET parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $INET parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev $INET parent 1:30 handle 30: sfq perturb 10
Thursday, 26 August 2010
Linux IPTables Firewall #2
2ο Script (gw)
#!/bin/bash
/sbin/route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.122.7.1
#!/bin/bash
/sbin/route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.122.7.1
Linux IPTables Firewall #1
Το πρώτο πράγμα που με συνάρπασε στο Linux ήταν και είναι ο πυρήνας τους. Πρόκειται για ένα λειτουργικό που πραγματικά είναι μοναδικό από όλες τις απόψεις. Αν και είμαι τις φιλοσοφίας ότι πάντα πρέπει να χρησιμοποιούμε το λογισμικό που μας κάνει τη ζωή πιο εύκολη πάνω στο συγκεκριμένο θέμα, networking, firewall, routing και bandwidth management, δεν δέχομαι καμία άλλη άποψη και αυτό γιατί ξέρω πραγματικά πόσο ευέλικτες μπορεί να είναι οι λύσεις που προσφέρει το Linux. Για να μη μακρηγορώ η αγαπημένη μου διανομή (distro) είναι το Centos.
Παρακάτω παραθέτω κάποια script που τρέχουν στο pc που χρησιμοποιώ ως router και σκοπό έχουν να διαφυλάξουν το εσωτερικό δίκτυο και φυσικά να προσφέρουν την απόλυτη απόλαυση στο surfάρσισμα.
1ο Script (IPTABLES)
#!/bin/bash
#
# Binaries
#
PATH="/bin:/sbin:/usr/bin"
#
# Standard Configuration Parameters
#
# Accept and Flush ALL
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# Drop ALL
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#
# Create Custom Chains
#
iptables -N INVALID
iptables -N INVPACKETS
iptables -N GOOD_TCP_PACKETS
iptables -N BAD_TCP_PACKETS
iptables -N BADPACKETS
iptables -N TCP_FLAGS
iptables -N BADFLAGS
iptables -N IEXT
iptables -N WEXT
iptables -N LAN
iptables -N OK
iptables -N LAN_NET
iptables -N NET_LAN
iptables -N VPN
iptables -t mangle -N SHAPEIN
iptables -t mangle -N SHAPEOUT
# Localhost
iptables -A INPUT -p all -i lo -j ACCEPT
iptables -A OUTPUT -p all -o lo -j ACCEPT
#
# Logs
#
iptables -A BADFLAGS -j LOG --log-prefix "IPT BADFLAGS: "
iptables -A BADFLAGS -j DROP
iptables -A BADPACKETS -j LOG --log-prefix "IPT BADPACKETS: "
iptables -A BADPACKETS -j DROP
iptables -A INVPACKETS -j LOG --log-prefix "IPT INVALID: "
iptables -A INVPACKETS -j DROP
#
# Stateful Checks $ Tricks
#
iptables -A GOOD_TCP_PACKETS -p tcp --syn -j ACCEPT
iptables -A GOOD_TCP_PACKETS -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INVALID -p all -m state --state INVALID -j INVPACKETS
iptables -A BAD_TCP_PACKETS -p tcp ! --syn -m state --state NEW -j BADPACKETS
iptables -A TCP_FLAGS -p tcp --tcp-flags ACK,FIN FIN -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ACK,PSH PSH -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ACK,URG URG -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags FIN,RST FIN,RST -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags SYN,FIN SYN,FIN -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags SYN,RST SYN,RST -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ALL ALL -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ALL NONE -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ALL FIN,PSH,URG -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j BADFLAGS
#
# Chain Jumps
#
iptables -A INPUT -i $INET -j IEXT
iptables -A OUTPUT -o $INET -j OK
iptables -A INPUT -i $WNET -j WEXT
iptables -A OUTPUT -o $WNET -j OK
iptables -A INPUT -i $LAN -j LAN
iptables -A OUTPUT -o $LAN -j LAN
iptables -A INPUT -i $VPN -j VPN
iptables -A OUTPUT -o $VPN -j VPN
iptables -A FORWARD -i $LAN -o $INET -j LAN_NET
iptables -A FORWARD -i $LAN -o $WNET -j LAN_NET
iptables -A FORWARD -i $INET -o $LAN -j NET_LAN
iptables -A FORWARD -i $WNET -o $LAN -j NET_LAN
iptables -A FORWARD -i $VPN -j LAN_NET
iptables -t mangle -A FORWARD -o $LAN -j SHAPEIN
iptables -t mangle -A FORWARD -o $INET -j SHAPEOUT
#
# Banned Hosts
#
iptables -A IEXT -s $BANNED -j DROP
iptables -A IEXT -d $BANNED -j DROP
iptables -A WEXT -s $BANNED -j DROP
iptables -A WEXT -d $BANNED -j DROP
iptables -A LAN_NET -d $BANNED -j DROP
iptables -A NET_LAN -s $BANNED -j DROP
#
# Open Ports External Interfaces
#
# Internet Interface
iptables -A IEXT -j INVALID
iptables -A IEXT -j BAD_TCP_PACKETS
iptables -A IEXT -j TCP_FLAGS
iptables -A IEXT -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
iptables -A IEXT -p tcp --dport 20 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp --dport 21 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp --dport 25 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp --dport 80 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp --dport 143 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp --dport 443 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp --dport 3306 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp --dport 10000 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp -m tcp --dport 49160:49300 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp -m tcp --sport 49160:49300 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp --dport 1723 -j ACCEPT
iptables -A IEXT -p udp --dport 1723 -j ACCEPT
iptables -A IEXT -p udp --dport 67:68 --sport 67:68 -j ACCEPT
iptables -A IEXT -p udp --dport 53 -j ACCEPT
iptables -A IEXT -p udp --dport 53 -j ACCEPT
iptables -A IEXT -p udp --dport 123 -j ACCEPT
iptables -A IEXT -p udp --dport 123 -j ACCEPT
iptables -A IEXT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Wireless Interface
iptables -A WEXT -j INVALID
iptables -A WEXT -j BAD_TCP_PACKETS
iptables -A WEXT -j TCP_FLAGS
iptables -A WEXT -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
iptables -A WEXT -p tcp --dport 20 -j GOOD_TCP_PACKETS
iptables -A WEXT -p tcp --dport 21 -j GOOD_TCP_PACKETS
iptables -A WEXT -p tcp --dport 22 -j GOOD_TCP_PACKETS
iptables -A WEXT -p tcp --dport 25 -j GOOD_TCP_PACKETS
iptables -A WEXT -p tcp --dport 80 -j GOOD_TCP_PACKETS
iptables -A WEXT -p udp --dport 53 -j ACCEPT
iptables -A WEXT -p udp --dport 53 -j ACCEPT
iptables -A WEXT -p udp --dport 123 -j ACCEPT
iptables -A WEXT -p udp --dport 123 -j ACCEPT
iptables -A WEXT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Output Wireless & Internet
iptables -A OK -p all -d 0/0 -j ACCEPT
iptables -A OK -m state --state ESTABLISHED,RELATED -j ACCEPT
# Lan Trusted Interface
iptables -A LAN -p all -s $LAN_MASK -j ACCEPT
iptables -A LAN -m state --state ESTABLISHED,RELATED -j ACCEPT
# VPN
iptables -A VPN -p all -s $VPN_MASK -j ACCEPT
iptables -A VPN -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# Forward Rules
#
# From Lan to Internet and Wireless
iptables -A LAN_NET -j ACCEPT
iptables -A LAN_NET -m state --state ESTABLISHED,RELATED -j ACCEPT
# From Internet and Wireless to Lan
iptables -A NET_LAN -p tcp -d $DB --dport 3389 -j ACCEPT
iptables -A NET_LAN -p tcp -d $DB --dport 19064 -j ACCEPT
iptables -A NET_LAN -p udp -d $DB --dport 19064 -j ACCEPT
iptables -A NET_LAN -p tcp -d $DB --dport 3830 -j ACCEPT
iptables -A NET_LAN -p udp -d $DB --dport 3830 -j ACCEPT
iptables -A NET_LAN -p tcp -d $DB --dport 19065 -j ACCEPT
iptables -A NET_LAN -p udp -d $DB --dport 19065 -j ACCEPT
iptables -A NET_LAN -p tcp -d $NICK --dport 35980 -j ACCEPT
iptables -A NET_LAN -p udp -d $NICK --dport 35980 -j ACCEPT
iptables -A NET_LAN -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# NAT
#
iptables -t nat -A POSTROUTING -o $INET -j SNAT --to-source $INET_IP
iptables -t nat -A POSTROUTING -o $WNET -j SNAT --to-source $WNET_IP
iptables -t nat -A POSTROUTING -o $VPN -j SNAT --to-source $VPN_IP
iptables -t nat -A POSTROUTING -o $FAKE -s $DB -j SNAT --to-source $FAKE_IP
iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination $DB
iptables -t nat -A PREROUTING -p tcp --dport 3830 -j DNAT --to-destination $DB
iptables -t nat -A PREROUTING -p tcp --dport 19064 -j DNAT --to-destination $DB
iptables -t nat -A PREROUTING -p udp --dport 19064 -j DNAT --to-destination $DB
iptables -t nat -A PREROUTING -p tcp --dport 19065 -j DNAT --to-destination $DB
iptables -t nat -A PREROUTING -p udp --dport 19065 -j DNAT --to-destination $DB
iptables -t nat -A PREROUTING -p tcp --dport 35980 -j DNAT --to-destination $NICK
iptables -t nat -A PREROUTING -p udp --dport 35980 -j DNAT --to-destination $NICK
# EOF
Παρακάτω παραθέτω κάποια script που τρέχουν στο pc που χρησιμοποιώ ως router και σκοπό έχουν να διαφυλάξουν το εσωτερικό δίκτυο και φυσικά να προσφέρουν την απόλυτη απόλαυση στο surfάρσισμα.
1ο Script (IPTABLES)
#!/bin/bash
#
# Binaries
#
PATH="/bin:/sbin:/usr/bin"
#
# Standard Configuration Parameters
#
# Accept and Flush ALL
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# Drop ALL
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#
# Create Custom Chains
#
iptables -N INVALID
iptables -N INVPACKETS
iptables -N GOOD_TCP_PACKETS
iptables -N BAD_TCP_PACKETS
iptables -N BADPACKETS
iptables -N TCP_FLAGS
iptables -N BADFLAGS
iptables -N IEXT
iptables -N WEXT
iptables -N LAN
iptables -N OK
iptables -N LAN_NET
iptables -N NET_LAN
iptables -N VPN
iptables -t mangle -N SHAPEIN
iptables -t mangle -N SHAPEOUT
# Localhost
iptables -A INPUT -p all -i lo -j ACCEPT
iptables -A OUTPUT -p all -o lo -j ACCEPT
#
# Logs
#
iptables -A BADFLAGS -j LOG --log-prefix "IPT BADFLAGS: "
iptables -A BADFLAGS -j DROP
iptables -A BADPACKETS -j LOG --log-prefix "IPT BADPACKETS: "
iptables -A BADPACKETS -j DROP
iptables -A INVPACKETS -j LOG --log-prefix "IPT INVALID: "
iptables -A INVPACKETS -j DROP
#
# Stateful Checks $ Tricks
#
iptables -A GOOD_TCP_PACKETS -p tcp --syn -j ACCEPT
iptables -A GOOD_TCP_PACKETS -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INVALID -p all -m state --state INVALID -j INVPACKETS
iptables -A BAD_TCP_PACKETS -p tcp ! --syn -m state --state NEW -j BADPACKETS
iptables -A TCP_FLAGS -p tcp --tcp-flags ACK,FIN FIN -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ACK,PSH PSH -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ACK,URG URG -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags FIN,RST FIN,RST -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags SYN,FIN SYN,FIN -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags SYN,RST SYN,RST -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ALL ALL -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ALL NONE -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ALL FIN,PSH,URG -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j BADFLAGS
#
# Chain Jumps
#
iptables -A INPUT -i $INET -j IEXT
iptables -A OUTPUT -o $INET -j OK
iptables -A INPUT -i $WNET -j WEXT
iptables -A OUTPUT -o $WNET -j OK
iptables -A INPUT -i $LAN -j LAN
iptables -A OUTPUT -o $LAN -j LAN
iptables -A INPUT -i $VPN -j VPN
iptables -A OUTPUT -o $VPN -j VPN
iptables -A FORWARD -i $LAN -o $INET -j LAN_NET
iptables -A FORWARD -i $LAN -o $WNET -j LAN_NET
iptables -A FORWARD -i $INET -o $LAN -j NET_LAN
iptables -A FORWARD -i $WNET -o $LAN -j NET_LAN
iptables -A FORWARD -i $VPN -j LAN_NET
iptables -t mangle -A FORWARD -o $LAN -j SHAPEIN
iptables -t mangle -A FORWARD -o $INET -j SHAPEOUT
#
# Banned Hosts
#
iptables -A IEXT -s $BANNED -j DROP
iptables -A IEXT -d $BANNED -j DROP
iptables -A WEXT -s $BANNED -j DROP
iptables -A WEXT -d $BANNED -j DROP
iptables -A LAN_NET -d $BANNED -j DROP
iptables -A NET_LAN -s $BANNED -j DROP
#
# Open Ports External Interfaces
#
# Internet Interface
iptables -A IEXT -j INVALID
iptables -A IEXT -j BAD_TCP_PACKETS
iptables -A IEXT -j TCP_FLAGS
iptables -A IEXT -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
iptables -A IEXT -p tcp --dport 20 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp --dport 21 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp --dport 25 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp --dport 80 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp --dport 143 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp --dport 443 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp --dport 3306 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp --dport 10000 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp -m tcp --dport 49160:49300 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp -m tcp --sport 49160:49300 -j GOOD_TCP_PACKETS
iptables -A IEXT -p tcp --dport 1723 -j ACCEPT
iptables -A IEXT -p udp --dport 1723 -j ACCEPT
iptables -A IEXT -p udp --dport 67:68 --sport 67:68 -j ACCEPT
iptables -A IEXT -p udp --dport 53 -j ACCEPT
iptables -A IEXT -p udp --dport 53 -j ACCEPT
iptables -A IEXT -p udp --dport 123 -j ACCEPT
iptables -A IEXT -p udp --dport 123 -j ACCEPT
iptables -A IEXT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Wireless Interface
iptables -A WEXT -j INVALID
iptables -A WEXT -j BAD_TCP_PACKETS
iptables -A WEXT -j TCP_FLAGS
iptables -A WEXT -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
iptables -A WEXT -p tcp --dport 20 -j GOOD_TCP_PACKETS
iptables -A WEXT -p tcp --dport 21 -j GOOD_TCP_PACKETS
iptables -A WEXT -p tcp --dport 22 -j GOOD_TCP_PACKETS
iptables -A WEXT -p tcp --dport 25 -j GOOD_TCP_PACKETS
iptables -A WEXT -p tcp --dport 80 -j GOOD_TCP_PACKETS
iptables -A WEXT -p udp --dport 53 -j ACCEPT
iptables -A WEXT -p udp --dport 53 -j ACCEPT
iptables -A WEXT -p udp --dport 123 -j ACCEPT
iptables -A WEXT -p udp --dport 123 -j ACCEPT
iptables -A WEXT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Output Wireless & Internet
iptables -A OK -p all -d 0/0 -j ACCEPT
iptables -A OK -m state --state ESTABLISHED,RELATED -j ACCEPT
# Lan Trusted Interface
iptables -A LAN -p all -s $LAN_MASK -j ACCEPT
iptables -A LAN -m state --state ESTABLISHED,RELATED -j ACCEPT
# VPN
iptables -A VPN -p all -s $VPN_MASK -j ACCEPT
iptables -A VPN -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# Forward Rules
#
# From Lan to Internet and Wireless
iptables -A LAN_NET -j ACCEPT
iptables -A LAN_NET -m state --state ESTABLISHED,RELATED -j ACCEPT
# From Internet and Wireless to Lan
iptables -A NET_LAN -p tcp -d $DB --dport 3389 -j ACCEPT
iptables -A NET_LAN -p tcp -d $DB --dport 19064 -j ACCEPT
iptables -A NET_LAN -p udp -d $DB --dport 19064 -j ACCEPT
iptables -A NET_LAN -p tcp -d $DB --dport 3830 -j ACCEPT
iptables -A NET_LAN -p udp -d $DB --dport 3830 -j ACCEPT
iptables -A NET_LAN -p tcp -d $DB --dport 19065 -j ACCEPT
iptables -A NET_LAN -p udp -d $DB --dport 19065 -j ACCEPT
iptables -A NET_LAN -p tcp -d $NICK --dport 35980 -j ACCEPT
iptables -A NET_LAN -p udp -d $NICK --dport 35980 -j ACCEPT
iptables -A NET_LAN -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# NAT
#
iptables -t nat -A POSTROUTING -o $INET -j SNAT --to-source $INET_IP
iptables -t nat -A POSTROUTING -o $WNET -j SNAT --to-source $WNET_IP
iptables -t nat -A POSTROUTING -o $VPN -j SNAT --to-source $VPN_IP
iptables -t nat -A POSTROUTING -o $FAKE -s $DB -j SNAT --to-source $FAKE_IP
iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination $DB
iptables -t nat -A PREROUTING -p tcp --dport 3830 -j DNAT --to-destination $DB
iptables -t nat -A PREROUTING -p tcp --dport 19064 -j DNAT --to-destination $DB
iptables -t nat -A PREROUTING -p udp --dport 19064 -j DNAT --to-destination $DB
iptables -t nat -A PREROUTING -p tcp --dport 19065 -j DNAT --to-destination $DB
iptables -t nat -A PREROUTING -p udp --dport 19065 -j DNAT --to-destination $DB
iptables -t nat -A PREROUTING -p tcp --dport 35980 -j DNAT --to-destination $NICK
iptables -t nat -A PREROUTING -p udp --dport 35980 -j DNAT --to-destination $NICK
# EOF
Army Plus+ (Πρόγραμμα Ελληνικού Στρατού)
Ποτέ δεν μου άρεσε να επαναλαμβάνω ενέργειες που μπορούν να γίνουν αυτόματα με τη βοήθεια ενός προγράμματος και ενός υπολογιστή, όπου φυσικά είναι αυτό δυνατόν. Εκτός από αυτό ποτέ δεν μου άρεσε να αφήνω τα πράγματα στη μοίρα τους και κυρίως στο χάλι που τα βρίσκω. Αυτό φυσικά έγινε και στο στρατό…
Κατά τη διάρκεια της θητείας μου και συγκεκριμένα 4 ώρες από την ώρα που γράφτηκα στα μητρώα του 536 Μ/Κ ΤΠ στην Αλεξανδρούπολη έγινα γραφέας. Οι θέσεις που άλλαξα ήταν, πρώτα στο γραφείο κίνησης, έπειτα στο 1ο γραφείο και τέλος στο 4 γραφείο. Τα βασικά μου καθήκοντα ήταν γραφέας 4ου και γραφέας υπηρεσίας. Έτσι είχα τη δυνατότητα και τη τύχη να γνωρίσω σχεδόν όλη τη γραφειοκρατική εργασία που γινόταν στον Ελληνικό Στρατό. Αν και όλα τα γραφεία είχαν ιδιαίτερο ενδιαφέρον, κυρίως για τους ανθρώπους που είχαν μέσα, αυτό που μου κέρδισε τη καρδιά ήταν το 1ο με τεράστια διαφορά.
Αποφάσισα λοιπόν να φτιάξω ένα πρόγραμμα που στο τέλος έφτασε να είναι ολόκληρη σουίτα και στη κυριολεξία διαμάντι. Έφτιαξα λοιπόν το «Army Plus+». Αν και το όνομα φαντάζει λίγο υπερβολικό πιστεύω ότι το αξίζει. Κάθε εργασία που εκτελεί είναι σύμφωνο με όλες τις προβλεπόμενες διατάξεις του Γ.Ε.Σ αλλά συγχρόνως ανταποκρίνεται στη πραγματικότητα του στρατού. Διαθέτει:
1) Καρτέλα Στελεχών
2) Καρτέλα Αδειών
3) Καρτέλα Ποινών
4) Α.Φ.Μ (Αντίγραφο Φύλλου Μητρώου)
5) Ατομικά και Ομαδικά Φύλλα Πορείας
6) Εκτός Έδρας
7) Αυτόματη Σύνταξη Η.Δ.Γ (Ημερήσιας Διαταγής)
8) Καρτέλα Ρυθμίσεων
Το Army Plus+ όμως δεν σταματάει εκεί!!! Συνδέεται με ένα αρχείο excel το οποίο βγάζει Δυναμολόγιο Ταξιαρχίας, Δυναμολόγιο Μεραρχίας, Λίστα Απόντων και τέλος έλεγχο καταχωρήσεων στο σύστημα για διπλοεγγραφές.
Το πρόγραμμα φυσικά φτιάχτηκε με τη πολύτιμη καθοδήγηση διαφόρων αξιωματικών που εργάζονται επί σειρά ετών σε διάφορες θέσεις και όπως είπα και πιο πάνω είναι σύμφωνο με όλες τις διατάξεις του Γ.Ε.Σ.
Κατά τη διάρκεια της θητείας μου και συγκεκριμένα 4 ώρες από την ώρα που γράφτηκα στα μητρώα του 536 Μ/Κ ΤΠ στην Αλεξανδρούπολη έγινα γραφέας. Οι θέσεις που άλλαξα ήταν, πρώτα στο γραφείο κίνησης, έπειτα στο 1ο γραφείο και τέλος στο 4 γραφείο. Τα βασικά μου καθήκοντα ήταν γραφέας 4ου και γραφέας υπηρεσίας. Έτσι είχα τη δυνατότητα και τη τύχη να γνωρίσω σχεδόν όλη τη γραφειοκρατική εργασία που γινόταν στον Ελληνικό Στρατό. Αν και όλα τα γραφεία είχαν ιδιαίτερο ενδιαφέρον, κυρίως για τους ανθρώπους που είχαν μέσα, αυτό που μου κέρδισε τη καρδιά ήταν το 1ο με τεράστια διαφορά.
Αποφάσισα λοιπόν να φτιάξω ένα πρόγραμμα που στο τέλος έφτασε να είναι ολόκληρη σουίτα και στη κυριολεξία διαμάντι. Έφτιαξα λοιπόν το «Army Plus+». Αν και το όνομα φαντάζει λίγο υπερβολικό πιστεύω ότι το αξίζει. Κάθε εργασία που εκτελεί είναι σύμφωνο με όλες τις προβλεπόμενες διατάξεις του Γ.Ε.Σ αλλά συγχρόνως ανταποκρίνεται στη πραγματικότητα του στρατού. Διαθέτει:
1) Καρτέλα Στελεχών
2) Καρτέλα Αδειών
3) Καρτέλα Ποινών
4) Α.Φ.Μ (Αντίγραφο Φύλλου Μητρώου)
5) Ατομικά και Ομαδικά Φύλλα Πορείας
6) Εκτός Έδρας
7) Αυτόματη Σύνταξη Η.Δ.Γ (Ημερήσιας Διαταγής)
8) Καρτέλα Ρυθμίσεων
Το Army Plus+ όμως δεν σταματάει εκεί!!! Συνδέεται με ένα αρχείο excel το οποίο βγάζει Δυναμολόγιο Ταξιαρχίας, Δυναμολόγιο Μεραρχίας, Λίστα Απόντων και τέλος έλεγχο καταχωρήσεων στο σύστημα για διπλοεγγραφές.
Το πρόγραμμα φυσικά φτιάχτηκε με τη πολύτιμη καθοδήγηση διαφόρων αξιωματικών που εργάζονται επί σειρά ετών σε διάφορες θέσεις και όπως είπα και πιο πάνω είναι σύμφωνο με όλες τις διατάξεις του Γ.Ε.Σ.
Subscribe to:
Posts (Atom)