소스 검색

IRC server

Bob Mottram 10 년 전
부모
커밋
03eb7797a4
1개의 변경된 파일59개의 추가작업 그리고 6개의 파일을 삭제
  1. 59
    6
      install-freedombone.sh

+ 59
- 6
install-freedombone.sh 파일 보기

@@ -81,11 +81,6 @@ OWNCLOUD_ARCHIVE="owncloud-7.0.2.tar.bz2"
81 81
 OWNCLOUD_DOWNLOAD="https://download.owncloud.org/community/$OWNCLOUD_ARCHIVE"
82 82
 OWNCLOUD_HASH="ea07124a1b9632aa5227240d655e4d84967fb6dd49e4a16d3207d6179d031a3a"
83 83
 
84
-# You should either change this before running the script
85
-# or change it later with:
86
-# prosodyctl new_password myusername@mydomainname.com
87
-XMPP_PASSWORD="temppwd"
88
-
89 84
 GPG_KEYSERVER="hkp://keys.gnupg.net"
90 85
 
91 86
 # optionally you can provide your exported GPG key pair here
@@ -713,6 +708,23 @@ function configure_firewall_for_xmpp {
713 708
   echo 'configure_firewall_for_xmpp' >> $COMPLETION_FILE
714 709
 }
715 710
 
711
+function configure_firewall_for_irc {
712
+  if [ ! -d /etc/ngircd ]; then
713
+      return
714
+  fi
715
+  if grep -Fxq "configure_firewall_for_irc" $COMPLETION_FILE; then
716
+      return
717
+  fi
718
+  if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
719
+      # docker does its own firewalling
720
+      return
721
+  fi
722
+  iptables -A INPUT -i eth0 -p tcp --dport 6697  -j ACCEPT
723
+  iptables -A INPUT -i eth0 -p tcp --dport 9999 -j ACCEPT
724
+  save_firewall_settings
725
+  echo 'configure_firewall_for_irc' >> $COMPLETION_FILE
726
+}
727
+
716 728
 function configure_firewall_for_ftp {
717 729
   if grep -Fxq "configure_firewall_for_ftp" $COMPLETION_FILE; then
718 730
       return
@@ -1729,14 +1741,53 @@ function install_xmpp {
1729 1741
   sed -i 's/authentication = "internal_plain"/authentication = "internal_hashed"' /etc/prosody/prosody.cfg.lua
1730 1742
 
1731 1743
   service prosody restart
1744
+  XMPP_PASSWORD=$(openssl rand -base64 8)
1732 1745
   prosodyctl register $MY_USERNAME $DOMAIN_NAME $XMPP_PASSWORD
1733
-  echo 'Change your XMPP password using:' >> /home/$MY_USERNAME/README
1746
+  echo "Your XMPP password is: $XMPP_PASSWORD" >> /home/$MY_USERNAME/README
1747
+  echo 'You can change it with: ' >> /home/$MY_USERNAME/README
1734 1748
   echo '' >> /home/$MY_USERNAME/README
1735 1749
   echo "    prosodyctl new_password $MY_USERNAME@$DOMAIN_NAME" >> /home/$MY_USERNAME/README
1736 1750
   chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
1737 1751
   echo 'install_xmpp' >> $COMPLETION_FILE
1738 1752
 }
1739 1753
 
1754
+function install_irc_server {
1755
+  if [[ $SYSTEM_TYPE == "writer" || $SYSTEM_TYPE == "email" || $SYSTEM_TYPE == "mailbox" || $SYSTEM_TYPE == "cloud" || $SYSTEM_TYPE == "social" ]]; then
1756
+      return
1757
+  fi
1758
+  if grep -Fxq "install_irc_server" $COMPLETION_FILE; then
1759
+      return
1760
+  fi
1761
+  apt-get -y --force-yes install ngircd
1762
+  makecert ngircd
1763
+
1764
+  echo '**************************************************' > /etc/ngircd/motd
1765
+  echo '*           F R E E D O M B O N E   I R C        *' >> /etc/ngircd/motd
1766
+  echo '*                                                *' >> /etc/ngircd/motd
1767
+  echo '*               Freedom in the Cloud             *' >> /etc/ngircd/motd
1768
+  echo '**************************************************' >> /etc/ngircd/motd
1769
+  sed -i 's|MotdFile = /etc/ngircd/ngircd.motd|MotdFile = /etc/ngircd/motd|g' /etc/ngircd/ngircd.conf
1770
+  sed -i "s/irc@irc.example.com/$MY_USERNAME@$DOMAIN_NAME/g" /etc/ngircd/ngircd.conf
1771
+  sed -i "s/irc.example.net/$DOMAIN_NAME/g" /etc/ngircd/ngircd.conf
1772
+  sed -i "s|Yet another IRC Server running on Debian GNU/Linux|IRC Server of $DOMAIN_NAME|g" /etc/ngircd/ngircd.conf
1773
+  sed -i 's/;Password = wealllikedebian/Password =/g' /etc/ngircd/ngircd.conf
1774
+  sed -i 's|;CertFile = /etc/ssl/certs/server.crt|CertFile = /etc/ssl/certs/ngircd.crt|g' /etc/ngircd/ngircd.conf
1775
+  sed -i 's|;DHFile = /etc/ngircd/dhparams.pem|DHFile = /etc/ssl/certs/ngircd.dhparam|g' /etc/ngircd/ngircd.conf
1776
+  sed -i 's|;KeyFile = /etc/ssl/private/server.key|KeyFile = /etc/ssl/private/ngircd.key|g' /etc/ngircd/ngircd.conf
1777
+  sed -i 's/;Ports = 6697, 9999/Ports = 6697, 9999/g' /etc/ngircd/ngircd.conf
1778
+  sed -i 's/;Name = #ngircd/Name = #freedombone/g' /etc/ngircd/ngircd.conf
1779
+  sed -i 's/;Topic = Our ngircd testing channel/Topic = Freedombone chat channel/g' /etc/ngircd/ngircd.conf
1780
+  sed -i 's/;MaxUsers = 23/MaxUsers = 23/g' /etc/ngircd/ngircd.conf
1781
+  sed -i 's|;KeyFile = /etc/ngircd/#chan.key|KeyFile = /etc/ngircd/#freedombone.key|g' /etc/ngircd/ngircd.conf
1782
+  sed -i 's/;CloakHost = cloaked.host/CloakHost = cloaked.host/g' /etc/ngircd/ngircd.conf
1783
+  sed -i "s/;CloakHostSalt = abcdefghijklmnopqrstuvwxyz/CloakHostSalt = $(openssl rand -base64 64)/g" /etc/ngircd/ngircd.conf
1784
+  sed -i 's/;ConnectIPv4 = yes/ConnectIPv4 = yes/g' /etc/ngircd/ngircd.conf
1785
+  sed -i 's/;MorePrivacy = no/MorePrivacy = yes/g' /etc/ngircd/ngircd.conf
1786
+  sed -i 's/;RequireAuthPing = no/RequireAuthPing = no/g' /etc/ngircd/ngircd.conf
1787
+  service ngircd restart
1788
+  echo 'install_irc_server' >> $COMPLETION_FILE
1789
+}
1790
+
1740 1791
 function install_final {
1741 1792
   if grep -Fxq "install_final" $COMPLETION_FILE; then
1742 1793
       return
@@ -1793,6 +1844,8 @@ configure_firewall_for_web_server
1793 1844
 install_owncloud
1794 1845
 install_xmpp
1795 1846
 configure_firewall_for_xmpp
1847
+install_irc_server
1848
+configure_firewall_for_irc
1796 1849
 install_final
1797 1850
 echo 'Freedombone installation is complete'
1798 1851
 exit 0