浏览代码

batman tweaks

Bob Mottram 10 年前
父节点
当前提交
5c8f97277a
共有 1 个文件被更改,包括 64 次插入41 次删除
  1. 64
    41
      src/freedombone

+ 64
- 41
src/freedombone 查看文件

@@ -1734,12 +1734,8 @@ function mesh_babel {
1734 1734
   echo '    sed -i "s|host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf' >> $babel_script
1735 1735
   echo '    sed -i "s|use-ipv4=.*|use-ipv4=yes|g" /etc/avahi/avahi-daemon.conf' >> $babel_script
1736 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 1739
   echo 'fi' >> $babel_script
1744 1740
   echo '' >> $babel_script
1745 1741
   echo "IFACE=$WIFI_INTERFACE" >> $babel_script
@@ -1767,19 +1763,11 @@ function mesh_babel {
1767 1763
   echo '    fi' >> $babel_script
1768 1764
   echo '    ifconfig $IFACE down' >> $babel_script
1769 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 1767
   echo '    exit 1' >> $babel_script
1776 1768
   echo 'fi' >> $babel_script
1777 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 1771
   echo 'ifconfig $IFACE down' >> $babel_script
1784 1772
   echo -n 'iwconfig $IFACE mode ad-hoc channel ' >> $babel_script
1785 1773
   echo "$WIFI_CHANNEL essid \"$ESSID\"" >> $babel_script
@@ -1834,11 +1822,22 @@ function mesh_batman_bridge {
1834 1822
       echo 'batman_adv' >> /etc/modules
1835 1823
   fi
1836 1824
 
1837
-  enable_ipv6
1838
-
1839 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 1841
   echo '' >> $batman_script
1843 1842
   echo '# Mesh definition' >> $batman_script
1844 1843
   echo "ESSID=$ESSID" >> $batman_script
@@ -1855,23 +1854,36 @@ function mesh_batman_bridge {
1855 1854
   echo '        IFACE=wlan1' >> $batman_script
1856 1855
   echo '    fi' >> $batman_script
1857 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 1867
   echo '' >> $batman_script
1859 1868
   echo 'if [ -e /etc/default/batctl ]; then' >> $batman_script
1860 1869
   echo '    . /etc/default/batctl' >> $batman_script
1861 1870
   echo 'fi' >> $batman_script
1862 1871
   echo '' >> $batman_script
1863 1872
   echo 'start() {' >> $batman_script
1864
-  echo '    if [ -z "$IFACE" ]; then' >> $batman_script
1873
+  echo '    if [ -z "$IFACE" ] ; then' >> $batman_script
1865 1874
   echo '        echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> $batman_script
1866 1875
   echo '        return' >> $batman_script
1867 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 1877
   echo '    echo "info: enabling batman-adv mesh network $ESSID on $IFACE"' >> $batman_script
1878
+
1872 1879
   echo '    systemctl stop network-manager' >> $batman_script
1873 1880
   echo '    sleep 5' >> $batman_script
1874 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 1887
   echo '    # Might have to re-enable wifi' >> $batman_script
1876 1888
   echo '    rfkill unblock $(rfkill list|awk -F: "/phy/ {print $1}") || true' >> $batman_script
1877 1889
   echo '' >> $batman_script
@@ -1899,7 +1911,7 @@ function mesh_batman_bridge {
1899 1911
   echo '        ifconfig bat0 hw ether ${ether}' >> $batman_script
1900 1912
   echo '    fi' >> $batman_script
1901 1913
   echo '' >> $batman_script
1902
-  echo '    if [ "$EIFACE" ]; then' >> $batman_script
1914
+  echo '    if [ "$EIFACE" ] ; then' >> $batman_script
1903 1915
   echo '        brctl addbr $BRIDGE' >> $batman_script
1904 1916
   echo '        brctl addif $BRIDGE bat0' >> $batman_script
1905 1917
   echo '        brctl addif $BRIDGE $EIFACE' >> $batman_script
@@ -1909,19 +1921,22 @@ function mesh_batman_bridge {
1909 1921
   echo '        ifconfig $BRIDGE up' >> $batman_script
1910 1922
   echo '    fi' >> $batman_script
1911 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 1932
   echo '}' >> $batman_script
1918 1933
   echo '' >> $batman_script
1919 1934
   echo 'stop() {' >> $batman_script
1920
-  echo '    if [ -z "$IFACE" ] ; then' >> $batman_script
1935
+  echo '    if [ -z "$IFACE" ]; then' >> $batman_script
1921 1936
   echo '        echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> $batman_script
1922 1937
   echo '        return' >> $batman_script
1923 1938
   echo '    fi' >> $batman_script
1924
-  echo '    if [ "$EIFACE" ] ; then' >> $batman_script
1939
+  echo '    if [ "$EIFACE" ]; then' >> $batman_script
1925 1940
   echo '        brctl delif $BRIDGE bat0' >> $batman_script
1926 1941
   echo '        brctl delif $BRIDGE $EIFACE' >> $batman_script
1927 1942
   echo '        ifconfig $BRIDGE down || true' >> $batman_script
@@ -1939,6 +1954,13 @@ function mesh_batman_bridge {
1939 1954
   echo '    ifconfig $IFACE down' >> $batman_script
1940 1955
   echo '    iwconfig $IFACE mode managed' >> $batman_script
1941 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 1964
   echo '    systemctl restart network-manager' >> $batman_script
1943 1965
   echo '}' >> $batman_script
1944 1966
   echo '' >> $batman_script
@@ -1968,7 +1990,7 @@ function mesh_batman_bridge {
1968 1990
   echo '        ;;' >> $batman_script
1969 1991
   echo '    *)' >> $batman_script
1970 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 1994
   echo '    exit 2' >> $batman_script
1973 1995
   echo '    ;;' >> $batman_script
1974 1996
   echo 'esac' >> $batman_script
@@ -6056,6 +6078,9 @@ function configure_internet_protocol {
6056 6078
   if grep -Fxq "configure_internet_protocol" $COMPLETION_FILE; then
6057 6079
       return
6058 6080
   fi
6081
+  if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
6082
+      return
6083
+  fi
6059 6084
   sed -i "s/#net.ipv4.tcp_syncookies=1/net.ipv4.tcp_syncookies=1/g" /etc/sysctl.conf
6060 6085
   sed -i "s/#net.ipv4.conf.all.accept_redirects = 0/net.ipv4.conf.all.accept_redirects = 0/g" /etc/sysctl.conf
6061 6086
   sed -i "s/#net.ipv6.conf.all.accept_redirects = 0/net.ipv6.conf.all.accept_redirects = 0/g" /etc/sysctl.conf
@@ -6066,15 +6091,13 @@ function configure_internet_protocol {
6066 6091
   sed -i "s/#net.ipv4.conf.all.rp_filter=1/net.ipv4.conf.all.rp_filter=1/g" /etc/sysctl.conf
6067 6092
   sed -i "s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=0/g" /etc/sysctl.conf
6068 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 6101
   echo '# keepalive' >> /etc/sysctl.conf
6079 6102
   echo 'net.ipv4.tcp_keepalive_probes = 9' >> /etc/sysctl.conf
6080 6103
   echo 'net.ipv4.tcp_keepalive_intvl = 75' >> /etc/sysctl.conf