2014年11月25日火曜日

やさしい arch linux インストール dhcpd aur pxe

archのインストールになれたら archbangを使うのが楽。
 http://hatahata50.blogspot.jp/2015/12/arch-bang.html に書いてます。

UEFI + btrfs は以下に書きました。
http://hatahata50.blogspot.jp/2016/12/uefi-btrfs-usb.html
この心は
http://qiita.com/sion_cojp/items/c8e015db39ddbf43012eによると
     最大ファイルサイズ    最大ボリュームサイズ 
ext4         16TiB      1EiB
btrfs         16EiB      16EiB
なので これから超巨大データベース(例えば映像)をつくるには 
btrfs でしょう 1 EiB = 2の60乗B = 1,152,921,504,606,846,976 B。

また uefiでないと 2.2TB以上のバーティションから 起動できないですしね。

archlinuxのパッケージ管理は apt-get ではなく pacmanで
インストール pacman -Sy   ◯◯
探す              pacman -Ss   ◯◯
除ける    pacman -Rsc ◯◯
全アップグレード pacman -Syu    <------ 自分は 週一回してます
で 簡単です


以下は 非UEFIの場合です。
CDに焼いてブートです。


黄色の背景の大文字のところだけで インストールできます。 (小文字は解説にすぎません)



ここで

systemctl  start  sshd 
passwd
ifconfig              アドレス確認
します。

そして 192.168.100.102なら

他のパソコンからssh -l root 192.168.100.102
で入ってインストールします。
つまりこのページの コピー&ペーストだから楽です。
でなかったら結構しんどい。



まず インストールするところを求めます。

root@archiso ~ # fdisk /dev/sda

にて

Device     Boot   Start      End  Sectors Size Id Type
/dev/sda1  *    4196352 41943039 37746688  18G 83 Linux
/dev/sda2          2048  4196351  4194304   2G 82 Linux swap / Solaris



なふうにしました。


mkfs.ext4 /dev/sda1 
mkswap /dev/sda2 
swapon  /dev/sda2

mount /dev/sda1 /mnt/


<---btrfsでしたい方は以下ですが
初学者は混乱するので この薄桃色背景は見ないで下さい

http://www.kossboss.com/linux---arch-installation-with-btrfs-root-and-efi-grub-bootより
fdisk /dev/sda

/dev/sda1       83                      Linux
/dev/sda2            82 Linux swap / Solaris

mkfs.btrfs -f -L arch /dev/
sda1
mkswap /dev/sda2
swapon /dev/sda2
# mount /dev/sda1 /mnt
# cd /mnt
# btrfs subvolume create /mnt/ROOT
# cd /
# umount /mnt
#mount -o defaults,compress=lzo,subvol=ROOT /dev/sda1 /mnt

ここまでが btfs でしたーーー>
 
本題へ戻ります。
とにかく背景黄色です・ 
# nano /etc/pacman.d/mirrorlist
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
をミラーリストの一番上に書き加えます・



# pacstrap /mnt base  base-devel btrfs-progs
 
これが終わってから
  • 以下のコマンドを実行して fstab を生成してください
    (UUID やラベルを使いたい場合、 -U  オプションを加えます):
 
# genfstab -p /mnt >> /mnt/etc/fstab
     
自分の場合  nano /mnt/etc/fstabは

 /dev/sda1        /             ext4          rw,relatime,data=ordered 0 1
/dev/sda2    none          swap         sw                                     0 0
  • 新しくインストールしたシステムに chroot:
# arch-chroot /mnt      
 
  • あなたのホストネームを nano /etc/hostname に書き込んでください。  
    echo 'archPC' >> /etc/hostname

   rm  /etc/localtime
# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

  • /etc/locale.gen 内の使用するロケールをアンコメントし、
  • # 日本語の UTF-8 を有効にする 
  • LANG="ja_JP.UTF-8" 
  • # デフォルトのソート順を保つ (例えば '.' で始まるファイルは # ディレクトリのリストで最初に並ぶ) 
  • LC_COLLATE="C" 
  • # 短い月日表示を YYYY-MM-DD に設定 ("date +%c" でテスト)               LC_TIME="en_DK.UTF-8"
  •  

  • # nano /etc/locale.gen  の一番上に次を書き加える
    en_US.UTF-8 UTF-8
    ja_JP.UTF-8 UTF-8

そして locale-gen を実行してロケールを生成。


  • この柿色部分はしなくていいようです。
  • ロケール nano /etc/locale.conf で設定します。 
LANG=ja_JP.UTF-8
LC_NUMERIC=ja_JP.UTF-8
LC_TIME=ja_JP.UTF-8
LC_MONETARY=ja_JP.UTF-8
LC_PAPER=ja_JP.UTF-8
LC_MEASUREMENT=ja_JP.UTF-8


再起動後もキーマップ設定を持続させるために、vconsole.conf を作る
この柿色部分はしなくていいようです。
# nano /etc/vconsole.conf
KEYMAP=jp106
FONT=Lat2-Terminus16


  • 自分はしなかったのは以下
  • 必要があれば /etc/mkinitcpio.conf を設定 (mkinitcpio) し、
    イニシャル RAM ディスクを作ります:  
    # mkinitcpio -p linux
  • passwd で root パスワードを設定します。 
  •  

以下コマンドを実行してユーザー登録しましょう。

# useradd -m -G wheel -s /bin/bash taro
# passwd taro



  • ifconfigのために                            pacman-db-upgrade のいるときもある
    pacman -S net-tools dnsutils openssh dialog wpa_supplicant
  •  
  • systemctl enable dhcpcd.service
  • systemctl enable sshd.service

     
  • 使わないのですが、もし必要なら nano /root/kotei-adress.bat を書きこんでおきましょう. (固定アドレス設定スクリプト)
  •  ip addr show
     ip link set enp9s0 up
     ip addr add 192.168.11.8/24 dev enp9s0
     ip route add default via 192.168.11.1 dev enp9s0
     ip addr show
    echo 'nameserver 192.168.100.254' > /etc/resolv.conf

 pacman -S grub

grub-install /dev/sda

 grub-mkconfig > kg

 cp kg /boot/grub/grub.cfg


chroot 環境から抜けるために

exit
次に /mnt の下にマウントしたパーティションをアンマウントします:
# umount  /mnt


これでやっと halt -p して終了します




2)arch を再起動します 
それから

ifconfig -a
で アドレスをみて


別のPCから またもやsshではいります
しかし、もはや rootでははいれないので さっき作ったユーザー archで入ります
ssh -l taro 192.168.100.103
su

そして

pacman -S btrfs-progs
pacman -S openntpd
systemctl enable openntpd
systemctl start openntpd
でまず 時間合わせをします。




3)  pacman -yS ...... でアプリをいれる。

アプリを探すには
pacman  -Ss

除けるには
pacman  -Rsc


updte
packman  -Syy
packman  -Syu


 

4) その他のアプリ
genisoimage     <- pacman -S cdrkit
growisofs       <- pacman -S dvd+rw-tools


7)updte
packman  -Syy

packman  -Syu





5) X
http://hanjuku-am2.blogspot.jp/2013/05/vaio-type-parch-linux-2.html
をみて

pacman -S xorg xorg-xinit xfce4


nano /home/taro/.xinitrc
startxfce4


pacman -S slim
  1. /etc/slim.conf 設定と
  2. systemctl enable slim




日本語キーボードは でできます

# nano  /etc/X11/xorg.conf.d/01-keyboard-layout.conf
Section "InputClass"
Identifier "keyboard-layout"
      #       Driver "evdev" <ーこれは archbangでみたかな?
MatchIsKeyboard "yes"
Option "XkbModel" "jp106"
Option "XkbLayout" "jp"
EndSection





日本語fontは

pacman -S otf-ipafont

ibus-anthy
pacman -S  ibus-anthy  

.bashrcを
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

そして firefoxを
cat www.bat
ibus-daemon &   <ー日本語入力をなくしたらここだけ動かせばいい
            .config/lxsession/LXDE/autostartをいじるといけという書き込みもアルが、却って面倒。
 
firefox &
で立ち上げます。

 
pae対応してない非力なPCでは fcitxはおすすめできません
pacman -S fcitx-im fcitx-configtool fcitx-mozc ghostscript

nano /home/taro/.xprofile
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx

なんかし始めますが、 この後は
http://hatahata50.blogspot.jp/2016/08/uefi-arch.html
の fcitx をみてください.
結構ややこしいのです。




ここで一旦 PCをhalt -p します。








11) 音です


http://opamp.hatenablog.jp/entry/20110829/1314619739 より

# pacman -S alsa-utils
$  alsamixer





12)puppy linux で HDDへのバックアップ
これがとても大事です。 
壊れたときarch 再インストールはしんどいですから。

 cat /mb2/Arch-backup-sda2-2-sdb2.bat

これは sda2にある arch linuxを  sdb2/Arch64-Backup-103119な形にバックアップ
してます・

y='/mnt/sda2'
z='/mnt/sdb2/Arch64-Backup-'`date +%m%d%H`

mkdir -p $z

cd $y

for x in bin boot cdrom dev etc grldr home initrd.img lib lib64 media opt proc root run sbin srv sys tmp usr var vmlinuz
do
 (cd $y  ; tar cvpf - $x )|( cd $z ; tar xpf - )
done


復活は
(cd /mnt/sdb2/Arch64-Backup-103119; tar cvpf - .)|(cd /mnt/sdb6 ; tar xpf -)
な感じです。




13) AUR を使う。ソースからインストール
openbsdのports systemの公開版かな

https://wiki.archlinux.org/index.php/Arch_User_Repository_%28%E6%97%A5%E6%9C%AC%E8%AA%9E%29
のとおりです。

例として flashpluginをとります。
まず 一般ユーザーで
$ mkdir  ~/builds
そしてhttps://aur.archlinux.org/ へいって flashplugin でさがしてこれをダウンロードします。
すると ~/Downloads/に flashplugin-10.1.tar.gzがおちてきます。
そこで 
$ cd ~/builds
$ mv ../Downloads/flashplugin-10.1.tar.gz   ./
$ tar -xvf flashplugin-10.1.tar.gz
$ cd flashplugin-10.1
$ makepkg -s
すると
==> ソースを取得...
  -> ダウンロード fp_10.1.102.64_and_9.0.289.0_archive.zip...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 74  126M   74 93.6M    0     0   177k      0  0:12:08  0:08:59  0:03:09  259k

になって
 flashplugin-10.1-10.1.102.64-3-i686.pkg.tar.xz がつくられてます。
そこで
su して
# pacman -U   flashplugin-10.1-10.1.102.64-3-i686.pkg.tar.xz  
で あっけなく あっさりと するするっと入ります。

たしかに
$ pacman -Qm で flashplugin-10.1

なり aurを使ったことがわかります。



14)cups は ppdがむつかしい
 pacman -S cups
# systemctl start cups-browsed.service

# systemctl enable cups-browsed.service




ppdのためにここで初めてYaourtを使います
ubuntuのppdの流用はできないからです。
http://note.kurodigi.com/archlinux-yaourt/にかかれてます。

AURを使って 
 package-query
yaourt
の順にいれて
yaourt -Ss brother
でプリンターをさがし、 
yaourt -Sy brother-dcpj925dw
で導入でした。
では もはやできなくなってます。


そのため

the step is the following .
--------------------------------
1) pacman -S ghostscript cups

systemctl enable org.cups.cupsd.service わすれてはいけません!


あと
DCP-J925Nという cupsでサポートされてないものは
https://github.com/nozaki87/brother-dcpj925n/blob/master/PKGBUILD
の成果を利用させていただいて

   namcap PKGBUILDでチェックしたあと  ls ~/builds/j925n/
PKGBUILD                                  brother-dcpj925n.install           

として
makepkgでいけます

印刷できるようになったので archがメインマシンになりました。




なお epson EP-706A でも印刷OK!
15)archのネットワークインストール 途中まで
https://wiki.archlinux.org/index.php/PXE_%28日本語%29#.E3.82.B5.E3.83.BC.E3.83.90.E3.83.BC.E3.81.AE.E3.82.BB.E3.83.83.E3.83.88.E3.8
をみました。

internet
|wimax
|
usb wifi子機
arch PXE サーバー
enp1s4
|
archをインストールするマシン


自分の場合は 
wifi.batでインターネットをつなげ
nat.bat を動かし PXEサーバーをNATマシン化しました。

普通の有線環境つまり
internet
|
router---archPXEserver
|
archをインストールするマシン
では必要ないでしょう


pacman -S dnsmasq
pacman -S darkhttpd

まず
cat /etc/dnsmasq.conf

interface=enp1s4
bind-interfaces
dhcp-range=192.168.11.50,192.168.11.59,12h
########################
port=0
 #interface=eth0
 #bind-interfaces
 #dhcp-range=192.168.0.50,192.168.0.150,12h
dhcp-boot=/arch/boot/syslinux/lpxelinux.0
dhcp-option-force=209,boot/syslinux/archiso.cfg
dhcp-option-force=210,/arch/
enable-tftp
tftp-root=/mnt/archiso

次に固定アドレスをふります

cat static.bat 

ip link set enp1s4 up
ip addr add 192.168.11.8/24 dev enp1s4
#ip route add default via 192.168.11.1 dev enp1s4
ip addr show | grep 192
#echo 'nameserver 192.168.100.254' > /etc/resolv.conf



最後にdnsmasqを動かします。

cat pxe.bat 
rm -rf /mnt/archiso
mkdir -p /mnt/archiso
mount -o loop /home/tuyosi/archlinux-2014.12.01-dual.iso /mnt/archiso/
#dnsmasq をいますぐ起動
systemctl start dnsmasq

darkhttpd /mnt/archiso


そしたら ネットワーク起動ができて
CDでブートしたと同じような画面がでます。
ここでhttpのを選ぶとインストールが進行します。

ここで
/etc/resolv.confに nameserver 8.8.8.8
を書き込みをし
更に
ip route add default via 192.168.11.8 dev eth0
をしたら ping www.google.comが通るようになります。
(最初に述べた普通の有線環境では必要ないと考えます)

此処から先はきっといつものインストールになります。
今までのHDDがsdaにはなくsdcになってるなどの困難にであるでしょうが、
pacstrap は動き始めるので 多分大丈夫でしょう。
困難にであったらその時はその時で対処!
でもarchはi586は正式サポート外なので
ネットワークインストールも無理です。
 



16) # cat /root/.Xdefaults (slacko)

!##################################################
URxvt*background: Black
URxvt*foreground: White
URxvt*geometry: 80x30
URxvt*scrollBar: false

"URxvt.font: 9x15

!-- Xft settings -- !
Xft.dpi:        96
Xft.antialias:  true
Xft.rgba:       rgb
Xft.hinting:    true
Xft.hintstyle:  hintfull

! -- Fonts -- !
URxvt.font:xft:Monospace:pixelsize=15
URxvt.boldfont:xft:Monospace-Bold:pixelsize=15





17) 待望のwifiです。
http://www.garunimo.com/program/linux/corumn-linux31.xhtml
をみて、

pacman -S iw wpa_supplicant wpa_actiond dialog


ls /sys/class/net/

enp9s0    lo  wlp0s29f7u2

 

wlp0s29f7u2 がwifiだ



だから


systemctl start dhcpcd@wlp0s29f7u2
systemctl enable dhcpcd@wlp0s29f7u2
systemctl enable netctl-auto@wlp0s29f7u2
 wifi-menu wlp2s0






なお 念のため 手動で wifiを立ち上げるには
./comment-out.bat wifi.bat

x=wlp0s29f7u1
echo 'ctrl_interface=DIR=/run/wpa_supplicant' > /etc/wpa_supplicant.conf
wpa_passphrase URoad-662EA0 04271 >> /etc/wpa_supplicant.conf
   ip link set $x  up
   wpa_supplicant -B -D nl80211 -c /etc/wpa_supplicant.conf -i $x
 dhcpcd -A $x
sleep 10
echo '----------------------------'
ping -c 3 www.google.com
ifconfig | grep 192




あと wifi を起動時自動接続させるには ウィンドウマネージャが slimとして

/etc/slim.conf を
default_path        /bin:/usr/bin:/usr/local/bin
default_xserver     /usr/bin/X
xserver_arguments -nolisten tcp vt07
halt_cmd            /sbin/shutdown -h now
reboot_cmd          /sbin/shutdown -r now
console_cmd         /usr/bin/xterm -C -fg white -bg black +sb -T "Console login" -e /bin/sh -c "/bin/cat /etc/issue; exec /bin/login"
xauth_path         /usr/bin/xauth
authfile           /var/run/slim.auth
 numlock             on
login_cmd           exec /bin/bash -login ~/.xinitrc %session
sessionstart_cmd    /home/X-user/wifi.bat
sessiondir            /usr/share/xsessions/
screenshot_cmd      import -window root /slim.png
welcome_msg         Welcome to %host
shutdown_msg       The system is halting...
reboot_msg         The system is rebooting...
default_user        X-user
focus_password      yes
auto_login         
yes
current_theme       default
lockfile            /var/lock/slim.lock
logfile             /var/log/slim.log





ユーザー権限のを自動実行するには

 https://wiki.archlinuxjp.org/index.php/Xfce#.E3.82.B9.E3.82.BF.E3.83.BC.E3.83.88.E3.82.A2.E3.83.83.E3.83.97.E3.82.A2.E3.83.97.E3.83.AA.E3.82.B1.E3.83.BC.E3.82.B7.E3.83.A7.E3.83.B3

をみて

スタートアップアプリケーション

Xfce の起動時にカスタムアプリケーションを実行するには、Applications Menu -> Settings -> Settings Manager から Session and Startup オプションを選択して Application Autostart タブをクリックしてください。











18)dhcpdサーバーをつくろう
pacman -S dnsmasq

./comment-out.bat /etc/dnsmasq.conf 
interface=enp9s0
bind-interfaces

dhcp-range=192.168.8.50,192.168.8.51,12h


以下のスクリプトは
まず固定アドレスをふり、
次に
dnsmasqをうごかし
最後に
natをしてます。

./comment-out.bat dhcpd-server+NAT.bat 
 ip addr show
 ip link set enp9s0 up
 ip addr add 192.168.8.1/24 dev enp9s0
 ip addr show

systemctl start dnsmasq

mac='wlp0s29f7u1'
echo '--------- wlan? ------------'
echo $mac
echo '----------------------------'
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t filter -F FORWARD
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o $mac -j MASQUERADE
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
iptables-save 

iptables -L


最後に変わったインストールを書きます
これは Arch20.qcow2 というqemuイメージを 現実のHDDにいれます。


詳しくは
 http://qemuandopenbsd.blogspot.jp/2015/11/bohdi-arch20qcow2.html

 
menuentry 'Windows 7 (loader) (on /dev/sdb2)'  {
    insmod part_msdos 
    insmod ntfs
    set root='hd1,msdos2'
    chainloader +1

}






旅行用の設定

1)wifi 接続 : どのUSB wifiでもいけますし、また安全のためすべてのポートを閉じます。


wifi-menu.bat
x=` ifconfig | grep wlp | cut -d ' ' -f 1 | sed "s/://g" -`
echo $x
echo $x
echo $x
wifi-menu $x
sleep 3
ifconfig $x

SYSCTL="/sbin/sysctl -w" 
IPT="/sbin/iptables"
IPTS="/sbin/iptables-save"
IPTR="/sbin/iptables-restore"
INET_IFACE=$x
echo $INET_IFACE
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/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 -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 ! --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 -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 $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 ..."
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 -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 ..."
echo "Load rules for mangle table ..."
rm /etc/resolv.conf
echo 'nameserver 8.8.8.8' > /etc/resolv.conf

ping -c 3 www.google.com