瀏覽代碼

batman tweaks

Bob Mottram 10 年之前
父節點
當前提交
5c8f97277a
共有 1 個檔案被更改,包括 64 行新增41 行删除
  1. 64
    41
      src/freedombone

+ 64
- 41
src/freedombone 查看文件

1734
   echo '    sed -i "s|host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf' >> $babel_script
1734
   echo '    sed -i "s|host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf' >> $babel_script
1735
   echo '    sed -i "s|use-ipv4=.*|use-ipv4=yes|g" /etc/avahi/avahi-daemon.conf' >> $babel_script
1735
   echo '    sed -i "s|use-ipv4=.*|use-ipv4=yes|g" /etc/avahi/avahi-daemon.conf' >> $babel_script
1736
   echo '    sed -i "s|use-ipv6=.*|use-ipv6=no|g" /etc/avahi/avahi-daemon.conf' >> $babel_script
1736
   echo '    sed -i "s|use-ipv6=.*|use-ipv6=no|g" /etc/avahi/avahi-daemon.conf' >> $babel_script
1737
-  echo '    sed -i "s|hosts:.*|hosts:          files mdns4_minimal [NOTFOUND=return] dns $(hostname)|g" /etc/nsswitch.conf' >> $babel_script
1738
-  echo '    if [ -f /bin/systemctl ]; then' >> $babel_script
1739
-  echo '        systemctl restart avahi-daemon' >> $babel_script
1740
-  echo '    else' >> $babel_script
1741
-  echo '        service avahi-daemon restart' >> $babel_script
1742
-  echo '    fi' >> $babel_script
1737
+  echo '    sed -i "s|hosts:.*|hosts:          files mdns4_minimal dns mdns4 mdns|g" /etc/nsswitch.conf' >> $babel_script
1738
+  echo '    systemctl restart avahi-daemon' >> $babel_script
1743
   echo 'fi' >> $babel_script
1739
   echo 'fi' >> $babel_script
1744
   echo '' >> $babel_script
1740
   echo '' >> $babel_script
1745
   echo "IFACE=$WIFI_INTERFACE" >> $babel_script
1741
   echo "IFACE=$WIFI_INTERFACE" >> $babel_script
1767
   echo '    fi' >> $babel_script
1763
   echo '    fi' >> $babel_script
1768
   echo '    ifconfig $IFACE down' >> $babel_script
1764
   echo '    ifconfig $IFACE down' >> $babel_script
1769
   echo '    pkill babeld' >> $babel_script
1765
   echo '    pkill babeld' >> $babel_script
1770
-  echo '    if [ -f /bin/systemctl ]; then' >> $babel_script
1771
-  echo '        systemctl restart network-manager' >> $babel_script
1772
-  echo '    else' >> $babel_script
1773
-  echo '        service network-manager restart' >> $babel_script
1774
-  echo '    fi' >> $babel_script
1766
+  echo '    systemctl restart network-manager' >> $babel_script
1775
   echo '    exit 1' >> $babel_script
1767
   echo '    exit 1' >> $babel_script
1776
   echo 'fi' >> $babel_script
1768
   echo 'fi' >> $babel_script
1777
   echo '' >> $babel_script
1769
   echo '' >> $babel_script
1778
-  echo 'if [ -f /bin/systemctl ]; then' >> $babel_script
1779
-  echo '    systemctl stop network-manager' >> $babel_script
1780
-  echo 'else' >> $babel_script
1781
-  echo '    service network-manager stop' >> $babel_script
1782
-  echo 'fi' >> $babel_script
1770
+  echo 'systemctl stop network-manager' >> $babel_script
1783
   echo 'ifconfig $IFACE down' >> $babel_script
1771
   echo 'ifconfig $IFACE down' >> $babel_script
1784
   echo -n 'iwconfig $IFACE mode ad-hoc channel ' >> $babel_script
1772
   echo -n 'iwconfig $IFACE mode ad-hoc channel ' >> $babel_script
1785
   echo "$WIFI_CHANNEL essid \"$ESSID\"" >> $babel_script
1773
   echo "$WIFI_CHANNEL essid \"$ESSID\"" >> $babel_script
1834
       echo 'batman_adv' >> /etc/modules
1822
       echo 'batman_adv' >> /etc/modules
1835
   fi
1823
   fi
1836
 
1824
 
1837
-  enable_ipv6
1838
-
1839
   batman_script=/var/lib/batman
1825
   batman_script=/var/lib/batman
1840
 
1826
 
1841
-  echo '#!/bin/sh' > $batman_script
1827
+  echo '#!/bin/bash' > $batman_script
1828
+  echo '' >> $batman_script
1829
+  echo 'if [[ $1 == "start" ]]; then' >> $batman_script
1830
+  echo '    # install avahi' >> $batman_script
1831
+  echo '    apt-get -y install avahi-utils avahi-autoipd avahi-daemon avahi-dnsconfd' >> $batman_script
1832
+  echo '    sed -i "s|#host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf' >> $batman_script
1833
+  echo '    sed -i "s|host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf' >> $batman_script
1834
+  echo '    sed -i "s|use-ipv4=.*|use-ipv4=yes|g" /etc/avahi/avahi-daemon.conf' >> $batman_script
1835
+  echo '    sed -i "s|use-ipv6=.*|use-ipv6=no|g" /etc/avahi/avahi-daemon.conf' >> $batman_script
1836
+  echo '    sed -i "s|hosts:.*|hosts:          files mdns4_minimal dns mdns4 mdns|g" /etc/nsswitch.conf' >> $batman_script
1837
+  echo '    if ! grep -q "avahi-daemon" /etc/crontab; then' >> $batman_script
1838
+  echo "        echo '* *\t* * *\troot\tsystemctl restart avahi-daemon > /dev/null' >> /etc/crontab" >> $batman_script
1839
+  echo '    fi' >> $batman_script
1840
+  echo 'fi' >> $batman_script
1842
   echo '' >> $batman_script
1841
   echo '' >> $batman_script
1843
   echo '# Mesh definition' >> $batman_script
1842
   echo '# Mesh definition' >> $batman_script
1844
   echo "ESSID=$ESSID" >> $batman_script
1843
   echo "ESSID=$ESSID" >> $batman_script
1855
   echo '        IFACE=wlan1' >> $batman_script
1854
   echo '        IFACE=wlan1' >> $batman_script
1856
   echo '    fi' >> $batman_script
1855
   echo '    fi' >> $batman_script
1857
   echo 'fi' >> $batman_script
1856
   echo 'fi' >> $batman_script
1857
+  echo 'if [[ $IFACE == "wlan0" ]]; then' >> $batman_script
1858
+  echo '    if grep -q "wlan2" /proc/net/dev; then' >> $batman_script
1859
+  echo '        IFACE=wlan2' >> $batman_script
1860
+  echo '    fi' >> $batman_script
1861
+  echo 'fi' >> $batman_script
1862
+  echo 'if [[ $IFACE == "wlan0" ]]; then' >> $batman_script
1863
+  echo '    if grep -q "wlan3" /proc/net/dev; then' >> $batman_script
1864
+  echo '        IFACE=wlan3' >> $batman_script
1865
+  echo '    fi' >> $batman_script
1866
+  echo 'fi' >> $batman_script
1858
   echo '' >> $batman_script
1867
   echo '' >> $batman_script
1859
   echo 'if [ -e /etc/default/batctl ]; then' >> $batman_script
1868
   echo 'if [ -e /etc/default/batctl ]; then' >> $batman_script
1860
   echo '    . /etc/default/batctl' >> $batman_script
1869
   echo '    . /etc/default/batctl' >> $batman_script
1861
   echo 'fi' >> $batman_script
1870
   echo 'fi' >> $batman_script
1862
   echo '' >> $batman_script
1871
   echo '' >> $batman_script
1863
   echo 'start() {' >> $batman_script
1872
   echo 'start() {' >> $batman_script
1864
-  echo '    if [ -z "$IFACE" ]; then' >> $batman_script
1873
+  echo '    if [ -z "$IFACE" ] ; then' >> $batman_script
1865
   echo '        echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> $batman_script
1874
   echo '        echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> $batman_script
1866
   echo '        return' >> $batman_script
1875
   echo '        return' >> $batman_script
1867
   echo '    fi' >> $batman_script
1876
   echo '    fi' >> $batman_script
1868
-  echo '    sed -i "s|use-ipv4=.*|use-ipv4=yes|g" /etc/avahi/avahi-daemon.conf' >> $batman_script
1869
-  echo '    sed -i "s|use-ipv6=.*|use-ipv6=no|g" /etc/avahi/avahi-daemon.conf' >> $batman_script
1870
-  echo '    sed -i "s|hosts:.*|hosts:          files mdns4_minimal dns mdns4 mdns|g" /etc/nsswitch.conf' >> $batman_script
1871
   echo '    echo "info: enabling batman-adv mesh network $ESSID on $IFACE"' >> $batman_script
1877
   echo '    echo "info: enabling batman-adv mesh network $ESSID on $IFACE"' >> $batman_script
1878
+
1872
   echo '    systemctl stop network-manager' >> $batman_script
1879
   echo '    systemctl stop network-manager' >> $batman_script
1873
   echo '    sleep 5' >> $batman_script
1880
   echo '    sleep 5' >> $batman_script
1874
   echo '' >> $batman_script
1881
   echo '' >> $batman_script
1882
+  echo "    # remove an avahi service which isn't used" >> $batman_script
1883
+  echo '    if [ -f /etc/avahi/services/udisks.service ]; then' >> $batman_script
1884
+  echo '        sudo rm /etc/avahi/services/udisks.service' >> $batman_script
1885
+  echo '    fi' >> $batman_script
1886
+  echo '' >> $batman_script
1875
   echo '    # Might have to re-enable wifi' >> $batman_script
1887
   echo '    # Might have to re-enable wifi' >> $batman_script
1876
   echo '    rfkill unblock $(rfkill list|awk -F: "/phy/ {print $1}") || true' >> $batman_script
1888
   echo '    rfkill unblock $(rfkill list|awk -F: "/phy/ {print $1}") || true' >> $batman_script
1877
   echo '' >> $batman_script
1889
   echo '' >> $batman_script
1899
   echo '        ifconfig bat0 hw ether ${ether}' >> $batman_script
1911
   echo '        ifconfig bat0 hw ether ${ether}' >> $batman_script
1900
   echo '    fi' >> $batman_script
1912
   echo '    fi' >> $batman_script
1901
   echo '' >> $batman_script
1913
   echo '' >> $batman_script
1902
-  echo '    if [ "$EIFACE" ]; then' >> $batman_script
1914
+  echo '    if [ "$EIFACE" ] ; then' >> $batman_script
1903
   echo '        brctl addbr $BRIDGE' >> $batman_script
1915
   echo '        brctl addbr $BRIDGE' >> $batman_script
1904
   echo '        brctl addif $BRIDGE bat0' >> $batman_script
1916
   echo '        brctl addif $BRIDGE bat0' >> $batman_script
1905
   echo '        brctl addif $BRIDGE $EIFACE' >> $batman_script
1917
   echo '        brctl addif $BRIDGE $EIFACE' >> $batman_script
1909
   echo '        ifconfig $BRIDGE up' >> $batman_script
1921
   echo '        ifconfig $BRIDGE up' >> $batman_script
1910
   echo '    fi' >> $batman_script
1922
   echo '    fi' >> $batman_script
1911
   echo '' >> $batman_script
1923
   echo '' >> $batman_script
1912
-  echo '    if [ -f /bin/systemctl ]; then' >> $batman_script
1913
-  echo '        systemctl restart avahi-daemon' >> $batman_script
1914
-  echo '    else' >> $batman_script
1915
-  echo '        service avahi-daemon restart' >> $batman_script
1916
-  echo '    fi' >> $batman_script
1924
+  echo '    iptables -A INPUT -p tcp -m state -m tcp --dport 548 --state NEW -j ACCEPT' >> $batman_script
1925
+  echo '    iptables -A INPUT -p udp -m state -m udp --dport 548 --state NEW -j ACCEPT' >> $batman_script
1926
+  echo '    iptables -A INPUT -p tcp -m state -m tcp --dport 5353 --state NEW -j ACCEPT' >> $batman_script
1927
+  echo '    iptables -A INPUT -p udp -m state -m udp --dport 5353 --state NEW -j ACCEPT' >> $batman_script
1928
+  echo '    iptables -A INPUT -p tcp -m state -m tcp --dport 5354 --state NEW -j ACCEPT' >> $batman_script
1929
+  echo '    iptables -A INPUT -p udp -m state -m udp --dport 5354 --state NEW -j ACCEPT' >> $batman_script
1930
+  echo '' >> $batman_script
1931
+  echo '    systemctl restart avahi-daemon' >> $batman_script
1917
   echo '}' >> $batman_script
1932
   echo '}' >> $batman_script
1918
   echo '' >> $batman_script
1933
   echo '' >> $batman_script
1919
   echo 'stop() {' >> $batman_script
1934
   echo 'stop() {' >> $batman_script
1920
-  echo '    if [ -z "$IFACE" ] ; then' >> $batman_script
1935
+  echo '    if [ -z "$IFACE" ]; then' >> $batman_script
1921
   echo '        echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> $batman_script
1936
   echo '        echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> $batman_script
1922
   echo '        return' >> $batman_script
1937
   echo '        return' >> $batman_script
1923
   echo '    fi' >> $batman_script
1938
   echo '    fi' >> $batman_script
1924
-  echo '    if [ "$EIFACE" ] ; then' >> $batman_script
1939
+  echo '    if [ "$EIFACE" ]; then' >> $batman_script
1925
   echo '        brctl delif $BRIDGE bat0' >> $batman_script
1940
   echo '        brctl delif $BRIDGE bat0' >> $batman_script
1926
   echo '        brctl delif $BRIDGE $EIFACE' >> $batman_script
1941
   echo '        brctl delif $BRIDGE $EIFACE' >> $batman_script
1927
   echo '        ifconfig $BRIDGE down || true' >> $batman_script
1942
   echo '        ifconfig $BRIDGE down || true' >> $batman_script
1939
   echo '    ifconfig $IFACE down' >> $batman_script
1954
   echo '    ifconfig $IFACE down' >> $batman_script
1940
   echo '    iwconfig $IFACE mode managed' >> $batman_script
1955
   echo '    iwconfig $IFACE mode managed' >> $batman_script
1941
   echo '' >> $batman_script
1956
   echo '' >> $batman_script
1957
+  echo '    iptables -D INPUT -p tcp -m state -m tcp --dport 548 --state NEW -j ACCEPT' >> $batman_script
1958
+  echo '    iptables -D INPUT -p udp -m state -m udp --dport 548 --state NEW -j ACCEPT' >> $batman_script
1959
+  echo '    iptables -D INPUT -p tcp -m state -m tcp --dport 5353 --state NEW -j ACCEPT' >> $batman_script
1960
+  echo '    iptables -D INPUT -p udp -m state -m udp --dport 5353 --state NEW -j ACCEPT' >> $batman_script
1961
+  echo '    iptables -D INPUT -p tcp -m state -m tcp --dport 5354 --state NEW -j ACCEPT' >> $batman_script
1962
+  echo '    iptables -D INPUT -p udp -m state -m udp --dport 5354 --state NEW -j ACCEPT' >> $batman_script
1963
+  echo '' >> $batman_script
1942
   echo '    systemctl restart network-manager' >> $batman_script
1964
   echo '    systemctl restart network-manager' >> $batman_script
1943
   echo '}' >> $batman_script
1965
   echo '}' >> $batman_script
1944
   echo '' >> $batman_script
1966
   echo '' >> $batman_script
1968
   echo '        ;;' >> $batman_script
1990
   echo '        ;;' >> $batman_script
1969
   echo '    *)' >> $batman_script
1991
   echo '    *)' >> $batman_script
1970
   echo '    echo "error: invalid parameter $1"' >> $batman_script
1992
   echo '    echo "error: invalid parameter $1"' >> $batman_script
1971
-  echo '    echo "usage: $0 {start|stop|restart|status|ping|list|ls}"' >> $batman_script
1993
+  echo '    echo "usage: $0 {start|stop|restart|status|ping|ls|list}"' >> $batman_script
1972
   echo '    exit 2' >> $batman_script
1994
   echo '    exit 2' >> $batman_script
1973
   echo '    ;;' >> $batman_script
1995
   echo '    ;;' >> $batman_script
1974
   echo 'esac' >> $batman_script
1996
   echo 'esac' >> $batman_script
6056
   if grep -Fxq "configure_internet_protocol" $COMPLETION_FILE; then
6078
   if grep -Fxq "configure_internet_protocol" $COMPLETION_FILE; then
6057
       return
6079
       return
6058
   fi
6080
   fi
6081
+  if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
6082
+      return
6083
+  fi
6059
   sed -i "s/#net.ipv4.tcp_syncookies=1/net.ipv4.tcp_syncookies=1/g" /etc/sysctl.conf
6084
   sed -i "s/#net.ipv4.tcp_syncookies=1/net.ipv4.tcp_syncookies=1/g" /etc/sysctl.conf
6060
   sed -i "s/#net.ipv4.conf.all.accept_redirects = 0/net.ipv4.conf.all.accept_redirects = 0/g" /etc/sysctl.conf
6085
   sed -i "s/#net.ipv4.conf.all.accept_redirects = 0/net.ipv4.conf.all.accept_redirects = 0/g" /etc/sysctl.conf
6061
   sed -i "s/#net.ipv6.conf.all.accept_redirects = 0/net.ipv6.conf.all.accept_redirects = 0/g" /etc/sysctl.conf
6086
   sed -i "s/#net.ipv6.conf.all.accept_redirects = 0/net.ipv6.conf.all.accept_redirects = 0/g" /etc/sysctl.conf
6066
   sed -i "s/#net.ipv4.conf.all.rp_filter=1/net.ipv4.conf.all.rp_filter=1/g" /etc/sysctl.conf
6091
   sed -i "s/#net.ipv4.conf.all.rp_filter=1/net.ipv4.conf.all.rp_filter=1/g" /etc/sysctl.conf
6067
   sed -i "s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=0/g" /etc/sysctl.conf
6092
   sed -i "s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=0/g" /etc/sysctl.conf
6068
   sed -i "s/#net.ipv6.conf.all.forwarding=1/net.ipv6.conf.all.forwarding=0/g" /etc/sysctl.conf
6093
   sed -i "s/#net.ipv6.conf.all.forwarding=1/net.ipv6.conf.all.forwarding=0/g" /etc/sysctl.conf
6069
-  if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
6070
-      echo '# ignore pings' >> /etc/sysctl.conf
6071
-      echo 'net.ipv4.icmp_echo_ignore_all = 1' >> /etc/sysctl.conf
6072
-      echo 'net.ipv6.icmp_echo_ignore_all = 1' >> /etc/sysctl.conf
6073
-      echo '# disable ipv6' >> /etc/sysctl.conf
6074
-      echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf
6075
-      echo 'net.ipv4.tcp_synack_retries = 2' >> /etc/sysctl.conf
6076
-      echo 'net.ipv4.tcp_syn_retries = 1' >> /etc/sysctl.conf
6077
-  fi
6094
+  echo '# ignore pings' >> /etc/sysctl.conf
6095
+  echo 'net.ipv4.icmp_echo_ignore_all = 1' >> /etc/sysctl.conf
6096
+  echo 'net.ipv6.icmp_echo_ignore_all = 1' >> /etc/sysctl.conf
6097
+  echo '# disable ipv6' >> /etc/sysctl.conf
6098
+  echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf
6099
+  echo 'net.ipv4.tcp_synack_retries = 2' >> /etc/sysctl.conf
6100
+  echo 'net.ipv4.tcp_syn_retries = 1' >> /etc/sysctl.conf
6078
   echo '# keepalive' >> /etc/sysctl.conf
6101
   echo '# keepalive' >> /etc/sysctl.conf
6079
   echo 'net.ipv4.tcp_keepalive_probes = 9' >> /etc/sysctl.conf
6102
   echo 'net.ipv4.tcp_keepalive_probes = 9' >> /etc/sysctl.conf
6080
   echo 'net.ipv4.tcp_keepalive_intvl = 75' >> /etc/sysctl.conf
6103
   echo 'net.ipv4.tcp_keepalive_intvl = 75' >> /etc/sysctl.conf