ltsp サーバ または puppy pxe サーバ
デビアンsquuzeです。
これで
ltspサーバー か
puppy pxeサーバー かを シェルスクリプトできりかえます。
そのシェルスクリプトは
ltspサーバーの場合は
cat thin.bat-ltsp
cd /etc/dhcp
cp dhcpd.conf-ltsp dhcpd.conf <ーここがメイン
/etc/init.d/isc-dhcp-server restart
/etc/init.d/nfs-kernel-server restart
/etc/init.d/tftpd-hpa restart
pxeサーバーの場合は
cd /etc/dhcp
cp dhcpd.conf-pxe-puppy dhcpd.conf <ーここがメイン
/etc/init.d/isc-dhcp-server restart
######################################
/etc/init.d/nfs-kernel-server stop
######################################
/etc/init.d/tftpd-hpa restart
状況は
internet
|
router
192.168.1.1
|
dhcp eth1
debian squeeze ( ltsp または puppy pxe サーバー )
192.168.12.201 eth0
|
HUB
|
client PC
上で書いてたファイルは
cat /etc/dhcp/dhcpd.conf-ltsp
authoritative;
subnet 192.168.12.0 netmask 255.255.255.0 {
range 192.168.12.210 192.168.12.219;
option domain-name "ubuntu-thin";
option domain-name-servers 192.168.1.1;
option broadcast-address 192.168.12.255;
option routers 192.168.12.201;
next-server 192.168.12.201;
option subnet-mask 255.255.255.0;
option root-path "/opt/ltsp/i386";
if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
filename "/ltsp/i386/pxelinux.0";
} else {
filename "/ltsp/i386/nbi.img";
}
}
cat /etc/dhcp/dhcpd.conf-pxe-puppy
authoritative;
subnet 192.168.12.0 netmask 255.255.255.0 {
range 192.168.12.210 192.168.12.219;
option domain-name-servers 192.168.1.1;
option broadcast-address 192.168.12.255;
option subnet-mask 255.255.255.0;
option routers 192.168.12.201;
filename "pxelinux.0";
next-server 192.168.12.201;
}
です。
なおファイルは
cat /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
なので
ls -l /srv/tftp/
合計 323416
-rw-r--r-- 1 root root 166050384 2014-09-30 08:01 initrd.gz-big
drwxrwxrwx 3 root root 4096 2014-09-05 16:31 ltsp
drwxr-xr-x 3 root root 4096 2014-09-30 08:15 p571
-rwxr-xr-x 1 root root 26816 2014-09-30 08:08 pxelinux.0
drwxr-xr-x 2 root root 4096 2014-09-30 08:01 pxelinux.cfg
-rw-r--r-- 1 root root 3145152 2014-09-30 07:58 vmlinuz
です。
initrd.gz-big
は パピーの initrd.gz +puppy_slacko_5.7.sfs
です。つくりかたは puppy forum 見てください。
cat /srv/tftp//pxelinux.cfg/default
default puppy
label puppy
kernel vmlinuz
append load initrd=initrd.gz-big
ltsp は 、ltsp-build-client でできたものです。
こうすると 2つのシェルスクリプトで
ltsp または puppy pxeのどちらかのサーバーを立ち上げられます。
比較するとおもしろいです。
特にサーバーでトップを見てると興味深い。
つまり、ひ弱なサーバーでは
ltspでは サーバーのCPUは90%こえをしますが
puppy pxeでは せいぜい15%とまりです。
まあ、 ltspはすべてをサーバーから借りてうごきますが
puppy pxeは 起動のときにサーバーから援助してもらいますが、後は自立してます。
したがってサーバーを切っても動きつづけます。
そういった意味でthin clientとして有望です。
top - 20:32:24 up 3:05, 3 users, load average: 0.58, 0.19, 0.06
Tasks: 112 total, 2 running, 110 sleeping, 0 stopped, 0 zombie
Cpu(s): 13.7%us, 3.3%sy, 21.9%ni, 61.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 368400k total, 287720k used, 80680k free, 7304k buffers
Swap: 450552k total, 100k used, 450452k free, 203612k cached
したがって、 とてもltspでは youtubeはみれません。
なお、slackoが立ち上がった時点で なんにもせず langpack-jaをロードしたら
日本語の読み書きが可能になります。
現にこの原稿はこれで書いてます。
さらに puppyでは fdiskが使えますのでフォーマットができます。
あと grub4dosconfig をつかうと ネットーブートしたpuppyで
client に実在の puppyが入れられます。
PXEブート puppyってすごいですね!
あとサーバーのnatは morizot.netで発生させた
cat nat.bat
#!/bin/sh
#/usr/sbin/dhcpcd -b -d -f /etc/frisbee/dhcpcd.conf
SYSCTL="/sbin/sysctl -w"
IPT="/sbin/iptables"
IPTS="/sbin/iptables-save"
IPTR="/sbin/iptables-restore"
INET_IFACE="eth1"
LOCAL_IFACE="eth0"
LOCAL_IP="192.168.12.201"
LOCAL_NET="192.168.12.0/24"
LOCAL_BCAST="192.168.12.255"
LO_IFACE="lo"
LO_IP="127.0.0.1"
if [ "$1" = "save" ]
then
echo -n "Saving firewall to /etc/sysconfig/iptables ... "
$IPTS > /etc/sysconfig/iptables
echo "done"
exit 0
elif [ "$1" = "restore" ]
then
echo -n "Restoring firewall from /etc/sysconfig/iptables ... "
$IPTR < /etc/sysconfig/iptables
echo "done"
exit 0
fi
echo "Loading kernel modules ..."
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/ip_forward
else
$SYSCTL net.ipv4.ip_forward="1"
fi
if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
else
$SYSCTL net.ipv4.tcp_syncookies="1"
fi
if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
else
$SYSCTL net.ipv4.conf.all.rp_filter="1"
fi
if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
else
$SYSCTL net.ipv4.icmp_echo_ignore_broadcasts="1"
fi
if [ "$SYSCTL" = "" ]
then
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
else
$SYSCTL net.ipv4.conf.all.accept_source_route="0"
fi
if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
else
$SYSCTL net.ipv4.conf.all.secure_redirects="1"
fi
if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
else
$SYSCTL net.ipv4.conf.all.log_martians="1"
fi
echo "Flushing Tables ..."
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
$IPT -t mangle -P PREROUTING ACCEPT
$IPT -t mangle -P OUTPUT ACCEPT
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X
if [ "$1" = "stop" ]
then
echo "Firewall completely flushed! Now running with no firewall."
exit 0
fi
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
echo "Create and populate custom rule chains ..."
$IPT -N bad_packets
$IPT -N bad_tcp_packets
$IPT -N icmp_packets
$IPT -N udp_inbound
$IPT -N udp_outbound
$IPT -N tcp_inbound
$IPT -N tcp_outbound
$IPT -A bad_packets -p ALL -i $INET_IFACE -s $LOCAL_NET -j LOG \
--log-prefix "Illegal source: "
$IPT -A bad_packets -p ALL -i $INET_IFACE -s $LOCAL_NET -j DROP
$IPT -A bad_packets -p ALL -m state --state INVALID -j LOG \
--log-prefix "Invalid packet: "
$IPT -A bad_packets -p ALL -m state --state INVALID -j DROP
$IPT -A bad_packets -p tcp -j bad_tcp_packets
$IPT -A bad_packets -p ALL -j RETURN
$IPT -A bad_tcp_packets -p tcp -i $LOCAL_IFACE -j RETURN
$IPT -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG \
--log-prefix "New not syn: "
$IPT -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL NONE -j LOG \
--log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL NONE -j DROP
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL ALL -j LOG \
--log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL ALL -j DROP
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j LOG \
--log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j LOG \
--log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
$IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST -j LOG \
--log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOG \
--log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPT -A bad_tcp_packets -p tcp -j RETURN
$IPT -A icmp_packets --fragment -p ICMP -j LOG \
--log-prefix "ICMP Fragment: "
$IPT -A icmp_packets --fragment -p ICMP -j DROP
$IPT -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j DROP
$IPT -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
$IPT -A icmp_packets -p ICMP -j RETURN
$IPT -A udp_inbound -p UDP -s 0/0 --destination-port 137 -j DROP
$IPT -A udp_inbound -p UDP -s 0/0 --destination-port 138 -j DROP
$IPT -A udp_inbound -p UDP -s 0/0 --source-port 67 --destination-port 68 \
-j ACCEPT
$IPT -A udp_inbound -p UDP -j RETURN
$IPT -A udp_outbound -p UDP -s 0/0 -j ACCEPT
$IPT -A tcp_inbound -p TCP -s 0/0 --destination-port 22 -j ACCEPT
$IPT -A tcp_inbound -p TCP -j RETURN
$IPT -A tcp_outbound -p TCP -s 0/0 -j ACCEPT
echo "Process INPUT chain ..."
$IPT -A INPUT -p ALL -i $LO_IFACE -j ACCEPT
$IPT -A INPUT -p ALL -j bad_packets
$IPT -A INPUT -p ALL -d 224.0.0.1 -j DROP
$IPT -A INPUT -p ALL -i $LOCAL_IFACE -s $LOCAL_NET -j ACCEPT
$IPT -A INPUT -p ALL -i $LOCAL_IFACE -d $LOCAL_BCAST -j ACCEPT
$IPT -A INPUT -p ALL -i $INET_IFACE -m state --state ESTABLISHED,RELATED \
-j ACCEPT
$IPT -A INPUT -p TCP -i $INET_IFACE -j tcp_inbound
$IPT -A INPUT -p UDP -i $INET_IFACE -j udp_inbound
$IPT -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
$IPT -A INPUT -m pkttype --pkt-type broadcast -j DROP
$IPT -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-prefix "INPUT packet died: "
echo "Process FORWARD chain ..."
$IPT -A FORWARD -p ALL -j bad_packets
$IPT -A FORWARD -p tcp -i $LOCAL_IFACE -j tcp_outbound
$IPT -A FORWARD -p udp -i $LOCAL_IFACE -j udp_outbound
$IPT -A FORWARD -p ALL -i $LOCAL_IFACE -j ACCEPT
$IPT -A FORWARD -i $INET_IFACE -m state --state ESTABLISHED,RELATED \
-j ACCEPT
$IPT -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-prefix "FORWARD packet died: "
echo "Process OUTPUT chain ..."
$IPT -A OUTPUT -m state -p icmp --state INVALID -j DROP
$IPT -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LO_IFACE -j ACCEPT
$IPT -A OUTPUT -p ALL -s $LOCAL_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LOCAL_IFACE -j ACCEPT
$IPT -A OUTPUT -p ALL -o $INET_IFACE -j ACCEPT
$IPT -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-prefix "OUTPUT packet died: "
echo "Load rules for nat table ..."
$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
echo "Load rules for mangle table ..."
echo '--------------------------'
echo $INET_IFACE
echo '--------------------------'
これで
ltspサーバー か
puppy pxeサーバー かを シェルスクリプトできりかえます。
そのシェルスクリプトは
ltspサーバーの場合は
cat thin.bat-ltsp
cd /etc/dhcp
cp dhcpd.conf-ltsp dhcpd.conf <ーここがメイン
/etc/init.d/isc-dhcp-server restart
/etc/init.d/nfs-kernel-server restart
/etc/init.d/tftpd-hpa restart
pxeサーバーの場合は
cd /etc/dhcp
cp dhcpd.conf-pxe-puppy dhcpd.conf <ーここがメイン
/etc/init.d/isc-dhcp-server restart
######################################
/etc/init.d/nfs-kernel-server stop
######################################
/etc/init.d/tftpd-hpa restart
状況は
internet
|
router
192.168.1.1
|
dhcp eth1
debian squeeze ( ltsp または puppy pxe サーバー )
192.168.12.201 eth0
|
HUB
|
client PC
上で書いてたファイルは
cat /etc/dhcp/dhcpd.conf-ltsp
authoritative;
subnet 192.168.12.0 netmask 255.255.255.0 {
range 192.168.12.210 192.168.12.219;
option domain-name "ubuntu-thin";
option domain-name-servers 192.168.1.1;
option broadcast-address 192.168.12.255;
option routers 192.168.12.201;
next-server 192.168.12.201;
option subnet-mask 255.255.255.0;
option root-path "/opt/ltsp/i386";
if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
filename "/ltsp/i386/pxelinux.0";
} else {
filename "/ltsp/i386/nbi.img";
}
}
cat /etc/dhcp/dhcpd.conf-pxe-puppy
authoritative;
subnet 192.168.12.0 netmask 255.255.255.0 {
range 192.168.12.210 192.168.12.219;
option domain-name-servers 192.168.1.1;
option broadcast-address 192.168.12.255;
option subnet-mask 255.255.255.0;
option routers 192.168.12.201;
filename "pxelinux.0";
next-server 192.168.12.201;
}
です。
なおファイルは
cat /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
なので
ls -l /srv/tftp/
合計 323416
-rw-r--r-- 1 root root 166050384 2014-09-30 08:01 initrd.gz-big
drwxrwxrwx 3 root root 4096 2014-09-05 16:31 ltsp
drwxr-xr-x 3 root root 4096 2014-09-30 08:15 p571
-rwxr-xr-x 1 root root 26816 2014-09-30 08:08 pxelinux.0
drwxr-xr-x 2 root root 4096 2014-09-30 08:01 pxelinux.cfg
-rw-r--r-- 1 root root 3145152 2014-09-30 07:58 vmlinuz
です。
initrd.gz-big
は パピーの initrd.gz +puppy_slacko_5.7.sfs
です。つくりかたは puppy forum 見てください。
cat /srv/tftp//pxelinux.cfg/default
default puppy
label puppy
kernel vmlinuz
append load initrd=initrd.gz-big
ltsp は 、ltsp-build-client でできたものです。
こうすると 2つのシェルスクリプトで
ltsp または puppy pxeのどちらかのサーバーを立ち上げられます。
比較するとおもしろいです。
特にサーバーでトップを見てると興味深い。
つまり、ひ弱なサーバーでは
ltspでは サーバーのCPUは90%こえをしますが
puppy pxeでは せいぜい15%とまりです。
まあ、 ltspはすべてをサーバーから借りてうごきますが
puppy pxeは 起動のときにサーバーから援助してもらいますが、後は自立してます。
したがってサーバーを切っても動きつづけます。
そういった意味でthin clientとして有望です。
top - 20:32:24 up 3:05, 3 users, load average: 0.58, 0.19, 0.06
Tasks: 112 total, 2 running, 110 sleeping, 0 stopped, 0 zombie
Cpu(s): 13.7%us, 3.3%sy, 21.9%ni, 61.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 368400k total, 287720k used, 80680k free, 7304k buffers
Swap: 450552k total, 100k used, 450452k free, 203612k cached
したがって、 とてもltspでは youtubeはみれません。
なお、slackoが立ち上がった時点で なんにもせず langpack-jaをロードしたら
日本語の読み書きが可能になります。
現にこの原稿はこれで書いてます。
さらに puppyでは fdiskが使えますのでフォーマットができます。
あと grub4dosconfig をつかうと ネットーブートしたpuppyで
client に実在の puppyが入れられます。
PXEブート puppyってすごいですね!
あとサーバーのnatは morizot.netで発生させた
cat nat.bat
#!/bin/sh
#/usr/sbin/dhcpcd -b -d -f /etc/frisbee/dhcpcd.conf
SYSCTL="/sbin/sysctl -w"
IPT="/sbin/iptables"
IPTS="/sbin/iptables-save"
IPTR="/sbin/iptables-restore"
INET_IFACE="eth1"
LOCAL_IFACE="eth0"
LOCAL_IP="192.168.12.201"
LOCAL_NET="192.168.12.0/24"
LOCAL_BCAST="192.168.12.255"
LO_IFACE="lo"
LO_IP="127.0.0.1"
if [ "$1" = "save" ]
then
echo -n "Saving firewall to /etc/sysconfig/iptables ... "
$IPTS > /etc/sysconfig/iptables
echo "done"
exit 0
elif [ "$1" = "restore" ]
then
echo -n "Restoring firewall from /etc/sysconfig/iptables ... "
$IPTR < /etc/sysconfig/iptables
echo "done"
exit 0
fi
echo "Loading kernel modules ..."
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/ip_forward
else
$SYSCTL net.ipv4.ip_forward="1"
fi
if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
else
$SYSCTL net.ipv4.tcp_syncookies="1"
fi
if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
else
$SYSCTL net.ipv4.conf.all.rp_filter="1"
fi
if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
else
$SYSCTL net.ipv4.icmp_echo_ignore_broadcasts="1"
fi
if [ "$SYSCTL" = "" ]
then
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
else
$SYSCTL net.ipv4.conf.all.accept_source_route="0"
fi
if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
else
$SYSCTL net.ipv4.conf.all.secure_redirects="1"
fi
if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
else
$SYSCTL net.ipv4.conf.all.log_martians="1"
fi
echo "Flushing Tables ..."
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
$IPT -t mangle -P PREROUTING ACCEPT
$IPT -t mangle -P OUTPUT ACCEPT
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X
if [ "$1" = "stop" ]
then
echo "Firewall completely flushed! Now running with no firewall."
exit 0
fi
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
echo "Create and populate custom rule chains ..."
$IPT -N bad_packets
$IPT -N bad_tcp_packets
$IPT -N icmp_packets
$IPT -N udp_inbound
$IPT -N udp_outbound
$IPT -N tcp_inbound
$IPT -N tcp_outbound
$IPT -A bad_packets -p ALL -i $INET_IFACE -s $LOCAL_NET -j LOG \
--log-prefix "Illegal source: "
$IPT -A bad_packets -p ALL -i $INET_IFACE -s $LOCAL_NET -j DROP
$IPT -A bad_packets -p ALL -m state --state INVALID -j LOG \
--log-prefix "Invalid packet: "
$IPT -A bad_packets -p ALL -m state --state INVALID -j DROP
$IPT -A bad_packets -p tcp -j bad_tcp_packets
$IPT -A bad_packets -p ALL -j RETURN
$IPT -A bad_tcp_packets -p tcp -i $LOCAL_IFACE -j RETURN
$IPT -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG \
--log-prefix "New not syn: "
$IPT -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL NONE -j LOG \
--log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL NONE -j DROP
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL ALL -j LOG \
--log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL ALL -j DROP
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j LOG \
--log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j LOG \
--log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
$IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST -j LOG \
--log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOG \
--log-prefix "Stealth scan: "
$IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPT -A bad_tcp_packets -p tcp -j RETURN
$IPT -A icmp_packets --fragment -p ICMP -j LOG \
--log-prefix "ICMP Fragment: "
$IPT -A icmp_packets --fragment -p ICMP -j DROP
$IPT -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j DROP
$IPT -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
$IPT -A icmp_packets -p ICMP -j RETURN
$IPT -A udp_inbound -p UDP -s 0/0 --destination-port 137 -j DROP
$IPT -A udp_inbound -p UDP -s 0/0 --destination-port 138 -j DROP
$IPT -A udp_inbound -p UDP -s 0/0 --source-port 67 --destination-port 68 \
-j ACCEPT
$IPT -A udp_inbound -p UDP -j RETURN
$IPT -A udp_outbound -p UDP -s 0/0 -j ACCEPT
$IPT -A tcp_inbound -p TCP -s 0/0 --destination-port 22 -j ACCEPT
$IPT -A tcp_inbound -p TCP -j RETURN
$IPT -A tcp_outbound -p TCP -s 0/0 -j ACCEPT
echo "Process INPUT chain ..."
$IPT -A INPUT -p ALL -i $LO_IFACE -j ACCEPT
$IPT -A INPUT -p ALL -j bad_packets
$IPT -A INPUT -p ALL -d 224.0.0.1 -j DROP
$IPT -A INPUT -p ALL -i $LOCAL_IFACE -s $LOCAL_NET -j ACCEPT
$IPT -A INPUT -p ALL -i $LOCAL_IFACE -d $LOCAL_BCAST -j ACCEPT
$IPT -A INPUT -p ALL -i $INET_IFACE -m state --state ESTABLISHED,RELATED \
-j ACCEPT
$IPT -A INPUT -p TCP -i $INET_IFACE -j tcp_inbound
$IPT -A INPUT -p UDP -i $INET_IFACE -j udp_inbound
$IPT -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
$IPT -A INPUT -m pkttype --pkt-type broadcast -j DROP
$IPT -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-prefix "INPUT packet died: "
echo "Process FORWARD chain ..."
$IPT -A FORWARD -p ALL -j bad_packets
$IPT -A FORWARD -p tcp -i $LOCAL_IFACE -j tcp_outbound
$IPT -A FORWARD -p udp -i $LOCAL_IFACE -j udp_outbound
$IPT -A FORWARD -p ALL -i $LOCAL_IFACE -j ACCEPT
$IPT -A FORWARD -i $INET_IFACE -m state --state ESTABLISHED,RELATED \
-j ACCEPT
$IPT -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-prefix "FORWARD packet died: "
echo "Process OUTPUT chain ..."
$IPT -A OUTPUT -m state -p icmp --state INVALID -j DROP
$IPT -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LO_IFACE -j ACCEPT
$IPT -A OUTPUT -p ALL -s $LOCAL_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LOCAL_IFACE -j ACCEPT
$IPT -A OUTPUT -p ALL -o $INET_IFACE -j ACCEPT
$IPT -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-prefix "OUTPUT packet died: "
echo "Load rules for nat table ..."
$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
echo "Load rules for mangle table ..."
echo '--------------------------'
echo $INET_IFACE
echo '--------------------------'
0 件のコメント:
コメントを投稿
登録 コメントの投稿 [Atom]
<< ホーム